Une discussion sur la liste XSL-LIST montre
comment ces deux standards s'appuient sur des modèles semblables mais différents.
Par Eric van der Vlist,
Dyomedea (vdv@dyomedea.com).
jeudi 13 avril 2000
Il n'est pas toujours facile, lorsque les groupes de travail
se multiplient et que le nombre de recommandations explose,
de coordonner les différents travaux et de préserver la
compatibilité entre les différents standards.
Au moment où le W3C publie un cahier des charges
DOM level 3 omettant de prendre en compte XPath,
une discussion sur XSL-LIST met en évidence les
différences entre les spécifications DOM et XPath.
Ces différences, sans être bloquantes, compliquent l'implémentation
des processeurs XSLT qui souhaitent utiliser
DOM et réduit les performances des
interrogations XPATH sur des arbres XML
stockés sous forme de DOM.
Mike Kay, le concepteur de SAXON,
donne une liste de différences
"qui viennent immédiatement à l'esprit"
:
- Dans Xpath, les nœuds textes sont toujours normalisés.
- Xpath ne connaît pas de nœuds entités ou CDATA.
- Pour DOM, le nom d'un nœud texte est "#text", pour Xpath il est ""
- Pour DOM, la valeur (nodeValue) de thing est "", pour Xpath, la valeur (string-value) est "thing".
- Les nœuds XPath ont une propriété "base URI".
- Pour DOM, xmlns:xyz="uri" crée un nœud attribut, pas pour Xpath.
Joe Kesselman donne une
analyse plus détaillée
reprenant partiellement la liste donnée par Mike Kay et ajoutant notamment
les points suivants :
- Les références aux entités peuvent ne pas être résolues dans le cas de DOM.
- La notion de parents/enfants est traité de manière différente par DOM et Xpath.
- DOM ne connaît pas de nœuds "namespaces".
Le problème n'est pas nouveau, il avait déjà été évoqué
sur XML-DEV l'année dernière et est abordé dans un
article en anglais sur
xml.com.
Espérons que le W3C ne restera pas insensible aux demandes
de normalisations exprimées par les utilisateurs.
Copyright 2000,
Eric van der Vlist.
|