3

私は初めて JAXB を使用していますが、クラスを生成したい変更できない非常に悪い XML があります。

XML は次のようになります。

<root>
   <contacts>
      <name>...</name>
      <phone>...</phone>
      <address>..</address>
      <name>...</name>
      <phone>...</phone>
      <address>..</address>
      <name>...</name>
      <phone>...</phone>
      <address>..</address>
  </contacts>
</root>

それで、連絡先要素を一連のグループとして参照できるかもしれません。関連部品:

<xs:group name="Contact">
    <xs:sequence>
        <xs:element name="name" type="xsd:string"/>
        <xs:element name="phone" type="xsd:string"/>
        <xs:element name="address" type="xsd:string"/>
    </xs:sequence>
</xs:group>

<xs:complexType name="ContactList">
    <xs:sequence><xs:group maxOccurs="unbounded" ref="Contact"/></xs:sequence>
</xs:complexType>

ただし、私の ContactList オブジェクトには、次のようなゲッターしかありません。

public List<JAXBElement<?>> getContact()

Contact オブジェクトが宣言されていないのはなぜですか? どうすれば修正できますか? Contact は要素に含まれていないため、複合型として宣言できないと思います。

ありがとう

4

1 に答える 1

1

XSLT を使用して悪い XML を良い XML に変換することから始めるのが最善の策だと思います。これにより、Java でのデータ処理がはるかに簡単になります。(おそらく、データを完全に XSLT で処理し、完全に Java 形式に変換することを避けることができます。) 適切な構造を使用しないと、Java マッピングはかなりひどいものになる可能性があります。

于 2013-01-21T00:23:48.020 に答える