- From: G. Ken Holman <gkholman@cranesoftwrights.com>
- Date: Sun, 08 Dec 2002 21:53:56 -0500
- 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"?> ><a><b/></a> >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 > >T:\ftemp> > >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