Java JAXB-EclipseLink MOXy-嵌套的复合对象未正确编组
映射java类是从下面的模式usign XJC工具生成的。 XML模式是:Java JAXB-EclipseLink MOXy-嵌套的复合对象未正确编组,java,xml,jaxb,eclipselink,moxy,Java,Xml,Jaxb,Eclipselink,Moxy,映射java类是从下面的模式usign XJC工具生成的。 XML模式是: <xs:complexType name="configurations"> <xs:sequence> <xs:element name="configuration" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence&g
<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>
配置$Configuration$Variation@44d8783e
配置$Configuration$Variation@5fbe51c1
如果查看上面的“variation”元素,它没有任何诸如“charValueName”、“charValueDesc”等编组的属性。知道为什么吗?JAXB对嵌套元素的深度有任何限制吗?注意:我是专家组的负责人和成员 如果MOXy不知道正在封送的类,则此问题可能会在MOXy中发生。对象最终会根据其
toString()
方法进行编组。您确定您正在使用EclipseLink 2.3.1,我相信您遇到了EclipseLink 2.3.2中修复的以下错误:
JAXBContext
上调用getClass()
查找提供程序,确定版本取决于提供程序。对不起,我没有完全阅读您的问题。我们正在使用Moxy(javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory),这与Moxy没有自动拾取引用的类有关(您可以在自己创建JAXBContext
时提供它)。我相信这个问题在EclipseLink 2.3.3中已经解决了。