【问题标题】:externalize namespace JAXB generated package-info.java外部化命名空间 JAXB 生成的 package-info.java
【发布时间】:2012-10-22 13:02:47
【问题描述】:

如何将 package-info.java 中的命名空间值外部化

@javax.xml.bind.annotation.XmlSchema(namespace = "http://loclahost:9093/Request", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

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

非常感谢任何帮助

【问题讨论】:

    标签: java jaxb


    【解决方案1】:

    注解属性值必须是编译时常量,所以最好的办法是在另一个类中声明public static final String NAMESPACE = "http://example.com",然后在注解中说namespace = MyClass.NAMESPACE。但是当MyClass 发生变化时,你仍然需要重新编译package-info.java

    【讨论】:

    • 我想读取 System.getProperty("nameSpace"); 这样的值在我的课堂中
    • @premchanderjonnala - 你看到我的回答了吗 (stackoverflow.com/a/13013163/383861)?你真的需要命名空间是动态的吗?
    • 感谢帮助,我需要动态命名空间
    • @premchanderjonnala 不可能,注解属性值必须是编译时常量。
    • 兰·罗伯茨 :-- 感谢您的帮助
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-17
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      相关资源
      最近更新 更多