0

我正在尝试使用 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

其中“孩子”是 Products 类中的一个对象作为列表:

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

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

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

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

4

0 回答 0