Three specifications from the W3C XML Linking Working Group have been released as W3C Recommendations, signifying public review and approval by W3C as stable, normative documents designed to enhance the functionality and interoperability of the Web. XPointer Framework, XPointer element() Scheme, and XPointer xmlns() Scheme are "intended to address a core subset of the original XPointer requirements, and to serve as all or a foundational part of a fragment identifier syntax for the XML Media types." The XPointer Framework specification "defines the XML Pointer Language (XPointer) Framework, an extensible system for XML addressing that underlies additional XPointer scheme specifications. The framework is intended to be used as a basis for fragment identifiers for any resource whose Internet media type is one of text/xml, application/xml, text/xml-external-parsed-entity, or application/xml-external-parsed-entity. Other XML-based media types are also encouraged to use this framework in defining their own fragment identifier languages. The XPointer element() scheme is intended to be used with the XPointer Framework to allow basic addressing of XML elements. The XPointer xmlns() scheme is intended to be used with the XPointer Framework to allow correct interpretation of namespace prefixes in pointers, for instance, namespace-qualified scheme names and namespace-qualified element or attribute names appearing within scheme data." The XPointer xpointer() Scheme specification is still a W3C Working Draft.
Bibliographic Information
XPointer Framework. W3C Recommendation 25-March-2003. Edited by Paul Grosso (Arbortext, Inc.), Eve Maler (Sun Microsystems), Jonathan Marsh (Microsoft), and Norman Walsh (Sun Microsystems). Version URL: http://www.w3.org/TR/2003/REC-xptr-framework-20030325/. Latest version URL: http://www.w3.org/TR/xptr-framework/. Previous version URL: http://www.w3.org/TR/2002/PR-xptr-framework-20021113/. See also the Errata.
XPointer element() Scheme. W3C Recommendation 25-March-2003. Edited by Paul Grosso (Arbortext, Inc.), Eve Maler (Sun Microsystems), Jonathan Marsh (Microsoft), and Norman Walsh (Sun Microsystems). Version URL: http://www.w3.org/TR/2003/REC-xptr-element-20030325/. Latest version URL: http://www.w3.org/TR/xptr-element/. Previous version: http://www.w3.org/TR/2002/PR-xptr-element-20021113/. See also the Errata.
XPointer xmlns() Scheme. W3C Recommendation 25-March-2003. Edited by Steven J. DeRose, Ron Daniel Jr., Eve Maler (Sun Microsystems), and Jonathan Marsh (Microsoft). Version URL: http://www.w3.org/TR/2003/REC-xptr-xmlns-20030325/. Latest version URL: http://www.w3.org/TR/xptr-xmlns/. Previous version URL: http://www.w3.org/TR/2002/PR-xptr-xmlns-20021113/. Also in XML format.
From the W3C XPointer Announcement
Excerpted/adapted from the W3C announcement:
"The XPointer Framework provides a lightweight extensible model for identifying parts of XML documents. The XPointer element() scheme allows the user to point to specific elements in XML documents and data, while the XPointer xmlns() scheme brings the power of XML Namespaces to the XPointer Framework, giving a way to avoid name collisions between schemes and provide namespace binding information for use within other schemes. Advancement of these documents to Recommendation indicates that these W3C-developed specifications are stable, contribute to Web interoperability, and have been reviewed by the W3C Membership, who favor their adoption by the industry."
Limitations of 'ID' mechanism: "When XML 1.0 was first issued as a W3C Recommendation in 1998, it included a feature called 'id,' which gave authors a method for identifying a specific part of a XML document in conjunction with anchors and other xml elements. However, this meant that parts of a document could only be formally identified by the author of the document, not by other users who might want to reference a particular section or fragment without an id. The W3C XML Linking Working Group, along with the W3C XML Core Working Group, began working on ways to expand the power of linking to and identifying XML fragments. Their combined results include the W3C XML Linking Recommendation, the W3C XML Base Recommendation, and now, XPointer."
XPointer Framework's Expanded Pointing and Linking: "The XPointer Framework consists of a set of basic set of syntax rules for identifying parts or fragments of XML. It provides the mechanism essential for more full and rich implementation of XML Linking. One can still use ids as pointers into XML documents and data, but the XPointer Framework also permits new XPointer schemes for identifying XML fragments. The rules for how these XPointers are created are consistent with XML syntax. The XPointer Framework also lives up to the 'Extensible' in XML, as it allows users to create and reference their own schemes."
XPointer element() Scheme Exploits XML Document Structure: "The XPointer element() scheme allows pointers to be made from some of the most common components of XML documents and data -- namely elements. The element scheme allows for both the use of ids and the use of a list of 'pointer-parts' -- numerical and text expressions which guides a software processor to a precise XML fragment."
XML Namespace Scheme for XPointer Helps Avoid Name Clashes: "The Namespaces in XML Recommendation helped developers and applications identify XML Languages and make them easier to combine, eliminating both conflict and ambiguity. The XPointer xmlns() scheme serves the same purpose within XPointer. As XPointer schemes are independently developed, the use of the XPointer xmlns() scheme distinguishes one scheme from another in a definitive manner. Even if the same name is used in two or more XPointer schemes, namespaces enable a processor to tell the difference, and process the XPointer correctly. The XPointer xmlns() scheme also makes XPointers to be self-contained, even if they involve prefixed names which require namespace declarations for their interpretation."
About the XML Pointer Language (XPointer)
"XPointer has been split into a framework for specifying location schemes, and three schemes: element(), xmlns() and xpointer(). The framework and the first two schemes form the XPointer Recommendation, and provide a minimal inventory of mechanisms."
"The XPointer xpointer() scheme is intended to be used with the XPointer Framework to provide a high level of functionality for addressing portions of XML documents. It is based on XPath, and adds the ability to address strings, points, and ranges in accordance with definitions provided in DOM 2: Range. This scheme supports addressing into the internal structures of XML documents and external parsed entities. It allows for examination of a document's hierarchical structure and choice of portions based on various properties, such as element types, attribute values, character content, and relative position. In particular, it provides for specific reference to elements, character strings, and other XML information, whether or not they bear an explicit ID attribute."
"The xpointer() scheme is built on top of the XML Path Language, which is a joint expression language also underlying the XSL Transformations (XSLT) language. The xpointer() scheme's extensions to XPath add the ability to identify locations that are not single, whole elements (such as those corresponding to typical selections and selection points in some user interfaces), and to combine string matching with the other location methods provided."
W3C Recommendation Status
Each of the linking specifications has been published as a "Recommendation (REC) of the W3C. It has been reviewed by W3C Members and other interested parties and has been endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web."
Principal references:
- Announcement 2003-03-25: "World Wide Web Consortium Issues XPointer Recommendation. XPointer Gives Extensible Model for Identifying XML Fragments, Improving Precision of Linking."
- XPointer Framework. W3C Recommendation 25-March-2003.
- XPointer element() Scheme. W3C Recommendation 25-March-2003.
- XPointer xmlns() Scheme. W3C Recommendation 25-March-2003.
- XPointer Implementation Report
- XPointer Specification Errata
- XML XPointer Requirements. Version 1.0. W3C Note 24-Feb-1999.
- See also: XPointer xpointer() Scheme. W3C Working Draft 19-December-2002.
- W3C Linking website - W3C XML Pointer, XML Base and XML Linking
- W3C XPointer Patent Statements
- Comments: send email to the public list 'www-xml-linking-comments@w3.org', and see the archive.
- W3C XML Linking Working Group
- "XML Linking Language" - Main reference page.