我正试图在Saxon9HE的帮助下通过XSLT文件(iso_svrl_for_xslt2.xsl)编译Schematron文件,如here和there所述。
我在这里用三个论点来称撒克逊:
-o:schema-compiled.xsl 是输出文件(XSLT脚本)
-s:example_schematron.xsl 是源文件
iso-schematron-xslt2 / iso_svrl_for_xslt2.xsl 是样式表文件,用于将schematron文件编译成XSLT脚本
java -jar saxon9he.jar -o:schema-compiled.xsl -s:example_schematron.sch iso-schematron-xslt2/iso_svrl_for_xslt2.xsl
以下是文件:
example_schematron.sch:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.ascc.net/xml/schematron">
<title>Test Schematron</title>
<pattern name="My rules">
<rule context="User">
<assert test="count(email) != 1">
User shall have exactly one email
</assert>
</rule>
</pattern>
</schema>
架构compiled.xsl:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
为什么我得到空的schema-compiled.xsl?
答案 0 :(得分:1)
我没有查看样式表,但我认为(基于http://www.schematron.com/iso/iso-schematron.rnc.txt和http://en.wikipedia.org/wiki/Schematron#Versions)ISO Schematron语言在名称空间http://purl.oclc.org/dsdl/schematron
中定义其元素,而您的文件使用了不同命名空间因此,您可能需要调整模式以使用ISO命名空间,或者需要为模式使用与ISO样式表不同的样式表。