Xml 在Schematron验证(.sch)中包含架构验证(.xsd)[而不是相反]

Xml 在Schematron验证(.sch)中包含架构验证(.xsd)[而不是相反],xml,xsd,schematron,oxygenxml,Xml,Xsd,Schematron,Oxygenxml,由于在XSD文件中实施数据结构比在Schematron中更容易,也更不冗长,而且我们已经有了可以验证单个实体的XSD文件,所以我想在Schematron中包含这些文件作为第一个验证阶段 我找到了描述另一种方式的教程(XSD中嵌入的Schematron规则) 我找到了元素,但当我(用氧气)验证时,它似乎没有什么区别 似乎我遗漏了一些非常明显的东西,因为这应该得到毫无问题的支持,不是吗?就我所知,在Schematron中没有包含XSD的概念。但是,由于您可以将XSLT嵌入Schematron,并且X

由于在XSD文件中实施数据结构比在Schematron中更容易,也更不冗长,而且我们已经有了可以验证单个实体的XSD文件,所以我想在Schematron中包含这些文件作为第一个验证阶段

我找到了描述另一种方式的教程(XSD中嵌入的Schematron规则)

我找到了元素
,但当我(用氧气)验证时,它似乎没有什么区别


似乎我遗漏了一些非常明显的东西,因为这应该得到毫无问题的支持,不是吗?

就我所知,在Schematron中没有包含XSD的概念。但是,由于您可以将XSLT嵌入Schematron,并且XSLT schema aware能够验证您的输入数据,因此您可以使用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验证激活schema aware:


首选项->XML->XML解析器->Schematron->使用Saxon EE(模式感知)进行xslt2/xslt3查询语言绑定。

据我所知,在Schematron中没有包含XSD的概念。但是,由于您可以将XSLT嵌入Schematron,并且XSLT schema aware能够验证您的输入数据,因此您可以使用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验证激活schema aware:


Preferences->XML->XML Parser->Schematron->Use Saxon EE(模式感知)用于xslt2/xslt3查询语言绑定。

谢谢,唯一应该提到的是,这是一个高级功能,只有获得许可的Saxonica libs EE版本才提供。oXygen可以做到(“因为它是付费产品”),但XMLbuddyValidator不能做到,因为它使用的是saxon libs的HE版本。谢谢,唯一需要提及的是,这是一个高级功能,只有Saxonica libs的授权EE版本才提供。氧气可以做到(因为它是付费产品),但XMLbuddyValidator不能,因为它使用的是萨克森libs的HE版本。