Bonjour,

j'ai une structure XML de type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<module type="toto">...</module>
En fonction de la valeur de type, les éléments contenus dans <module> varient, avec des parties communes.

Dans le schéma XML, j'ai donc envisagé de faire un type abstrait ModuleType :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<complexType name="ModuleType" abstract="true">
  <attribute name="type" type="xsd:string" use="required" />
</complexType>
et des types concrets qui implémentent ModuleType comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<complexType name="BoardModuleType">
  <complexContent>
    <restriction base="ModuleType">
      <sequence>
        <element name="backend" type="BackendType" />
      </sequence>
      <attribute name="type" type="xsd:string" use="required" fixed="board" />
    </restriction>
  </complexContent>
</complexType>
Le problème est que pour déclarer les éléments de type ModuleType, j'ai fait comme j'aurais fait en POO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<element name="module" type="ModuleType" />
Et bien sûr quand je tente de valider un document, ça ne passe pas parce qu'il ne reconnaît pas les éléments supplémentaires de BackendModuleType.

Si un spécialiste XSD a une idée, je suis preneur...

Merci d'avance !