Sommaire: L’essentiel de XML
1. Présentation de XML
1.1. Historique
1.2. Intérêts
1.3. Langages apparentés
1.4. Dialectes
1.5. DocBook
1.6. Conventions
2. Syntaxe de XML
2.1. Premier exemple
2.2. Caractères
2.3. URI, URL et URN
2.4. Syntaxe et structure
2.5. Composition globale d’un document
2.6. Prologue
2.7. Corps du document
2.8. Exemples minimaux
2.9. XInclude
3. DTD
3.1. Un premier exemple
3.2. Déclaration de la DTD
3.3. Contenu de la DTD
3.4. Commentaires
3.5. Entités
3.6. Déclaration d’élément
3.7. Déclaration d’attribut
3.8. Outils de validation
4. Espaces de noms
4.1. Introduction
4.2. Identification d’un espace de noms
4.3. Déclaration d’un espace de noms
4.4. Portée d’une déclaration
4.5. Espace de noms par défaut
4.6. Attributs
4.7. Espace de noms XML
4.8. Espaces de noms et DTD
4.9. Quelques espaces de noms classiques
5. Schémas XML
5.1. Introduction
5.2. Un premier exemple
5.3. Structure globale d’un schéma
5.4. Déclarations d’éléments
5.5. Définitions de types
5.6. Constructions de types
5.7. Déclarations d’attributs
5.8. Extension de types
5.9. Restriction de types
5.10. Substitutions
5.11. Groupes d’éléments et d’attributs
5.12. Contraintes de cohérence
5.13. Espaces de noms
5.14. Imports d’autres schémas
5.15. Expressions rationnelles
6. XPath
6.1. Données et environnement
6.2. Expressions de chemins
6.3. Valeurs atomiques
6.4. Listes
6.5. Comparaisons
6.6. Structures de contrôle
6.7. Syntaxe abrégée
6.8. Motifs
6.9. Utilisation interactive de xmllint
6.10. Récapitulatif des opérateurs XPath
7. Schematron .
7.1. Introduction
7.2. Premier exemple
7.3. Fonctionnement
7.4. Structure globale d’un schematron
7.5. Règles
7.6. Règles abstraites
7.7. Blocs abstraits
7.8. Phases de validations
8. XSLT
8.1. Principe
8.2. Premier programme : Hello, World!
8.3. Modèle de traitement
8.4. Entête
8.5. Définition et application de règles
8.6. Construction de contenu
8.7. Structures de contrôle
8.8. Tris
8.9. Variables et paramètres
8.10. Fonctions d’extension XPath
8.11. Modes
8.12. Indexation
8.13. Documents multiples
8.14. Analyse de chaînes
8.15. Import de feuilles de style
9. XSL-FO
9.1. Premier exemple
9.2. Structure globale
10. CSS
10.1. Principe
10.2. Règles
10.3. Héritage et cascade
10.4. Modèle de boîtes
10.5. Style et XML
10.6. Attachement de règles de style
10.7. Principales propriétés
11. SVG
11.1. Un premier exemple
11.2. Éléments de dessins
11.3. Transformations
11.4. Indications de style
11.5. Courbes de Bézier et B-splines
12. Programmation XML
12.1. SAX
12.2. DOM
12.3. Comparaison
12.4. AJAX
A. Acronymes
Bibliographie
Index
Extrait du cours
Chapitre 1. Présentation de XML
Le langage XML (eXtended Markup Language) est un format général de documents orienté texte. Il s’est imposé comme un standard incontournable de l’informatique. Il est aussi bien utilisé pour le stockage de document que pour la transmission de données entre applications. Sa simplicité, sa flexibilité et ses possibilités d’extension ont permis de l’adapter à de multiples domaines allant des données géographiques au dessin vectoriel en passant par les échanges commerciaux. De nombreuses technologies se sont développées autour de XML et enrichissent ainsi son environnement.
Le langage XML dérive de SGML (Standard Generalized Markup Language) et de HTML (HyperText Markup Language). Comme ces derniers, il s’agit d’un langage orienté texte et formé de balises qui permettent d’organiser les données de manière structurée.
1.1. Historique
L’historique suivant retrace les grandes étapes qui ont conduit à la naissance de XML. L’ancêtre de XML est le langage SGML qui a été introduit en 1986 par C. Goldfarb. SGML a été conçu pour des documentations techniques de grande ampleur. Sa grande complexité a freiné son utilisation en dehors des projets de grande envergure. En 1991, T. Berners-Lee a défini le langage HTML pour le WEB. Ce langage est une version simplifiée à l’extrême de SGML, destinée à une utilisation très ciblée. XML est, en quelque sorte, intermédiaire entre SGML et HTML.
Il évite les aspects les plus complexes de SGML tout en gardant suffisamment de souplesse pour une utilisation généraliste. La version 1.0 de XML a été publiée en 1998 par le consortium W3C (World Wide Web Consortium).
Une redéfinition XHTML de HTML 4.0 à travers XML a été donnée en 1999. Un seconde version 1.1, qui est simplement une mise à jour pour les caractères spéciaux en lien avec Unicode, a, ensuite, été publiée en 2004.
1.2. Intérêts
XML est devenu omniprésent dans le monde de l’informatique. De nombreux standards sont apparus et permettent à des applications différentes de stocker mais surtout de partager des documents. L’exemple le plus emblématique et le plus connu est le format OpenDocument qui est utilisé par OpenOffice, maintenant appelé LibreOffice, mais aussi par d’autres suites bureautiques comme KOffice. Un autre exemple est le format de dessins vectoriels SVG [Chapitre 11]utilisé par Inkscape. Ce succès de XML est en grande partie du à ses qualités. Nous allons d’abord énumérer ces caractéristiques essentielles qui ont conduit à ce développement puis nous allons les détailler plus en profondeur.
1.3. Langages apparentés
Un des atouts indéniables de XML est le nombre de technologies et de langages qui se sont développés autour de XML. Ceux-ci enrichissent les outils pour la manipulation des documents XML. La liste ci-dessous énumère les principaux langages qui font partie de l’environnement XML.
XLink[ ]et XPointer[ ](liens entre documents) XML contient déjà un mécanisme pour matérialiser des liens entre des éléments d’un document. XLink et XPointer permettent d’établir des liens entre documents et plus particulièrement entre un élément d’un document et un fragment d’un autre document. Ils généralisent les liens hypertextes des documents HTML en autorisant des liens entre plusieurs documents.
1.4. Dialectes
De très nombreux dialectes ont été définis pour appliquer XML à des domaines très variés. Le grand avantage est que ces différents dialectes partagent la même syntaxe de base et que tous les outils XML peuvent être utilisés pour spécifier et manipuler ces documents. Il n’y a nul besoin de développer des outils spécifiques à ces différents dialectes. La liste ci-dessous énumère quelques uns de ces dialectes.
RSS[ ](Really Simple Syndication)
Abonnement à des flux de données
XUL[ ](XML-based User interface Language)
Langage de description d’interfaces graphiques développé par le projet Mozilla.
SVG[ ](Scalable Vector Graphics)
Description de dessins vectoriels
SMIL[ ](Synchronized Multimedia Integration Language)
Description de contenus multimédia
MathML[ ](Mathematical Markup Language)
Description de formules mathématiques
WSDL[ ](Web Services Description Language)
Description de services WEB
OpenStreetMap[ ]
Cartes libres
XML Signature[ ]
Format pour les signatures électroniques
1.5. DocBook
DocBook est un exemple typique d’utilisation de XML. Il s’agit d’un format pour écrire des documents techniques.
Il est particulièrement adapté à la rédaction de documentations de logiciels. Il est d’ailleurs utilisé par de nombreux projets de logiciels libres, éventuellement de grande ampleur, comme le projet KDE. Cet ouvrage a été rédigé en utilisant DocBook. L’intégralité du texte est répartie en plusieurs fichiers XML. Afin d’obtenir une mise en page de qualité, les documents XML sont convertis, avec le langage XSLT, en un document LaTeX qui peut alors produire un document PDF.
DocBook était au départ basé sur SGML mais il s’appuie maintenant sur XML dont il est un des dialecte. Il contient de nombreuses balises permettant de décrire et de structurer le contenu de façon très précise. Il existe ensuite différents outils permettant de traduire un document DocBook, en une seule page HTML, en plusieurs pages HTML avec des liens ou encore en un document PDF.
1.6. Conventions
Certaines conventions sont utilisées tout au long de cet ouvrage afin d’en faciliter la lecture. Tous les exemples et plus généralement, tous les fragments de texte pouvant apparaître dans un document XML sont écrits en utilisant une police de caractères fixe comme l’exemple d’entête ci-dessous. Les noms des balises sont en particulier écrits avec cette police.
<?xml version= »1.0″ encoding= »iso-8859-1″?>
Lorsqu’un fragment de texte comporte des parties génériques qui doivent être remplacées pour obtenir un véritable exemple, ces parties sont écrites avec une police de caractères fixe et italique. L’exemple de déclaration de DTD ci-dessous signifie qu’une telle déclaration doit commencer par <!DOCTYPEsuivi du nom de l’élément racine du document qui peut être un nom quelconque, différent de root-element.
Chapitre 2. Syntaxe de XML
La syntaxe de XML est relativement simple. Elle nécessite un effort très modéré pour son apprentissage. Elle est constituée de quelques règles pour l’écriture d’une entête et des balises pour structurer les données. Ces règles sont très similaires à celles du langage HTML utilisé pour les pages WEB mais elles sont, en même temps, plus générales et plus strictes. Elles sont plus générales car les noms des balises sont libres. Elles sont aussi plus strictes car elles imposent qu’à toute balise ouvrante corresponde une balise fermante.
2.1. Premier exemple
Le langage XML est un format orienté texte. Un document XML est simplement une suite de caractères respectant quelques règles. Il peut être stocké dans un fichier et/ou manipulé par des logiciel en utilisant un codage des caractères. Ce codage précise comme traduire chaque caractère en une suite d’octets réellement stockés ou manipulés. Les codages possibles et leurs incidences sont décrits plus loin dans ce chapitre[Section 2.2]. Comme un document XML est seulement du texte, il peut être écrit comme l’exemple ci-dessous.
2.2. Caractères
Un document XML est une suite de caractères. Les caractères qui peuvent être utilisés sont ceux définis par la norme Unicode ISO 10646[ ]aussi appelée UCS pour Universal Character Set. Cette norme recense tous les caractères des langues connues et tous les symboles utilisés dans les différentes disciplines. Elle nomme tous ces caractères et symboles et leur attribue un code sur 32 bits (4 octets) appelé simplement code Unicode ou point de code dans la terminologie Unicode. Dans la pratique, tous les points de code attribués à des caractères se situent dans l’intervalle de 0 à 0x10FFFF et ils utilisent donc au plus 21 bits. Cette longueur maximale ne sera pas dépassée avant longtemps car il reste encore de nombreux points de code non attribués dans cet intervalle pour des usages futurs. Unicode peut être vu comme un catalogue de tous les caractères disponibles. Un caractère dont le point de code est n est désigné par U+n où le nombre n est écrit en hexadécimal. L’écriture hexadécimale de n n’est pas préfixée du caractère ‘x’ car c’est implicite après les deux caractères ‘U+’. Le caractère Euro ‘€’ est, par exemple, désigné par U+20ACcar son point de code est 8364 = 0x20AC. Le sous-ensemble des caractères Unicode dont les points de code tiennent sur 16 bits (2 octets), c’est-à-dire entre 0 et 65535 = 0xFFFF est appelé BMP pour Basic Multilingual Plane. Il couvre largement la très grande majorité des langues usuelles et les symboles les plus courants.
……..