如何解组未分类的集合?

时间:2012-06-11 15:51:27

标签: java binding jibx

我有XML字符串,如:

<Tree Name="tree1">
    <Service>Service1</Service>
    <Tree Name="tree2">
         <Service>Service2</Service>
         <Service>Service3</Service>
    </Tree>
    <Service>Service4</Service>
    <Tree Name="tree3">
        <Service>Service4</Service>
        <Service>service5</Service>
    </Tree>
</Tree>

和绑定结构:

    <mapping ordered="false" allow-repeats="true" abstract="true" type-name="Tree"
         class="Tree">
    <collection ordered="false" allow-repeats="true" get-method="getTrees" set-method="setTrees" usage="optional">
        <structure usage="optional" ordered="false" allow-repeats="true" map-as="Tree" name="Tree"/>
    </collection>
    <collection ordered="false" allow-repeats="true"  get-method="getServices" set-method="setServices" usage="optional">
        <structure usage="optional" ordered="false" allow-repeats="true"   map-as="Service" name="Service"/>
    </collection>
    <value style="attribute" name="Name" get-method="getName" set-method="setName" usage="optional"/>
    </mapping>

但是当我尝试unmarshall xml时,我只在root中捕获一个Tree而只捕获一个Service。是否有任何posibilites从xml获取所有数据?

1 个答案:

答案 0 :(得分:0)

我通过在binding.xml中使用这样的构造解决了这个问题:

<collection ordered="false" get-method="getCollection" set-method="setCollection" usage="optional">
      <structure map-as="Service" name="Service" usage="optional"/>
      <structure map-as="Tree" name="Tree" usage="optional"/>
</collection>

这给了我所有元素的集合,我可以手动对它进行排序。