- From: John F. Madden <john.madden@duke.edu>
- Date: Fri, 16 Jan 2004 19:13:09 -0500
- To: <xmlschema-dev@w3.org>
- Message-Id: <200401170013.i0H0D9U8014815@wilson.acpub.duke.edu>
Hi, A construct involving a <unique/>/<keyref/> pair is not giving me the validation behavior that I anticipate. As I read the schema specification, the instance below should NOT validate against the schema below. However, with the validator that I am using, the instance DOES validate. Who's right here: me or the machine? John ====================== John F. Madden Duke University Medical Center <!--Am I right to think the following instance should be INVALID...?--> <Root xmlns="test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="test.xsd"> <KeyElement KeyField1="1" KeyField2="a"/> <KeyElement KeyField1="2" KeyField2="b"/> <KeyElement KeyField1="3"/> <KeyElement KeyField2="c"/> <KeyrefElement KeyrefField1="1" KeyrefField2="a"/> <KeyrefElement KeyrefField1="2" KeyrefField2="b"/> <KeyrefElement KeyrefField1="3"/> <KeyrefElement KeyrefField2="c"/> <KeyrefElement KeyrefField1="ThisKeyValueDoesNotExist"/> <KeyrefElement KeyrefField2="NeitherDoesThisOne"/> </Root> <!--...if this is the schema I'm validating against...--> <xs:schema targetNamespace="test" xmlns="test" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Root"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="KeyElement" type="KeyElementType" maxOccurs="unbounded"/> <xs:element name="KeyrefElement" type="KeyrefElementType" maxOccurs="unbounded"/> </xs:choice> </xs:complexType> <xs:unique name="Uniqueness"> <xs:selector xpath=".//KeyElement"/> <xs:field xpath="@KeyField1"/> <xs:field xpath="@KeyField2"/> </xs:unique> <xs:keyref name="ReferentialIntegrity" refer="Uniqueness"> <xs:selector xpath=".//KeyrefElement"/> <xs:field xpath="@KeyrefField1"/> <xs:field xpath="@KeyrefField2"/> </xs:keyref> </xs:element> <xs:complexType name="KeyElementType"> <xs:complexContent> <xs:extension base="xs:anyType"> <xs:attribute name="KeyField1" type="xs:string"/> <xs:attribute name="KeyField2" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="KeyrefElementType"> <xs:complexContent> <xs:extension base="xs:anyType"> <xs:attribute name="KeyrefField1" type="xs:string"/> <xs:attribute name="KeyrefField2" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema> This email was sent on 1/16/04 at 7:13 PM.
Received on Friday, 16 January 2004 19:17:36 UTC