XML est un format de communication et de stockage universel, utilisable sur tous les systèmes d’exploitation et manipulable avec tous les langages. De ce fait, Java se doit d’apporter un bon support d’XML.
Il faut avouer que, pendant plusieurs années, le support d’XML par Java était avant tout le fait de projets indépendants, comme Apache Xerces ou Xalan, et que la mise en œuvre des services Web s’apparentait à un parcours du combattant. En tout cas, les aspects pratiques étaient souvent exclus du langage Java, ce qui le rendait moins séduisant, pour XML et les Web Services, que son concurrent .NET.
Avec les APIs JAX (Java API for XML), Sun a repris la main sur ces aspects et réunifie les techniques de manipulation XML avec Java.
Principales APIs JAX
JAXP
JAXP est l’acronyme pour Java API for XML Processing. JAXP regroupe les techniques de validation et de parcours (parsing) de documents XML :
-
DOM : Document Object Model
-
SAX : Simple API for XML
-
StAX : Streaming API for XML, qui s’appuie sur des principes similaires à SAX
Les parties DOM et SAX de JAXP sont inclus dans le JDK depuis la version 1.4. StAX n’y est inclus que depuis la version 6.
JAXB
JAXB signifie Java Architecture for XML Binding. Il permet de mettre en place des transformations en objets Java et documents XML en paramétrant les correspondances à l’aide d’annotations.
Le site de Sun publie un article intéressant sur le sujet.
Les classes et interfaces de cette API sont dans le package javax.xml.bind.
JAX-WS
JAX-WS est la Java API for XML Web Services. Il remplace JAX-RPC pour la mise en oeuvre de services Web.
La principale avancée de JAX-WS est la possibilité d’utiliser les annotations pour la déclaration et la configuration des services, ce qui permet à Java de rattraper un retard de plusieurs années par rapport à son concurrent .NET.
Les classes et interfaces de cette API sont dans le package javax.xml.ws.
Java Web Services Metadata (JSR 181) est dans le package javax.jws.
JAX-RS
JAX pour services REST.
Autres APIs XML
SAAJ (SOAP with Attachments API for Java) est dans le package javax.xml.soap.
WSIT (Web Services Interoperability Technologies) est une sur-couche à JAX-WS.
XWS-Security = XML and Web Services Security
Anciennes API
JAX-RPC = Java API for XML-based RPC, est remplacé par JAX-WS
JAXM = Java API for XML Messaging
JAXR = Java API for XML Registries