JAXB / XJC - 从XS:Group生成一个类

时间:2013-01-20 20:50:35

标签: xml jaxb xjc

我第一次使用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>

所以我认为好吧,也许我可以将contacts元素称为一系列组。相关部分:

<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对象只有一个看起来像这样的getter:

public List<JAXBElement<?>> getContact()

为什么没有声明Contact对象,我该如何解决这个问题?我不认为我可以将Contact声明为复杂类型,因为它不包含在元素中。

由于

1 个答案:

答案 0 :(得分:1)

我认为最好的办法是首先使用XSLT将错误的XML转换为优秀的XML。然后,用Java处理数据会容易得多。 (谁知道,也许您可​​以完全在XSLT中处理数据并避免完全将其转换为Java格式。)如果没有合适的结构,Java映射可能非常糟糕。

相关问题