Concernant XML, l'évolution dans la continuité a primé pour la nouvelle version de la plate-forme de développement de Sun.
Par Hervé AGNOUX, de la SARL diaam informatique (http://www.diaam-informatique.com/).
21 septembre 2004
En enrichissant le classique JAXP (DOM, SAX et XSLT), ce nouveau JDK intègre de plus le support de XPath, et la validation d'un document indépendamment de son analyse syntaxique.
Le JAXP de Java 5.0 (successeur de Java 1.4) obéit à la spécification 1.3, et à l'implémentation de référence (RI) 1.3.0. Ses éléments ont été défini par le JSR 206, dont pratiquement tous les membres ont approuvé les résultats ; IBM, tout en votant « oui », a simplement posé une réserve quant à la licence utilisée.
Il faut toutefois souligner que, si les références externes ont peu évolué, leur mise en oeuvre a été complètement changée, passant d'une base Crimson dans le Java 1.4 à une base Xerces dans ce Java 5.0 ; Crimson et Xerces sont deux produits de la fondation Apache.
Vous pourrez consulter la liste des composants utilisés, et quelques précisions pour les mises à jour, dans les notes de version présentes dans la documentation de Java 5.0.
On pourra regretter une sorte de pause dans les développements de XML pour les environnements graphiques. Dans les versions précédentes de Java, l'exportation des objets sous forme XML (avec XMLEncoder et XMLDecoder) avait été réalisé dans cette perspective, pour disposer d'enregistrements des objets graphiques capables de perdurer à travers les évolutions de configuration ou de version.
Le passage de DOM 2. vers DOM 3 est une des avancées majeures, tant il multiplie les possibilités de manipulation de documents. L'interface DOM 3 comprend XML 1.1 et les espaces de noms 1.1. Les modules pour HTML et CSS, DOM Events, DOM Load and Save, et Bootstrap sont présents.
Si les fonctions au sujet de XSLT restent identiques, leur mise en oeuvre profite des perfectionnements de la technique du compilateur de feuille de style (XSLTC), qui consiste à transformer les feuilles de style en byte-code Java, favorisant une optimisation poussée du processus.
DOM et SAX sont maintenant capables d'interpréter les éléments XInclude (insertion d'un document XML dans un autre). Ils sont aussi capables de travailler à l'aide de grammaires compilées, ce qui améliore les performances lorsqu'il est nécessaire de valider de nombreux documents vis-à-vis du même schéma. Avec SAX, ces grammaires compilées peuvent même faciliter le traitement des documents, grâce au système du ValidatorHandler, dont l'objectif est d'enrichir les événements présentés à l'applicatif des informations contenues dans la grammaire (par exemple des valeurs implicites).
L'absence de XPath dans le JDK 1.4 relevait de la curiosité technique, puisque, le support de XSLT étant présent, il y avait forcément quelque part les fonctions nécessaires aux requêtes XPath ; à partir de Java 5.0, elles sont clairement identifiées et disponibles (paquetage javax.xml.xpath).
La validation d'un document devient une fonction à part entière (paquetage javax.xml.validation). Auparavant, elle était intégrée à la phase de lecture d'un document. Maintenant il sera possible de valider un document à la demande, selon le W3C XML Schéma.
De plus, ce JDK contient de nombreux éléments pour mieux organiser les systèmes informatiques développés ; en particulier, la technique de la « Factory » (la fabrique) qui consiste à utiliser un objet pour en construire un autre, a été reprise. Elle permet de mieux configurer la création des objets, tout en préparant la place aux améliorations non encore écrites.
Par exemple, la validation d'un document par le W3C XML Schéma s'obtient en transmettant à une factory un identificateur pour ce genre de schéma. Un autre identificateur, déjà inclus dans le JDK, permet de repérer Relax NG. Ainsi, un module externe qui voudrait fournir la validation de documents par Relax NG pourra facilement s'intégrer à un système existant.
Ainsi, en offrant des briques solides aux développements XML, cette plate-forme pourra continuer de servir de base aux projets novateurs, comme aux applications de nature commerciales.
Autres articles :
Et sur d'autres sites :
|