1

我正在使用 org.jibx.runtime.impl.UnmarshallingContext.unmarshalDocument(java.io.Reader rdr) 类来解组我的 xml。

这是我的有效绑定地图。

<?xml version="1.0" encoding="UTF-8"?>

  <binding xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <mapping name="md" class="com.mycompany.metadata.JiBXMetadata" ordered="false">
          <value name="alice" field="aliceStr" style="element" usage="optional"/>
          <value name="bob" field="bobStr" style="element" usage="optional"/>
          <value name="carol" field="carolStr" style="element" usage="optional"/>
      </mapping>
  </binding>

因此,如果 xml 以任何顺序具有任何节点 alice、bob 或 carol,它就可以正常工作。如果 xml 中缺少任何节点,它仍然可以正常工作。但是如果 xml 中有一个额外的节点(比如史蒂夫),那么我会得到一个 JiBXException。

有没有办法让解组器忽略任何不在绑定映射中的节点?

4

1 回答 1

0

添加灵活选项可能会有所帮助。您可以尝试为您的映射添加灵活的属性,如下所示?

<binding xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <mapping name="md" class="com.mycompany.metadata.JiBXMetadata" ordered="false">
      <value name="alice" field="aliceStr" style="element" usage="optional" flexible="true"/>
      <value name="bob" field="bobStr" style="element" usage="optional" flexible="true"/>
      <value name="carol" field="carolStr" style="element" usage="optional" flexible="true"/>
  </mapping>

于 2013-11-22T11:39:53.817 回答