如何在CXF / JAXB中严格验证XML

时间:2016-02-16 14:23:43

标签: xml xml-parsing jaxb cxf

我正在向CXF驱动的REST API发送以下XML请求。

<?xml version="1.0" encoding="UTF-8"?>
  <amountTransaction>
    <endUserId>tel:+912890369102</endUserId>
    <endUserId>tel:+912890369103</endUserId>
    <paymentAmount>
      <chargingInformation>
        <description>Default description</description>
      /chargingInformation>
    </paymentAmount>
</amountTransaction>

但我的AmountTransaction对象的endUderId字段为String。当CXF将请求转换为对象时,它会选择endUserIds之一并创建对象。如果XML请求中有多个endUserId个元素,如何告诉CXF或JAXB抛出异常。

如果我在JSON中发送相同的请求,则拒绝使用无效的endUserId元素。

1 个答案:

答案 0 :(得分:0)

CXF支持架构验证;您可以这样配置:

<jaxrs:server address="/"
    serviceClass="myEndpoint">
    <jaxrs:schemaLocations>
        <jaxrs:schemaLocation>classpath:path/myschema.xsd</jaxrs:schemaLocation>
    </jaxrs:schemaLocations>
</jaxrs:server>