我正在尝试为员工创建XML数据库,但我遇到了架构问题。
对于每位员工,我有四个要素:姓名,姓名和电子邮件。如何将ID设置为主键,将电子邮件设置为唯一?
我试过这个主键:
<xs:key msdata:PrimaryKey="true" type="xs:string" name="ID"/>
但它不起作用。 这是我的所有XML代码:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employees">
<xs:complexType>
<xs:sequence>
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:string" name="Surname"/>
<xs:element type="xs:string" name="ID"/>
<xs:element type="xs:string" name="e-mail"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="empl-key">
<xs:selector xpath="employee"/>
<xs:field xpath="@ID"/>
</xs:key>
</xs:element>
</xs:schema>
提前致谢。
答案 0 :(得分:0)
基本思想是,如果您希望公司中的每个员工都拥有唯一的ID,那么您可以在Company元素的级别创建一个xs:key定义,其中xs:selector路径从中选择Employee节点Company元素和xs:field路径从Employee节点中选择ID节点。像
这样的东西<xs:element name="Company">
....
<xs:key name="empl-key">
<xs:selector xpath="Employee"/>
<xs:field xpath="@ID"/>
</xs:key>
</xs:element>