xsd même élément, différents types?

J'ai une situation où un élément dans le fichier XML peut être de deux types différents dans le fichier XSD.

Ce que je veux faire, c'est d'abord pour valider la valeur entrée à la plus stricte type (si c'est une personne qui remplit le formulaire) et si ce n'est pas tirer à travers, de les valider à la moindre de type strict (si c'est une organisation qui remplit le formulaire), sinon laissez la validation échouera si cela ne valide pas du tout.

C'est donc, fondamentalement, il s':

<xsd:complexType name="ForminfoType"> `
    <xsd:sequence>
        <xsd:element name="formname" type="xsd:string" />
        <xsd:element name="timestamp" type="xsd:dateTime" />
        <xsd:element name="sender" type="PersonType" minOccurs="0" />
        <xsd:element name="receiver" type="OrganizationType" minOccurs="0" />
        <xsd:element name="signature" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
</xsd:complexType> 

Ce que le PersonType déclare agit essentiellement d'un numéro à 12 chiffres construit selon un modèle spécifique. Ce que le type de l'Organisation déclare est fondamentalement juste un numéro à 10 chiffres.

Donc ce que j'ai logiquement voudrais faire, c'est mettre ceci:

<xsd:element name="sender" type="OrganizationType" minOccurs="0" />

dans la séquence, mais vous ne pouvez pas avoir les deux éléments avec le même nom et les différents types. Donc, je pense que je doit le résoudre d'une autre manière.

Ce que j'ai trouvé est celle-ci:
http://xsd.stylusstudio.com/2007Oct/post05003.htm

Qui est à peu près ce que je veux faire, mais je ne suis pas sûr que c'est possible.
Quiconque a d'autres idées sur comment résoudre ce problème?

Merci d'avance.

source d'informationauteur