适用于 Ubuntu 的 XSD-1.1 命令行验证工具

适用于 Ubuntu 的 XSD-1.1 命令行验证工具

我正在寻找一个命令行工具来使用 XSD-1.1 文件验证 XML 文件。

我已经下载并安装libxerces2-java,然后尝试应用免费开源的 XSD 1.1 验证工具?命令行中的 Xerces 验证器,但我无法让它们中的任何一个工作。

所以,我的简单问题是:
在哪里可以获取/如何创建可以从命令行运行以验证 XML 文件的 XSD-1.1 验证工具?
请提供完整的解决方案,因为 Java 类路径等是它们自己的主题...

答案1

最后我找到了我自己的问题的答案:
我找到了博客文章“免费开源的 XSD 1.1 验证工具?”
其中包含文件链接xsd11-验证器.jar镜像 1镜像 2)。

你可以这样调用它:

usage: java hu.unideb.inf.validator.SchemaValidator -if <file> | -iu <url>
       [-sf <file> | -su <url>]
 -if,--instanceFile <file>   read instance from the file specified
 -iu,--instanceUrl <url>     read instance from the URL specified
 -sf,--schemaFile <file>     read schema from the file specified
 -su,--schemaUrl <url>       read schema from the URL specified

要运行它,您可以使用以下命令行:

java -jar xsd11-validator.jar -sf schema.xsd -if instance.xml

为了简化它的使用,我编写了以下 bash 脚本xsd.sh

#!/bin/bash
if [ $# -eq 0 ]
then
  echo "======== XSD 1.1 Validator (for local files) ========";
  echo "=====================================================";
  echo "Usage: xsd.sh XSDschemaFile.xsd XMLFileToValidate.xml";
  echo "=====================================================";
  echo "(To validate remote files you have to call xsd11-validator.jar directly)";
else
  output=$( java -jar xsd11-validator.jar -sf $1 -if $2 2>&1 )
  if [ -z "$output" ]
  then
    echo "=== Validation succeeded! ===";
    exit 0
  else
    echo "=== Validation FAILED! ===";
    echo "$output";
    exit 1
  fi
fi

它可以使用以下命令轻松验证 XSD-1.1 文件:

./xsd.sh schema.xsd input.xml

相关内容