ISSUE-104

ComplexTypeChoiceExtension

State:
OPEN
Product:
Advanced
Raised by:
Jonathan Calladine
Opened on:
2007-08-03
Description:
Our schemas in the wild trawl has thrown up some examples of this advanced 
pattern:

  <xs:element name="complexTypeChoiceExtension" 
type="ex:ComplexTypeChoiceExtension"/>

  <xs:complexType name="ComplexTypeChoiceBase">
            <xs:choice>
               <xs:element name="name" type="xs:string"/>
            </xs:choice>
         </xs:complexType>

  <xs:complexType name="ComplexTypeChoiceExtension">
            <xs:complexContent>
               <xs:extension base="ex:ComplexTypeChoiceBase">
                  <xs:choice>
                     <xs:element name="surname1" type="xs:string"/>
                     <xs:element name="surname2" type="xs:string"/>
                     <xs:element name="surname3" type="xs:string"/>
                  </xs:choice>
               </xs:extension>
            </xs:complexContent>
         </xs:complexType>


xpath 2.0 Detection Pattern 

.//xs:complexType/xs:complexContent[xs:extension[@base]/xs:choice]/
		(., xs:extension/
		(., @base, xs:choice/(., xs:element/(., @name))))

Instance doc

  <ex:complexTypeChoiceExtension>
            <ex:name>Jon</ex:name>
            <ex:surname1>Calladine</ex:description>
  </ex:complexTypeSequenceExtension>
Related emails:
  1. ISSUE-104: ComplexTypeChoiceExtension (from dean+cgi@w3.org on 2007-08-03)
  2. RE: ISSUE-104: ComplexTypeChoiceExtension (from jon.calladine@bt.com on 2007-08-03)

Related notes:

2007-08-03: A actual base class was a sequence of course: <xs:complexType name="ComplexTypeChoiceBase"> <xs:sequence> <xs:element name="name" type="xs:string"/> </xs:sequence> </xs:complexType>