gpt4 book ai didi

java - 根元素已定义 jaxb

转载 作者:行者123 更新时间:2023-11-30 09:22:27 26 4
gpt4 key购买 nike

我的问题是我有两个模式 A.xsd B.xsd

同根同源,我举个例子

 A.xsd
<xs:element name="A">
<xs:complexType>
.my elements on A
</xs:complexType>
</xs:element>

B.xsd
<xs:element name="A">
<xs:complexType>
.my elements on B
</xs:complexType>
</xs:element>

当我尝试生成类时,输出是元素“A”已定义。所以我创建了一个定义到 xsd A 的绑定(bind)文件,为元素 A 创建一个类 C,并为 xsd B 创建一个元素 A 的类 D

 X.xjb
<bindings schemaLocation="A.xsd">
<bindings node="//xs:element[@name='A']">
<class name="C">
</bindings>
</bindings>

<bindings schemaLocation="B.xsd">
<bindings node="//xs:element[@name='A']">
<class name="D">
</bindings>
</bindings>

但没有用,它输出相同的错误,'A' is Already defined,所以我尝试在绑定(bind)文件上使用属性而不是类。

 X.xjb
<bindings schemaLocation="A.xsd">
<bindings node="//xs:element[@name='A']">
<property name="C">
</bindings>
</bindings>

<bindings schemaLocation="B.xsd">
<bindings node="//xs:element[@name='A']">
<property name="D">
</bindings>
</bindings>

,也没用

他们没有目标命名空间

有人做过这样的事吗?

最佳答案

只需分配它们 to different Java packages你应该没事。

<jxb:schemaBindings>
<jxb:package name="primer.myPo">
<jxb:javadoc>
<![CDATA[<body> Package level documentation for generated package primer.myPo.</body>]]>
</jxb:javadoc>
</jxb:package>
<jxb:nameXmlTransform>
<jxb:elementName suffix="Element"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>

关于java - 根元素已定义 jaxb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486349/

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