Je répète un peu ce bit question la 1ère fois il a été demandé de manière incorrecte.XSD et polymorphisme
je ceci:
<xsd:complexType name="A">
<xsd:sequence>
<xsd:element name="options" type="options"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="B">
<xsd:complexContent>
<xsd:element name="options" type="ex_options"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="options">
<xsd:sequence>
...some options
</xsd:sequence>
</xsd:element>
<xsd:complexType name="ex_options">
<xsd:complexContent>
<xsd:extension base="options">
<xsd:sequence>
...some more options
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:element>
Donc, fondamentalement, j'ai la classe A avec une classe interne d'options classe B hérite de la classe A et je veux B.options à hériter de A.options de sorte que lorsque nous Pour les webservices, il suffit de passer un et quand nous appelons getOptions, il retournera le bon objet B.options. Actuellement avec la façon dont xsd se trouve, j'obtiens une erreur indiquant que plusieurs éléments avec des options de nom avec des types différents apparaissent dans le groupe de modèles. Les erreurs sont dans le type B.
Votre exemple XSD n'est pas bien formé (à l'exception de ... l'entrée de certaines options). J'avais supposé que c'était un exemple de ce que tu as essayé. Ayant lu votre réponse ci-dessous je l'ai maintenant. ce que vous semblez vouloir, c'est deux classes où B étend A, et le contenu de B étend le contenu de A. –
Bon, j'ai mis à jour ma réponse après vos commentaires. Merci. –