JAXB - 如何在解组时检测重复节点

时间:2016-06-09 20:48:27

标签: java unmarshalling jaxb2

是否可以在解组XML的同时报告重复节点而不根据XML模式验证它?假设XML看起来像这样:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody>
    <th>test0</th>
    <th>test1</th>
    <th>test2</th>
    <tr>
      <td class="sub1">1</td>
      <td class="sub2">2</td>
      <td class="sub3">0</td>
    </tr>
    <tr>
      <td class="sub1">3</td>
      <td class="sub2">4</td>
      <td class="sub3">0</td>
    </tr>
    <tr>
      <td class="sub1">5</td>
      <td class="sub2">6</td>
      <td class="sub3">0</td>
    </tr>
  </tbody>
</table>

这里是java类(省略注释):

<?xml version="1.0" encoding="UTF-8"?>
<user xmlns=...>
    <firstName>Peter</firstName>
    <lastName>Smith</lastName>
    <firstName>Eric</firstName>
</user>

上述XML成功解组到具有public class User { protected String firstName; protected String lastName; .... [getters and setters here] } firstName=Eric的User对象中。相反,我希望它失败并报告重复元素lastName=Smith的存在。 我们不对XSD使用验证,因为我们同时支持XML和JSON,因此选择对包含在JAXB bean(生成的java类)中的注释使用Bean Validation。哪个效果很好,但显然无法解决所描述的问题。

0 个答案:

没有答案