Re: 'all' must only appear as the content type of a complex type definition?

Hi Scott,

The schema is invalid as reported by the parser. The relevant part of 
the specification is here:
http://www.w3.org/TR/xmlschema-1/#cos-all-limited

The closest you can get I guess is to use a choice model instead of all.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Scott Lawrence wrote:
> I'm trying to develop a schema for an existing XML usage (for which no
> schema or DTD was ever written before).  I've run into a case that I
> can't get Xerces-C to validate, and am not sure whether my schema
> construction or the parser validation is the problem.  I've put together
> a simplified version ...
> 
> The short statement of the problem is that I have an element 'address'
> whose content may be either the single element 'url' or any combination
> of the elements 'user', 'host', and 'qual'.  I tried to express this as:
> 
>   <group name='parts'>
>     <all>
>       <element ref='dmp:user' minOccurs='0' maxOccurs='1'/>
>       <element ref='dmp:host' minOccurs='0' maxOccurs='1'/>
>       <element ref='dmp:qual' minOccurs='0' maxOccurs='1'/>
>     </all>
>   </group>
> 
>   <element name='address'>
>     <complexType>
>       <choice>
>         <group   ref='dmp:parts'/>
>         <element ref='dmp:url'/>
>       </choice>
>     </complexType>
>   </element>
> 
> When I try to validate a document against the above (using either
> xerces-c version 2.5 or 2.6), I get:
> 
> ======
> 
>>DOMCount -v=always -s -f -n either.xml
> 
> 
> Error at file file:///home/lawrence/tmp/groupall/either.xsd, line 24,
> char 35
>   Message: A group whose content is 'all' must only appear as the
> content type of a complex type definition.
> ======
> 
> Should the above work?  Is there a (better) way to accomplish what I'm
> after?  (I attached a complete version of the above schema, and what I
> think should be a valid instance)
> 
> 
> 
> ------------------------------------------------------------------------
> 
> <?xml version='1.0' encoding='iso-8859-1' standalone='yes'?>
> <schema
>     xmlns:dmp='http://www.sipfoundry.org/sipX/test-00'
>     targetNamespace='http://www.sipfoundry.org/sipX/test-00'
>     xmlns='http://www.w3.org/2001/XMLSchema'
>     >
> 
>   <element name='url' type='normalizedString' />
>   <element name='user' type='normalizedString' />
>   <element name='host' type='normalizedString' />
>   <element name='qual' type='normalizedString' />
> 
>   <group name='parts'>
>     <all>
>       <element ref='dmp:user' minOccurs='0' maxOccurs='1'/>
>       <element ref='dmp:host' minOccurs='0' maxOccurs='1'/>
>       <element ref='dmp:qual' minOccurs='0' maxOccurs='1'/>
>     </all>
>   </group>
> 
>   <element name='address'>
>     <complexType>
>       <choice>
>         <group   ref='dmp:parts'/>
>         <element ref='dmp:url'/>
>       </choice>
>     </complexType>
>   </element>
> 
>   <element name='addresses'>
>    <complexType>
>     <sequence>
>      <element ref='dmp:address' maxOccurs='unbounded' />
>     </sequence>
>    </complexType>
>   </element>
> 
> </schema>
> 
> 
> ------------------------------------------------------------------------
> 
> <?xml version='1.0' encoding='iso-8859-1' standalone='yes'?>
> <addresses xmlns='http://www.sipfoundry.org/sipX/test-00'
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="http://www.sipfoundry.org/sipX/test-00
> file:///home/lawrence/tmp/groupall/either.xsd"
> 
> 
>   <address>
>     <url>foo@bar;batz=3</url>
>   </address>
> 
>   <address>
>     <user>foo</user>
>   </address>
> 
>   <address>
>     <user>foo</user>
>     <host>bar</host>
>   </address>
> 
> </addresses>
> 
> 

Received on Wednesday, 5 January 2005 09:24:17 UTC