XML (eXtensivble Markup Language)

Transcription

XML (eXtensivble Markup Language)
XML (eXtensible Markup Language)
Références :
XML, Micro Application e-Poche
http://giles.chagnon.free.fr/cours/xml/base.html
http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php
1.
Qu’est-ce que XML?
Le XML, qui signifie eXtensible Markup Language est un langage constitué de balises, ou tags. Il est
destiné à la structuration de documents. En 1998, les spécifications XML 1.0 sont devenues des
recommandations (c’est-à-dire que le XML a été officiellement défini et reconnu comme standard). Les
documents relatifs au XML et ses spécifications sont téléchargeables à l’adresse http://www.w3c.org/XML.
Le XML dérive du Standard Generalized Markup Language, ou SGML, défini en 1986 par le standard ISO
8879.
GML(1969)
SGML(1980)
ANSI
HTML(1990)
CERN – W3C
XML(1998)
W3C
XHTML(1998)
W3C
XML standards
XML versus HTML
 Tous les deux sont des dérivés du SGML (Standard Generalized Markup Language);
 XML a été conçu pour transporter des données;
 XML n'est pas un remplaçant pour le HTML;
 XML et HTML ont chacun leurs propres objectifs;
 XML décrit des données;
 HTML présente des données;
 Les balises HTML sont déjà définies;
 Les balises XML ne sont pas définies. Vous devez créer vos propres balises;
1/6
Le XML permet de séparer le contenu de la présentation. À l’aide du XML, vous pourrez transmettre un
document sans vous soucier de son apparence finale, ce qui n’était plus le cas du HTML.







le langage devrait s’autodécrire;
le langage devrait pouvoir être étendu par lui-même : les langages dérivés du XML devaient être
définis en XML, qui devait donc permettre de gérer tous les domaines d’application;
le contenu d'un document XML devrait être lisible dans n'importe quel éditeur de texte et être
compréhensible par une personne n'ayant aucune connaissance particulière;
le langage devrait permettre la description arborescente des données, afin d'apporter par
l'intermédiaire des arbres des structures de données performantes et efficaces;
les jeux de caractères de type Unicode et autres permettant l'universalité du langage devraient
pouvoir être utilisés;
il devrait être facilement distribué par n'importe quels protocoles à même de transporter du texte,
comme HTTP;
toute application munie d'un parseur texte devrait pouvoir utiliser le document XML.
Exemple d'un document XML
<?xml version="1.0" encoding="utf-8"?>
<note>
<a>Marc>/a>
<de>Claudine</de>
<entete>Rappel</entete>
<corps>N'oublie pas ton cours aujourd'hui!</corps>
</note>
2.
Prologue
Déclaration XML
Un document XML commence toujours par ce que l’on appelle un "prologue". Celui-ci contient
systématiquement une déclaration du type :
< ?xml version="1.0" encoding="utf-8" standalone="yes"?>
version :
version du XML utilisée dans le document, 1.0 en ce qui nous concerne (la dernière
version du langage, 1.1, date de février 2004 mais ne change rien quant à ses bases);
encoding :
le jeu de codage de caractères utilisé. Le jeu de caractères standard pour la France est
le ISO-8859-1. Par défaut, l'attribut encoding a la valeur utf-8. Cela permet à l'ordinateur
de "savoir" quel caractère il doit afficher en réponse aux combinaisons de 1 et de 0 que
contient le fichier sur le disque dur;
standalone :
dépendance du document par rapport à une déclaration de type de document [dtd.html].
Si standalone a la valeur yes, le processeur de l'application n'attend aucune déclaration
de type de document extérieure au document. Sinon, le processeur attend une
référence de déclaration de type de document. La valeur par défaut est no.
Cette déclaration est facultative, mais il est préférable de l'utiliser, auquel cas les attributs version,
encoding et standalone doivent être placés dans cet ordre. Si elle est utilisée, elle doit être placée en
toute première ligne du document XML.
2/6
Par la suite, le prologue peut contenir différentes instructions relatives aux données de traitement :
•
•
•
•
les paramètres relatifs à la mise en page par une feuille de style de type eXtensible Stylesheet
Language XSL ou Cascading Style Sheet CSS;
la déclaration d’un fichier externe qui contiendrait les données de mise en page, qu’il soit XSL ou
CSS;
la définition d’une Document Type Definition, ou DTD;
la déclaration d’un fichier externe contenant la DTD relative au fichier.
Instructions de traitement
Une instruction de traitement est une instruction interprétée par l'application servant à traiter le document
XML. Elle ne fait pas totalement partie du document. Les instructions de traitement qui servent le plus
souvent sont la déclaration XML ainsi que la déclaration de feuille de style.
< ?xml-stylesheet type="text/xsl" href="biblio.xsl"?>
xml-stylesheet
l'application est xml-stylesheet, le processeur de feuille de style du XML. Deux feuilles
de style différentes peuvent être utilisées, les XSL et CSS.
type :
indique de quel type de fichier il s'agit :
text/css pour les feuilles de style apparue avec le HTML
text/xsl pour les feuilles de style propre au XML
href :
indique l'URL du fichier
Déclaration de type de document (DTD)
Cette déclaration, lorsqu'elle est présente, permet de définir la structure du document. Elle peut être de
deux types, externe ou interne. Ici, elle est externe.
<!DOCTYPE biblio SYSTEM "biblio.dtd" >
3.
Les commentaires
En XML, les commentaires se déclarent de la même façon qu'en HTML.
<!-- Ceci est un commentaire XML -->
<maBalise>texte… <!-- Ceci est un autre commentaire -->
</maBalise>
Remarque : En raison de la compatibilité XML/SGML, la chaîne de caractères - - est interdite dans un
commentaire.
4.
L'arbre d'éléments
Un document XML peut se représenter sous la forme d'une arborescence d'éléments. Cette arborescence
comporte une racine (unique), des branches et des feuilles.
<!-- prologue -->
< ?xml version="1.0" encoding="utf-8" standalone="yes"?>
3/6
<!-- élément racine -->
<biblio>
<!-- élément enfant -->
<livre>
<!-- élément enfant titre -->
<titre> Les Misérables</titre
<auteur>Victor Hugo</auteur>
<nbr_tomes>3</nbr_tomes>
</livre>
<!-- élément enfant -->
<livre>
<!-- élément enfant titre -->
<titre> L'assommoir</titre
<auteur>Émile Zola</auteur>
<nbr_tomes>3</nbr_tomes>
</livre>
</biblio>
Les éléments et leur contenu
•
•
•
•
•
les éléments sont extensibles;
les éléments ont une relation parent/enfant;
les noms d'éléments peuvent contenir des lettres, des nombres et autres caractères;
les noms ne doivent pas commencer par un nombre, un signe de ponctuation ou les lettres xml;
les noms ne peuvent pas contenir de caractères d'espacement.
Les éléments XML sont aussi appelés nœuds ou nodes, par référence à la théorie des graphes et feuilles
par rapport à la structure arborescente des données.
L'élément racine
Les éléments doivent être rattachés à un élément principal qui sera appelé élément racine, élément
document (en anglais : document element) ou élément root, de sorte qu’ils forment ensuite une
arborescence. Les éléments sont définis par des balises.
L'élément-racine est la base du document XML. Il est unique et englobe tous les autres éléments. Il
s'ouvre juste après le prologue, et se ferme à la toute fin du document.
Les éléments
Les éléments forment la structure même du document : ce sont les branches et les feuilles de
l'arborescence. Ils peuvent contenir du texte, ou bien d'autres éléments, qui sont alors appelés "éléments
enfants", l'élément contenant étant quant à lui appelé logiquement "élément parent".
Il existe deux types d’éléments :
• les éléments fonctionnant par paire du type <element></element>
• les éléments atomiques (éléments vides) du type <element/>
4/6
Les attributs







les éléments XML peuvent contenir un ou plusieurs attributs;
chaque élément ne peut contenir qu'une fois le même attribut;
un attribut est composé d'un nom et d'une valeur (clé="valeur"/nom="valeur");
les guillemets simples ou doubles peuvent être utilisés;
n'est présent que dans la balise ouvrante de l'élément;
les informations peuvent être stockées dans des attributs ou des éléments fils;
l’ordre des attributs dans un document XML n’a aucune importance.
Voici un exemple de XML possédant des attributs :
<instrument type="vent">trompette</instrument>
Voici un exemple d'utilisation d'un élément vide avec attributs :
<img src="ours.gif" alt="Gros ours" width="56" height="100" />
Voici un exemple incorrect :
<livre>Borland C++</livre lang="en">
Les entités
Il existe deux sortes d'entités, définissables et définies. Elles epuvent être analysables ou non, internes ou
externes. La déclaration des entités s'effectue au sein de la DTD. Elles peuvent être utilisées aussi bien
dans la DTD que dans le document XML.
Les entités prédéfinies :
Caractère
&
<
>
"
'
Entité
&amp;
&lt;
&gt;
&quot;
&aquot;
Il n'existe pas d'entité prédéfinie pour les lettres accentuées ou pour les alphabets latins. Il faut utiliser à la
place les entités numériques du type &#n; (où n est une valeur décimale). Par exemple le é est codé
&#233;. Il est néanmoins possible d'importer des entités en provenance d'une autre DTD, notamment
celle du HTML.
Les sections CDATA
Une section CDATA est une section pouvant contenir toute sorte de chaîne de caractères. Elle permet de
définir un bloc de caractères ne devant pas être analysé par le processeur XML. Ceci permet entre autres
de garder dans un bloc de texte un exemple de code à afficher tel quel.
<![CDATA[Une balise commence par un < et se termine par un >.]] >
5/6
5.
Règles de composition
Un certain nombre de règles de base doivent être respectées :












les balises XML sont sensibles à la casse;
les balises doivent être correctement imbriquées;
Toutes les balises portant un contenu non vide doivent être fermées <element>texte</element>
Les balises n'ayant pas de contenu doivent se terminer par />
les documents XML doivent avoir un élément racine;
les valeurs d'attribut doivent être entre guillemets (");
Un nom d'élément ne peut commencer par un chiffre;
Si le nom d'élément n'est composée que d'un seul caractère, ce doit être une lettre comprise entre "a"
et "z" pour les minuscules, "A" et "Z" pour les majuscules.
Si le nom d'élément est composé d'au moins deux caractères, le premier peut être "_" ou ":".
Le nom peut ensuite être composé de lettres, chiffres, tirets, soulignés et deux points.
Les noms d'attributs sont en minuscules;
les espacements sont préservés.
6.
Bien formés et valides





XML avec une syntaxe correcte est dit bien formé.
XML qui est conforme à sa DTD est dit valide.
La DTD définit la structure d'un document XML avec la liste des éléments permis.
Le XML-Schema est une alternative à la DTD qui remplit les mêmes fonctions.
Les erreurs bloquent l'interprétation d'un document XML par un programme.
7.
Support XML


Les navigateurs récents supportent tous, plus ou moins, le standard XML 1.0, définit par le W3C.
Nous recommandons Internet Explorer 5,0+ ou Netscape 6 pour un visionnement optimal des
documents XML.
Un document invalide ou mal formé retournera une erreur par le navigateur.
Comme le XML n'est pas conçu pour présenter de l'information, visionner un document XML dans un
navigateur n'est pas une expérience comparable au visionnement d'un document HTML.


6/6

Documents pareils

Programmation Web II

Programmation Web II Deux informations sont fournies dans la déclaration :  version : version du XML utilisée dans le document (1.0 en ce qui nous concerne)  encoding : le jeu de codage de caractères utilisé. Le jeu ...

Plus en détail