我正在尝试使用 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 文件中定义的每种类型创建单独的类。)