XML-схема - сделать пустые элементы недействительными - PullRequest
1 голос
/ 18 августа 2011

Должно быть просто, но я нигде не могу найти никакой информации по этому вопросу. Я хочу сделать некоторые простые элементы обязательными, поэтому лишить законной силы XML, если некоторые элементы пусты. Я пытался использовать атрибут nillable, но это не работает. Мне пришлось добавить ограничения на количество необходимых символов, а затем убрать пробелы, чтобы это работало, но мне кажется, что это очень странно, я что-то упускаю?

например.

       <xsd:element name="productImageURL">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
                                    <xsd:minLength value="1"/>
                <xsd:maxLength value="450"/>
                <xsd:whiteSpace value="collapse"/> 
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>

1 Ответ

2 голосов
/ 26 августа 2011

Так обстоит дело со схемой XML. Другим вариантом может быть использование xsd: pattern facet ... Хотя читаемость намного лучше, чем вы это сделали; большинство людей испытывают трудности с чтением таких шаблонов, как регулярные выражения ...

...