由于在XSD文件中强制执行数据结构比在Schematron中更容易且更简洁,并且因为我们已经有工作XSD文件来验证单个实体,所以我想将这些作为我的第一个验证阶段包含在内。 Schematron的。
我发现教程描述了相反的方式(在XSD中嵌入了Schematron规则)。
我找到了元素<sch:include href="my.xsd">
但是当我验证(使用oXygen)时,它似乎没有什么区别。
似乎我遗漏了一些非常明显的东西,因为这应该得到支持而没有问题或不应该?
答案 0 :(得分:2)
嗯,据我所知,没有概念在Schematron中包含XSD。但是,由于您可以在Schematron中嵌入XSLT并且XSLT架构感知能够验证您的输入数据,您可以使用xsl:import-schema:
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sqf="http://www.schematron-quickfix.com/validator/process">
<xsl:import-schema schema-location="path/to/my.xsd"/>
<!-- [your schematron rules] -->
</sch:schema>
在oXygen中,您需要为Schematron验证激活模式识别:
偏好设置 - &gt; XML - &gt; XML-Parser - &gt; Schematron - &gt;使用Saxon EE(模式感知)进行xslt2 / xslt3查询语言绑定。