Попытка проверить ваш образец 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>
[ 1119] Этот simpleType
с именем normalized
удалит начальные и конечные пробелы значения элемента, так что перечисление будет совпадать.
П.С.: ваш XSD имел опечатку:
<xs:simpletype>
из ResidenceStatus
должно было быть <xs:simpleType>
.