映射java类是从以下模式使用XJC工具生成的。 XML架构是:
<xs:complexType name="configurations">
<xs:sequence>
<xs:element name="configuration" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="variation" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:attribute name="charValueName" type="LimitedString30" />
<xs:attribute name="charValueDesc" type="LimitedString40" />
<xs:attribute type="xs:decimal" name="price" />
<xs:attribute type="xs:string" name="pricingUnit" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="charName" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>***
使用JAXB的编组XML是:
<configurations>
<configuration charName="XYZ">
<variation>Configurations$Configuration$Variation@44d8783e</variation>
<variation>Configurations$Configuration$Variation@5fbe51c1</variation>
</configuration>
</configurations>
如果你看一下上面的'variation'元素,它就没有任何属性,如'charValueName','charValueDesc'等编组。知道为什么吗?嵌套元素的深度是否有任何限制,使用JAXB?
答案 0 :(得分:2)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员
如果MOXy不知道正在编组的类,则可能会出现此问题。该对象最终根据其toString()
方法进行编组。您发现您正在使用EclipseLink 2.3.1,我相信您正在遇到EclipseLink 2.3.2中修复的以下错误:
截至今日(2013年8月26日),当前版本的EclipseLink为2.5.0,可从以下位置下载: