我正在尝试编写一个 XML Schema 来验证以下 XML 代码描述的线路特征:
<linecharacteristics>
<characteristic name = "color" value = "red" />
<characteristic name = "style" value = "dashed" />
...
<characteristic name = "thickness" value = "medium" />
</linecharacteristics>
有多个特征,这是我到目前为止的 XML 模式代码:
<xs:element name="linecharacteristics">
<xs:complexType>
<xs:sequence>
<xs:element name="characteristic" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
我想弄清楚的是如何检查属性是否正确。例如,“名称”属性可以说“颜色”、“样式”和“厚度”,但不能说“形状”。另外,如果属性“name”是“color”,那么“values”只能包含“red”、“yellow”、“green”,不能包含“dashed”;“虚线”值仅与名称“样式”相关联。那么如何定义可接受的属性值集呢?
谢谢你的帮助!