我有一个架构:
<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适配器以我需要的方式编组?
答案 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>