W3C home > Mailing lists > Public > xmlschema-dev@w3.org > March 2001

Re: recursive interleaving -- is it possible

From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
Date: 19 Mar 2001 12:04:15 +0000
To: Freddy Berriau <Freddy.Berriau@valtech.fr>
Cc: Ziv Hellman <ziv@unicorn.com>, xmlschema-dev@w3.org
Message-ID: <f5bae6i6k3k.fsf@cogsci.ed.ac.uk>
Freddy Berriau <Freddy.Berriau@valtech.fr> writes:

> This should work for question a and question b :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
> elementFormDefault="qualified">
> 	<!--
> 	
> 	
> 		Part a of your question
> 	-->
> 	<xsd:element name="primitive">
> 		<xsd:complexType>
> 			<xsd:attribute name="name" type="xsd:string"/>
> 		</xsd:complexType>
> 		<xsd:key name="primitive_key">
> 			<xsd:selector xpath="."/>
> 			<xsd:field xpath="@name"/>
> 		</xsd:key>
> 	</xsd:element>

Content model is fine -- key declaration is scoped wrongly -- needs to 
be in document element declaration, as follows:

 		<xsd:key name="primitive_key">
			<xsd:selector xpath=".//primitive"/>
 			<xsd:field xpath="@name"/>
 		</xsd:key>

<snip?>

> 		<xsd:keyref name="functionOf_keyref" refer="primitive_key">
> 			<xsd:selector xpath="//primitive"/>
> 			<xsd:field xpath="@name"/>
> 		</xsd:keyref>


Again, you need to move the keyref up to the right scope.

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/
Received on Monday, 19 March 2001 07:04:32 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:20 GMT