0

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

在这里,我用 3 个参数调用撒克逊人:

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

架构编译的.xsl:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

为什么我得到空的 schema-compiled.xsl?

4

1 回答 1

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 样式表不同的样式表。

于 2013-06-05T14:51:50.260 回答