[英]xsd validate xml optional sub-elements
我一直試圖構造一個XSD文件來驗證一些xml
XSD示例
<xs:element name="person" type="persontype"/>
<xs:complexType name="persontype">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
XML范例
<persontype>
<firstname/>
<lastname/>
</persontype>
我如何構造xsd以要求“ firstname”是強制性的,而對於XML來說,“ lastname”甚至不是必需的,並且只要層次結構是,就不必按順序排列。受尊重?
可能遇到的XML最終結果,根據我的最終xsd,我希望它被認為是有效的。
有效方案1
<persontype>
<firstname/>
</persontype>
有效方案2
<persontype>
<lastname/>
<firstname/>
</persontype>
在幫助下感謝您的時間。
我已經根據指標的XML Schema教程對此進行了調整:
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
如果使用all
指示符,則元素的順序可以是任意的,但是默認情況下,每個元素必須恰好發生一次。 要使姓氏為可選,可以通過提供minOccurs
指示器並將其設置為零來更改默認名稱。
這將允許您有選擇地為每個人指定一個姓氏,並使用任意順序的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.