有人可以解釋爲什麼我的密鑰沒有被強制執行嗎?xsd密鑰未被驗證
<xs:element name="Cats">
<xs:complexType>
<xs:sequence maxOccurs="Unbounded">
<xs:element name="cat" type="cattype"/>
</xs:sequence>
</xs:complexType>
<xs:key name="CatsKey">
<xs:selector xpath="cat" />
<xs:field xpath="cat_id"/>
</xs:key>
</xs:element>
<xs:complexType name="cattype">
<xs:sequence>
<xs:element name="cat_id" type="xs:nonNegativeInteger"/>
</xs:sequence>
</xs:complexType>
現在XML
<cats>
<cat>
<cat_id>1</cat_id>
</cat>
<cat>
<cat_id>1</cat_id> <-- this should fail, as cat_id 1 already exists
</cat>
</cats>
但XMLParser的不是強制執行的關鍵。爲了我的理解,關鍵值應該是強制性的和獨特的。我是否需要一個keyref或唯一的解析器來執行關鍵約束,或者我是否做了一些fundementally錯誤的事情?
不,密鑰應該是唯一的。 – 2012-04-17 21:53:37
感謝您的澄清。我會編輯我的回覆,這樣不會讓其他人感到困惑! – 2012-04-17 21:55:28