Bonjour,
j'ai une structure XML de type :
En fonction de la valeur de type, les éléments contenus dans <module> varient, avec des parties communes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <module type="toto">...</module>
Dans le schéma XML, j'ai donc envisagé de faire un type abstrait ModuleType :
et des types concrets qui implémentent ModuleType comme :
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>
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
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>
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <element name="module" type="ModuleType" />
Si un spécialiste XSD a une idée, je suis preneur...
Merci d'avance !
Partager