Différence entre XPath, XQuery et XPointer
Quelle est la différence entre XPath
, XQuery
et XPointer
? Autant que je sache, XQuery
est une version étendue de XPath
. J'ai quelques connaissances de base de XPath
. Est-il une fonctionnalité disponible dans XPath
, qui n'est pas dans XQuery
? Hier, j'ai entendu un nouveau mot, XPointer
. Je suis confus. Quelle langue est utilisée dans quel but?
4 réponses
Wikipedia est un bon point de départ pour des questions comme celle-ci. Généralement, XPath est un langage utilisé pour identifier succinctement les nœuds XML exacts dans un DOM. XQuery est un sur-Ensemble de XPath qui fournit également FLWOR syntaxe, qui est de type SQL. Enfin, XPointer inclut XPath, mais fournit également un schéma d'adressage basé sur la position plus simple.
Bien sûr, vous pouvez toujours lire les spécifications du W3C pour plus de détails.
Bien que la réponse de Matthew donne une bonne première impression, il y a beaucoup plus à dire sur les normes mentionnées, et il y en a beaucoup plus qui sont liés. Il y a un bel article du magazine XML Holland user group mis à disposition en ligne, qui en dit long sur L'histoire de XQuery, et prend différentes de ces normes en perspective. La première partie est tout à fait pertinente ici:
XQuery signifie langage de requête XML . Cela dit déjà le essence. C'est un langage pour sélectionner des sous-ensembles et des sous-structures à partir d'un grand ensemble de fichiers XML. Le résultat peut être manipulé en quelque chose qui convient à être utilisé, par exemple, dans un processus ultérieur, ou à afficher dans un navigateur web. XPath est beaucoup utilisé dans XQuery.
Toutes les normes XML ont leur propre portée. Je vais en nommer quelques-uns. XSLT {[5] } est un langage permettant de transformer XML en un autre format. XPointer est une extension de XPath pour adresser les nœuds plus avec précision dans des fragments XML ou même des sous-parties de nœuds. XLink {[5] } est une norme pour définir les relations. XInclude est un standard pour composer plusieurs morceaux de XML en un seul en utilisant par exemple des relations XLink. Et XProc est une norme avec laquelle on peut décrire comment les documents XML doivent être traités pour obtenir un résultat final souhaité. Il s'exprime en XML et décrit le processus étape par étape, également appelé Pipelines XML. Dans XProc vous utilisez un.o. XQuery, XSLT, et XInclude langages (et donc indirectement XPath, XPointer et XLink ainsi) pour exprimer ce qui doit être fait exactement dans chaque étape.
Toutes ces normes sont liées ensemble. Ils sont liés et dépendent les uns des autres. Le chevauchement entre certaines des normes XML mentionnées est assez bien résumé dans l'image suivante que vous pouvez également trouver à W3Schools:
L'article complet peut être trouvé ici: http://grtjn.blogspot.nl/2011/10/xquery-novelties-revisited.html
HTH!
Eh bien, je pense que XQuery vaut la peine d'être distingué. XPath et XPointer sont presque les mêmes et sont utilisés pour la sélection des nœuds XML. XQuery d'autre part est une extension assez importante de XPath. Par exemple, il donne la possibilité de déclarer des fonctions personnalisées. Donc, c'est plus quelque chose comme un langage de programmation, qui fonctionne nativement avec XML. Vous pouvez voir quelques exemples ici: incorporation-xquery-en-java
Cordialement
XPath est intentionnellement limité à la lecture des nœuds existants.
En tant que XSLT, XQuery peut créer des nœuds. Il peut également mettre à jour les nœuds (avec la fonction de mise à jour XQuery).
Du point de vue de mon implémenteur XQuery; -)