首先,我有一个 XSD,其中包含对 commentType 对象的引用:
...
<xs:complexType>
<xs:sequence>
<xs:element name="entry" type="ref:commentType">
...
commentType 被描述为(相同的 XSD):
...
<xs:complexType name="commentType" mixed="true">
<xs:annotation>
<xs:documentation>Some text</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:any/>
</xs:sequence>
<xs:attribute name="date" type="xs:dateTime" use="required"/>
<xs:attribute name="type" use="optional" default="PRODUCT">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="PRODUCT"/>
<!--Several values-->
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
...
在我使用 Jaxb 解析的 XML 文件中,entry 指的是 opDetails 对象,该对象在另一个 XSD 中定义......
...
<entry date="2010-03-26T10:40:27Z" type="PRODUCT">
<opDetails xmlns="http://path/to/opDetails">
<!--Object properties-->
</opDetails>
...
(为了清楚起见,我简化了名称和结构)
问题 :
如何在我的代码中正确映射这个其他对象?
我有一个 entry.getContent(),它是 TinyElementImpl 的列表。
显然,生成 2 个 xsd 的类并尝试将 TinyElementImpl 转换为 opDetails 不是一种选择:)