Попытка проверить ваш образец XML с помощью XSD вызвала некоторые ошибки, поэтому я не смог воспроизвести вашу проблему, а только исправил ошибки вашего XSD.Я использовал команду
xmlstarlet val --err --xsd source.xsd input.xml
для проверки вашего XSD.XSD-1.0, по-видимому, было достаточно для его проверки, поэтому процессор XSD-1.1 не требовался.
Одной из проблем вашего исходного XML, казалось, были начальные и конечные пробелы значения ResidenceStatus
.
Применение вашего XSD к XML приводило к ошибкам, пока я не исправил определение ResidenceStatus
.Пока я не могу сказать, происходит ли это из-за вашего XSD-процессора.
Но вы можете попробовать исправить определение на
<xs:element name="ResidenceStatus">
<xs:simpleType>
<xs:restriction base="normalized">
<xs:enumeration value="In-state"/>
<xs:enumeration value="Out-of-state"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
и добавить определение типа normalized
вконец корневого уровня вашего xs:schema
:
<xs:simpleType name="normalized">
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
Этот simpleType
с именем normalized
удалит начальные и конечные пробелы значения элемента, так что перечисление будет совпадать.
PS: ваш XSD имел опечатку:
<xs:simpletype>
из ResidenceStatus
должно было быть <xs:simpleType>
.