Дополнения языка XPointer
Исторически сложилось так, что язык XPath был создан на два года раньше языка XPoinler. Поэтому создатели языка XPointer внесли в него дополнения, расширившие конструкции языка XPath.
Во-первых, кроме узлов дерева, язык XPointer рассматривает точки (points) и области (ranges).
Точкой язык XPointer называет позицию между символами документа XML.
Область занимает пространство между двумя точками: начальной точкой и конечной точкой. Начальная и конечная точки могут располагаться в любом месте документа XML, следовательно, область может пересекать элементы документа XML, не совпадая с узлами дерева. Разумеется, начальная точка должна встретиться в документе раньше конечной точки.
Точки, области и узлы вместе образуют местоположение. В результате всякого поиска отыскивается некоторое местоположение или набор местоположений.
Во-вторых, в схему xpointer() введены новые функции range(), stringrange(), range-to(), range-inside (), here(), origin (), start-point(), end-point(), работающие с точками и областями.
Эти дополнения позволяют гораздо точнее адресовать различные части документа, вплоть до отдельного символа.
Все действия с точками и областями выполняются с помощью перечисленных функций.