對於我正在使用的XSD,驗證的標記是有效的HTML。我試圖應用的規則應該能夠應用於任何HTML元素。換句話說,我的規則是元素不可知的。我主要關心限制屬性。元素不可知約束?
<xs:element name="div">
<xs:complexType>
<xs:sequence>
<xs:any>
<xs:attribute name="containerColor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="green"/>
<xs:enumeration value="red"/>
<xs:enumeration value="blue"/>
<xs:enumeration value="yellow"/>
<xs:enumeration value="grey"/>
<xs:enumeration value="black"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:unique name="id" >
<xs:selector xpath="*"></xs:selector>
<xs:field xpath="*"></xs:field>
</xs:unique>
</xs:any>
</xs:sequence>
</xs:complexType>
</xs:element>
我是新來的XSD。我相信我有一些根本性的誤解。
在上面的例子我想說任何可以(但不要求有)一個「containerColor」屬性。如果使用該屬性,則必須是枚舉顏色之一。
此外,任何元素都可以有一個ID,它應該是唯一的。
在上面的嘗試,我得到投訴的任何元素不是屬性/唯一一個有效的上下文。
從選擇器的角度來看,我關心的是將規則應用於所有元素的集合而不是特定的元素。有沒有一種方法可以用XSD實現這一點?