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