---
layout: post
title: Relax max
---
_ou 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](http://www.w3.org/TR/xpath20/), [XSLT](http://www.w3.org/Style/XSL/)...
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](http://fr.wikipedia.org/wiki/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](http://www.relaxng.org/)
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](http://relaxng.org/tutorial-20011203.html)
Si vous n’avez pas encore regardé XmlSchéma, sauté directement à RelaxNG, vous
aller gagner du temps.