使用自定义验证针对XSD验证XML

时间:2018-02-12 22:20:04

标签: java xml xsd

通常有一种标准方法如何在Java中针对XSD架构验证XML,但我需要进行更复杂的验证,例如验证 Zip邮政编码,以确保此类ZIP确实存在。因此,我需要一些可定制的Validator,我将定义规则如下:(对不起琐事)

if( validationType.equals("ZipPostalCode") {
  com.fuu.validations.Address.zipPostalCode( innerText );   
}

使用XSD和一些可自定义的验证器库在Java中实现此类自定义验证的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

如果使用Saxon作为模式处理器,则可以使用调用外部Java方法的XSD 1.1断言:

<xs:simpleType name="zipCode" base="xs:string">
  <xs:assertion test="ext:isValidZipCode($value)" xmlns:ext="java:com.fuu.validations.Address"/>
</xs:simpleType>