W3C home > Mailing lists > Public > xmlschema-dev@w3.org > December 2002

Fwd: Re: Choice: attribute or child element [retry]

From: G. Ken Holman <gkholman@cranesoftwrights.com>
Date: Sun, 08 Dec 2002 21:53:56 -0500
Message-Id: <>
To: xmlschema-dev@w3.org

[I didn't see this show up in the archives so will try again]

>Date: Fri, 06 Dec 2002 22:07:31 -0500
>To: xmlschema-dev@w3.org
>From: "G. Ken Holman" <gkholman@CraneSoftwrights.com>
>Subject: Re: Choice: attribute or child element
>At 2002-12-06 15:15 -0800, Alessandro Vernet wrote:
>>Is there a way to write a schema to validate documents that look like: 
>><a><b/></a>, or <a c="..."/> (i.e. the element "a" must have a child 
>>element "b" or an attribute "c", but not both)?
>T:\ftemp>type allesandro.rnc
>element a
>    (
>       element b { text } |
>       attribute c { text }
>    )
>T:\ftemp>type allesandro1.xml
><?xml version="1.0" encoding="iso-8859-1"?>
>T:\ftemp>jing -c allesandro.rnc allesandro1.xml
>T:\ftemp>type allesandro2.xml
><?xml version="1.0" encoding="iso-8859-1"?>
><a c=""></a>
>T:\ftemp>jing -c allesandro.rnc allesandro2.xml
>T:\ftemp>type allesandro3.xml
><?xml version="1.0" encoding="iso-8859-1"?>
><a c=""><b/></a>
>T:\ftemp>jing -c allesandro.rnc allesandro3.xml
>Error at URL "file:/T:/ftemp/allesandro3.xml", line number 2: element "b" 
>not allowed in this context
>OOooops ... sorry, wrong list to give this answer!  Then again, you just 
>said "write a schema" not "write a W3C schema".
>Joking aside, I don't think this can be done in W3C Schema (if it can, I'd 
>like to see how!) ... it can be done in RELAX-NG because RELAX-NG is fully 
>composable: there is no prejudice to elements or attributes in "content 
>models", they can be combined in co-occurrence constraints any way you need.
>I hope this helps.
>.............. Ken

Upcoming hands-on in-depth XSLT/XPath and/or XSL-FO:
-                             North America:  Feb 3 - Feb 7,2003

G. Ken Holman               mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.        http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0  +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                     Definitive XSLT and XPath
ISBN 0-13-140374-5                             Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-10-1             Practical Formatting Using XSL-FO
Next conference training:                    2002-12-08,03-03,06
Received on Sunday, 8 December 2002 21:56:16 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:55:59 UTC