Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Si vous vous posez une question, vous n'êtes peut-être pas le premier...Les traductions en français des bibles XML.Ces articles sont des références dans leur domaine.Tout ce qu'il faut savoir pour démarrer sur un sujet XML...


Quel langage de schéma XML choisir pour chaque usage ?

La question était le thème de mon intervention lors de la soirée SparklingPoint du 13 mars et cet article est tiré des notes préparatoires à cette intervention.

Eric van der Vlist, Dyomedea (vdv@dyomedea.com).
vendredi 14 mars 2003

Avant de répondre à cette question, je pense qu'il faut prendre le recul nécessaire pour recadrer le rôle des langages de schémas dans l'environnement XML. Loin de moi l'idée de dire que les langages de schémas ne sont pas nécessaires ni même utiles, mais je pense que le rôle qu'on cherche à leur faire jouer à l'heure actuelle est nettement exagéré et conduit parfois à les employer à contresens.

Je pense notamment que les langages de schéma XML sont à un niveau intermédiaire entre les vues logiques sur les documents ou données à modéliser et le niveau purement physique représenté par les documents eux mêmes qui les rend difficile à utiliser et à comprendre.

Il suffit de lire un schéma W3C XML Schema pour se convaincre qu'il ne s'agit pas d'une vue logique et naturelle des données ou documents et de nombreux projets choisissent d'utiliser d'autres moyens de modélisation plus parlant pour les utilisateurs.

UML est en bonne place parmi les moyens de modélisation bien adaptés à XML mais il ne faut pas non plus négliger des moyens plus simples et largement utilisés tels que... les tableurs! Parfois qualifié d'UML du pauvre, les feuilles de calcul se sont avérées être un moyen privilégié pour établir des modèles logiques complexes, comme en témoigne le projet UBL qui écrit noir sur blanc:

    "La matrice sous forme de feuille de calcul actuellement utilisée s'est avérée être le moyen le plus versatile et maîtrisable pour développer un modèle logique pour la bibliothèque UBL."

C'est une constatation que l'on retrouve sur de nombreux projets et que ce soit sous forme de feuille de calcul ou d'un autre format, une simple liste des informations manipulées et de leurs relations est généralement bien plus facile à comprendre qu'un schéma XML.

S'ils ne sont pas une vue logique, les schémas XML sont néanmoins plus qu'une simple vue physique d'une classe de documents, ce qui signifie qu'ils ne sont pas non plus le moyen le plus simple de présenter la structure d'un document XML à un informaticien qui devrait interpréter ou créer un document sans maîtriser toutes les subtilités du langage de schémas utilisé.

Dans l'espoir de faciliter leur maintenance et leur réutilisabilité, les langages de schéma XML ont en effet créé leur propre complexité au détriment de leur lisibilité et un langage de schéma sans exemples est très difficile à lire.

Cette double inadéquation (trop "physiques" pour les utilisateurs et pas assez pour les informaticiens) ne signifient pas pour autant que les langages de schéma soient inutiles: ils ont un rôle fondamental à jouer dans la validation des documents et la génération d'applications; mais plutôt que l'on devrait y regarder de plus près avant de leur accorder le rôle proéminent qu'ils ont acquis dans la documentation des vocabulaires XML.

Un schéma ne suffit pas à documenter un vocabulaire XML et il est regrettable que les expressions "publier un schéma" ou "répertoire de schémas" soient rentrées dans le langage courant laissant à penser qu'un schéma suffit à ce qu'un vocabulaire soit immédiatement utilisable par tout informaticien.

Par ailleurs, si on leur enlève leur statut de documentation unique et universelle, les langages de schéma s'intègrent beaucoup plus facilement au système d'information et deviennent des éléments que l'on peut générer plutôt qu'éditer à la main.

C'est le cas avec UML (les différents ateliers UML proposent des fonctions de génération de schémas XML) mais c'est également possible à partir de tableaux de données (les schémas UBL sont générés automatiquement), à partir de documentations structurées (notion de "programmation littéraire") ou même à partir d'exemples (Examplotron).

Dans ce contexte, le choix d'un langage de schéma n'est plus une question stratégique et les schémas étant générés automatiquement, il devient possible d'utiliser simultanément plusieurs de ces langages en fonction du but recherché : le schéma devient un outil interchangeable et on utilise l'outil le mieux adapté en fonction du travail à réaliser.

Les principaux langages de schéma sont d'ailleurs suffisamment typés pour que ce choix soit relativement facile:

  • W3C XML Schema est le choix naturel pour publication dans les répertoires de schémas et lorsque des informations de typage doivent être communiquées à des applications.
  • Relax NG est plus simple à maîtriser (et donc à générer). Il dispose d'un meilleur pouvoir expressif que W3C XML Schema et permet d'exprimer plus de contraintes. Pour des fonctions de validations, c'est donc un langage qui permettra de coller au plus près aux documents décrits.
  • Schematron est l'outil de finition qui peut tester ce qui ne peut pas être testé avec les autres langages. Il est généralement utilisé en complément de W3C XML Schema ou Relax NG (on n'utilise pas un outil de finition pour faire le travail de dégrossissage!). Dans la mesure où Relax NG décrit mieux les documents que W3C XML Schema, il y aura fréquemment plus à faire avec Schematron lorsqu'il est associé à W3C XML Schema que lorsqu'il est associé à Relax NG.
  • Il ne faut pas oublier les DTDs qui sont un outil privilégié pour toute une génération de logiciels.
  • A côté de ces principaux langages, il existe d'autres langages moins connus qui peuvent avoir leur rôle à jouer.

Enfin, pour gérer les validations mettant en oeuvre plusieurs langages de schémas, le groupe de travail DSDL de l'ISO définit actuellement un vocabulaire permettant de spécifier les validations à réaliser et les éventuelles transformations qui peuvent être nécessaires.

Autres articles:

Copyright 2003, Eric van der Vlist.


 

Mots clés.



L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.


Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot  

Conception, réalisation et hébergement
Questions ou commentaires
  redacteurs@xmlfr.org