1

映射 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 对嵌套元素的深度是否有任何限制?

4

1 回答 1

2

注意: 我是EclipseLink JAXB (MOXy)负责人,也是JAXB (JSR-222)专家组的成员

如果 MOXy 不知道正在编组的类,则可能会在 MOXy 中出现此问题。toString()该对象最终会根据其方法进行编组。您确定您正在使用 EclipseLink 2.3.1,并且我相信您遇到了以下在 EclipseLink 2.3.2 中修复的错误:

截至今天(2013 年 8 月 26 日),EclipseLink 的当前版本为 2.5.0,可以从以下位置下载:

于 2013-08-26T18:08:49.963 回答