2010-11-08 56 views
0

我正在处理XSD文件,并在验证XML文件时使用它来限制空元素。例如,通过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”。

回答

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>,但你可以使用正则表达式限制改变,如果它是一个问题。

+0

如果minOccurs =“0”,这会工作吗? – hmcclungiii 2010-11-08 18:25:57

+1

是的,这是诀窍!谢谢! – hmcclungiii 2010-11-08 18:46:32

0

你可以让minOccurs="0"需要标签,然后有一个验证正则表达式来检查一个或多个字符。

+0

元素必须能够不存在于XML中,所以我不能使用minOccurs =“1”。感谢您的帮助!我已经更新了OP来反映这一点。 – hmcclungiii 2010-11-08 18:25:15

+0

看到变化 - 在这种情况下,让它minOccurs ='0'。其余的依然适用。 – duffymo 2010-11-08 20:52:45