首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用annox编辑JAXB生成的注释,并在param中添加命名空间

使用annox编辑JAXB生成的注释,并在param中添加命名空间
EN

Stack Overflow用户
提问于 2012-08-31 05:15:53
回答 1查看 7.4K关注 0票数 3

我在JAXB生成的类中有以下注释

代码语言:javascript
复制
@XmlType(name = "MessageInfoType", propOrder = {
    "debugTraceBoolean",
    "clientHostnameString",
    "endUserIPAddress"
})

需要使用自定义绑定在JAXB类中生成以下注释,即需要编辑上述注释,并使用如下类型的注释添加命名空间。

代码语言:javascript
复制
        @XmlType(name = "MessageInfoType", propOrder = {
            "debugTraceBoolean",
            "clientHostnameString",
            "endUserIPAddress"
        }, namespace="urn:expedia:e3:data:messagetypes:defn:v4")

我的xjb文件是:

代码语言:javascript
复制
  <jaxb:bindings schemaLocation="../../serviceDescription/atlantis/common/com.expedia.e3.data.messagetypes.v4.xsd">

    <jaxb:bindings node="//xs:complexType[@name='MessageInfoType']">
        <annox:annotate target="field">
            <annox:annotate annox:class="javax.xml.bind.annotation.XmlType" 
                   namespace="urn:expedia:e3:data:messagetypes:defn:v4"/>
        </annox:annotate>
    </jaxb:bindings>
  </jaxb:bindings>
EN

回答 1

Stack Overflow用户

发布于 2012-08-31 14:08:35

从属声明:我是Annotate Plugin的作者。

如果您尝试添加已经存在的注释(相同的位置,相同的注释类),这将修改现有的注释,而不是添加第二个注释。目前我不确定这是否会覆盖所有的属性或合并新的属性,但绝对值得一试。

更新:

我已经重新检查过了。实际上,它已经实现了(应该是0.6.4版本,我刚刚用0.6.5-SNAPSHOT检查过了)。

检查此示例:

https://svn.java.net/svn/jaxb2-commons~svn/basics/trunk/tests/annotate/src/main/resources/bindings.xjb

下面是绑定:

代码语言:javascript
复制
    <jaxb:bindings node="xs:complexType[@name='issueJIIB39CType']/xs:attribute[@name='test']">
        <annox:annotate target="field">
            <annox:annotate annox:class="javax.xml.bind.annotation.XmlAttribute" required="false"/>
        </annox:annotate>
    </jaxb:bindings>

如果存在此绑定,您将获得:

代码语言:javascript
复制
@XmlAttribute(name = "test", required = false)
protected String test;

如果不是,它将是这样的:

代码语言:javascript
复制
@XmlAttribute(name = "test", required = true)
protected String test;

因此,正如我所说的,如果您在非常相同的位置和非常相同的类中添加注释,它们将被合并。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12205652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档