使用Camel中的Apache Validator Component进行XML验证

时间:2016-02-26 17:00:13

标签: validation gradle apache-camel xsd-validation

我是Camel的新手,我正在使用uri:validator来验证针对.XSD文件的XML。但是,我不确定我是否正确地指向.xsd文件,因为我的gradle构建失败并出现以下错误:

  

引起:java.io.FileNotFoundException:mydirectory \ anotherDirectory \ myxsdFile-v1.0.xsd(系统找不到指定的路径)

在我的common-routes.xml文件中,我有以下内容:

<route>
  <from uri="direct:util-xmltojson"/> 
    <log loggingLevel="INFO" message="XML Validation"/>
      <doTry>
         <to uri="validator:file:mydirectory\anotherDirectory\myxsdFile-v1.0.xsd"/>
         <doCatch> 
           <exception>org.apache.camel.ValidationException</exception>
         </doCatch>
       </doTry>
</route>

这是使用验证器组件的正确方法吗?

感谢您的帮助,

予。

1 个答案:

答案 0 :(得分:1)

validator组件将uri用于验证的xsd文件的位置。

这可以是:

  • 包含validator:file:_path_的文件。此路径相对于应用程序执行的文件夹
  • 类路径资源(在我看来,它是首选方式):com/test/package/resource.xsd:架构将在jar中查看com/test/package
  • 使用validator:http://remotehost/path的远程资源:camel将下载资源以验证xml

在你的例子中,camel正在寻找它找不到的文件mydirectory\anotherDirectory\myxsdFile-v1.0.xsd。检查此文件是否存在,相对于应用程序的执行文件夹。如果此资源是静态的,则应将其放在jar中,并使用类路径查找。