繁体   English   中英

XML模式主键

[英]XML schema primary key

我正在尝试为员工创建XML数据库,但是该模式存在问题。

对于每个员工,我有四个要素:姓名,姓氏,ID和电子邮件。 如何将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>

提前致谢。

基本思想是,如果希望公司中的每个员工都具有唯一的ID,则可以在Company元素级别创建一个xs:key定义,其中xs:selector路径从Company元素中选择Employee节点,并且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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM