externalize namespace JAXB生成的package-info.java

时间:2012-10-22 13:02:48

标签: java jaxb

如何在package-info.java

中外化命名空间值
@javax.xml.bind.annotation.XmlSchema(namespace = "http://loclahost:9093/Request", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

在上面的代码中应该如何外化“http:// loclahost:9093 / Request”。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

注释属性值必须是编译时常量,因此您可以做的最好的事情是在另一个类中声明public static final String NAMESPACE = "http://example.com",然后在注释中说出namespace = MyClass.NAMESPACE。但是,当package-info.java更改时,您仍需要重新编译MyClass

答案 1 :(得分:2)

@XmlSchema注释上指定的命名空间并不意味着与XML架构的物理位置相关联。它用于限定元素,以便您的address元素与其他组织使用address元素不同。这与Java中的包名称类似。与包名一样,人们通常会为此目的使用域名。我想不出有一个很好的理由让命名空间看起来像:http://loclahost:9093/Request

相关问题