Я пытаюсь проверить XML на соответствие XSD с помощью команды Unix «xmllint». Проблема, с которой я сталкиваюсь, заключается в следующем:
В XSD поле «state
» указывается следующим образом:
<xs:element name="state">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Обратите внимание на <xs:maxLength value="2"/>
А в XML поле состояния выглядит так:
ТИП 1:
<state>
FL
</state>
OR
ТИП 2:
<state>FL</state>
Для TYPE 1 я получаю следующую ошибку:
test.xml:243: element state: Schemas validity error : Element 'state': [facet 'maxLength'] The value has a length of '32'; this exceeds the allowed maximum length of '2'.
test.xml:243: element state: Schemas validity error : Element 'state': '
FL
' is not a valid value of the local atomic type.
А для TYPE 2 он правильно проверяется без каких-либо ошибок.
Таким образом, в основном пробелы в форматированном XML вызывают проблемы. Я хочу, чтобы XML прошел для обоих случаев. Есть ли способ сделать это с xmllint или без него?
Большое спасибо.