Я ищу инструмент командной строки для проверки XML-файла с файлом XSD-1.1.
Я загрузил и установил libxerces2-java
и затем попробованный для применения Свободного и инструмента XSD 1.1 проверки с открытым исходным кодом? и блок проверки допустимости Xerces в командной строке, но я не мог заставить ни одного из них работать.
Так, мой простой вопрос:
Где может я добираться/как, я могу создать инструмент проверки XSD-1.1, который может быть выполнен из командной строки для проверки XML-файла?
Предоставьте полное решение, потому что пути к классам Java и так далее являются собственной темой...
Наконец я нашел ответ на свой собственный вопрос:
Я нашел сообщение в блоге "Свободным и инструментом XSD 1.1 проверки с открытым исходным кодом?"
который содержит ссылку на файл xsd11-validator.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
И упростить его использование, я записал следующий сценарий удара 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