Martin Sévigny - Frédéric Glorieux - AJLSM

Langages de schématisation XML

Résumé

Un projet de modélisation engage avant tout un travail intellectuel de définition. Cependant à terme, il faut choisir un langage de schéma qui recueille au mieux le résultat de cette réflexion. Plusieurs langages sont actuellement disponibles.

1.1. Introduction
1.2. DTD
1.3. Schema W3C
1.4. Relax-NG
1.5. Schematron
1.6. Conclusion

1) Introduction

Un document XML est un fichier texte, structuré par des éléments et leurs attributs. La norme ne précise pas de vocabulaire prédéfini (c'est qui en fait la souplesse). La définition d'un vocabulaire (les noms d'éléments et d'attributs) et d'une grammaire (les types) formule ainsi un schéma pour une collection de documents. Cette structure partagée permet d'établir des relations dans une collection de documents, facilitant les traitements automatiques (requêtes, indexation ...). La souplesse de la norme et des outils associés tend à libérer les concepteurs des contraintes propres à d'autres technologies (base de données relationnelles, bases textuelles). Un effort de modélisation peut encore plus se concentrer sur la "sémantique", sur le concept des informations que l'on souhaite décrire et isoler (plutôt que ce que peut ou ne pas faire la technologie).

Un projet de modélisation engage avant tout un travail intellectuel de définition. Cependant à terme, il faut choisir un langage de schéma qui recueille au mieux le résultat de cette réflexion.

  1. Précision.  Une syntaxe saura formuler avec précision les types dégagés par l'analyse.

  2. Modularité. Les types définis seront importables, redéfinissables, et factorisables ; afin que les mêmes objets partagent le même code à une même place.

  3. Diffusion.  La diffusion d'un standard assure la pérennité de l'effort de développement, offre un large choix d'outils associés, et le cas échéant, le nécessaire pour des conversions ultérieures.

2) DTD

Héritées de SGML, les DTDs ont fait partie de la recommandation XML 1.0.

Avantages - Très utilisé, de nombreuses ressources, syntaxe économe et connue, style très évolué (peut-être arrivé à ses limites).

Inconvénients - Cette syntaxe texte ne facilite pas la génération de rapports ou de documentation. Les espaces de noms sont simulés mais pas supportés.

Conclusion Les DTDs ont suffi pendant longtemps, elles conviennent très bien à des documents "déterministes" mais pas à des modules ouverts, supportant le mélange avec d'autres espaces de noms.

3) Schema W3C

Pour répondre aux nouveaux développement de XML qu'il a édicté (espaces de noms), le W3C se devait de proposer un langage de modélisation, en XML. Les premières propositions qui en fondent le style actuel proviennent de l'industrie (dont Microsoft). Cela suffit à expliquer l'excellent support chez les éditeurs, mais aussi les critiques circulant dans les milieux de l'informatique documentaire libre.

Avantages - Syntaxe XML très élaborée qui permet un typage de chaque noeud (listes de types prédéfinis, ou définissables par expressions régulières et algébriques), pousse très loin la modularité.

Inconvénients - Ces raffinements se paient par une syntaxe verbeuse pour les choses simples, peu triviale, cette mauvaise impression est encore augmentée par la documentation officielle (écrite pour les développeurs implantant la norme). Ce gros écueil renforce les rumeurs parmi les utilisateurs des DTDs. Il demeure qu'un schéma est très difficile à lire humainement, mais de nombreus outils de documentation sont disponibles.

Conclusion Une fois acquise la syntaxe (ce qui demande une information dépassant la documentation), les schémas répondent à leurs promesses sur les espaces de noms, permettant d'intégrer des schémas publics et d'ouvrir son développement à d'autres. Adapté à des projets importants de modélisation.

4) Relax-NG

L'alternative documentaire aux schémas W3C (Oasis), participation de James Clark.

Avantages - Syntaxe simple, claire, peut-être techniquement supérieure aux schémas W3C, toutes les qualités nécessaires pour le succès.

Inconvénients - Pas de syntaxe de type défini (import possible selon les implantations), le support logiciel est moins assuré que pour les schémas, la conversion automatique depuis W3C.Schema ( W3C.schema vers Relax-NG) est plus assurée que depuis Relax-NG (Relax-NG vers W3C.Schema).

Conclusion Technologie à suivre, il est encore imprudent de lui confier d'importants développements.

5) Schematron

Très intéressante initiative de définition non déterministe avec des expressions XPath.

Avantages - Validation libre de vague à très fine, compatible XSL, permet des implantations légères à faible développement, avec en particulier des messages d'avertissement spécifiques.

Inconvénients - Support très faible, définition dangereusement lâche pour une modélisation.

Conclusion - En contexte applicatif, valeur ajoutée à un schéma déterministe.

6) Conclusion

La conclusion se déduit naturellement de l'exposition.

  1. DTD.  La migration est justifiée par l'usage des espaces de noms, à éviter pour un nouveau projet destiné à durer, et à être partagé.

  2. Schema.W3C.  La solution de sécurité, permet toutes conversions ultérieures.

  3. Relax-NG.  Excellent format, à choisir si l'environnement logiciel le supporte.

  4. Schematron.  Rend d'excellents services (validation de lots, rapports spécifiques).

XML - Schémas

Résumé

Langages de schématisation XML

XML - Espaces de noms. <http://www.w3.org/TR/REC-xml-names/> . Référence W3C sur les espaces de noms.
[practices] XML Schéma - bonnes pratiques. XML Schemas: Best Practices. <http://www.xfront.com/BestPracticesHomepage.html> . Une excellente liste de points à réfléchir dans l'agencement de schémas.
[dtd] DTD. <http://www.w3.org/Help/siteindex#D> . Les DTDs n'ont pas donné lieu à une recommandation officielle du W3C. Toutefois, il en fournit de nombreux exemples.
[xmlschema-0] Les schemas W3C. <http://www.w3.org/TR/xmlschema-0/> . XML Schema Langage de modélisation XML, recommandation W3C.
[relax-ng] Relax-NG. <http://www.oasis-open.org/committees/relax-ng/spec-20011203.html> . Relax-NG Langage de modélisation XML, proposé par CLARK James et MURATA Makoto. Soutenu et édité par OASIS (Docbook).
[relaxngconverter] Conversion vers Relax-NG. <http://wwws.sun.com/software/xml/developers/relaxngconverter/> . Sun, convertisseur de schemas vers Relax-NG
[trang] Trang - Multi-format schema converter based on RELAX NG . Relax-NG, conversion vers d'autres langages. <http://www.thaiopensource.com/relaxng/trang.html> . Relax-NG - conversion Une solution vers W3C.Schema est proposée, mais encore en cours de perfectionnement pour les cas complexes.
[schematron] Schematron. <http://www.ascc.net/xml/resource/schematron/Schematron2000.html> . Schematron, un langage de modélisation XML Compatible XSL : à partir d'une grammaire de règles, produit une transformation générant un rapport.