# Relax max

oÃ¹ quand un fan d’XML s’y remet enfin et découvre RelaxNg

J’ai toujours aimé l’univers qui gravite autour d’”XML”:http://www.w3.org/XML/ : XPath, XSLT… Mais je n’avais pas encore vraiment eu l’occassion de mis frotter plus que ça au travail. Enfin si, mais là ça atteint des sommets.

Je suis dans une boite dont le produit est basé sur XML. Beaucoup, mais alors beaucoup de XSLT, du coup des XPath de folie, et bien sur une dose de Java/Hibernate/…

Malheureusement comme beaucoup de société dont j’ai croisé la route, personne ne prend le temps de faire les chose bien: la DTD du fichier XML servant de base à tout un tas de chose dans l’application n’est pas à jour. Mais alors pas du tout. Du coup, je me suis plongé dans cette petite nouveauté (enfin pour moi) que j’avais vu arrivé, mais sur laquelle je ne m’etais pas encore penché: RelaxNG

Pour décrire la structure d’un document XML on a (classé par ordre d’apparition):

* DTD. C’est un format interessant, mais non XML. Il a l’avantage d’être simple.

- XmlSchema. Une description de document au format XML. Là tout de suite ça deviens interessant: on peut le traité par le biais d’une machine. Pas mal de base de données et autres produit se sont lancé dans l’utilisation de ce genre de document pour la description de leur données. Les description sont très strict, et bonus par rapport au DTD: on peut typé les données.

- RelaxNG. Description de document en XML egalement, donc les même avantages que XmlSchema. Cependant c’est plus simple, et plus libre. On peut donc mieux décrire ces documents. En plus, pour ne rien gacher, on peut utiliser du XmlSchema dedans ! (ça peut être pratique)

Bon plutôt que de vous faire un tas d’exemple, je préfère vous faire lire ceux qui existe déjà et qui sont très bien: RelaxNG Tutorial

Si vous n’avez pas encore regardé XmlSchéma, sauté directement à RelaxNG, vous aller gagner du temps.