Я пытаюсь проверить XML на соответствие XSD с помощью команды xmllint из Unix.Проблема, с которой я сталкиваюсь, заключается в следующем:
В 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 поле состояния выглядит следующим образом:
TYPE 1:
<state>
FL
</state>
ИЛИ
TYPE 2:
<state>FL</state>
Для ТИПА 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.
А для ТИПА 2 он корректно действует без каких-либо ошибок.
Итак, в основном, пробелы вФорматированный XML вызывает проблемы.Я хочу, чтобы XML прошел в обоих случаях.Есть ли способ сделать это с или без xmllint?
Большое спасибо.