如何创建Jaxb java类来处理类似的元素

时间:2013-04-12 23:37:12

标签: java jaxb

我有一个架构:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="get_item">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:anyURI" name="imgpurl1"/>
        <xs:element type="xs:anyURI" name="imgurl1"/>
        <xs:element type="xs:string" name="imgcap1"/>
        <xs:element type="xs:anyURI" name="imgpurl2"/>
        <xs:element type="xs:anyURI" name="imgurl2"/>
        <xs:element type="xs:string" name="imgcap2"/>
        <xs:element type="xs:anyURI" name="imgpurlN"/>
        <xs:element type="xs:anyURI" name="imgurlN"/>
        <xs:element type="xs:string" name="imgcapN"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

这个xml看起来像:

<?xml version=“1.0”?>
<get_item>
 .......snip.......
<imgpurl1></imgpurl1>
<imgurl1></imgurl1>
<imgcap1></imgcap1>
…
<imgpurlN></imgpurlN>
<imgurlN></imgurlN>
<imgcapN></imgcapXN>
</get_item>

imgurl1 ... N可以有任意数量的元素。我不知道N能/将会是什么,所以我希望能够将其作为参数传递并自动正确创建。

显然,来自模式的Eclipse生成不提供这一点,那么如何修改创建的类以便它们处理N个元素?

有没有办法让自定义jaxb适配器以我需要的方式编组?

1 个答案:

答案 0 :(得分:0)

请你试试这样的事情:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"  
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="get_item">
<xs:complexType>
   <xs:sequence>
      <xs:element type="xs:anyURI" name="imgpurl" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="xs:anyURI" name="imgurl" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element type="xs:string" name="imgcap" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>