XML hérite des qualités de SGML (et utilise sa syntaxe):
C'est une norme très importante. Avec ses qualités de balisage universel et de description facile des documents structurés, le XML est rapidement adopté. Il permet de créer des pages Internet sophistiquées (comprises par les navigateurs modernes).
Mais son principal intérêt réside désormais dans les échanges entre machines et/ou programmes, même étrangers entre eux :
La structure des fichiers XML est décrite,
Microsoft Internet Explorer 5 et 6 sont compatibles avec XML (ils peuvent afficher des fichiers XML à la place de fichiers HTML, dans certaines limites). Microsoft fourni gratuitement un parser XML: MSXML.
IE 5 disposait de MSXML 2.0 qui n'était que partiellement compatible.
IE 6 intègre MSMXL 3.0, supposé entièrement conforme aux normes XSLT, XPath et DOM1 du W3C. Il est aussi entièrement compatible avec CSS1.
MSXML 4.0 est un parser externe qui n'est pas intégrable à IE et doit être invoqué par programmation. Cette version supporte XML Schema. MSXML 4.0 est disponible dans Microsoft XML Core Services (MSXML) 4.0.
XML est le format idéal pour la constitution, le transport, l'échange et la présentation de contenu. Toutefois, si XML est bien adapté pour décrire les structures des documents (champs de longueur extrêmement variable, combinatoire structurelle infinie...), les SGBD traditionnels, eux, ne le sont pas (longueur de champ limité, position des champs prédéterminée). Faire entrer un document XML dans une base de données est donc un sacré problème, pour lequel il existe trois types de solutions :
On peut en distinguer trois groupes :
DOM (Document Object Model) est une interface de programmation (API), indépendante des langages et des plates-formes, permettant aux programmes et aux scripts d'accéder et de mettre à jour dynamiquement le contenu, mais aussi la structure et la présentation des documents HTML et XML.
La structure type du document est chargée en mémoire sous forme d'une hiérarchie d'objets et il est ainsi possible de naviguer dedans. La structure type d'un document pouvant être très complexe, la mémoire requise et la puissance de calcul nécessaires sont importantes. C'est une norme officielle du W3C.
SAX (Simple API for XML) est aussi une interface de programmation, à l'origine pour Java mais qui ne charge pas la structure en mémoire. L'application hôte reçoit les informations sous forme d'événements (events).
D'un maniement moins complexe que DOM elle est aussi d'une meilleure performance, surtout sur les documents volumineux. De fait, elle n'est conceptuellement pas aussi puissante que DOM.
L'organisation normative pour XML et DOM est le W3C.
Consultez aussi notre Lettre d'Octobre 2003, sur XML dans l'entreprise.