我希望創建一個XML文檔,其中的一個元素必須使用兩個已知屬性之一來定義,但不能同時使用這兩個屬性。XSD:A <xs:choice>等同於屬性
例如,我想定義一個「webAddress」元素如下:
<xs:element name="webAddress">
<xs:complexType>
<xs:attribute name="hostName" type="xs:string"/>
<xs:attribute name="hostAddress" type="xs:string"/>
</xs:complexType>
</xs:element>
但我只希望用戶能夠定義一個主機名的屬性(例如,主機名=「)或一個hostAddress(例如,hostAddress =「」)屬性,但不能同時存在,看起來該構造完成了這個元素,是否有屬性的功能等價物,或者是否有更好的方法來處理這個屬性?
如果找到我們不能使用W3C XML Schema來做到這一點 我們可以使用嵌入式schematron規則,但是我們可以在選擇元素上做到這一點通過檢查元素和屬性在一起? 例如是這樣的:
<xs:choice>
<xs:element name="webAddress">
<xs:complexType>
<xs:attribute name="hostName" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="webAddress">
<xs:complexType>
<xs:attribute name="hostAddress" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:choice>
進一步你可以使屬性爲強制使用=「required」 – Naren
這不完全是我想看到的。 'hostName'和'hostAddress'應該具有相同的權利 – Nick
相同的權利意味着? – Naren