>From xml-tech-bounce@xmlfr.org Tue Nov 8 15:47:20 2005
>(...)
>Bonjour !
>J'ai vu passer dans plusieurs mails le nom de Relax NG. Je suis allé
>voir par curiosité de quoi il retournait, et j'ai été assez emballé par
>le langage en lui-même : il est simple, lisible, rien à voir avec le
>schéma W3C où il faut trois heures pour appréhender un schéma.
>Du fait, je me pose certaines questions :
>(...)
>- plus généralement, est-ce pérenne ? Est-il réellement valable de
>choisir ce langage plutôt que le schéma W3C ?
Reponse d'un utilisateur qui a experimente les deux a travers quelques
exemples comparatifs... utilisateur double d'un enseignant qui a montre les
deux a travers ces memes exemples...
Il est clair que les schemas ecrits avec RelaX NG sont beaucoup plus legers
que ceux d'XML Schema, ce langage etant tellement verbeux que tout, du moins
dans une premiere approche, y parait complique.
Pour le reste, cela depend de l'application, ainsi que de la vision que
l'on en a. Relax NG possede un certain nombre de constructions interessantes
et utiles : par exemple, "<interleave>", difficilement traduisible en XML
Schema. Par contre, les types disponibles y sont moins fouilles. On peut
toujours utiliser les types predefinis d'XML Schema, mais difficilement
construire d'autres types par extension, union ou restriction, ainsi que ce
dernier formalisme le permet. Voici un exemple : considerons la donnee d'une
annee du calendrier gregorien, elle est de type "xsd:gYear" en XML Schema. Si
l'on s'interesse a des annees non completement connues (pour la datation
d'oeuvres de la periode medievale, par exemple), on peut admettre de remplacer
un ou plusieurs chiffres terminaux par des "?", par exemple "145?" ou "14??",
mais pas "14?3". Ce que l'on peut definir finement comme suit :
<xsd:simpleType name="gYear-plus">
<xsd:union memberTypes="gsd:Year">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[1-9][0-9]*\?+"/>
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
A ma connaissance, une specification aussi fine est impossible en Relax NG.
D'un autre cote, on peut toujours retorquer qu'une application particuliere
n'a peut-etre pas besoin de definitions de types aussi tirees par les cheveux.
La modularite est bien meilleure avec Relax NG (par le jeu des "<define>",
par exemple) qu'avec les DTD, ou cette notion est pour ainsi dire inexistante.
Elle n'atteint cependant pas, a ma connaissance, les possibilites d'extension
et de redefinition d'XML Schema, qui permettent de rendre les schemas
evolutifs. D'ou ce que j'ecrivais plus haut : la vue que l'on a d'un schema".
Souhaite-t-on qu'il soit evolutif ? Ou en ecrit-on en une fois la version
finale et irrevocable ?
Autre point sur lequel, a mon avis, XML Schema est superieur : lorsqu'on
souhaite la puissance d'une base de donnees.
Voila... Si cela interesse des utilisateurs hesitants, je peux diffuser
quelques exemples comparatifs... En attendant, j'espere que ces quelques
pensees pourront aider au choix. Encore qu'a mon avis, rien ne vaut une
experimentation sur des petits exemples reels.
Bien a vous,
J.-M. H.
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Thu Nov 10 18:51:25 2005