我在定義XML模式中的密鑰時遇到問題。XML/XSD如何創建密鑰
CODE:
XSD:
<xsd:element name="players">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="player" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:all>
<xsd:element name="date-of-birth" type="xsd:date"></xsd:element>
<xsd:element name="gender">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MALE" />
<xsd:enumeration value="FEMALE" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:all>
<xsd:attribute name="username" type="xsd:string" use="required" />
</xsd:complexType>
<xsd:key name="playerkey">
<xsd:selector xpath="players/player" />
<xsd:field xpath="username" />
</xsd:key>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
注意,這僅僅是從全碼的exzerpt,但它顯示了所有必要的信息。
XML
<t:players>
<t:player username="Super Mario">
<t:gender>FEMALE</t:gender>
<t:date-of-birth>1995-11-29</t:date-of-birth>
</t:player>
<t:player username="Super Mario">
<t:date-of-birth>1991-10-12</t:date-of-birth>
<t:gender>MALE</t:gender>
</t:player>
</t:players>
問題:
正如你可以看到我已經創建了兩個球員都命名爲 「超級馬里奧」。由於關鍵的應該是唯一的這應該拋出和錯誤,但xmllins確實驗證文件正確
問題:
我如何正確定義密鑰,該元素是必要的,是唯一的。
Thanx爲你提供幫助,但遺憾的是它仍然沒有成功。 我將他們的鑰匙移入玩家並更改了xpath,但它仍然使用兩個非唯一元素正確驗證 – 2013-04-22 08:19:38
好的,它必須是名稱空間。查看更新。 – 2013-04-22 09:10:58
好的命名空間是問題:D 它現在的作品,感謝您的幫助隊友! :) – 2013-04-22 10:03:55