Pour faciliter l'implémentation d'outils XML Schema, le groupe de travail W3C XML Schema a décidé de conserver une des contraintes imposées par les DTDs au risque de compliquer la tâche des créateurs de documents XML.
Eric van der Vlist,
Dyomedea (vdv@dyomedea.com).
mercredi 25 octobre 2000
La règle numéro neuf des objectifs de conception de XML 1.0 indique que les
"documents XML seront faciles à créer"
.
Une des nombreuses manières d'y contribuer est d'éviter de rajouter des contraintes arbitraires qui sont toujours perçues comme des nuisances inutiles par les créateurs de documents XML. C'est ainsi, par exemple, que l'ordre des attributs est considéré comme non significatif.
Beaucoup de vocabulaires XML n'ont pas besoin d'imposer un ordre déterminé à tous leurs éléments.
Ainsi, par exemple, la spécification RSS 0.91 de Netscape définit un élément document appelé "channel" sous lequel on trouve des éléments décrivant le canal RSS lui-même suivis d'un élément optionnel "image", de 1 à 15 éléments "item" et d'un élément optionnel "textinput".
Si ce n'est pour permettre l'écriture d'un DTD qui ne gère pas finement la cardinalité des éléments non ordonnés, il n'y a aucune raison d'imposer à l'élément image de précéder les éléments item et à l'élément textinput de les suivre.
Imposer cet ordre, comme le fait la spécification RSS 0.91, rajoute une contrainte supplémentaire sur les auteurs de documents RSS qui éditent ou génèrent souvent ces documents à la main et contribue à donner une image de rigidité et de complexité aux technologies XML.
Dans ce contexte, je trouve très décevant que le groupe de travail XML Schema ait rejeté une demande d'assouplissement dans la définition de groupes d'éléments non ordonnés et d'aligner les fonctionnalités de XML Schema dans le domaine sur celles des DTDs.
Cette décision qui a été prise pour faciliter le travail des implémenteurs d'outils XML Schema (l'algorithme de validation de groupes d'éléments non ordonnés est plus complexe à établir, la détection de la fin du groupe étant beaucoup plus "floue") va fortement restreindre la possibilité de définir des schémas comportant des éléments non ordonnés et pousser les concepteurs à imposer des contraintes arbitraires sur l'ordre des éléments qui continueront à empoisonner sans raison les auteurs de documents XML.
Pour revenir à notre exemple de RSS 0.91, il est impossible d'écrire un XML Schema sans imposer l'ordre relatif des éléments image, item et textinput (sauf en acceptant de ne pas contrôler la cardinalité de ces éléments).
Voir également: une discussion récente sur xml-dev à ce sujet.
Copyright 2000,
Eric van der Vlist.
|