ISSUE-104: ComplexTypeChoiceExtension

ISSUE-104: ComplexTypeChoiceExtension

http://www.w3.org/2005/06/tracker/databinding/issues/104

Raised by: Jonathan Calladine
On product: Advanced

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>

Received on Friday, 3 August 2007 13:27:48 UTC