在Castor中将集合映射到XML

时间:2009-08-22 01:11:06

标签: java xml xml-serialization castor oxm

我正在尝试使用Castor将POJO映射到XML。

假设我有一个包含Items集合的Order ...有没有办法实现xml,如下所示:

<order>
  ...order attributes
  <items>
    <item> ..item attributes </item>
    <item> ..other item </item>
  </items>
</order>

我可以制作类似但没有<items>节点的东西。这在其他情况下不会成为问题,但我的XML必须遵守严格的XSD架构,所以我需要这样做。

谢谢!


我虽然有一种“解决方法”,它涉及创建一个只包含项目列表的新java对象(可能是节点)......任何人都可以想到更好的方法吗?从现在开始有100个代表赏金!

2 个答案:

答案 0 :(得分:3)

您可以使用bind-xml lement的location属性

http://castor.codehaus.org/1.2/xml-mapping.html#6.-Location-attribute

文档示例:

   <class name="Foo">
      <field name="bar" type="Bar">
         <bind-xml name="bar" location="abc"/>
      </field>
   </class>

生成以下XML:

<foo>;
   <abc>
      <bar>...</bar>
   </abc>
</foo>

答案 1 :(得分:0)

另一个答案不使用我认为可能是你最终需要的收集属性。

当包含在Order对象的映射中时,这样的东西可能会起作用:

<field name="items" type="item" collection="arraylist" >
  <bind-xml name="items" node="element"/>
</field>