XPointer
{{Short description|System for addressing components of XML-based Internet media}}
{{Infobox technology standard
| title = XPointer
| long_name = XPointer Framework
| native_name = XPointer Framework
| native_name_lang = en
| status = W3C Recommendation
| year_started = {{Start date and age|1997}}
| first_published = {{Start date and age|1997|04|06}}{{Cite web|url=https://www.w3.org/standards/history/xptr-framework|title=XPointer Framework Publication History - W3C|website=W3C|date=n.d.|access-date=2021-04-08}}{{Cite web|url=https://www.w3.org/TR/WD-xml-link-970406|title=Extensible Markup Language (XML): Part 2. Linking Version 1.0|date=1997-04-06|access-date=2021-04-08|website=W3C|collaboration=W3C SGML Activity|editor-first1=Tim|editor-last1=Bray|editor-first2=Steve|editor-last2=DeRose}}
| version = XPointer Framework Recommendation{{cite web|title=XPointer Framework|url=http://www.w3.org/TR/2003/REC-xptr-framework-20030325/|publication-date=2003-03-25|access-date=2021-04-08|publisher=W3C|website=W3C|collaboration=W3C XML Linking Working Group|editor-first1=Paul|editor-last1=Grosso|editor-first2=Eve|editor-last2=Maler|editor-first3=Jonathan|editor-last3=Marsh|editor-first4=Norman|editor-last4=Walsh}}
| version_date = {{Start date and age|2003|03|25}}
| organization = W3C
| committee = W3C XML Linking Working Group{{Cite web|url=https://www.w3.org/XML/Linking|archive-url=https://web.archive.org/web/20210325053819/https://www.w3.org/XML/Linking|archive-date=2021-03-25|title=W3C XML Pointer, XML Base and XML Linking|website=W3C|date=2000|access-date=2021-04-08}}
| editors = {{Plainlist|
- Paul Grosso
- Eve Maler
- Jonathan Marsh
- Norman Walsh
| authors =
| related_standards =
| abbreviation =
| domain =
| license =
| website = {{URL|https://www.w3.org/TR/xptr-framework/}}
}}
XPointer is a system for addressing components of XML-based Internet media. It is divided among four specifications: a "framework" that forms the basis for identifying XML fragments, a positional element addressing scheme, a scheme for namespaces, and a scheme for XPath-based addressing. XPointer Framework is a W3C recommendation since March 2003.{{cite web|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|url-status=dead|archive-url=https://web.archive.org/web/20191026052918/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|archive-format=PDF|archive-date=2019-10-26|access-date=2021-04-08|title=The XML and Semantic Web Worlds: Technologies, Interoperability and Integration. A survey of the State of the Art|author1=Bikakis N.|author2=Tsinaraki C.|author3=Gioldasis N.|author4=Stavrakantonakis I.|author5=Christodoulakis S.}}
The XPointer language is designed to address structural aspects of XML, including text content and other information objects created as a result of parsing the document. Thus, it could be used to point to a section of a document highlighted by a user through a mouse drag action.
During development, and until 2016, XPointer was covered by a royalty-free technology patent held by Sun Microsystems.{{cite web|url=http://www.w3.org/2002/06/xptr_IPR_summary.html|title=XPointer Patent Statements|website=www.w3.org|date=2002-06-10|access-date=2021-04-08|author-first=Ron|author-last=Daniel}}
Positional element addressing
The element()
scheme{{Cite web|url=https://www.w3.org/TR/xptr-element/|title=XPointer element() Scheme|publication-date=2003-03-23|access-date=2021-04-08|collaboration=W3C XML Linking Working Group|website=W3C|publisher=W3C|editor-first1=Paul|editor-last1=Grosso|editor-first2=Eve|editor-last2=Maler|editor-first3=Jonathan|editor-last3=Marsh|editor-first4=Norman|editor-last4=Walsh}} introduces positional addressing of child elements. This is similar to a simple XPath address, but subsequent steps can only be numbers representing the position of a descendant relative to its branch on the tree.
For instance, given the following fragment:
results as the following examples:
xpointer(id("foo")) => foobar
xpointer(/foobar/1) => bar
xpointer(//bom) => bom (a=1), bom (a=2)
element(/1/2/1) => bom (a=1) (/1 descend into first element (foobar),
/2 descend into second child element (baz),
/1 select first child element (bom))
See also
References
{{reflist}}
External links
- [http://www.w3.org/TR/xptr-framework/ XPointer Framework]
- [http://www.w3.org/TR/xptr-xmlns/ Namespacing]
- [http://www.w3.org/TR/xptr-xpointer/ Path based addressing]
- [http://lists.w3.org/Archives/Public/www-xml-linking-comments/2000OctDec/0092.html XPointer patent terms and conditions]
- [http://sourceforge.net/projects/cweb Open source implementation (CognitiveWeb)]
- [http://mvp-xml.sourceforge.net/xinclude/ GPL License .NET implementation (XInclude.NET)]
- [https://patents.google.com/patent/US5659729A/en Method and system for implementing hypertext scroll attributes] on Google Patents, expired 2016-02-01
{{W3C Standards}}
{{Authority control}}
{{DEFAULTSORT:Xpointer}}