将XSD转换为Java时生成的多个JAXB对象

时间:2012-05-31 11:31:17

标签: java xml spring xsd jaxb

我正在尝试使用Spring和JAXB将XSD / XML文件转换为java JAXB对象 我正在使用的模式具有如下所示的字段:

<simpleType name="productType">
 <restriction base="string"/>
</simpleType>   

<complexType name="child">
 <sequence>
   <element name="product" type="productType" maxOccurs="unbounded"/>
  </sequence>       
</complexType>

<element name="products">
 <complexType>
   <sequence>
     <element ref="child"/>
   </sequence>
 </complexType>
</element>

当JAXB使用上述模式时,它会生成两个类:

Products.java
Child.java

Whith“Child”作为列表在Products类中作为对象:

@XmlElement(required = true)
protected List<Child> child;

将XML / XSD文件转换为JAXB对象时这很好,但是当进行相反的转换时,即将Hibernate或简单的javabean转换为JaxB对象时,很难映射字段。在上面的例子中,我必须首先创建“Child”对象,将它们放在一个列表中然后创建“Product”对象。

似乎JAXB为我在XSD文件中定义的每种类型生成一个类。

你可以想象这对于一个包含多个级别内部标记的非常大的xml文件会有多么混乱。无论xml文件中有多少级别,都可以生成单个JAXB对象吗? (即不为XSD文件中定义的每种类型创建单独的类。)

0 个答案:

没有答案