2010-11-08 58 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