Xerces 和 Saxon 验证引擎在oxyxml 编辑器中对特定的断言条件进行不同的评估。
我已经创建了一个 xsd 架构(1.1 版)和创建的架构之后的相应 xml 测试文件。根据 XMLSpy 2019,xml 文件是正确的。
如果将 Xerces 用作验证模式,则在 oxygenxml 21.0 中对测试 xml 文件的验证会失败。
同时,如果使用 Saxon 作为验证引擎,则验证成功。
此类特定断言子句是否存在 Xerces 实现问题
<xs:complexType>
<xs:sequence>
<xs:element name="scenario" type="Scenario"/>
<xs:element name="year" type="StressYear"/>
<xs:element name="position" type="STACreditPosition" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:assert test="every $pos in ./position satisfies not(($pos/geography lt $pos/preceding-sibling::position[1]/geography) or (($pos/geography eq $pos/preceding-sibling::position[1]/geography) and ($pos/creditAssetClass le $pos/preceding-sibling::position[1]/creditAssetClass)))"/>
</xs:complexType>
我希望 Xerces 引擎的验证成功。