eXtensible Markup Language : langage de balises extensible.

Besoin

Définir un langage standard de description de données :

  • structuré (conforme à une grammaire)
  • portable (et donc interopérable)
  • facilement compréhensible (lisible et modifiable par un humain)

Analyse

Une instance (document) XML peut référencer sa grammaire (définissant sa structure). On peut ainsi vérifier qu'un document XML est valide, c'est à dire conforme à cette grammaire.

Conception

Une instance XML est constituée d'un ensemble de balises définies dans une grammaire XML est définissable via :

Version 1 Commentaire
Release 0 1 2
Technologie Technologie FixPack
Déclarations Type de document Interne DOCTYPE élémentRacine [déclarationsEléments]
Externe DOCTYPE élémentRacine SYSTEM "nomFichier"
JAXP RI Apache Crimson Xerces-J 2.0.1 Implémentation par défaut
DOM Package org.w3c.dom
Propriété système pour paramétrage javax.xml.parsers.DocumentBuilderFactory
XSLT Package javax.xml.transform
Propriété système pour paramétrage javax.xml.transform.TransformerFactory
JAXP RI Interpréteur Xalan-J 2.3.1_01
Compilateur XSLTC Compile une feuille de style XSL en du code Java (translet)

Implémentation

Des API pour XML sont :

  • DOM permettant de représenter des données XML de manière programmative (objets)
  • SAX permettant de lire un fichier XML selon un modèle événementiel
  • XSLT, permettant la transformation de données XML en d'autres format
  • Xpath

Java propose un ensemble d'API optionelles au travers de son Java XML Pack.

Celui-ci comprend :

  • JAXP, permettant de lire des fichiers XML avec le parseur de votre choix (Xerces, etc.)
  • JAXB permettant de construire des objets Java à partir de données XML, et vice versa
  • JAXM (Java API for XML Messaging) spécifiant le format de messages XML envoyés via JMS
  • JAX-RPC permettant les appels d'objets distants via XML
  • SAAJ (SOAP with Attachments API for Java)
  • JAXR (Java API for XML Registries)

D'autres API Java sont liées à XML car relatives aux services Web.

Exemples

Un exemple de document XML défini par une DTD externe est :

<?xml version="1.0"?>
<!DOCTYPE voiture SYSTEM "voiture.dtd">

<voiture couleur="rouge" porte="3">
<marque>Peugeot</marque>
<modele>307</modele>
</voiture>

Des exemples de grammaires XML sont :

Des exemples de parser XML sont :

Notes

  • Ne définit aucun format de présentation
  • On peut faire correspondre des balises XML a des objets. Les sous-balises devient alors des attributs, des relations. Voir DOM et XML-Binding
  • XSL définit un standard de transformation d'un document XML (en un autre document XML, HTML)
  • Sous-ensemble de SGML (défini par des DTD) adapté aux contraintes du Web
  • supporté par les navigateurs suivants :

Limitations

  • XML seul ne définit pas d'intéropérabilité de services. Voir le B2B et les Web services
  • Verbeux et variable donc peu performant à transmettre (lire/écrire)

Voir