通过XSD防止XML中的空元素

时间:2010-11-08 18:10:40

标签: xml validation xsd schema

我正在处理一个XSD文件,当用它验证XML文件时,我想限制空元素。例如,

<myElement>this is not empty</myElement>

会通过验证,但是

<myElement/><myElement></myElement>

不会通过验证。

感谢您提供的任何帮助!

PS。我在https://stackoverflow.com/questions/4126546/prevent-empty-elements-in-xml-via-xsd意外地在未注册的帐户下发布了这个内容。对于给您带来的任何不便,我深表歉意。

更新: 该元素必须能够完全不存在于XML中,所以我不能使用minOccurs =“1”。

2 个答案:

答案 0 :(得分:3)

您可以执行类似

的操作
<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>仍会匹配,但如果是问题,您可以使用正则表达式限制来更改。

答案 1 :(得分:0)

您可以minOccurs="0"要求标记,然后使用验证正则表达式检查一个或多个字符。