Use o XML Schema para estender um elemento em vez de um complexType

Suponha que eu tenha algum esquema:

<xsd:schema ...>
    <xsd:element name="foo">
         <xsd:complexType>
             <xsd:sequence>
                 <xsd:element name="fooElement" type="xs:string" />
             </xsd:sequence>
         </xsd:complexType>
    </xsd:element>
</xsd:schema>

Isso define algum elementofoo que tem dentro de algum elementofooElement com o tipo string. Eu gostaria de estender agora o elementofoo também tem um elementobarElement e ligue para esta extensãobar.

Para complicar as coisas, vamos supor que outra pessoa tenha definidofoo e o esquema não pode ser alterado. Embora o exemplo aqui seja trivial, vamos supor também que o conteúdo defoo pode ser mais complicado, e definir um novo esquema não é tão simples quanto copiar o elementofooElement.

Efetivamente, gostaria de definir um novo esquema:

<xsd:schema xmlns:fns="otherschema" ...>
    <xsd:import namespace="otherschema" />
    <xsd:element name="bar">
         <xsd:complexContent>
             <xsd:extension base="fns:foo">
                 <xsd:sequence>
                     <xsd:element name="barElement" type="xs:string" />
                 </xsd:sequence>
             </xsd:extension>
         </xsd:complexContent>
    </xsd:element>
</xsd:schema>

Infelizmente<xsd:extension>'sbase atributo só aceita argumentos do tipo XSD, não elementos. Como faço para estender um elemento? (posso estender um elemento?)

questionAnswers(1)

yourAnswerToTheQuestion