XML/JAX

Cette page a été rédigée il y a fort fort longtemps, et n'a pas tellement été mise à jour.

 

Vous savez, moi je ne crois pas qu'il y ait de bonne ou de mauvaise page. Moi, si je devais résumer mon wiki aujourd'hui avec vous, je dirais que c'est d'abord des rencontres. Des gens qui m'ont tendu la main, peut-être à un moment où je ne pouvais pas, où j'étais seul chez moi. Et c'est assez curieux de se dire que les hasards, les rencontres forgent une destinée... Parce que quand on a le goût de la chose, quand on a le goût de la chose bien faite, le beau geste, parfois on ne trouve pas l'interlocuteur en face je dirais, le miroir qui vous aide à avancer. Alors ça n'est pas mon cas, comme je disais là, puisque moi au contraire, j'ai pu ; et je dis merci au wiki, je lui dis merci, je chante le wiki, je danse le wiki... je ne suis qu'amour ! Et finalement, quand des gens me disent « Mais comment fais-tu pour avoir cette humanité ? », je leur réponds très simplement que c'est ce goût de l'amour, ce goût donc qui m'a poussé aujourd'hui à entreprendre une construction logicielle... mais demain qui sait ? Peut-être simplement à me mettre au service de la communauté, à faire le don, le don de soi.

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