我的 XML 文件有root
元素,然后有许多item
元素作为根的子元素。所以它看起来像这样:
<root>
<item type=type1 id=1>...</item>
<item type=type1 id=2>...</item>
<item type=type2 id=3>...</item>
<item type=type3 id=4>...</item>
</root>
每个item
元素都有属性,说明我们正在处理的项目类型。在当前的 XSD
xs:element name="root"
中,complexType 具有复杂类型的序列item
。我正在使用 JAXB 将我的 XML 文件映射到 Java 对象。现在我必须获取所有项目并根据它们的类型创建新的特定对象。它变得越来越复杂,因为每个项目类型都有自己的一组字段(子节点)。有没有机会我可以告诉 JAXB(通过 XSD)有不同类型的items
并根据项目的name
属性创建我需要的对象?因此,对于每个项目,都应该有单独的 complexType(将映射到 java 对象)。
如果我的 XML 看起来像这样就可以了:
<root>
<item1 id=1>...</item1>
<item1 id=2>...</item1>
<item2 id=3>...</item2>
<item3 id=4>...</item3>
</root>