Introduction aux bases de XML
Présentation du langage XML
De manière succincte, on dira que issus du SGML et mis en place afin de palier aux limites rapidement atteintes du HTML, le langage XML est un langage de balisage extensible recommandé par le W3C.
Sinon, beaucoup de langages ou de technologies gravitent autour de XML… par exemple, vous avez sûrement entendu parler de xHTML, ou de XSL, ou encore de SMIL, ou de DTD, ou de XML schema…. bref, en ce qui concerne la définition de XML cela ne s’arrête pas à simplement dire qu’il s’agit d’un langage de balisage extensible… mais cette définition doit décrire et présenter tout un univers qui permet justement d’étendre à l’infini les possibilités de ce langage.
Le but de ce tutoriel n’étant pas de recommencer une énième fois à détailler ce qu’est le XML, ce que cela englobe, comment cela fonctionne, etc… et vu qu’il existe déjà de nombreuses et excellentes sources sur le web qui font cela très bien… nous nous arrêterons à ce qu’il est essentiel de connaître de XML, afin de pouvoir l’utiliser conjointement à diverses technologies Internet, multimédia ou PAO.
Principe de bases
Donc XML est un langage à balise, mais encore ??? Dans le même esprit dans lequel nous avions abordé l’article pour création numérique Introduction à XML sauce Macromedia, nous pourrions très bien dire que si nous parlions de :
» Les bases de l’utilisation de XML avec FlashTM, Présentation du langage XML De manière succincte, on dira que issus…. »
La première réaction serait … et d’un, sortis d’un contexte cela ne veut rien dire ou presque…. de deux… il est difficile de pouvoir structurer l’arborescence de cette information… alors que si nous présentions la même information de la manière suivante, cela parlerait un peu mieux…
<nous allons parler d'un tutoriel> <le titre de ce tutoriel>Les bases de l'utilisation d'XML avec Flash
TM
</voilà pour le titre> <le titre d'un paragraphe> Présentation du langage XML</voilà pour le titre du paragraphe> <contenu du paragraphe> De manière succincte, on dira que issus....</fin du paragraphe> etc... </fin du tutoriel>
XML n’est donc ni plus ni moins qu’une manière de découper et structurer l’information. La même chose dit de manière plus proche de la réalité et utilisant de vrais balises XML pourrait donner un document structuré de la manière suivante :
<tutoriel>Les bases de l'utilisation de XML avec Flash
TM
</tutoriel> <paragraphe titre="Présentation du langage XML"> De manière succincte, on dira que issus.... </paragraphe> etc... </tutoriel>
Entête et format
La première ligne du document est généralement une balise XML de déclaration permettant d’indiquer la version XML utilisée (aujourd’hui il n’existe que la version 1.0, et le mode d’encodage du document. Bien qu’un grand nombre d’application utilise UTF-8 et que la norme XML soit principalement basée sur UTF-8, il est encore courant de rencontrer des documents encodés en ISO-8859-1 (communément appelé Latin-1. Le système d’encodage permet de décrire la manière dont les caractères sont encodés, ce choix est très important pour assurer une meilleure portabilité inter système d’exploitation et application afin de préserver la bonne corrélation des caractères spéciaux (accentués, glyphes, symboles…).
<?xml version="1.0" encoding="iso-8859-1"?>
Balises et attributs
Comme en HTML, le XML peut structurer l’information en utilisant des balises imbriquées les unes dans les autres, en ne permettant qu’une seule balise générale (un peu comme la balise <HTML>) contenant l’ensemble du document. Pour définir les balises il suffit de placer une balise ouvrante représentée par le nom de la balise entourée de crochet (<>), et d’une balise fermante, représentée par le même nom de balise mais cette fois ci précédée d’un slash (</>):
<balise> </balise>
Attention XML est sensible à la casse, donc la balise ouvrante <balise> ne correspond pas à la balise fermante </Balise>.
Il peut arriver d’avoir à utiliser des balises ‘singlette’, un peu comme les balises <img> ou <br> très connues en HTML. Ce sont des balises qui n’existent que sous forme de balises ouvrantes. A ce moment là XML ou xHTML n’autorisant pas l’utilisation d’une balise ouvrante sans balise fermante, il nous faudra, fermer la balise ouvrante par un slash avant le dernier crochet :
<balise />
Il est possible d’utiliser des attributs pour chacune des balises. Les libellés d’attributs doivent être écrit en minuscule et contenir leur valeur entre des guillemets, même s’il s’agit de valeur numérique.
<balise attribut="un texte" autre="123" />
Si vous utilisez xHTML, il n’est pas possible de ne pas donner de valeur à un attribut, et certains attributs comme noresize (lors de l’utilisation de jeu de cadre) ne nécessite pas de valeur… Pour préserver une bonne conformité avec XML, il est donc courant d’indiquer comme valeur le nome de l’attribut et donc de le représenter de la sorte
<balise noresize="NORESIZE" />
DTD et XML Schéma
OK l’information est maintenant structurer et arborer au sein du document. Le concepteur aura pu libellé et opter pour une manière de présenter cette information qui lui convient. Mais qu’en sera t-il quand une autre personne devra puiser de l’information au sein de ce document, ou qu’en sera t-il quand une application informatique devra interagir avec ce document ? Il faut pour cela décrire la manière dont la structuration est composée, et quels sont les types de valeurs renseignés.
Il existe pour cela deux principes qui permettent de décrire la structure d’un document XML. Il s’agit des DTD ou de XML Schema. Les DTD ont principalement été utilisées au début de XML, mais rapidement de part son caractère extensible et évolutif, XML Schema est devenu le langage de description le plus rencontré.
La DTD du document XML abordé plus haut ressemblerait à :
<?xml version="1.0"?> <!DOCTYPE tutoriel [ <!ELEMENT tutoriel (chapitre)> <!ELEMENT chapitre (#PCDATA)> ]>
et le XML Schema à :
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="tutoriel"> <xs:complexType> <xs:sequence> <xs:element name="chapitre" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Finalement :
Pour être correct un document XML se doit d’être valide et bien formé. Bien formé signifie qu’il doit respecter la DTD ou le XML Schema qui définit sa structure, et valide permet de s’assurer que sa syntaxe est correcte et que les balises soient bien ordonnées.
Quelques sources tutorielles sur XML:
Les éditeurs de code XML
Aller plus loin
XML
Natanya Pitts
Un livre indispensable qui vous fera découvrir pas à pas tous les avantages de Xml dans la publication Web. Vous apprendrez toutes les techniques qui vous permettront d'implémenter la technologie Xml dans vos développements Web, des concepts de base jusqu'au développement de vos propres Dtd en passant par la publication finale de vos documents....
Construire une application XML
Jean christophe Bernada et François Knab
Tous les grands acteurs (IBM, Microsoft, Oracle, Sun Microsystems, SAP, etc.) ont désormais placé XML au coeur de leurs produits et de leur stratégie technologique. En facilitant l'interface entre les applications Web et les bases de données, XML devient un élément pivot des architectures Internet/intranet et Web client-serveur. Point fort de ce livre, deux études de cas tirées d'applications aujourd'hui en production chez des clients de CosmosBay : l'une est bâtie sur les technologies ...
Initiation à XML
David Hunter
Ce livre a pour objectif de répondre à ces interrogations et de conduire le lecteur pas à pas jusqu'aux aspects les plus avancés de XML : feuilles de style CSS et transformations XSLT, écriture de DTD et de schémas XML, traitement de documents XML à l'aide des interfaces DOM et SAX, etc. L'ouvrage est illustré de trois études de cas detaillées, destinées à préparer le lecteur au developpement d'applications professionnelles....
Manuel de prise en main de XML
Kevin Howard Goldberg
Cet ouvrage est avant tout un didacticiel pour apprendre à utiliser XML. Sa présentation claire et efficace ainsi ses exemples de code pratiques et très visuels en font un outil de référence pour tous les débutants, étudiants ou professionnels, qui doivent savoir créer un document XML, le transformer dans un autre format (dont HTML) avec XSL, et définir sa structure avec les DTD et XML Schema. Il présente également certains langages en cours de développement, les nouvelles versions d...