From: redacteurs@xmlfr.org
Date: 08/04/2004 - 14:03
deviennent recommandations
X-Mailer: FormatedTextOutputHandler
«DOM Level 3 Core» et «DOM Level 3 Load and Save» deviennent
recommandations
Ne en 1997, le groupe de travail DOM termine son travail de
specification des API permettant la manipulation de documents XML et
HTML . Le niveau 3 enrichit les precedentes versions pour offrir un
support complet de XML 1.0 et des espaces de noms. Il offre egalement
la lecture/sauvegarde de documents XML et la possibilite de melanger
les implementations sous-jacentes.
Frederic Laurent , opikanoba.org ( fl@opikanoba.org ).
---------------
Retrouvez cet article en ligne
(http://xmlfr.org/actualites/tech/040408-0001).
Donnez votre avis !
mailto:xml-tech@xmlfr.org?subject=Re:%20INFO%20:%20«DOM%20Level%203%20Core»%20et%20«DOM%20Level%203%20Load%20and%20Save»%20deviennent%20recommandations
---------------
Le groupe de travail DOM (Document Object Model) annonce deux nouvelles
recommandations : «DOM Level 3 Core [1] » et «DOM Level 3 Load and Save
[2] ». Au programme, un document «Core» plus complet, des evolutions
dans les interfaces et les exceptions existantes, de nouvelles
fonctionnalites, des nouvelles interfaces et enfin la possibilite
d'utiliser une API standard pour enregistrer un document XML .
Un nouveau schema d'architecture [3] generale des differents concepts
relatifs a XML permet d'avoir une meilleure comprehension des API et de
leurs dependances. La specification ajoute un traitement plus complet
des URI (introduction des «DOM URI [4] », support des «base URI [5] »
definies dans l'infoset) et offre une correspondance avec l'XML
Information Set [6] (decrite dans une nouvelle annexe : Appendix C:
Infoset Mapping [7] ). Face au nombre grandissant d'extensions de l'
API DOM pour des applications XML specifiques ( MathML ou SVG par
exemple) et au manque de mecanisme approprie dans DOM Niveau 2 pour les
supporter, DOM3 offre un moyen de melanger des implementations
partielles specifiques de DOM et d'interroger l'implementation sur son
support d'une fonctionnalite donnee. En complement, DOM3 introduit le
mecanisme de «bootstrapping [8] » qui permet a l'application de trouver
l'implementation adequate selon les fonctionnalites desirees. Une
interface de configuration de l'implementation est egalement introduite
et permet de modifier le comportement de l'analyseur syntaxique, de
l'exportation de document dans un flux («serialisation») ou de la
fonction de normalisation du document (Appendix D: Configuration
Settings [9] ). Enfin, le support des espaces de noms a ete ameliore,
tant au niveau concept que modifications d' API . A ce sujet, la
specification propose une annexe complete (Appendix B : Namespaces
Algorithms [10] ) sur la normalisation et la recherche de prefixe.
Pour supporter tous ces changements, la plupart des interfaces
classiques (Attr,Document,Element, Node,Text,...) ont ete modifiees ou
completees, et, deux nouveaux types [11] , dix nouvelles interfaces
[12] et un objet [13] apparaissent. On notera egalement d'interessants
ajouts dans les API , comme, par exemple, la possibilite de traiter le
texte d'un noeud de maniere globale (wholeText [14] ), evitant ainsi,
pour le developpeur, la reconstitution du texte d'un element par le
classique parcours des noeuds texte adjacents. L'apparition de donnees
utilisateur semble egalement interessante. Elle permet d'associer
(setUserData [15] /getUserData [16] ) a tout noeud des couples (cle,
donnees). Ainsi, il est possible d'enrichir les noeuds avec tout type
d'information complementaire.
La specification «DOM Level 3 Load and Save», publiee tardivement,
vient combler un manque important dans le traitement des documents DOM
. Il s'agit en effet de definir des moyens standard de lire, de sauver
et de filtrer des documents XML en passant par le modele DOM . Il doit
egalement prendre en charge la normalisation complete [17] des
documents XML , assurant ainsi le support de XML 1.1 .
En tout, seize nouvelles interfaces et une exception sont publiees,
toutes (sauf une) prefixees par LS . Les travaux sur JAXP [18] et sur
SAX2 [19] ont devance cette recommandation, et l'ont donc inspiree. Les
programmeurs Java pouvaient faire le choix de JAXP pour la lecture des
documents XML . Ils s'assuraient ainsi d'une independance vis-a-vis de
l'implementation, puisque seules des interfaces sont manipulables dans
l' API de Sun . Desormais, ils possedent une autre alternative pour
utiliser une voie standard pour lire du XML : les interfaces du W3C .
Xerces [20] , l'analyseur syntaxique de reference de JAXP 1.3 [21]
fournit les deux facons [22] de lire un flux XML . Cependant, si JAXP
apportait de l'independance pour la lecture de document, la sauvegarde
n'etait pas logee a la meme enseigne. La seule facon de faire une
sauvegarde standard et independance de l'implementation est de passer
par une transformation XSLT identite [23] , ce qui n'est pas vraiment
satisfaisant. Toutes les API fournissent bien sur le service de
sauvegarde d'un document DOM , mais a chaque implementation, une facon
differente. Desormais, cette specification stipule comme utiliser les
interfaces pour abstraire le code et rester independant. ( Xerces
fournit egalement la comparaison pour la sauvegarde [24] ). Le 07
novembre 2003, le W3C faisait un appel a implementation [25] . Une
liste des implementations [26] se conformant a cette recommandation,
peu etoffee a ce jour, est maintenue par le W3C . Rappelons que les API
sont definies a l'aide du langage IDL et sont donc independantes de
tout langage de programmation.
Enfin, la collection de tests DOM [27] est mise a jour et inclut les
tests des specifications DOM3 «Core», «Load and Save» et validation.
Autres articles :
- Quatre nouvelles recommandations XML au W3C [28]
- Traduction de XML Infoset [29]
- Nouvelles versions de travail DOM [30]
Sur d'autres sites :
- Discover key features of DOM Level 3 Core Partie 1 [31] et Partie 2
[32]
- Tip: Basics of bootstrapping with DOM Partie 1 [33] , Partie 2 [34]
, Partie 3 [35]
Copyright 2004 , Frederic Laurent .
---------------------------------------------------------
References:
[1] http://www.w3.org/TR/DOM-Level-3-Core
[2] http://www.w3.org/TR/DOM-Level-3-LS/
[3]
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/introduction.html#DOMArchitecture
[4] http://www.w3.org/TR/DOM-Level-3-Core/core.html#domURIs
[5]
http://www.w3.org/TR/DOM-Level-3-Core/core.html#baseURIs-Considerations
[6] http://www.w3.org/TR/xml-infoset
[7]
http://www.w3.org/TR/DOM-Level-3-Core/infoset-mapping.html#InfosetMapping
[8] http://www.w3.org/TR/DOM-Level-3-Core/core.html#Bootstrap
[9]
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/configuration-settings.html#Parameters
[10]
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/namespaces-algorithms.html#Algorithms
[11]
http://www.w3.org/TR/DOM-Level-3-Core/changes.html#DOMLevel3Addons-types
[12]
http://www.w3.org/TR/DOM-Level-3-Core/changes.html#DOMLevel3Addons-interfaces
[13]
http://www.w3.org/TR/DOM-Level-3-Core/changes.html#DOMLevel3Addons-objectss
[14] http://www.w3.org/TR/DOM-Level-3-Core/core.html#Text3-wholeText
[15] http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-setUserData
[16] http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-getUserData
[17] http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm
[18] http://java.sun.com/xml/jaxp/
[19] http://www.saxproject.org/
[20] http://xml.apache.org/xerces2-j/index.html
[21] http://java.sun.com/xml/jaxp/index.jsp
[22] http://xml.apache.org/xerces2-j/faq-dom.html#faq-2
[23] http://www.developer.com/java/ent/article.php/10933_3113351_2
[24] http://xml.apache.org/xerces2-j/faq-dom.html#faq-3
[25] http://lists.w3.org/Archives/Public/www-dom/2003OctDec/0046.html
[26] http://www.w3.org/2003/10/DOM-Level-3-LS-implementations.html
[27] http://www.w3.org/DOM/Test/
[28] http://xmlfr.org/actualites/tech/040206-0001
[29] http://xmlfr.org/actualites/tech/020822-0001
[30] http://xmlfr.org/actualites/tech/020118-0002
[31] http://www-106.ibm.com/developerworks/xml/library/x-keydom.html
[32] http://www-106.ibm.com/developerworks/xml/library/x-keydom2.html
[33] http://www-106.ibm.com/developerworks/xml/library/x-tipboot1.html
[34] http://www-106.ibm.com/developerworks/xml/library/x-tipboot2.html
[35] http://www-106.ibm.com/developerworks/xml/library/x-tipboot3.html
---------------------------------------------------------
Mail genere par FormatedTextOutputHandler pour XT
(http://4xt.org/downloads/examples/outputhandlers/formatedtext/).
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|