gpt4 book ai didi

jaxb - 使用 annox 编辑 JAXB 生成的注释并在参数中添加命名空间

转载 作者:行者123 更新时间:2023-12-01 12:51:28 26 4
gpt4 key购买 nike

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

@XmlType(name = "MessageInfoType", propOrder = {
"debugTraceBoolean",
"clientHostnameString",
"endUserIPAddress"
})

需要在具有自定义绑定(bind)的 JAXB 类中生成以下注释。即需要编辑上述注释并使用 annox 添加命名空间,如下所示。
        @XmlType(name = "MessageInfoType", propOrder = {
"debugTraceBoolean",
"clientHostnameString",
"endUserIPAddress"
}, namespace="urn:expedia:e3:data:messagetypes:defn:v4")

我的 xjb 文件是:
  <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>

最佳答案

隶属关系免责声明:我是 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

这是绑定(bind):

    <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>

如果存在此绑定(bind),您将获得:
@XmlAttribute(name = "test", required = false)
protected String test;

如果不是,它将是这样的:
@XmlAttribute(name = "test", required = true)
protected String test;

所以,正如我所说,如果你在同一个地方和同一个类中添加注释,它们将被合并。

关于jaxb - 使用 annox 编辑 JAXB 生成的注释并在参数中添加命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com