cXML 到 java 绑定问题
cXML to java bindings issues
问题:无法使用 java xjc
从 cXML.dtd 创建 java 类
我使用的版本是 1.2.032
使用的命令:xjc -dtd cXML.dtd
错误:
解析模式...
[错误] 属性 "Name" 已定义。使用 来解析
是冲突。
问题 1:第 573 行左右
问题在于 "name" 作为其副本(元素和属性)。
问题 2:
ShippingPaymentMethod,TermsOfDeliveryCode,TransportTerms 使用 "value" 导致重复定义。
我理解的解决方案==
我需要自定义 binding.xml ..我尝试了各种方法但无法创建正确的 binding.xml 来解决这个问题。一旦我有了正确的 xml,我就可以使用下面的命令来创建生成的 类。
xjc -b binding.xml -dtd cXML.dtd
我所需要的帮助
- 如果可能请提供正确的binding.xml
- 是否有其他方法可以为此 cXML
生成 java 映射
- 是否有可能 XSD 然后从 XSD 映射 java?
请推荐。
问题已由我自己解决。做了以下步骤.. 可能对其他人有用
重命名 "name" 元素 "ReturnData" in Cxml.dtd
重命名 "value" 来自 Cxml.dtd
中的 TransportTerms、ShippingPaymentMethod 和 TermsOfDeliveryCode 的属性
使用
创建java类
xjc -dtd cXML.dtd
4.in 生成 java 类 将 xml 注释改回原始。
所以方法名称会有所不同,但它会正确读写XML。
仅供参考:您还可以使用如下所示的外部 jax-b 绑定文件来解决此问题:
<xml-java-binding-schema xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<element name="ReturnData" type="class">
<attribute name="name" property="nameAttribute"/>
</element>
<element name="ShippingPaymentMethod" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
<element name="TermsOfDeliveryCode" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
<element name="TransportTerms" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
</xml-java-binding-schema>
CXML 规范生成 JAX-B 类 非常烦人,因为他们继续使用 DTD 而不是 XML 模式。如果您想使用其他 DTD(Invoice、Catalog、Fulfill),这尤其烦人,因为它们各自重新定义所有公共元素,但使用它们自己版本的 cxml.requests、cxml.messages、cxml.responses 实体
问题:无法使用 java xjc
从 cXML.dtd 创建 java 类我使用的版本是 1.2.032
使用的命令:xjc -dtd cXML.dtd
错误:
解析模式...
[错误] 属性 "Name" 已定义。使用
问题 1:第 573 行左右 问题在于 "name" 作为其副本(元素和属性)。
问题 2: ShippingPaymentMethod,TermsOfDeliveryCode,TransportTerms 使用 "value" 导致重复定义。
我理解的解决方案==
我需要自定义 binding.xml ..我尝试了各种方法但无法创建正确的 binding.xml 来解决这个问题。一旦我有了正确的 xml,我就可以使用下面的命令来创建生成的 类。 xjc -b binding.xml -dtd cXML.dtd
我所需要的帮助
- 如果可能请提供正确的binding.xml
- 是否有其他方法可以为此 cXML 生成 java 映射
- 是否有可能 XSD 然后从 XSD 映射 java?
请推荐。
问题已由我自己解决。做了以下步骤.. 可能对其他人有用
重命名 "name" 元素 "ReturnData" in Cxml.dtd
重命名 "value" 来自 Cxml.dtd
中的 TransportTerms、ShippingPaymentMethod 和 TermsOfDeliveryCode 的属性
使用
创建java类 xjc -dtd cXML.dtd
4.in 生成 java 类 将 xml 注释改回原始。
所以方法名称会有所不同,但它会正确读写XML。
仅供参考:您还可以使用如下所示的外部 jax-b 绑定文件来解决此问题:
<xml-java-binding-schema xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<element name="ReturnData" type="class">
<attribute name="name" property="nameAttribute"/>
</element>
<element name="ShippingPaymentMethod" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
<element name="TermsOfDeliveryCode" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
<element name="TransportTerms" type="class">
<attribute name="value" property="valueAttribute"/>
</element>
</xml-java-binding-schema>
CXML 规范生成 JAX-B 类 非常烦人,因为他们继续使用 DTD 而不是 XML 模式。如果您想使用其他 DTD(Invoice、Catalog、Fulfill),这尤其烦人,因为它们各自重新定义所有公共元素,但使用它们自己版本的 cxml.requests、cxml.messages、cxml.responses 实体