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

XML validation with Apache Validator Component in Camel

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

Caused by: java.io.FileNotFoundException: mydirectory\anotherDirectory\myxsdFile-v1.0.xsd (The system cannot find the path specified)

在我的常用 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>

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

感谢您的帮助,

我。

validator 组件在 uri 中获取用于验证的 xsd 文件的位置。

这可以是:

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

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