cXML 到 java 的绑定问题

-1 xsd jaxb xjc cxml

问题:无法使用 java xjc 从 cXML.dtd 创建 java 类

我使用的版本是1.2.032

使用的命令:xjc -dtd cXML.dtd

错误:正在解析架构...[错误]属性“名称”已定义。使用 <jaxb:property> 解决冲突。

问题 1:第 573 号问题附近的行号将“名称”作为其重复项(元素和属性)。

问题 2:ShippingPaymentMethod、TermsOfDeliveryCode、TransportTerms 使用“值”,导致重复定义。

据我了解解决方案==

我需要自定义绑定.xml ..我尝试了各种方法,但无法创建正确的绑定.xml 来解决此问题。一旦我有了正确的 xml,我就可以使用以下命令来创建生成的类。xjc -b 绑定.xml -dtd cXML.dtd

我需要什么帮助

  1. 如果可能,请提供正确的绑定.xml
  2. 有没有其他方法可以为此 cXML 生成 java 映射
  3. 是否有可能拥有 XSD,然后从 XSD 进行 Java 映射?

请建议。

Bob*_*nce 6

仅供参考:您还可以使用外部 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>
Run Code Online (Sandbox Code Playgroud)

CXML 规范对于生成 JAX-B 类非常烦人,因为它们继续使用 DTD over XML 模式。如果您想使用其他 DTD(发票、目录、履行),这尤其令人烦恼,因为它们各自重新定义了所有公共元素,但使用自己版本的 cxml.requests、cxml.messages、cxml.responses 实体