XML - eXtensible Markup Language
Format universel de documents textuels et graphiquesQu'est ce que XML et pourquoi l'utiliser?
XML est un format fondé sur des balises comme HTML, mais
il décrit le contenu plutôt que la présentation
du contenu.
Les balises peuvent avoir aussi des attributs, et cela fait penser
aux langages de programmation à objets. En fait XML peut
être utilisé pour "sérializer" (stocker)
des classes de langages de programmation.
XML tend à se généraliser comme format de document, c'est dorénavant le format de fichiers de Office et Open Office.org.
Comme son nom l'indique, XML est extensible et il sert de base à de nombreux langages descriptifs comme on le verra plus loin.
La première recommandation par le W3C, XML 1.0 date du 16 août 2006 mais son histoire remonte à 1996 comme l'indique l'historique du W3C.
Avantages de XML
Tout type de données peut être décrit par
XML pourvu que l'on fournisse une grammaire de la structure (donc
des balises).
Sa structure arborescente et extensible permet de décrire n'importe quoi. Il est ainsi facile à parser par les logiciels tout en étant lisible par les humains.
Son universalité permet de l'utiliser dans tout contexte, sur tout système.
Puisque les balises décrivent les données brutes,
il est facile d'y faire des recherches.
Définir la grammaire
Avant d'écrire un document XML, il est préférable
d'écrire une DTD (Document Type Declaration). La DTD déclare
une grammaire de balises et le document XML est une instance de
cette grammaire comme un objet est une instance de classe, ou
comme un programme pour un langage.
Le DTD peut être inclus dans le document XML , ou lié
par une URL (adresse web).
Sans ce DTD, le document XML peut être utilisé, mais
non validé, donc on ignore s'il comporte des erreurs quand
aux valeurs contenues. On peut néammoins vérifier
qu'il soit bien formé (balises complètes) avec le
parseur.
On valide les balises d'un document XML avec:
- DCD (Document
Content Description for XML).
- Un schema,
comme une dtd, décrit la grammaire des balises pour valider
le document.
Alors que le DTD à sa propre syntaxe,
le schéma a la même syntaxe que XML, un autre avantage
est qu'il permet s'ajouter aux types prédéfinis,
de nouveau types de données.
DCD est un langage qui aide à construire un
schéma en remplaçant les fonctions de DTD pour décrire
les contraintes sur les balises et le contenu des documents. En
outre il peut aussi décrire des types de données
et les relations de bases de données.
DCD incorpore un sous-ensemble de XML-Data,
et est un vocabulaire RDF.
Comment utiliser XML
Pour utiliser un document XML, vous avez besoin d'un parseur
qui reconnait la syntaxe et charge le document en mémoire.
Il existe deux sortes de parseurs.
- Dans le premier cas, le document est transformé en une
arborescence en mémoire, dont le contenu est accessible
selon les méthodes du DOM (Document Object Model).
- Il est également possible d'associer des fonctions à
des balises avec les parseurs événementiels de type
"sax".
Les parseurs les plus connus sont indiqués en ressources.
XML, comme HTML a ses feuilles de style, nommées XSL (XML StyleSheet), qui fournissent des règles pour transformer un document XML dans un autre format XML ou non XML (XHTML par exemple).
Des outils ont été standardisés (par le W3C) pour accéder au contenu des documents XML:
- XLink (XML
Linking Language)
Un langage (avec la syntaxe XML), qui peut insérer des ressources pour décrire des hyperliens unidirectionnels (comme ceux de HTML) ou des liens plus complexes. Xlink peut être utilisé avec XPointer. - XPath indique comment atteindre des éléments spécifiques.
- XPointer (XML
Pointer Language)
Un langage qui peut addresser des éléments sélectionnés dans la structure des documents. Il est basé sur XPath. - DOM (Document
Object Model)
Un objet utilisable notamment sur les navigateur permet d'accéder dynamiquement et changer soit le contenu, soit la structure de documents XML. Il propose une interface indépendante des plate-formes et s'applique à HTML autant qu'à XML.
Applications au-delà du stockage des données
La puissance de XML va au-dela du simple stockage de données, de nombreuses utilisations émergent:
- SVG définit des éléments graphiques pour produire des images redimensionables, et peut remplacer le format Flash.
- XUL est un ensemble de balises prédéfinies pour construire des interfaces utilisateur graphiques, il est utilisé par le navigateur Firefox.
- XAML est un format similaire pour la plateforme .NET et il s'emploie dans Silverlight, le framework d'applications Web.
- XHTML est une version de HTML compatible avec XML.
- HTML 5, un standard en cours, est fait pour étendre
HTML pour les applications Web.
Extensions pour XML
XSL (eXtensible
Stylesheet Language)
Un xsl est un ensemble de règles de transformation,
permettant de prendre en compte la structure et des éléments
et attributs choisis dans un document.
Un ensemble de règles qui transforme un document XML en
HTML est le meilleur exemple, mais on peut transformer XML en
toute chose.
La différence entre XSL et XSLT est que xsl est universel
tandis que xslt convertit un document XML uniquement en un autre
document XML.
SVG (Scalable
Vector Graphics)
Une librairie qui décrit des objets graphiques, qui
peut être interfacée dynamiquement avec JavaScript
pour faire des animations. Un document svg peut être affiché
comme une page web avec les versions les plus récentes
des navigateurs (Firefox 1.5 par exemple), avec une extension
autrement.
SMIL (Synchronized Multimedia Integration Language)
Langage descriptif multimédia combinant des données de formes diverses, permettant des présentations et des animations.
XQuery (XML Query)
Spécification pour utiliser des documents XML comme
des bases de données.
XHTML (XML HTML 4.0)
Réécriture de HTML selon les règles XML,
avec un DTD associé.
XForms (XML Forms)
Définition de formulaires.
RDF
(Ressource Definition Format)
Standard de description de données hétérogène,
incluant des images. Cela ajoute une description structurelle
grobale à la description des éléments.
RSS
C'est un ensemble de formats de syndication, RSS 1.0 étant écrit en RDF, et RSS 2.0 en XML ainsi qu'Atom.
Outils et références
Parseurs XML
- Xerces, le parseur XML sur le site Apache. Implémente DOM, Sax et schéma. (C++, Java).
Autres outils
Sur le site Apache vous pouvez télécharger ces outils:
- Batik, le visualiseur et convertisseur Svg (Java).
- Xalan implémente xslt et XPath (C++, Java).
- Forrest convertit XML en HTML ou PDF, pour la création de sites.
- Cocoon est un serveur XML .(Java).
- XIndice à pour but de construire des bases de données XML. (Java).
Sur d'autres sites
- Jaxen est un processeur Xpath. (Java).
- Lagoon. Décrit la carte de votre site en XML, les fichiers XML ou HTML, construisent le site avec Lagoon et envoient le résultat HTML sur le serveur. (Java).
- Majix. Convertit un fichier RTF en XML.
- LibXML. Librairie de parseur en mode arborescence.
- Expat. Librairie de parseur évènementiel.
- XCheck. Un script pour vérifier qu'un document XML est bien formé, à télécharger
Spécification W3C
- Spécifications. Toutes les traductions en français des recommandations XML du W3C.
- XPath. Langage de recherche sur les documents XML.
- XQL. Langage de requêtes sur XML.
- SVG. Remplace Flash pour les sites graphiques.
Plus d' infos sur XML
- Dmoz.org. Pour trouver d'autres références.