[1] XML [RUBYB[指示子言語] [Pointer Language]]。 [9] XPointer は、 [[XML]] 文書の一部を指し示すための包括的な仕組みと、幾つかの具体的な指示方法の仕様の総称です。 XPointer は主として [[URI参照]]の[[素片識別子]]として用いることを想定していますが、それに限ったものではありません。 [WEAK[もっとも、 XPointer が使えそうな場所の多くでは [[XPath]] が使われているので、あまり出番はありません。]] * 仕様書など - [2] ''W3C XML Pointer, XML Base and XML Linking'' - [3] ''XPointer Framework'' - [4] ''XPointer xmlns() Scheme'' - [5] ''XPointer element() Scheme'' - [6] ''XPointer element() Scheme'' - [7] ''Errata in XPointer'' - [8] >>7 は >>3-6 全部の errata。 [11] [CITE[XPointer Disposition of Comments]] > 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] [CITE[W3C XML Linking Working Group and Interest Group]] ([[名無しさん]]) [13] [CITE[XPointer Candidate Recommendation Disposition of Comments]] * 構文 - [22] [[速記識別子]] - [23] [[XPointer scheme]] * 歴史 [24] [[XPointer]] は元々 [[XLink]] において [[XML]] [[文書]]中の一部分を識別するための[[指示子言語]]として考案されました。 [25] 当時同様に [[XSL]] における[[変換]] ([[XSLT]]) で [[XML]] [[文書]]中の一部分を識別するための[[式言語]] ([[XSLパターン]]) が検討されていました。 [26] 両者の目的は似通っていたことから、 [[XPointer]] と [[XSLT]] の両者の[[式言語]]が統一され、 [[XPath]] として標準化されました。 [27] 当初の [[XPointer]] 仕様は、現在でいう [[XPath]] に多少独自の[[関数]]を加えたものを [[URL]] の[[素片識別子]]として使えるといったものでした。 ;; [[XSLT]] でも有用な機能は [[XPath]] 本体の[[関数]]となっており、 [[XSLT]] や [[XPointer]] の一方でのみ有用な機能はそれぞれの追加の[[関数]]になっています。 [28] [[XPointer]] 仕様はほぼ完成したかに見えましたが、複雑過ぎるとの批判はありました。 [[Gecko]] が実装した [[FIXptr]] はこの頃の [[XPointer]] 仕様を簡略化した[[部分集合]]でした。 [29] その後 [[XPointer]] 仕様は大幅に変更され、仕様書も Framework と数個の (新たに導入された概念である) [[scheme]] の規定に分割されました。新仕様は旧仕様とは互換性がなく、旧仕様に相当する部分は [CODE(XPointerScheme)@en[[[xpointer()]]]] [[scheme]] となりました。 Framework と [CODE(XPointerScheme@en[[[element()]]]] [[scheme]]、 [CODE(XPointerScheme)@en[[[xmlns()]]]] [[scheme]] はその後 [[W3C]] [[勧告]]となりましたが、 [CODE(XPointerSchmee)@en[[[xpointer()]]]] [[scheme]] は完成しないまま放棄されました。 [30] [[XPointer]] は [[XML]] の共通の[[素片識別子]]と思われてきましたが、このような経緯からか、 [[XML媒体型]]を定義する [[RFC 3023]] も「[[XPointer]] を使うことになるだろうが、 現時点では未定義とする」といった旨の記述があるのみで、 [[XML]] の[[素片識別子]]は正式には未定義のまま放置され続けています。 [31] [[XPointer scheme]] の名前は [[QName]] となっています。[[名前空間URL]] がない [[NCName]] の [[scheme]] 名については、 [[W3C]] の管理する登録簿が用意され、各種 [[W3C]] 仕様や [[TEI]] などによって定義された [[XPointer scheme]] が登録されました。 ;; 現在も登録は受け付けられていますが、申請はほとんどありません。 [32] 実際上 [[XPointer]] は [[Web]] 上でほとんど用いられておらず、 [[Gecko]] からも削除が検討されています。 [[SVG]] は [[XPointer]] のごくごく小さな一部分を [[SVG素片識別子]]の一種として認めてきましたが、それすら実装されなかったとして、 [[SVG 1.1]] の Errata で削除されています。 * 実装 ** Gecko [17] [CITE[Bug 32832 – Implement XPointer]] ([CODE[2007-07-27 23:59:37 +09:00]] 版) [15] [CITE[Bug 388704 – drop XPointer support]] ([CODE[2007-07-27 23:43:59 +09:00]] 版) [16] [CITE@ja[Taken SPC : Mozilla が XPointer のサポートを取りやめ?]] ([CODE[2007-07-27 23:45:13 +09:00]] 版) ([[名無しさん]] [WEAK[2007-07-27 14:47:24 +00:00]]) ** Mozilla 拡張機能 [18] [CITE@en[mozdev.org - xpointerlib: index]] ([CODE[2007-07-28 00:00:31 +09:00]] 版) ** JavaScript [20] [CITE[XPointer UserJS]] ([TIME[2007-11-07 00:47:59 +09:00]] 版) ([[名無しさん]]) [21] [[xpointer.js]]: [[XPointer]] の [[JavaScript]] による実装。 ** その他 [19] [CITE[Welcome To CodeDread 1.1]] ([CODE[2007-12-17 07:16:50 +09:00]] 版) * 試験例 [10] ''XML fragment identifier test'' XHTML + SVG で XPointer がどう機能するかという test page。 ([[名無しさん]] [WEAK[2004-08-01 05:26:55 +00:00]]) * メモ [14] [CITE[XPointer considered incomprehensible from Bjoern Hoehrmann on 2006-09-01 (www-xml-linking-comments@w3.org from July to September 2006)]] ([[名無しさん]] [WEAK[2006-09-02 02:21:33 +00:00]])