<xs:element name="Area" type="AreaType">
<xs:key name="NameKey">
<xs:selector xpath=".
|.//Area
|.//Part"/>
<xs:field xpath="@Name"/>
</xs:key>
<xs:key name="PropertyNameKey">
<xs:selector xpath="./Property-List/Property"/>
<xs:field xpath="@Name"/>
</xs:key>
</xs:element>
上面的name名为NameKey的xs:key表示Area节点和Area节点下的所有Area和Part的Name属性都不允许相同
name名为PropertyNameKey表示Area下Property-List下的所有Property的Name属性都是唯一的
key
keyref
Xpath
最后列举几个Xpath的用法
| /AAA |
|---|
| 选择根元素AAA |
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> |
| /AAA/DDD/BBB |
|---|
| 选择AAA的子元素DDD的所有子元素 |
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> |
| 在XLab中打开实例 | 树视图 (JPG) |
| //BBB |
|---|
| 选择所有BBB元素 |
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA> |
本文介绍了XML Schema中的约束机制,特别是xs:key的使用来确保唯一性,并详细解释了两个例子:一个关于Area节点及其子节点的名称唯一性,另一个关于Property列表中属性名称的唯一性。此外,还提供了XPath的基础用法示例。

3032

被折叠的 条评论
为什么被折叠?



