[Home] [By Thread] [By Date] [Recent Entries]


> However, if the complex type were changed to look as
> follows:
> 
> > >>       <xs:complexType name="contentiddef">
> > >> 		<xs:choice>
> > >> 			<xs:choice minOccurs="0" maxOccurs="unbounded">
> > >> 				<xs:element ref="x:externalid"/>
> > >> 				<xs:element ref="x:major"/>
> > >> 			</xs:choice>
> > >> 			<xs:choice minOccurs="0" maxOccurs="unbounded">
> > >> 				<xs:element ref="x:major"/>
> > >> 				<xs:element ref="x:minor"/>
> > >> 				<xs:element ref="x:version"/>
> > >> 			</xs:choice>
> > >> 		</xs:choice>
> > >> 	</xs:complexType>
> 
> the XML schema processor would know which choice set it is in when it
> encounters a "major" element because if it first encountered an
> "externalID" element (which must remain mandatory - as it is 
> above - in
> order for this to work) it knows that it must be in the first choice
> set; otherwise, it must be in the second.

I don't think so. The model here is ((e|ma)* | (ma|mi|v)*), and content
consisting of a single "ma" element would match either branch.

Michael Kay
http://www.saxonica.com/



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member