【问题标题】:cXML to java bindings issuescXML 到 java 绑定问题
【发布时间】:2016-12-01 10:33:26
【问题描述】:

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

我使用的版本是 1.2.032

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

错误: 解析架构... [错误] 属性“名称”已定义。使用 来解决 是冲突。

问题 1:573 左右的行号 问题在于“名称”作为其重复项(元素和属性)。

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

我理解的解决方案==

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

我需要什么帮助

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

请提出建议。

【问题讨论】:

    标签: xsd jaxb xjc cxml


    【解决方案1】:

    仅供参考:您也可以使用如下所示的外部 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>
    

    生成 JAX-B 类的 CXML 规范非常烦人,因为它们继续使用 DTD over XML 模式。如果您想使用其他 DTD(Invoice、Catalog、Fulfill),这尤其令人讨厌,因为它们每个都重新定义了所有常见元素,但使用了自己的 cxml.requests、cxml.messages、cxml.responses 实体版本

    【讨论】:

      【解决方案2】:

      问题由我自己解决。是否遵循以下步骤.. 可能对其他人有用

      1. 在 Cxml.dtd 中重命名“name”元素“ReturnData”

      2. 从 TransportTerms、ShippingPaymentMethod 和 Cxml.dtd 中的 TermsOfDeliveryCode 重命名“值”属性

      3. 使用创建的 java 类
        xjc -dtd cXML.dtd

      4.in 生成的 java 类将 xml 注释改回原来的。

      所以方法名称会有所不同,但它会读取和写入正确的 XML。

      【讨论】:

      • cXML v 1.2.050 此外,我必须重命名 ATTLIST InvoiceDetailItemReference 的“serialNumber”
      • 注意:我建议通过添加“属性”来重命名属性元素,所以它看起来像 nameAttribute、valueAttribute、serialNumberAttribute。
      猜你喜欢
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2010-10-11
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      相关资源
      最近更新 更多