0 votes

xsd - validation des valeurs d'un fichier dictionnaire externe

J'aimerais définir un schéma pour un document tel que :

...
<car>
  <make>ford</make>
  <model>mondeo</model>
</car>
...

Le problème est que j'aimerais contraindre les valeurs possibles (ainsi ford/mondeo ou audi/a4 seraient des valeurs valides pour la marque/modèle, mais audi/mondeo ne le serait pas) à partir d'un dictionnaire de données externe. Dans le cas où de nouveaux modèles de voitures devraient être ajoutés, seul le fichier de données externes serait modifié, mais le schéma xsd resterait le même.

Est-ce possible ? J'ai regardé les contraintes clé/clé-réf, je vois que je peux les utiliser dans un seul document, mais ce n'est pas ce que je recherche. Je ne veux pas répéter le dictionnaire de données complet avec chaque instance de document, je préférerais que le fichier de données constitue plutôt une partie du schéma.

1voto

Cela n'est pas possible dans XML Schema 1.0.

XML Schema 1.1 ajoutera un support qui permettra d'exprimer ce type de contraintes (bien qu'AFAIK pas dans les fichiers externes) - mais ce n'est pas encore une recommandation du W3C.

Il est possible de mettre cela en œuvre dès maintenant avec Schematron, éventuellement intégré dans XML Schema.

Cependant, des travaux ont déjà été menés dans ce domaine avec des résultats exploitables. Voir les listes de codes OASIS

http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=codelist

Plus de détails sont disponibles ici :

http://www.genericode.org/

Il est utilisé dans le langage universel des affaires (UBL) de l'OASIS. http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ubl

Je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées, Georges

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X