如何使用Saxon java库命令行工具执行schematron验证?
作者:互联网
非常基本的问题 –
我有一个xml文件,我想根据一个schematron文件验证它.如何使用Saxon命令行执行此操作?
根据commandline参考,我没有看到任何指定schematron文件的选项.
解决方法:
扩展了之前的答案,因为我需要这样做并且它没有提供足够的信息(因为我的脚本已经进行了十几次XSL转换 – 还有四个?)
基于this website,可以通过一系列XSL转换对schematron验证XML文件.因为我还需要有关如何与撒克逊人结合的信息 – 这里是对撒克逊人的修改,在Windows框中,带有目录文件.
以下是我通过计算机上的saxon命令行运行XSLT的方法(FilePath取决于系统):
java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -s:inputFile.xml -o:outputFile.xml -xsl:C:\FilePath\transform.xsl -catalog:"C:\FilePath\catalog.xml"
这里要指出的重要一点是,当您使用Saxon的目录文件时,必须将其指回resolver.jar文件.
所以
XSLT = java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -catalog:"C:\FilePath\catalog.xml"
然后来自网站的信息是有意义的(在oXygen中找到了必要的xsl文件):
XSLT -input=xxx.sch -output=xxx1.sch -stylesheet=iso_dsdl_include.xsl
XSLT -input=xxx1.sch -output=xxx2.sch -stylesheet=iso_abstract_expand.xsl
XSLT -input=xxx2.sch -output=xxx.xsl -stylesheet=iso_svrl.xsl
XSLT -input=document.xml -output=xxx-document.svrl -stylesheet=xxx.xsl
您正在使用schematron文件,通过三次转换运行它以获取xsl文件,然后在原始xml文档上运行该文件.这实际上使脚本相对容易.
最后一个命令从未实际为我填充输出文件.由于它没有一个正常运行并将消息转储到STOUT,我只是将其关闭并从那里收集结果.
很抱歉进入可能需要的更多细节,但我希望我能够开始这一切.
标签:saxon,java,xml,xsd,schematron 来源: https://codeday.me/bug/20190726/1539403.html