XPointer Implementations
The XPointer specification entered CR status 2000-06-07, then
had a second CR 2001-09-11. During the second
CR phase, several implementations were identified. Few, however,
implemented the whole XPointer specification. Points and Ranges,
the principal extensions beyond XPath, were rarely implemented.
In early January of 2002, when it became clear that the XPointer
specification would not move to PR, the XML Linking Working Group
revisted the specification and began to factor it into separate
documents:
- XPointer
Framework, which provides for barenames (now
known as 'shorthand pointers') and establishes the
schemes framework for extensibility.
- XPointer element()
Scheme, which provides a combination
of bare name and child sequence addressing in order to
locate elements in XML documents (but not any other
structure such as attributes, points, or ranges).
- XPointer xmlns()
Scheme,
which provides a means
for binding namespace prefixes used in XPointers to
namespace names, even if the XPointer itself is not
carried in an XML document.
- XPointer
xpointer() Scheme, which provided the more
advanced, and rarely implemented, capabilities for identifying
ranges, points, attributes, etc.
This document discusses the implementation status of the first
three specifications, which were issued as Last Call Working Drafts
on July 10, 2002.
Citations of XPointer
The documents below cite the new framework draft, the CR specification
in a way that conforms to the new drafts, or normatively specify behavior
that conforms to the new Framework draft.
- Synchronized Multimedia Integration Language (SMIL 2.0)
W3C Recommendation 07 August 2001
- SMIL 2.0 allows, but does not require, general XPointers. However, it
does use barename identifiers in the same manner as the XPointer Framework.
-
Scalable Vector Graphics (SVG) 1.0 SpecificationW3C Recommendation
04 September 2001
- SVG uses barename identifiers. It also defines its own scheme, svgView().
- XML-Signature Syntax and Processing W3C Recommendation 12 February 2002
- XML Signatures makes use of barename addressing, and recommends that
applications support predefined fragments in the xpointer() scheme.
- XML Inclusions (XInclude) Version 1.0 W3C Candidate
Recommendation 17 September 2002
- Requires support for the framework and element() scheme, and allows
support for additional schemes.
-
The XPointer xpath1() SchemeIETF Internet Draft draft-stlaurent-xpath-frag-00.txt
- This Internet Draft proposes a new XPointer scheme, xpath1(). This
shows the schemes portion of the framework being picked up and
used by people in the XML community who are not part of the Linking WG.
XPointer Software
The table below lists the implementaion reports gathered during the
CR period. The implementations in that table are for the more
complex CR specification. The columns in the table list particular
features of the specification, in order to determin how complete
the implementations were.
For the three Last-Call drafts, three columns are of particular interest.
The "Bare names" column indicates if the implementation will likely support
the Framework spec. The "Child sequences" column indicates if the implementation
will support the elements() scheme. (Note, however, that the implementations
would have to be modified slightly to detect the occurance of the 'element'
scheme name, which was not used in the CR draft.) The third column of particular
interest is 'Namespace support', which is relevant to the xmlns() scheme.
XPointer Implementations
Name |
Bare names |
Child sequences |
id() function |
Full XPath |
range-to |
string-range |
Namespace support |
In API |
In GUI |
multiple non-contiguous ranges |
XLip
(Fujitsu) |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes - sample demo app |
yes |
X2X
(Empolis) |
yes |
yes |
yes |
no |
no |
partial |
no |
no |
N/A |
N/A |
libxml
(Gnome) |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
no |
not at UI |
Amaya
(W3C) |
yes |
no |
yes |
no |
partial |
partial |
partial |
yes |
yes |
no |
4XPointer
(FourThought LLC/Python) |
yes |
yes |
yes |
yes |
no |
no |
yes |
yes |
no |
not at UI |
XT++ (XSLT)
(Gavin Nicol) |
no |
no |
no |
no |
partial |
yes |
yes |
yes |
no |
yes |
Implementation Plans
Vendors in the XML Linking Working Group were polled during a
recent teleconference (Member-only link) about their current and planned support
for the three specifications. Their statements were:
- Microsoft
- Plans to build XInclude processor including framework
and element() scheme support.
- Oracle
- Currently implementing all three specifications for product.
Beta release scheduled for January 2003.
- AOL/Netscape
- Netscape has already implemented the FIXPTR proposal, but needs
to update it to support the new syntax for the
element()
scheme name.
- Fujitsu
- Currently supports all features from last CR. Only element()
syntax of child sequences not currently supported. Currently working
to support all features.
- Others
- The implementation from Univ. Bologna will also need similar
modifications.
Ron Daniel Jr., 2002-11-07