Saxon从Schematron生成空XML

时间:2013-06-05 14:44:40

标签: xml xslt saxon schematron

我正试图在Saxon9HE的帮助下通过XSLT文件(iso_svrl_for_xslt2.xsl)编译Schematron文件,如herethere所述。

我在这里用三个论点来称撒克逊:

-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?

1 个答案:

答案 0 :(得分:1)

我没有查看样式表,但我认为(基于http://www.schematron.com/iso/iso-schematron.rnc.txthttp://en.wikipedia.org/wiki/Schematron#Versions)ISO Schematron语言在名称空间http://purl.oclc.org/dsdl/schematron中定义其元素,而您的文件使用了不同命名空间因此,您可能需要调整模式以使用ISO命名空间,或者需要为模式使用与ISO样式表不同的样式表。