欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
XMLSchema中的key和unique問(wèn)題

(作者wxb_nudt,首發(fā)于中國XML論壇http://bbs.xml.org.cn/list.asp?boardid=28

關(guān)于XML Schema中的key和unique的概念很多Schema教程里面講過(guò),可惜網(wǎng)上大部分教程里面的例子是錯誤的,而且并沒(méi)有給出完整清晰的解釋?zhuān)也檎伊薙chema的規范并寫(xiě)出了相應了例子,理清了這兩個(gè)概念,希望對大家有所幫助。XML Schema規范來(lái)自于
http://www.w3.org/TR/xmlschema-0/

1.unique的定義和例子
規范中對于unique是這樣定義的:XML Schema enables us to indicate that any attribute or element value must be unique within a certain scope. To indicate that one particular attribute or element value is unique, we use the unique element first to "select" a set of elements, and then to identify the attribute or element "field" relative to each selected element that has to be unique within the scope of the set of selected elements.
譯文:XML Schema允許我們指出任意的屬性或者元素值在某個(gè)范圍內是唯一的。為了指出這個(gè)屬性或者元素值的唯一性,我們使用了unique元素,它首先“選擇”一組元素,然后指出這個(gè)屬性或者元素的“域”在上一步所選擇出的元素集合中是唯一的。
例子Schema:UniqueTest.xsd
<?xml version="1.0" encoding="GB2312"?>
<xs:schema xmlns:xs=" <xs:element name="Person">
  <xs:annotation>
   <xs:documentation>Comment describing your root element</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:sequence>
    <xs:element name="Name" type="xs:string" maxOccurs="unbounded"/>
    <xs:element name="Id" type="xs:integer" maxOccurs="unbounded">
    </xs:element>
   </xs:sequence>
  </xs:complexType>
  <xs:unique name="IdUnique">
   <xs:selector xpath=".//Id"/>
   <xs:field xpath="."/>
  </xs:unique>
 </xs:element>
</xs:schema>

例子X(jué)ML:UniqueTest.xml
<?xml version="1.0" encoding="GB2312"?>
<Person xmlns:xsi="
<Name>wxb_nudt</Name>
 <Id>1001</Id>
 <Id>1002</Id>
 <Id>1001</Id> <!--這兒就會(huì )報錯,因為它的值和第一個(gè)Id重復了,并不是唯一的-->
 <Id>1004</Id>
</Person>

2.key的定義和例子
規范中是通過(guò)一個(gè)較長(cháng)的例子來(lái)說(shuō)明key和keyref的定義,歸納起來(lái)可以做如下定義:XML Schema可以通過(guò)將一個(gè)元素或者屬性定義為一個(gè)key,這個(gè)key必須是unique的,這個(gè)key可以在XML文檔中的其他部分通過(guò)keyref進(jìn)行引用,keyref的值一定取自于key的某一個(gè)值。key的概念很類(lèi)似于數據庫中的外鍵。
key的具體定義方法很類(lèi)似于unique的定義方法,首先“選擇”一組元素,然后指出某個(gè)屬性或者元素的“域”就是一個(gè)key。
而keyref與key的定義完全相似,唯一的區別是加了一個(gè)refer屬性,這個(gè)refer屬性指出了key的名字,具體例子如下:
例子schema:KeyExam.xsd
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (
http://www.xmlspy.com) by wxb (nudt) -->
<xsd:schema xmlns:xsd=" <xsd:element name="rootElement">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="elementOne" maxOccurs="unbounded">
     <xsd:complexType>
      <xsd:attribute name="elementOneKey" type="xsd:integer"/>
      <xsd:attribute name="elementOneDesc" type="xsd:string"/>
     </xsd:complexType>
    </xsd:element>
    <xsd:element name="elementTwo" maxOccurs="unbounded">
     <xsd:complexType>
      <xsd:attribute name="elementTwoKey" type="xsd:integer"/>
      <xsd:attribute name="elementOneKey" type="xsd:string"/>
      <xsd:attribute name="elementTwoDesc" type="xsd:string"/>
     </xsd:complexType>
    </xsd:element>
   </xsd:sequence>
  </xsd:complexType>
  <xsd:key name="elementOnePK">
   <xsd:selector xpath=".//elementOne"/>
   <xsd:field xpath="@elementOneDesc"/>
  </xsd:key>
  <xsd:keyref name="elementOneFK" refer="elementOnePK">
   <xsd:selector xpath=".//elementTwo"/>
   <xsd:field xpath="@elementTwoDesc"/>
  </xsd:keyref>
  <xsd:unique name="EOneKeyU" xsi:type="xsd:integer">
   <xsd:selector xpath=".//elementOne"/>
   <xsd:field xpath="@elementOneKey"/>
  </xsd:unique>
 </xsd:element>
</xsd:schema>

例子xml:KeyExam.xml
<?xml version="1.0" encoding="UTF-8"?>
<rootElement xmlns:xsi="
 <elementOne elementOneKey="1" elementOneDesc="a"/>
 <elementOne elementOneKey="2" elementOneDesc="b"/>
 <elementOne elementOneKey="3" elementOneDesc="c"/>
 <elementOne elementOneKey="4" elementOneDesc="d"/>
 <elementTwo elementOneKey="5" elementTwoDesc="e" elementTwoKey="78"/>
 <!--上面的elementTwoDesc作為elementOneDesc的一個(gè)keyref,它必須取值于上面的4個(gè)key值之一,這里它的值"e"因為不是取值于"a","b","c","d",所以會(huì )報錯-->
</rootElement>

打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
XML Schema使用技巧
Schema和DTD的區別
XML Schema中targetNamespace概念
XML是什么,講述XML基礎知識
XML認證教程,第 6 部分: XML Schema
XML簡(jiǎn)明教程(中國XML聯(lián)盟版)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久