Petit point sur le XML

Catégorie : XML | Tag : , , , ,
Share

Voilà quelques temps déjà que je veux faire un petit point sur le XML. Une sorte d’aperçu théorique et un peu pratique permettant d’aller plus loin avec ce langage tellement utilisé aujourd’hui. Ce jour semble être venu ! (tintindindin !) Tout du moins en partie, puisqu’aujourd’hui, je parlerai du XML, de la bonne formation d’un fichier XML et de sa validité. !!!Présentation rapide d’XML XML, qu’est-ce que c’est ? C’est un langage d’échange basé sur le balisage. Peu après sa création en 1996 (ça date quand même), il remplace le SGML qui était un peu plus compliqué, et c’est aujourd’hui un méta-langage universel pour les données sur le Web, surtout depuis que le W3C s’est chargé de le standardiser. Bref, on peut mettre des données dans un fichier XML, et grâce à différentes techniques on est capable de les récupérer, les traiter, les afficher, ajouter des données au fichier, bref, faire des trucs un peu cool dessus. On s’en sert pour les flux RSS et Atom, pour l’Ajax, on peut l’utiliser comme base de données en PHP et je sais aussi qu’OpenOffice s’en sert pour le format de ses fichiers (.odt, tout ça). Bref, c’est utile et utilisé ! !!!Un fichier XML bien formé Un fichier XML est bien formé lorsqu’il respecte la syntaxe d’XML. Pour vérifier qu’un fichier XML est bien formé, on peut utiliser le validateur de la [W3schools|http://www.w3schools.com/xml/xml_validator.asp]. Et d’ailleurs, pour apprendre à créer un fichier XML bien formé, on peut utiliser le tutoriel de la W3schools : [Tutoriel XML W3schools|http://www.w3schools.com/xml/default.asp]. Exemple de fichier XML bien formé : /// 30 minutes par jour Un blog qui cause d’informatique 30 minutes tous les jours (ou presque) http://30minparjour.la-bnbox.fr/ Petit point sur le XML En ce début d’année, faisant le point /// Voici un résumé de cette syntaxe : * Un document a un prologue (@@@@), un élément racine (blog) * Un élément est composé : d’un nom qui détermine son type (nom, description, url, billets, billet, titre), d’attributs optionnels (langue, type), d’un contenu vide (balise simple @@@@ ou double @@@@) ou non (balise double @@contenu pouvant contenir des balises@@). * Un contenu est une chaine de caractères. S’il contient des délimiteurs XML (@@<, >, &, ‘, « @@), il faut les transformer en caractères ASCII (@@<@@, @@>@@, @@&@@, @@'@@, @@"@@ ou plutôt @@&lt;@@, @@&gt;@@, @@&amp;@@, @@&apos;@@, @@&quot;@@), ou inclure le contenu dans une section CDATA. Exemple : @@@@ ou simple @@@@ Voilà pour notre petit résumé. !!!Un fichier XML valide Il est possible de préciser une méta-description à un fichier XML, c’est-à-dire un modèle, une suite de règles que le document XML doit suivre, afin de s’assurer qu’un fichier XML est valide suivant ce que l’on veut faire. Par exemple (si j’ai bien capté), quelqu’un a un jour créé une méta-description du XML pour créer le XHTML : un arbre XML qui respecte en plus certaines autres règles. Ou les flux RSS… %%% Il existe 2 méthodes pour définir un modèle : * DTD (Document Type Definition) : décrit un document relativement facilement et rapidement, mais peu de contraintes sur les types * Schéma XML (XSD) : système très évolué avec un typage fort, une syntaxe XML et orienté échange de données !!Introduction au DTD Il existe deux manières d’utiliser une DTD : * Soit en créant un fichier .dtd et en l’assignant au fichier XML en utilisant la balise @@@@ * Soit en l’incorporant directement directement dans le fichier XML en utilisant la balise @@@@ Exemple de DTD incorporée dans le fichier XML de l’exemple précédent : /// ]> 30 minutes par jour Un blog qui cause d’informatique 30 minutes tous les jours (ou presque) http://30minparjour.la-bnbox.fr/ Petit point sur le XML En ce début d’année, faisant le point /// Pour résumé rapidement comment construire un élément : * Élément contenant d’autres éléments : @@@@ Il est possible d’utiliser + (1 fois ou plus), * (0 fois ou plus) pour définir combien de fois peuvent apparaître les sous éléments. * Élément vide (balise simple) : @@@@ * Élément contenant une données : @@@@ ou des données précises : @@@@ Et pour les attributs : * De manière générale : @@@@ * Une valeur par défaut : @@@@ * Une valeur obligatoire : @@@@ * Une valeur facultative : @@@@ c’est le mode par défaut * Une valeur non modifiable, il faut donc forcément définir une valeur par défaut : @@@@ * Énumération de valeur, dont une par défaut : @@@@ La encore, le plus simple est de lire le [tutoriel de la W3Schools sur les DTD|http://www.w3schools.com/DTD/default.asp]. Et voici un petit [validateur de DTD|http://www.validome.org/grammar/validate/]. !!Introduction aux schémas XML (XSD) Créer un schéma XML est légèrement plus délicat que de faire une DTD, mais cela permet d’en préciser entièrement la structure et le contenu. En somme il faut un petit peu s’accrocher pour maitriser la syntaxe, mais c’est pour mieux structurer mon enfant. Pas de mémo cette fois-ci, il y a trop de choses à dire pour cela, d’autant plus que tout est très bien expliqué sur… [W3Schools|http://www.w3schools.com/Schema/default.asp] ! Et voici un [validateur|http://tools.decisionsoft.com/schemaValidate/] pour tester le résultat. !!!Pour conclure Voilà un bon début pour parler du XML : un fichier bien formé et valide. Avec ça, on comprend mieux l’utilité de cette fichu ligne que l’on trouve sur tous nos codes XHTML : /// /// Et on peut aussi comprendre qu’il existe un standard pour les flux RSS (défini au travers d’une DTD ou d’un schéma XML ? Ou autre chose puisqu’il n’y a pas de DOCTYPE dans un fichier RSS… Aucune idée). Bref, ça ouvre l’esprit. Mais il est aussi possible de définir grâce au langage XSL (comprenant XSLT, XPath et XSL-FO) la manière d’afficher un fichier XML. Ce sera peut-être pour une autre fois…

2 réponses à Petit point sur le XML

  1. grosdim

    Salut, Article très bien écrit. Mais étant donné que le XML Schéma est chiant à écrire, il existe un nouveau format qui s’appelle RelaxNG et qui permet d’écrire plus facilement ses grammaires. L’avantage avec ce format est que tu peux préciser autant d’informations que tu te trouves dans le XML Schémas (par exemple le type, la cardinalité, etc). Ce qui est aussi bien est que tu peux faire de la transformation du RelaxNG -> XMLSchémas. Je t’invite à y jeter un coup d’oeil ici : http://relaxng.org/tutorial-2001120…

  2. une tres belle facons de voir les choses oui meme si je suis ps convaincu que ca peut parcher :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>