1
我想驗證XML如下所示。我有3個元素name
,age
,address
必須按該順序聲明(因此序列標籤)。然而,工作元素應該被允許在任何地方顯示(即:在這個元素序列之前或之後)。這可能使用XSD驗證嗎?目前我只能接受它被添加到這些元素之後,因爲這是它在順序中的位置。我也試過混合xs:choice
與xs:sequence
但沒有成功。如何在驗證XML時正確使用序列標籤?
<xs:complexType name="PersonNode">
<xs:sequence>
<xs:element name="name" type="tns:StringLabel"/>
<xs:element name="age" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="job" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="valid" type="xs:boolean"/>
</xs:complexType>
爲了讓'job'在這裏可選,而不會留下眼淚或咬牙切齒,可以在內容模型中首次出現'job'的地方添加'minOccurs =「0」',而不是另一個。但最好遵循這裏給出的建議:除非「工作」的位置傳達一些具體信息,否則將其分配給一個固定的位置。 –
@ C.M.Sperberg-McQueen:太棒了! – kjhughes