xsd: simpleType: могут ли xsd: pattern и xsd: maxLength работать вместе? - PullRequest
5 голосов
/ 21 октября 2011

Допустим, я имею дело с xsd: simpleType, который является строкой, должен иметь определенный набор символов и определенную максимальную длину, аналогично приведенному ниже коду:Тип xsd будет состоять только из цифр и не более 36 символов.Мой вопрос заключается в том, могут ли xsd: pattern и xsd: maxLength (или любой другой похожий тег, например minLength) работать вместе.Моя интуиция - нет;элементы xsd на основе шаблона или длины только в ограничении xsd :.Поэтому я должен добавить ограничение максимальной длины в шаблон.

Обратите внимание, что я проверил это, демонтировав xml на Java, и проверка не удалась.Независимо от того, что я ищу, это информация как два, как и могут ли pattern и maxLength работать вместе.

1 Ответ

5 голосов
/ 21 октября 2011

Все фасеты по ограничению применяются к виду.Это означает, что ваше определение выше действительно определяет тип, который имеет данный шаблон и имеет длину не более 36 символов.

Вот соответствующая запись из спецификации :

Ограничение компонента схемы: простое ограничение типа (Facets) Для простого определения типа (назовите его R), чтобы ограничить другое определение простого типа (назовите его B) набором фасетов (назовите это S)все следующее должно быть верным:

1 {разновидность} R такая же, как у B.

2 Если {разновидность} является атомарной, {определение примитивного типа}R такой же, как у B.

3 {грани} R - это {грани} B · с наложением · на S.

Все грани применяются независимо,и только если значение соответствует всем ограничениям, оно будет считаться действительным.Это также включает в себя любые ограничения, налагаемые на тип, из которого происходит данный тип.

Поэтому возможно создать simpleType, который всегда будет проходить проверку - если ваш pattern должен был указать, что значение должно быть 37символов, а maxLength равен 36, тогда хотя бы один из этих аспектов будет всегда неуспешным.

При этом несколько pattern элементов в данном типе рассматриваются как альтернативы (см .: "шаблон" в "Ограничивающих гранях" )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...