2

私は外部から供給された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マッピングドキュメントで可能ですか?

4

1 に答える 1

2

JAXB アノテーションでこれを行う方法はわかりませんが、それが不可能だと言っているわけではありません。多分誰かがあなたにもっと良い答えを与えるでしょう。

これを解決する理想的な方法は、明らかに XSD を変更して、"PriceWithcurrency" xs:complexType 定義を持ち、各要素がその型であると宣言されるようにすることです。しかし、あなたはそれを変えることはできないと言った。

私が一度試してみることは、まさにそれを行う XSD のバリアントを作成し、それに対して同じ名前空間定義を保持し、jaxb クラスを生成することです。元の XSD を使用して生成された XML ドキュメント インスタンスで動作するはずです。

于 2012-09-11T15:56:17.040 に答える