Le langage XML (eXtensible Markup Language) s'est immiscé dans quasiment tous les domaines du développement d'applications. Il sert, par exemple, pour les propriétés des logiciels (menus, langues, etc.) ou comme support pour le transport de données entre différents serveurs Web via un protocole de transmission comme SOAP (Simple Object Access Protocol) ou XML-RPC (XML-Remote Procedure Calling).
Les plateformes Java se devaient donc d'être en mesure d'exploiter le langage XML et son corollaire :
Java s'appuie sur les bibliothèques fournies par le module JAXP (Java API XML Processing) pour le traitement de données XML.
La version 1.5 du JDK intègre JAXP spécialisé dans le traitement de données XML. Outre, le support DOM, SAX et XSLT, la plateforme Java supporte désormais le langage XPath, la validation des documents XML, les espaces de noms, les inclusions XML et comprend d'autres API suivant les spécifications DOM 3, comme DOM Events et DOM Load and Save.
JAXP dispose de plusieurs paquetages concourrant à manipuler des informations XML. Les paquetages principaux se situent sous le paquetage javax.xml contenant notamment les analyseurs SAX (Simple API XML) et DOM (Document Object Model) et les paquetages org.xml.sax et org.w3c.dom.
Il existe deux possibilités pour manipuler des documents XML :
Le modèle d'objet de document a été conçu par le W3C. Il existe trois niveaux de spécification énonçant les règles que doivent suivre les différentes implémentations, telles que celle de Java ou d'autres langages comme PHP, C#, etc.
Simple API XML fur originellement un composant Java qui est devenu de facto une norme utilisée par de nombreux autres plateformes, y compris celles de Microsoft. Actuellement, SAX a atteint la version 2, subissant régulièrement des révisions et extensions destinées à améliorer son fonctionnement.
Un aspect important différencie radicalement ces deux moyens de traiter des documents XML.
En outre, la modification et la sauvegarde de tout ou d'une partie d'un document XML n'est pas possible directement avec SAX. Cette API permet plutôt de consulter des ressources XML lourdes avec des performances acceptables au niveau du temps de traitement et d'encombrement de la mémoire. Par exemple, la consultation d'un fichier XML pour un affichage de ses données dans des pages HTML se fera par le truchement de SAX. En clair, si un document XML ne nécessite pas de modification, il est préférable d'utiliser SAX. De même, si le document XML est lourd, SAX doit être la priorité même s'il faut le modifier à certains endroits. Une implémentation spécifique des gestionnaires d'événements SAX peut être réalisée à cet effet.
DOM ne souffre guère de cette limitation puisque toutes les données sont en mémoire. En conséquence, il suffit de rechercher un noeud à modifier par son nom ou par son identificateur (ID) s'il en possède un ou encore par son chemin, pour consulter sa valeur et éventuellement la modifier. La structure et le style d'un document XML ainsi que les noeuds qui le composent peuvent être accédés, modifiés et mis-à-jour facilement en utilisant les composants de l'architecture DOM.
Sommaire