====== XML ====== ===== Éléments d'un document XML ===== === Balisage === Un document XML est constitué de balises. Une balise est une chaîne de caractères constituant un identificateur et placé entre un caractère < et un caractère >. Il existe différentes sortes de balises : * Les balises ouvrantes <item> * Les balises fermantes </item> * Les balises vides <nop/> * Les instructions de traitement <?xml-stylesheet ... ?> * Les commentaires <!-- J'explique --> * Les sections CDATA ({{lang|en|Character DATA}}) ==== Conventions de nommage des balises ==== * Les noms ne peuvent pas commencer par la chaîne de caractères « xml », dans n'importe quelle combinaison de casse (ou Xml, ou XML…) ; * les noms sont sensibles à la casse (différentiation minuscules/majuscules) ; * les noms ne peuvent pas débuter par un nombre ou un signe de ponctuation ; * les noms ne peuvent pas contenir d'espaces ; * éviter les caractères accentués et les opérateurs, virgules, point-virgules… ==== Les balises ouvrantes ==== Une balise ouvrante est un élément délimitant une section. La section se termine ensuite par une balise fermante. Une balise ouvrante est une chaîne composée de chiffres, de lettres et des caractères - et _. Cette chaîne est comprise entre un < et un >. Exemple : ==== Les balises fermantes ==== Une balise fermante reprend l'identificateur de la balise ouvrante, en le précédent d'un caractère « barre de fraction » ''(slash)''. Exemple : ==== Les balises vides ==== Une balise « vide » est le résultat de la contraction d'une balise ouvrante et d'une balise fermante ne contenant pas de données.
donne
=== Les attributs === Les balises ouvrantes et les balises vides peuvent être enrichies avec des attributs. Contenu de l'élément Dans l'exemple ci-dessus, la balise ouvrante '''item''' est munie de deux attributs, '''id''' et '''date'''. La balise vide '''break''' est munie de l'attribut '''mode'''. attention|Leurs valeurs doivent obligatoirement être entre guillemets ou apostrophes dactylographiqueshttp://www.w3schools.com/xml/xml_attributes.asp. === Les instructions de traitement === Une instruction de traitement est destinée à être lue et comprise par un programme spécifique, afin de permettre le traitement du document XML{{lien web | url = http://www.yoyodesign.org/doc/w3c/xml11/index.html#sec-pi | titre = Le point sur les instructions de traitement | site = yoyodesign.org}}. Une instruction de traitement commence par un point d'interrogation « ? ». Exemple : === Les commentaires === Les commentaires sont des balises qui ne sont pas interprétées par l'application qui traite le document XML. Un commentaire est une balise commençant par '''<!--''' et terminant par '''-->'''. Exemple : === Les entités === XML 1.0 définit un petit nombre d'entités utilisables dans le document sans nécessiter de déclaration dans le doctype. Ces entités sont : ^ Entité ^ Caractère ^ Description ^ | &lt; | < | Symbole « inférieur » | | &gt; | > | Symbole « supérieur » | | &amp; | & | Esperluette, « et » commercial | | &apos; | ' | guillemet simple | | &quot; | " | guillemet double | Toujours sans déclaration de doctype spécial, on peut écrire une entité avec « & », « # », une référence Unicode et un « ; ». ^ Entité ^ Caractère ^ Description ^ | &#960; | π | pi | | &#946; | β | bêta | Exemple Étudions la balise &lt;p&gt; Étudions la balise <p> ==== Structure d'un document XML ==== === En-tête === Les trois constituants de l'en-tête que nous allons décrire ne sont pas obligatoires. Ils sont employés en cas de besoin pour fixer l'encodage, définir le doctype et/ou associer une feuille de style. ==== Version, encodage ==== Il est souhaitable que le document XML commence par l'indication de la version du langage et le jeu de caractères utilisé. C'est souvent utf-8. Il est également souhaitable, si le document est stocké sur disque, que l'encodage du fichier soit le même que celui mentionné par l'attribut ''encoding''… ==== Référence au DTD ==== La deuxième information utile est la mention du doctype. Certains documents XML en ont impérativement besoin, d'autres peuvent s'en passer. ]> En analysant ce {{wt|doctype}}, l'analyseur syntaxique (le {{wt|parser}}, p.ex. : via [http://www.xmlcooktop.com/ Cooktop] ou encore [http://sourceforge.net/projects/npp-plugins/files/XML%20Tools/ XML tools pour Notepad++]) est en mesure de considérer le document XML comme valide. ==== Mention d'une feuille de style ==== Il est possible d'associer un document XML à une feuille de style CSS ou XSL. Si la fonctionnalité fait réfléchir, au début, il y a fort à parier que vous en abandonnerez la pratique par la suite. En effet, la philosophie XML va à l'opposé. === Une seule racine === Une balise a un statut spécial, c'est la racine du document XML. C'est à partir de cette balise que se développe l'arborescence du document. === Règles de mise en œuvre des balises === *Toute balise ouverte doit être fermée. *Les balises doivent être correctement imbriquées. *Les balises sont imbriquables hiérarchiquement sans limitation mais il ne doit y avoir qu'un seul élément à la racine. Le corps d'un document XML est une arborescence d'éléments (balises) imbriqués, avec un élément racine unique. Quand toutes ces règles sont respectées, on obtient un document XML « '''bien formé''' ». Dans ce cas, un navigateur comme Internet explorer ou Firefox peut l'ouvrir. Dans le cas contraire, le navigateur affiche un message d'erreur.