我正在寻找一个命令行工具来使用 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