对于我正在使用的 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 实现这一点?