Les X-Pointeurs (XPointers), en conjonction avec les X-Liens, permettent de cibler plus précisément une ressource quelconque dans l'arborescence d'un document XML.

Le langage XPointer est destiné à être la base d'identificateurs de fragments seulement pour les documents ayant pour types de média : text/xml ou application/xml.

Les pointeurs étendus sont des expressions utilisées dans les valeurs des attributs xlink:href des éléments liants.

Les X-Pointeurs permettent d'adresser des points précis, des intervalles ainsi que des noeuds complets à l'intérieur de documents.

Egalement, ils permettent de localiser des informations par l'itnermédiaire de chaînes de caractères de mises en correspondance.

Enfin, ils utilisent les expressions d'adressage dans des références d'URI (Uniform Resource Identifier) comme fragment d'identificateur.

L'avantage indéniable de ces pointeurs est de pouvoir cibler n'importe quel composant d'un document XML sans que celui-ci soit obligé de subir une préparation en conséquence comme ce serait le cas dans le langage HTML.

En effet, chacun des noeuds d'un document XML peut être pointé par un expression XPointer appropriée.

En fait, les pointeurs sont capables d'établir une connexion sur des noeuds, un point précis, mais aussi sur un intervalle d'un document XML.

L'expression, ci-dessous, sélectionne l'élément dont son attribut id possédant la valeur introduction. Ainsi, un noeud précis du document est atteint.

xpointer(id("introduction"))

Ce deuxième pointeur cible un point au sein de données textuelles appartenant à un élément XML.

xpointer(start-point(string-range(//*, "introduction")))

Cette troisième expression sélectionne tous les éléments possédant un attribut id dont la valeur est comprise dans l'intervalle de 1 à 10. Ici, les dix premiers chapîtres sont récupérés.

xpointer(id("chapitre1")/range-to(id("chapitre10")))