Конкретное условие утверждения по-разному оценивается механизмом проверки Xerces и Saxon в редакторе Oxygenxml.
Я создал схему xsd (версия 1.1) и соответствующий тестовый файл xml, следующий за созданной схемой. XML-файл верен в соответствии с XMLSpy 2019.
Проверка тестового XML-файла вoxyxml 21.0 завершается ошибкой, если в качестве схемы проверки используется Xerces.
В то же время проверка проходит успешно, если в качестве механизма проверки используется 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 пройдет успешно.