The W3C XML Linking Working Group has released four Working Drafts relating to XPointer. W3C XPointer "supports addressing into the internal structures of XML documents, allowing for traversals of a document tree and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position." The four specifications refactor schemes presented in the earlier W3C Candidate Recommendation for XML Pointer Language (XPointer) Version 1.0. The XPointer Framework is "an extensible system for XML addressing and underlies additional schemes. Other XML-based media types are also encouraged to use this framework in defining their own fragment identifier languages. Many types of XML-processing applications need to address into the internal structures of XML-encoded resources using URI references, for example, the XML Linking Language (XLink), XML Inclusions (XInclude), the Resource Description Framework (RDF), and SOAP V1.2. The element() scheme allows basic addressing of XML elements, the xmlns() scheme is for interpreting namespace prefixes in pointers, and xpointer() scheme allows full XML addressing."
Summaries extracted from the document Introductions:
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. Many types of XML-processing applications need to address into the internal structures of XML-encoded resources using URI references, for example, the XML Linking Language [XLink], XML Inclusions [XInclude], the Resource Description Framework [RDF], and SOAP V1.2 [SOAP12]. This specification does not constrain the types of applications that utilize URI references to XML-encoded resources, nor does it constrain or dictate the behavior of those applications once they locate the desired information in those resources."
"The XPointer element() scheme is intended to be used with the XPointer Framework to allow basic addressing of XML elements... The terms pointer, pointer part, scheme, XPointer processor, application, error, failure, and namespace binding context are used in this specification as defined in the XPointer Framework specification. Note that errors defined by this specification are distinct from XPointer Framework errors. The formal grammar for the element() scheme is given using simple Extended Backus-Naur Form (EBNF) notation, as described in the XML Recommendation. This specification normatively depends on the XPointer Framework specification."
"The XPointer xmlns() scheme is intended to be used with the XPointer Framework to allow correct interpretation of namespace prefixes in pointers. The use of this scheme in a pointer part allows for successful interpretation of element and attribute names used in pointer parts to the right when those names use namespace prefixes... The formal grammar for the xmlns() scheme is given using simple Extended Backus-Naur Form (EBNF) notation, as described in the XML Recommendation. This specification normatively depends on the XPointer Framework specification."
"The XPointer xpointer() scheme is intended to be used with the XPointer Framework to provide full XML addressing functionality. 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 its internal parts 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 (XPath), which is an expression language underlying the XSL Transformations (XSLT) language. The xpointer() scheme's extensions to XPath allow it to address points and ranges as well as whole nodes, and to locate information by string matching. The xpointer() scheme does not cover addressing into the internal structures of DTDs or the XML declaration."
From the posting by John Cowan:
The framework document deals with bare identifiers (which can be DTD or WXS-based IDs) and with the general syntax of schemes.
The element() scheme allows references into frozen documents that don't have IDs present, using a syntax like "element(/1/2/3)" to mean the 3rd child of the 2nd child of the root element, or "element(foo/4/5)" to mean the 5th child of the 4th child of the element whose ID is "foo".
The xmlns() scheme provides a namespace context for XPath expressions in the xpointer() scheme; XPointers do not inherit the namespace context of the document in which they are embedded.
The xpointer() scheme, which is not yet a Last Call draft due to known minor editorial and definitional problems, provides for general reference into documents using XPath, extended by the here() and origin() functions for use with XLink, and the concept of points (similar to DOM Level 2 positions) and ranges (similar to DOM Level 2 ranges) to allow arbitrary transclusions.
The possibility that other schemes will be added remains open.
The purpose of factoring these schemes is to permit other standards to claim conformance to any or all of these documents (although it makes no sense to claim conformance to a scheme without also claiming conformance to the framework.
Because this is primarily a refactoring effort without any new semantics (except WXS-compliant IDs), and only trivial changes to syntax, these documents will probably go straight from Last Call to Proposed Recommendation; the review period is only three weeks. So get your comments in early and often.
Bibliographic information:
XPointer Framework. W3C Working Draft 10-July-2002. Edited by Paul Grosso (Arbortext, Inc.), Eve Maler (Sun Microsystems), Jonathan Marsh (Microsoft), and Norman Walsh (Sun Microsystems). Last Call W3C Working Draft for review. Version URL: http://www.w3.org/TR/2002/WD-xptr-framework-20020710/. Latest version URL: http://www.w3.org/TR/xptr-framework/. Previous version URL: http://www.w3.org/TR/2001/CR-xptr-20010911/. Also in XML format.
XPointer element() Scheme. W3C Working Draft 10-July-2002. 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/2002/WD-xptr-element-20020710/. Latest version URL: http://www.w3.org/TR/xptr-element/. Previous version URL: http://www.w3.org/TR/2001/CR-xptr-20010911/. Also in XML format.
XPointer xmlns() Scheme. W3C Working Draft 10-July-2002. Edited by Steven DeRose (Brown University Scholarly Technology Group), Eve Maler (Sun Microsystems), and Ron Daniel Jr. (Interwoven). Version URL: http://www.w3.org/TR/2002/WD-xptr-xmlns-20020710/. Latest version URL: http://www.w3.org/TR/xptr-xmlns/. Previous version URL: http://www.w3.org/TR/2001/CR-xptr-20010911/. Also in XML format.
XPointer xpointer() Scheme. W3C Working Draft 10-July-2002. Edited by Steven DeRose (Brown University Scholarly Technology Group), Eve Maler (Sun Microsystems), and Ron Daniel Jr. (Interwoven). Version URL: http://www.w3.org/TR/2002/WD-xptr-xpointer-20020710/. Latest version URL: http://www.w3.org/TR/xptr-xpointer/. Previous version URL: http://www.w3.org/TR/2001/CR-xptr-20010911/. Also in XML format.
Principal references:
- XPointer Working Drafts. Posting from John Cowan.
- Main URLs:
- Mailing list archive for 'www-xml-linking-comments'
- XML Pointer Language (XPointer) Version 1.0. W3C Candidate Recommendation 11-September-2001.
- XML XPointer Requirements. Version 1.0. W3C Note 24-February-1999.
- XPointer Patent Statements
- W3C XML Linking Working Group
- W3C XML Activity
- Related XPointer Specifications