W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2008

RE: Choice of sub-element or character-data in an element

From: Michael Kay <mike@saxonica.com>
Date: Tue, 24 Jun 2008 00:34:13 +0100
To: "'Arshad Noor'" <arshad.noor@strongauth.com>, "'Koray SAKIROGLU'" <koray.sakiroglu@gmail.com>
Cc: <xmlschema-dev@w3.org>
Message-ID: <D8B30CF1DE6E4E9DB386752AE9443583@Sealion>

> >  From what I understood you want something like this :
> > 
> > 
> >     <xsd:element name="elementA">
> >         <xsd:complexType>
> >             <xsd:choice>
> > 
> >                 <xsd:element name="elementB">
> >                     <xsd:complexType>
> >                         <xsd:sequence>
> >                             <xsd:element name="elementC" 
> type="xsd:string"/>
> >                             <xsd:element name="elementD" 
> type="xsd:string"/>
> >                         </xsd:sequence>
> >                     </xsd:complexType>
> >                 </xsd:element>
> > 
> >                 <xsd:element ref="elementB" />
> > 
> >             </xsd:choice>
> >         </xsd:complexType>

You can't have two elementB particles in the same content model with
different types. When the validator sees an element named elementB in the
input, it has to be able to go to the schema and discover what its expected
type is.

In Schema 1.1 you can do this with assertions. Define a type with mixed
content and two optional child elements, and then define an assertion to
make the elements and the text mutually exclusive.

But I still think it's not a very good document design.

Michael Kay
Received on Monday, 23 June 2008 23:47:40 UTC

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