我有一个xml文件,如下所示:
<RootItem>
<Items>
<Item />
<Item />
<Item />
</Items>
<Values>
<Value />
<Value />
<Value />
</Values>
<AnotherItem />
</RootItem>
我正在使用Trang将其转换为.xsd架构,并使用xjc将架构转换为带注释的Java类(使用jaxB顺利运行以编组和解组我的文档)我唯一的问题是xjc给了我这些类:
我不想要“Items”或“Values”类。如何格式化我的模式以告诉它忽略父元素并在RootItem类中创建一个“List items”对象?
我想要的是什么:
谢谢!
编辑:这是Trang生成的架构:
<xs:element name="RootItem">
<xs:complexType>
<xs:sequence>
<xs:element ref="Items"/>
<xs:element ref="Values"/>
</xs:sequence>
<xs:element name="AnotherItem" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="Items">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Item"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Values">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Value"/>
</xs:sequence>
</xs:complexType>
</xs:element>
答案 0 :(得分:3)
您始终可以从Java类开始。您可以使用@XmlElementWrapper来获取分组元素“Items”和“Values”。
注意: JAXB不需要对象工厂。 JAXB可以利用像@FmlRegistry注释的ObjectFactory这样的类上的元数据。