Bonjour à tous,
J'ai un petit problème à résoudre et j'avoue ne pas trouver de solution élégante...
Voici le cadre de mon problème.
Je travaille sur une modélisation de données décrite à l'aide d'un XML schema (xsd).
Je parse ce schema à l'aide de l'API XML schema pour en extraire un certain nombre d'informations (entre autre je genère automatiquement une instance valide de mon schema).
Jusque là pas de problème.
Maintenant je souhaite étendre mon schema, c'est à dire saupoudrer mes definitions de types et d'éléments d'attributs de mon cru. Toujours pas de problème, je déclare un nouveau namespace et ajoute mes attributs, j'écris donc des choses du genre :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <xs:complexType name="toto"> <xs:sequence> <xs:element name="tata" type="xs:string" umf:filter="true"/> </xs:sequence> </xs:complexType>
Ceci est parfaitement valide.
Seulement lorsque j'utilise l'XML schema API pour me balader dans mon schema, je suis parfaitement capable de retrouver tous les éléments définis dand le model du xsd schema (le schema du schema) (ce qui est normal puisque l'interface est construite à partir de ce meta-model), je suis par contre incapable d'accéder aux attributs de mon namespace umf (normal puisque qu'il n'appartient pas au meta-model).
Pas non plus moyen d'accéder à partir du xsElement à l'élément <xs:element> qui porte mon attribut étendu (dans le sens DOM sur ce schema qui est lui même un document xml).
Je ne suis donc pas capable dans ma navigation grace a l'API XML schema d'exploiter mes extensions.
Mais je sais que c'est faisable, ORACLE étend ses schemas de la sorte dans son XMLDB tout comme GMF chez eclipse.
Ma question est donc comment font ils ???
Mathieu
Partager