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

> >  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