XPointer

XPointer (XML)

[1] XML 指示子言語 (Pointer Language)

[9] XPointer は、 XML 文書の一部を指し示すための包括的な仕組みと、幾つかの具体的な指示方法の仕様の総称です。

XPointer は主として URI参照素片識別子として用いることを想定していますが、それに限ったものではありません。 もっとも、 XPointer が使えそうな場所の多くでは XPath が使われているので、あまり出番はありません。

[43] 色々な仕組みが規定、提案されましたが、結局は HTML素片識別子に相当する速記指示子のみが広く実装されています。 目玉機能だったはずの xpointer() は、 完成前に開発が凍結されています。 XPointer は事実上失敗に終わったと言えます。

本項は歴史的事項を説明しています。本項の内容の一部または全部は、現在の状況とは異なるかもしれません。

(なお本項の内容の一部または全部は、互換性または歴史的連続性のために現在も有効な場合もあります。しかし新たに利用することは避けるべきです。)

目次

  1. 仕様書など
  2. 構文
  3. API
  4. XPointer Framework
  5. 歴史
    1. XML Core WG
  6. 実装
    1. Gecko
    2. Mozilla 拡張機能
    3. JavaScript
    4. その他
  7. テスト・ケース
  8. 関連
  9. メモ

仕様書など#

[11] XPointer Disposition of Comments http://www.w3.org/2000/06/xptr-comments-20000607.html

This document details the responses made by the XML Linking Working Group to issues raised during the Last Call (beginning 6 December 1999 and ending 27 December 1999) review of XPointer . (名無しさん)

[12] W3C XML Linking Working Group and Interest Group http://www.w3.org/XML/2000/12/LinkingIssueList.html (名無しさん)

[13] XPointer Candidate Recommendation Disposition of Comments http://www.w3.org/XML/2000/10/xptr-LC2-comments.html

構文#

API#

[33] XPointer 仕様自体は構文とその解釈を定義しているだけですが、 XPointer を扱う実装は API を定義し、スクリプト等に提供しています。

詳しくは XPointer//API の項を参照してください。

XPointer Framework#

[37] XPointer Framework は、 XPointer の全体像、特に XPointer scheme速記指示子の仕組みを定義した XPointer の中心的な仕様書です。

歴史#

[24] XPointer は元々 XLink において XML 文書中の一部分を識別するための指示子言語として考案されました。

[25] 当時同様に XSL における変換 (XSLT) で XML 文書中の一部分を識別するための式言語 (XSLパターン) が検討されていました。

[26] 両者の目的は似通っていたことから、 XPointerXSLT の両者の式言語が統一され、 XPath として標準化されました。

[27] 当初の XPointer 仕様は、現在でいう XPath に多少独自の関数を加えたものを URL素片識別子として使えるといったものでした。

XSLT でも有用な機能は XPath 本体の関数となっており、 XSLTXPointer の一方でのみ有用な機能はそれぞれの追加の関数になっています。

[28] XPointer 仕様はほぼ完成したかに見えましたが、複雑過ぎるとの批判はありました。 Gecko が実装した FIXptr はこの頃の XPointer 仕様を簡略化した部分集合でした。

[29] その後 XPointer 仕様は大幅に変更され、仕様書も Framework と数個の (新たに導入された概念である) scheme の規定に分割されました。新仕様は旧仕様とは互換性がなく、旧仕様に相当する部分は xpointer() scheme となりました。 Framework と element() schemexmlns() scheme はその後 W3C 勧告となりましたが、 xpointer() scheme は完成しないまま放棄されました。

[30] XPointerXML の共通の素片識別子と思われてきましたが、このような経緯からか、 XML媒体型を定義する RFC 3023 も「XPointer を使うことになるだろうが、 現時点では未定義とする」といった旨の記述があるのみで、 XML素片識別子は正式には未定義のまま放置され続けています。

[31] XPointer scheme の名前は QName となっています。名前空間URL がない NCNamescheme 名については、 W3C の管理する登録簿が用意され、各種 W3C 仕様や TEI などによって定義された XPointer scheme が登録されました。

現在も登録は受け付けられていますが、申請はほとんどありません。

[42] XPointer Framework W3C勧告in-place modification により 次のような段落が追加されています。

Document Status Update 2011-10-24: This paragraph is informative. On 18 November 2005 an XPointer Schemes Registry was approved for public use under the terms of an XPointer Scheme Name Registry Policy.

[32] 実際上 XPointerWeb 上でほとんど用いられておらず、 Gecko からも削除が検討されています。 SVGXPointer のごくごく小さな一部分を SVG素片識別子の一種として認めてきましたが、それすら実装されなかったとして、 SVG 1.1 の Errata で削除されています。

XML Core WG#

[39] XML Linking Working Group の解散後は、 XPointer の3つのW3C勧告XML Core WG の担当となっているようです >>40

[41] xpointer() XPointer scheme は担当不在で放棄された状態のようです。

実装#

Gecko#

[17] Bug 32832 – Implement XPointer (2007-07-27 23:59:37 +09:00 版) https://bugzilla.mozilla.org/show_bug.cgi?id=32832

[15] Bug 388704 – drop XPointer support (2007-07-27 23:43:59 +09:00 版) https://bugzilla.mozilla.org/show_bug.cgi?id=388704

[16] Taken SPC : Mozilla が XPointer のサポートを取りやめ? (2007-07-27 23:45:13 +09:00 版) http://taken.s101.xrea.com/blog/article.php?id=775 (名無しさん 2007-07-27 14:47:24 +00:00)

Mozilla 拡張機能#

[18] mozdev.org - xpointerlib: index (2007-07-28 00:00:31 +09:00 版) http://xpointerlib.mozdev.org/

JavaScript#

[20] XPointer UserJS ( 版) http://student.kuleuven.be/~s0159198/xpointer/ (名無しさん)

[21] xpointer.js: XPointerJavaScript による実装。

その他#

[19] Welcome To CodeDread 1.1 (2007-12-17 07:16:50 +09:00 版) http://www.codedread.com/fxpointer/

テスト・ケース#

[10] XML fragment identifier test http://www.w3.org/2004/07/xml-fragid-test/

XHTML + SVG で XPointer がどう機能するかという test page。 (名無しさん 2004-08-01 05:26:55 +00:00)

関連#

[34] ISO/IEC 21000-17 は、 MPEG 用に XPointer もどきを規定しています。

[45] 媒体素片は、同じく W3C で後の時代に標準化された、 特定の MIME型に限定されない素片識別子構文です。 媒体素片XPointer やそれと互換性のある構文を採用せず、 Web開発者にとってより親しみ深い URL query の構文を採用しており、 XPointer とは併用できなくなっています。 (もし媒体素片がもっと前の時代に開発されていたか、 XMLXPointer がもっと成功していれば、 XPointer 構文になっていたでしょうが。)

メモ#

[14] XPointer considered incomprehensible from Bjoern Hoehrmann on 2006-09-01 (www-xml-linking-comments@w3.org from July to September 2006) http://lists.w3.org/Archives/Public/www-xml-linking-comments/2006JulSep/0005 (名無しさん 2006-09-02 02:21:33 +00:00)

[35] RFC 6931 - Additional XML Security Uniform Resource Identifiers (URIs) ( ( 版)) http://tools.ietf.org/html/rfc6931#section-2.5.1

[36] Bug 17491 – ER: Implement XPointer Support ( ( 版)) https://bugs.webkit.org/show_bug.cgi?id=17491

[44] glro/xptr ( 版) https://github.com/glro/xptr

[46] ほら貝:文字コード, , http://www.horagai.com/www/moji/int/sat.htm

師 『大正大蔵経』の場合、三段組で活字が詰まっていて、一ページが普通の本の四~五ページ分ありますから、行番号まであった方が便利なんです。実際、欧米の研究者は、引用する際、行数まで明記しますし。また、テキストを行単位にID化しておくと、XMLで提供されることになるXPointerやXLinkといった仕組によって、引用箇所に直接リンクをはることが可能になります。

ウィッテアンさんが提唱している仏典のポインタ表記の統一化案リンクでは、『大正大蔵経』のテキストを「T09N0262.9a.3」(『大正大蔵経』第9巻・通し番号262・9頁上段・3行目)という具合にID化しておき、引用箇所を例えば

    経曰。<QUOTE ID="T09N0262.9a.3">無一不成仏。</QUOTE>

というようにマークアップすることで、引用元のテキストに直接飛ぶことができます。

[47] リンク先:

TEI

[49] application/x-moin-document