Предотвратить пустые элементы в XML через XSD - PullRequest
0 голосов
/ 08 ноября 2010

Я работаю над XSD-файлом, и при проверке XML-файла я хочу ограничить пустые элементы. Например.,

<myElement>this is not empty</myElement>

пройдет проверку, однако

<myElement/> или <myElement></myElement>

не пройдет проверку.

Спасибо за любую помощь, которую вы можете предложить!

пс. Я случайно разместил это на https://stackoverflow.com/questions/4126546/prevent-empty-elements-in-xml-via-xsd под незарегистрированным аккаунтом. Приношу извинения за доставленные неудобства.

UPDATE: Элемент должен вообще отсутствовать в XML, поэтому я не могу использовать minOccurs = "1".

Ответы [ 2 ]

3 голосов
/ 08 ноября 2010

Вы можете сделать что-то вроде

<xs:simpleType name="myString">
  <xs:restriction base="xs:string">
     <xs:minLength value="1"/>
  </xs:restriction>
</xs:simpleType>

<xs:element name="root" type="myString"></xs:element>

Однако это все равно будет совпадать с <root> </root>, но вы можете использовать ограничение регулярных выражений, чтобы изменить его, если это проблема.

0 голосов
/ 08 ноября 2010

Вы можете иметь minOccurs="0" для запроса тега, а затем иметь регулярное выражение проверки, которое проверяет наличие одного или нескольких символов.

...