有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否可以为相同的xs:simpleContent元素创建单个类映射?

我有一个外部提供的XSD,它有许多元素,所有元素都是相同的,并且表示一个带有可选货币属性的价格

<xs:complexType name="someType">
  <xs:sequence>
    <xs:element name="rrp" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:decimal">
            <xs:attribute name="currency" type="xs:string"/>
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="whs" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:decimal">
            <xs:attribute name="currency" type="xs:string"/>
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

我希望将其转换为一个公共类,而不是许多静态类,这是否可以通过XJB映射文档实现


共 (1) 个答案

  1. # 1 楼答案

    我不知道如何使用JAXB注释实现这一点,但这并不是说这是不可能的。也许有人会给你一个更好的答案

    解决这个问题的理想方法显然是更改XSD,这样您就有了一个“PriceWithcurrency”xs:complexType定义,并且每个元素都声明为该类型。但你说你不能改变它

    我要尝试的一件事是,创建一个XSD的变体来实现这一点,为它保留相同的名称空间定义并生成jaxb类。它应该使用使用原始XSD生成的XML文档实例