[135] [DFN[[RUBYB[素片識別子] [fragment identifier]]]]は、 [[URL]] の一部分であり、[[素片識別子]]''以外''の部分により識別される[[資源]]の一部分、 あるいは[[表現]]の一種を識別するために使われます。 * 用語に関して ** 呼称 [136] '''俗称''': [[DOM]] では、[[素片識別子]]を表す[[属性名]]として「[CODE(DOMa)@en[[[hash]]]]」 を使っています。これは、[[素片識別子]]の先頭を表す[[文字]]「[CODE(char)[#]]」 の俗称に由来しています。 [137] 特に [[HTML]] [[文書]]の[[素片識別子]]については、「[[アンカー]]」や 「[[アンカー名]]」と呼ばれることもあります。 [21] '''日本語訳''': 「[[素片識別子]]」 (fragment identifier) は、 [DFN[フラグメント識別子]]、[DFN[断片識別子]]などとも訳されます。 [[#comment]] ** 定義 [1] '''ISO-HTML における定義''': > :[RUBYB[素片識別子] [Fragment identifier]]: [CODE(HTMLa)[[[href]]]] 属性値の [CODE(URI)[#]] に続く部分。[SRC[ISO‐HTML 4.9]] [152] '''RELAX NG における定義''': > :3.6 fragment identifier: additional information in a URI reference used by a user agent after the retrieval action on a URI has been successfully performed ;; [[ISO/IEC 19757]]‐2:2003 [[#comment]] ** URI/URL と素片識別子 [22] [[RFC 2396]] においては[[素片識別子]]は [[URI]] の一部とはされていませんでした。 [[絶対URI]], [[相対URI]], [[素片識別子]]をあわせたものを [[URI参照]]と呼んでいました。 [138] 新しい [[RFC 3986]] は、[[素片識別子]]を [[URI]] の一部としています。 [139] 非公式には、以前から[[素片識別子]]を [[URI]] の一部としている人も多くいました。 (単なる無知からそうしている人もいれば、そう定義するべきと考えてそうしている人もいました。) [[HTML 4]] のように、[[素片識別子]]を [[URI]] の一部としない仕様書を参照しておきながら、 (「[[URI参照]]」ではなく) 「[[URI]]」という用語を使い、 しかも[[素片識別子]]も使えるような規定が含まれる仕様も存在し、 混乱の元となっていました。 [[#comment]] ** メモ [[#comment]] * 仕様に関して [20] '''主たる仕様''': - [DEL@en[[[RFC 1630]] ([[URI]] 1[SUP[st]])]] - [DEL@en[[[RFC 1738]] ([[URL]] 2[SUP[nd]])]] - [DEL[[[RFC 1808]] ([[相対URL]])]] - [DEL@en[[[RFC 2396]] ([[URI]] 3[SUP[rd]])]] - [[RFC 3986]] ([[URI]] 4[SUP[th]]) - [[RFC 3987]] ([[IRI]]) - [WebArch] [CITE[Architecture of the World Wide Web, Volume One]] -- [CSECTION[2.6. Fragment Identifiers]] -- [CSECTION[3.2.1. Representation types and fragment identifier semantics]] -- [CSECTION[3.2.2. Fragment identifiers and content negotiation]] -- [CSECTION@en[4.5.8. Fragment identifiers in XML]] - [[HTML 5]] ([[URL]]) [137] '''関連仕様''': - [[ISO‐HTML]] -- 4.9 ** 内部参照に使う URI 参照としての素片識別子 [50] 同じ[[文書]]内で参照を行うためには [[SGML]] の [CODE(SGML)[[[IDREF]]]] のように専用の機構を用意しているものもありますが、 [[URI参照]]や [[IRI参照]]を採用して外部への参照と兼用していることもよくあります。 その場合、当然[[素片識別子]]が使われることになります。 素片識別子の構文と意味は、 その参照先の[[資源]]の[[表現]]の[[媒体型]]によります (>>24)。ですから、 そのような使い方をする文書形式では[[素片識別子]]の構文と意味が陽に定義されている必要があります。 [51] 特に [[XML]] 系の文書形式の仕様で、 [CODE(XML)[[[ID]]]] 属性を参照先として使っている場合には自明なためか明確に規定されることがあまりありません。 [52] 複数の語彙を組合わせる時にはとりわけ注意が必要です。 素片識別子の意味を組合せて使う仕様の仕様書で明確に規定しておかないと、 個々の仕様で解釈が割れていたり、 曖昧なものが含まれていたりする時に困ったことになります。 [53] 例: [[XML事象]]は [CODE(XMLa)[[[handler]]]] 属性などで [[URI参照]]を使っていますが、 それが[[同文書参照]]である時の意味を特に規定していません。 意味的には [CODE(XML)[[[IDREF]]]] として扱われることが期待されていますが、 [[XML事象]]は[[ホスト言語]]と組合せて使うものですから、 その組合せの[[プロファイル]]でこれと矛盾しないように[[素片識別子]]の規定を行わなければなりません。 (その例: [[SVG 1.2]]) [CITE[XML Events]] [[#comment]] ** 部分資源を識別しない、あるいは何を識別するか未定義の場合 [140] 本来、[[媒体型]]についての[[素片識別子]]の仕様書は、 [[素片識別子]]がどのような[[部分資源]]を識別するのかを完全に定義するべきです。 例えば、 [CODE(HTMLa)@en[[[id]]]] [[属性]]の値が[[一致]]する[[要素]]を識別するような場合、 [[一致]]する[[要素]]が存在しない場合に何を識別するのか (しないのか)、 実装がどのように動作するべきなのかを規定しておくべきです。 [141] ですが、現実には、多くの仕様はそれを曖昧にしています。 更には、ほとんどの[[媒体型]]については、そもそも[[素片識別子]]が定義されていません。 [3] [[HTML]] [[文書]] ([CODE(MIME)@en[[[text/html]]]]) の場合、 [[文書]]内に存在しない[[素片識別子]]つきの [[URI参照]]を[[レンダリング]]させようとすると、 [[文書]]の最初を表示する [[Webブラウザ]] [WEAK[(例: [[WinIE]] や [[Mozilla]] ([[Gecko]]))]] と、 最後を表示する [[Webブラウザ]] [WEAK[(例: [[Classic Mozilla]])]] があります。 [[#comment]] ** メモ [[#comment]] * 意味に関して ** 素片識別子と URI scheme [23] URI の素片識別子と scheme 以外の部分の構文は、 [WEAK[(URI 全体の規定の範囲内で)]] 使用している [[URI scheme]] によって規定されています。 古くは素片識別子も URI scheme に依存すると考えられたこともあり、 古い URI scheme の中には素片識別子の扱いについて触れているものもあります。 しかし、現在では素片識別子は URI によって識別される[[資源]]の性質に依存するものであり、 '''URI scheme とは独立'''であると考えられています。 [142] [[URI scheme]] によっては、歴史的、その他の理由により、 構文的に[[素片識別子]]と矛盾する規定・実装がなされていることがあります。 詳しくは >>95 を参照してください。 [[#comment]] ** 素片識別子と基底 URL @@ この項は書きかけです。 [[基底URL]] の解説とあわせて内容をなんとかしたいところです。。。 [79] [CITE[The Linear Topic Map Notation]] [[LTM]] ([[線形Topic Map記法]]) の [CODE@en[[[BASEURI]]]] [[指令]]は、[[RFC 2396]] 的解釈に基づき、 [[素片識別子]]だけの [[URI]] には適用されないことになっています。 [[#comment]] ** 素片識別子と媒体型 [24] URI の仕様書によれば、素片識別子の構文はその URI 参照による[[取出し]]行為 [WEAK[([[RDF]] のように仮想的な[Q[取出し]]行為も含まれます。)]] の結果得られる[[資源]]の[[媒体型]]に依存するとされています。 [Q[取出し]]が行われなければ、素片識別子の構文と解釈はできず、 実質無制約になります [SRC[WebArch 3.2.1]]。 [25] URI 参照によって識別される資源は[[内容折衝]]の対象になっているかもしれません。 そうでなくても、一つの URI 参照に対応する資源を取出す手段 [WEAK[(仮想的なものかもしれません。)]] が複数あれば、 それぞれによって違うものが取出されるかもしれません。 動的表現 (>>26) をも一つの URI 参照に対応する[[資源]]の[[表現]]の一種と考えることもできます。 取出された資源の媒体型が異なると、同じ素片識別子であっても異なるものを指し得ます。 あるいは、一方に対しては構文や意味が定義されていなかったり正しくなかったりすることも起こり得ます。 実際に識別されるものが意味的に異なっている場合は、 鯖の設定の誤りと考えられます。構文や意味が未定義であるのは、 すべての媒体型が同じ機能を提供していないのですから仕方が無いことです。 [SRC[WebArch 3.2.2]] このような問題をできるだけ避けるために、 各媒体型で素片識別子の構文や意味論は大きく変えてしまわないことが好ましいと考えられています。 [29] 素片識別子を媒体型から独立したものにしようという提案もありますが、 今のところ広く受け入れられてはいません。 - [CITE[A generic fragment identifier syntax]] , [96] [[URI]]が単なる所在指示子としてだけではなく、[[識別子]]として重要性を帯びてからは、 [[素片識別子]]もが[[取出し]]を伴わない文脈で用いられるようになりました。 仕様の側もそれを容認すると明記しています。 構文と[[素片識別子]]単体での意味も事実上不定になります。 (>>24, [WebArch], [RFC 3986]) [97] この問題に遭遇した[[RDF]]は、 (当時の[[URI]]仕様である[[RFC 2396]]との整合性のため) [Q[[[RDF URI参照]]における[[素片識別子]]は、[CODE(MIME)@en[[[application/rdf+xml]]]]で解釈することとする]]とのやや無理のある規定を設けています。 [104] '''[CODE(URI)@en[xmpp:]] URI scheme''': [CODE(URI)@en[[[xmpp]]:]] [[URI scheme]] では、 [[XMPP]] においては[[資源]]が[[表現]]を持たないので、 [[媒体型]]もなく、 [[RFC 3986]] にある通り実質無制約になり、 [[XMPP]] [[応用]]は好きに使って良い、とされています。 [SRC@en[[[RFC 4622]] 2.6]] [98] [[名前空間URI]]では[[局所名]]と結合した時に[[素片識別子]]付き[[URI]]となることを期待して[CODE(URI)[#]]で終わらせた[[URI]]を使うことがよくありますが、 これも[[取出し]]て得られる[[表現]]とは (あったとしても) なんら関係がなく、単に形式的なものです。 [[#comment]] ** 動的表現との関係 [26] 例えばある XML 文書 で、 はじめ [SAMP(XML)[id]] という識別子は定義されていなかったとします。 この時、 URI 参照 は指すものがありません。 ところが、 Web ブラウザにおける何らかの処理の過程においてこの文書のある要素の [CODE(XML)[[[ID]]]] が [SAMP(XML)[id]] と設定されたとします。すると URI 参照 はその要素を識別するようになります。 このような状況は、便利なこともありますし、混乱を招くこともあります。 [27] ある XML 文書を [[XSLT]] [[スタイル・シート]]によって変換したとします。 変換した結果には、元の文書に存在していた [CODE(XML)[ID]] が (それに対応する要素と共に) 残っているかもしれませんし、 残っていないかもしれません。ある[[原始要素]]に対応する[[結果要素]]の識別子は元とは違った識別子になっているかもしれません。 ある識別子に対応するのは原始要素に対応する結果要素とは違う (関係のない別の) 要素かもしれません。元の文書とは無関係に、 スタイル・シートが新しい識別子を導入するかもしれません。 このような状況は、便利なこともありますし、混乱を招くこともあります。 [[#comment]] ** 要約値の埋め込み [143] [[素片識別子]]を、 [[URL]] によって識別される[[資源]]の[[表現]]が正当なものである、 あるいはある特定の版であることを確認するための[[ハッシュ値]]、 あるいは[[指紋]]を埋め込む場所として用いようとする提案があります。 [112] [CITE[Link Fingerprints]] ([[名無しさん]] [WEAK[2006-11-11 03:36:08 +00:00]]) [144] 詳しくは [CODE(URI)@en[#[[hash]]()]] の項を参照してください。 [145] このような提案は、実装実験も行われている一方で、 元々の[[素片識別子]]の意味から逸脱しているとの批判もあります。 [150] >>15 や >>90 のような[[版]]を指定する[[素片識別子]]もこれに類するといえるかもしれません。 ** 履歴管理制御のための用法 [161] [[Webブラウザー]]によっては、[[素片識別子]]を含む [[URL]] 全体を[[未読]]かどうかの判定に用いています。 ;; 例えば、 [[Firefox]] は [[URL]] 全体からリンク先が[[未読]]か[[既読]]かを判定し、 [CODE(CSS)@en[:[[visited]]]] [[擬似クラス]]に[[一致]]するかを決めています。 [[WinIE]] は[[素片識別子]]を除く [[URL]] によって判断しているようです。 [162] [[アンテナ]]や [[wiki]] の更新頁一覧などリンク先が頻繁に変更されることが前提となっている場面では、 [[Webブラウザー]]による[[未読]]・[[既読]]判定をある程度制御するため、 [[日付]]などの適当な文字列を[[素片識別子]]として付与することがあります。 [163] 例えば[[アンテナ]]が a.html が2009年12月31日に更新されたことを検知した場合、 [[URL]] として a.html#20091231 を使います。[[利用者]]がその[[リンク]]をたどると、 [[Webブラウザー]]は a.html#20091231 を[[履歴]]データベース上で[[既読]]とします。 [[利用者]]が次にその[[アンテナ]]の頁を見たときには、 a.html#20091231 へのリンクは[[既読]]になっています。 次に[[アンテナ]]が a.html が 2010年1月2日に更新されたことを検知すると、 [[URL]] は a.html#20100102 になります。[[利用者]]がその[[アンテナ]]の頁を見たときには a.html#20100102 へのリンクは[[未読]]になっています。 [164] 同様の目的で[[照会]]を用いる方法もあります。[[照会]]を使えばどの[[Webブラウザー]]でもこの効果が得られるという利点がありますが、 [[素片識別子]]とは違って[[照会]]は実際に[[鯖]]に送信されるため相手方に動作が依存してしまうという欠点があります。 ** 状態保存のための用法 [165] [[Webアプリケーション]]では、1つの [[HTML]] [[文書]]が複数の「状態」を持つことがあります。 例えば [[Webメイル]]の[[メイル]]一覧画面を表す [[HTML]] [[文書]]1つで[[クライアント]]側[[スクリプト]]を使って日付順、送信者順など複数の表示方法を実現している場合に、 [[素片識別子]]にその「状態」の情報を詰め込むことで、1つの[[文書]]の「状態」を [[URL]] として表すことができます。 [166] このような用法は元々 [CODE(HTMLa)@en[[[name]]]] や [CODE(HTMLa)@en[[[id]]]] を表すものとして用意された [[HTML]] の[[素片識別子]]の使い方からは外れていますが、 ある[[資源]]の一部分や一表現法を表すとの [[URL]] 一般の[[素片識別子]]の意味論的には間違ってはいません。 [[URL]] の一部分という性質上、多量・大容量の「状態」を詰め込むのには適していませんが、 手軽に実現可能かつ[[ハイパーリンク]]可能な点が優れています。 [167] [[HTML5]] はこのような用法の応用への期待が高まっていることも踏まえて、 [CODE(DOMe)@en[[[hashchange]]]] [[事象]]を追加しました。 ** メモ [[#comment]] * 構文に関して ** 素片識別子の始まり以外の [CODE(char)[#]] [95] [[RFC 3986]]/[[RFC 3987]] の定義に従えば、 [[URI]] 中の[[文字]] [CODE(char)[#]] は[[素片識別子]]のはじまりを表します。これは [[URI scheme]] によらず、 すべての [[URI]] に適用されます。 [62] ですが、現実には、[[URI]] の中で使われる[[文字]] [CODE(char)[#]] が[[素片識別子]]の始まりとして扱われないことがあります (もちろん'''仕様違反'''です)。 [63] [[Vodafone]] の独自 [[HTML]] 仕様では、 [CODE(URI)[[[tel]]:]] [[URI scheme]] および [CODE(URI)[[[vtel]]:]] [[URI scheme]] で[[電話]]の [CODE(char)[#]] ボタンの意味で生の [CODE(URI)[#]] を使います。 [133] '''[CODE(URI)@en[[[irc]]:]] [[URI scheme]]'''は、 [[IRC]]の[[チャンネル名]]に[CODE(char)[#]]が使われるのをそのまま[[URI]]で用いることがあり、 標準化案 ([[Internet Draft]]) もそれを容認し、さらに拡張しようとしていました。 [134] [[Webブラウザ]]の実装では [CODE(URI)@en[[[data]]:]], [CODE(URI)@en[[[javascript]]:]], [CODE(URI)@en[[[mailto]]:]] のような [[URL scheme]] で [CODE(char)[#]] が[[素片識別子]]のはじまりとして扱われないことがあります。 ;; [131] この記事はその例を紹介しています: [CITE@ja[冬様もすなる☆日記というもの (2008年6月)]] ([[わかば]] 著, [CODE[2008-06-28 21:18:51 +09:00]] 版) [[#comment]] ** 素片識別子の拡張 [8] 公式な URI の仕様の素片識別子には様々な問題点があり、 それを改善しようとする提案もいくつかあります。 しかし、公式に採用されたり、 広く受け入れられたりするに至ったものはまだありません。 [2] [[GNOME]] [ABBR[VFS] [仮想ファイル・システム]] URI とやら (''Writing Modules'' ) は、素片識別子 (のようなもの) を複数つけることができます。 (例: [SAMP(URI)[ftp://username:password@host.net/path/to/file.tar.gz#gzip#tar/path/to/hello.c]]) [28] [[WinIE]] は [CODE(CSS)[[[behavior]]]] で [CODE(URI)[#]] が2つ入った文字列の指定を受け付けます。 ただし、素片識別子の拡張というよりはむしろ [Q[URI もどき]]です。 [[#comment]] ** メモ [[#comment]] * 様々な素片識別子構文 [146] 現在、様々な[[媒体型]]に対して様々な[[素片識別子]]の構文が定義・実装されています。 [[#comment]] ** HTML 系 / [CODE(XML)@en[ID]] 属性型素片識別子 - [37] [CODE(HTMLa)[[[name]]]] 属性を参照 -- [CODE(MIME)[[[text/html]]]]: [[RFC 1866]] --- [CODE(MIME)[[[text/x-hdml]]]] ---- [CITE[3 Language Elements]] -- [7] [CODE(HTMLa)[[[name]]]] 属性や [CODE(HTMLa)[[[id]]]] 属性を参照 --- [CODE(MIME)[[[text/html]]]]: ---- [54] [[HTML 4]], [[XHTML 1.0]], [[RFC 2854]] ---- [55] [[ISO-HTML]] --- [100] [[XDML]] ([CODE(MIME)@en[[[application/xhtml+xml]]]]) ---- [[DASE]]-2 5.1.1.5.1.1 - [198] [[ID]] や [CODE(HTMLa)@en[[[name]]]] [[属性]]を参照 -- [[HTML MIME型]] ([CODE(MIME)@en[[[text/html]]]], [CODE(MIME)@en[[[text/html-sandboxed]]]]) --- --- --- - [14] [CODE(XML)[[[ID]]]] 属性を参照 --- [47] [[XHTML 1.0]] ---- [[適合利用者エージェント]]は [[XHTML]] [[文書]]の [CODE(XML)[[[ID]]]] 属性だけを[[素片識別子]]に使わなければなりません。 ---- ---- [CSECTION[4.10. The elements with 'id' and 'name' attributes]] (参考) ---- [CSECTION[C.8. Fragment Identifiers]] (参考) --- [48] [[XHTML m12n]] ---- [CSECTION[3.5. XHTML Family User Agent Conformance]] --- [34] [CODE(MIME)[[[application/xhtml+xml]]]]: [[RFC 3236]] ---- [[RFC 3023]] を参照しています。 ---- しかし、 RFC 3023 は実質無規定なので、新版になるまでは [CODE(XML)[[[ID]]]] 属性に拠ると規定しています。 --- [103] [[XHTML+Voice]] ([CODE(MIME)@en[[[application/xv+xml]]]]) ---- [[RFC 4374]] ---- [[RFC 3236]] を参照しています。 --- [108] [CODE(MIME)@en[[[text/x-oeb1-document]]]] ---- 仕様書には明記なし。 --- [36] [CITE[XBL - XML Binding Language]] --- [73] [[SMIL]] ([CODE(MIME)@en[[[application/smil+xml]]]], [CODE(MIME)@en[[[application/smil]]]]) ---- [74] [CITE@en[Synchronized Multimedia Integration Language]] ([[SMIL 1.0]]) ---- [75] [CITE@en[The SMIL 2.0 Linking Modules]] ---- [76] [[RFC 4536]] ----- [[SMIL]] 仕様書 (版指定なし) を参照。 --- [15] [CODE(MIME)[[[text/vnd.wap.wml]]]] ---- [CODE(XMLe)[[[deck]]]] 名を表します。 ---- --- [[WML 2.0]] ([CODE(MIME)@en[[[application/wml+xml]]]]) ---- [CODE(XMLa)@en[[[id]]]] を表します。 ---- [CSECTION@en[5.3.1. The Go Task]] 他 ---- [CSECTION@en[5.13. User Agent Conformance Rules]] --- [60] [[XForms]] ---- [CITE@en[Document Structure]] ----- [CODE(XMLe)[[[model]]]] 要素の [CODE(XMLa)[[[schema]]]] 属性で同じ文書内の [CODE(XML)[[[ID]]]] を参照できます。 --- [42] [CODE(MIME)[[[application/srgs+xml]]]] ([[SRGS]] [[XML]] 形) ---- [CODE(XMLe)[[[rule]]]] 名を表します。 ---- [CITE[Speech Recognition Grammar Specification Version 1.0]] ---- [DEL[以前媒体型登録のための [[I-D]] が出ていましたが、その後音沙汰なし。 (2005年3月現在) 素片識別子については [[RFC 3023]] と同じとか書いてありましたが・・・。]] ---- その後 [[RFC 4267]] で登録されました (>>83)。 --- [56] [[XTD]] ---- [CITE[tradic論理フォーマット]] ---- [CITE[tradic物理フォーマット: XMLバインディング]] [76] [[EMMA]] ([CODE(MIME)@en[[[application/emma+xml]]]]) は仕様書中に[[媒体型]]登録のための雛形がありますが、[[素片識別子]]については言及がありません。 仕様書中の例には[[同文書参照]]が頻出しますが、 同じ文書内の [CODE(XML)@en[xs:[[ID]]]] 型[[属性]]の値を使っているようです。 - [CITE[EMMA: Extensible MultiModal Annotation markup language]] ([[W3C]] [[勧告]]) -- --- [109] [[CellML]] ([CODE(MIME)@en[[[application/cellml+xml]]]]) ---- [[媒体型]]を登録する [[RFC 4708]] ([[IETF]] [[情報提供]] [[RFC]]) に[[素片識別子]]への言及はありません。 ---- [[CellML 1.0]] ---- [[CellML 1.1]] ---- 同じ[[文書]]内の [[RDF/XML]] から[[参照]]するために、 [[素片識別子]]として [CODE(XML)@en[[[ID]]]] [[属性]]を使う方法が規定されています。 --- [110] [[WADL]] ([CODE(MIME)@en[[[application/vnd.sun.wadl+xml]]]]) ---- 仕様書に例がありますが、明確な規定はありません。 ---- [[IANA]] [[媒体型]]登録にも言及はありません。 --- [113] [[DSML]] ---- [CITE[Directory Services Markup Language (DSML)]] ---- 明確な規定はありませんが、頻用されています。 --- [120] [[VoiceXML 1.0]] ---- ---- [CITE[Voice eXtensible Markup Language (VoiceXML) version 1.0]] --- [122] [[SCXML]] ---- [CITE@en[State Chart XML (SCXML): State Machine Notation for Control Abstraction]] --- [114] [[APEX]] ([CODE(MIME)@en[[[application/beep+xml]]]]) ---- [[BEEP]] ([CODE(MIME)@en[[[application/beep+xml]]]]) を規定・登録する [[RFC 3080]] には、[[素片識別子]]への言及がありません。 ---- [[BEEP]] の[[プロファイル]]たる [[APEX]] は、 同じ[[文書]]内の[[要素]]を[[参照]]するために[[素片識別子]]だけの [[URI参照]]を使っています。 ---- [[RFC 3340]] ([[IETF]] [[提案標準]]) 4.1, 4.4.4 [153] [[KML]] ([CODE(MIME)@en[[[application/vnd.google-earth.kml+xml]]]], [CODE(MIME)@en[[[application/vnd.google-earth.kmz]]]]) では[[要素]]の [CODE(XML)@en[xs:[[ID]]]] [[属性値]]を[[素片識別子]]に使えるようです。 ;; [CITE[KML リファレンス]] ([TIME[2008-01-09 04:59:52 +09:00]] 版) 正式な仕様書は [[KML]] (OGC 07-147r2) の [CSECTION@en[6.4 Shared Styles]]、 [CSECTION@en[9.1.3.10 kml:description]]、 [CSECTION@en[12.9.3.1 kml:href]]、他何箇所か。 12.9.3.1 は [[XPointer]] [[速記指示子]]を使って [[KML]] 内の[[要素]]を表せると述べています。 9.1.3.10 は [[escape]] された [[HTML]] 中のリンクについて触れていますが、 そこでは[[速記指示子]]になる前に指令部分を削ぎ落とさないといけないと規定しています。 ;;いろいろややこしいな。 *** GML・SensorML [156] [[GML]] では [CODE(XMLa)@en[gml:[[id]]]] [[属性]]を指すと規定されています。 [155] [[SensorML]] は、明確な規定はありませんが、 [CODE(XML)@en[[[ID]]]] [[属性]]を指しているようです。 [157] なお、 [[GML]] で [[XLink]] を使うときの[[素片識別子]]には制約があって、 [[速記]]、 [CODE(XPointerScheme)[[[element]]()]]、 [CODE(XPointerScheme)[[[xmlns]]()]] 0個以上 + [CODE(XPointerScheme)[[[xpointer]]()]] のいずれかでなければなりません。 - [[GML]] -- [CSECTION@en[7.2.4.5 id]] -- [CSECTION@en[8.1 Xlinks — Object associations and remote properties]] - [[SensorML]] *** XTM [154] [[XTM 1.0]] は、明確な規定はないのですが、 Note として、[[素片識別子]]だけの [[URI参照]]を [CODE(XMLe)@en[[[topic]]]] [[要素]]の [CODE(XMLa)@en[[[id]]]] [[属性値]]を指しているものとして使っている旨の記述があります。 ([[XTM 1.0]] では [[URI参照]] (に変換されるもの) は [[XLink 1.0]] [CODE(XMLa)@en[xlink:[[href]]]] [[属性]]で使われています。) - [CITE[XML Topic Maps (XTM) 1.0]] ([TIME[2005-10-25 23:11:49 +09:00]] 版) --[CSECTION@en[2.1 A Gentle Introduction to Topic Maps]] *** WS-EventDescriptions [216] [[WS-EventDescriptions]] ([CODE(MIME)@en[[[application/evd+xml]]]]) では[RUBYB[[[事象記述文書]]]@en[Event Description document]]の[RUBYB[[[事象型]]]@en[Event Type]]を指します。 これは [CODE(XMLa)@en[[[id]]]] [[属性]] ([CODE(XML)@en[[[xs:ID]]]] 型) の値によって識別します。 [SRC[>>215]] [REFS[ - [215] [CITE@en[Web Services Event Descriptions (WS-EventDescriptions)]] ([TIME[2011-12-13 20:09:52 +09:00]] 版) ]REFS] *** 明記されていないが XML [CODE(XML)@en[ID]] を参照するらしいもの -[CITE@en-US[Elements of an EmotionML 1.0]] ([TIME[2008-11-19 23:37:02 +09:00]] 版) ** XML/XPointer 系素片識別子 [181] [[XML]] では元々[[素片識別子]]として [[XPointer]] が開発されてきましたが、 結局仕様自体が完成しなかったため、色々な [[XML]] 関連仕様がそれぞれ好き勝手なことを述べていたり、 何も述べていなかったり、混乱した状況になっています。 *** XLink [61] [[XLink]] の [CODE(XMLa)[[QN[xlink:[[href]]] [[[http://www.w3.org/1999/xlink]]]]]] [[属性]]の値が [[XML]] を指す場合は[[素片識別子]]は [[XPointer]] です。 ;; [178] [[XLink]] 仕様書のこの部分は規定ですが、参照されている [[XPointer]] 仕様書は古い [[WD]] ([[勧告]]とは非互換) で、 Informative Reference になっています。 [179] [[XLink 1.1]] [[WD]] でも [[XLink 1.0]] [[勧告]]と同じ古い [[WD]] が Informative に参照されています。 [180] 結局 [[XLink 1.1]] [[勧告]]では、該当する記述は削除されて、かわりに[[素片識別子]]は [[MIME型]]に依存するという説明に差し替えられています。[[XML]] については特に [[RFC 3023]] またはその改訂版に依るとされています。その中で、現時点 ([[RFC 3023]]) では[[素片識別子]]は定義されていないものの、いくつかの仕様では ([[勧告]]になった) [[XPointer]] を使っていると述べています [WEAK[(現状に即してはいるものの、矛盾した記述です)]]。 また、あいかわらず古い [[XPointer]] の参照もなぜか残っています。 ;; --- [80] [[XBRL]] ---- [[XBRL]] は [[XLink 1.0]] を使用しており、 [[XLink 1.0]] の [[XPointer]] を使うという規定を引用しつつ、 [[XBRL]] [[要素]]を参照するための[[素片識別子]]について、 [[XPointer]] [[勧告]]に基づき[[速記識別子]]と [CODE(XPointerScheme)@en[[[element]]()]] が使えると規定しています。 ---- [[JIS X 7206]]:2005 ([[XBRL 2.1]]) 3.5.4 --- [99] [[SVG 1.0]], [[SVG 1.1]] ---- ---- [[XLink 1.0]]を参照していますが、リンク先が[[XML]]なら[[素片識別子]]は[[XPointer]]という同じ規定があり、 こちらでは[[XPointer]][[勧告]]が参照されています。 -- [44] [[MathML]] では [[XPointer]] を使うことができます。 --- [CITE[Combining Presentation and Content Markup]] *** RFC 3023 を参照 [6] [[RFC 3023]] は [[XPointer]] 原案に言及していますが、 [[素片識別子]]について実際には何も規定していません。 [[XML]] 系の多くの[[媒体型]]が [[RFC 3023]] の定義を参照しています。 --- [CODE(MIME)[[[application/xml]]]]: [[RFC 3023]] --- [CODE(MIME)[[[text/xml]]]]: RFC 3023 --- [33] [[SOAP]] ([CODE(MIME)[[[application/soap+xml]]]]) ---- [115] [[RFC 3902]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 ---- [116] [CITE@en[Web Services Security: SOAP Message Security 1.1 (WS-Security 2004)]] ----- [CODE(XML)@en[[[IDREF]]]] による[[参照]]について規定しています。 --- [35] [CODE(MIME)[[[application/xop+xml]]]] ---- [46] [CITE[XML-binary Optimized Packaging]] ([[RFC 3023]] を参照。) ---- [45] [IANAREG] ([[RFC 3023]] を参照。) --- [57] [[CCXML]] ([CODE(MIME)[[[application/ccxml+xml]]]]) ---- [CITE[Voice Browser Call Control: CCXML Version 1.0]] ----- [[RFC 3023]] を参照。 ---- [[RFC 4267]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 --- [82] [[VoiceXML]] ([CODE(MIME)@en[[[application/voicexml+xml]]]]) ---- [[RFC 4267]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 --- [83] [[SRGS]] ([[XML]] 表現) ([CODE(MIME)@en[[[application/srgs+xml]]]]) ---- [[RFC 4267]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 --- [85] [[SSML]] ([CODE(MIME)@en[[[application/ssml+xml]]]]) ---- [[RFC 4267]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 --- [84] [[PLS]] ([CODE(MIME)@en[[[application/pls+xml]]]]) ---- [[RFC 4267]] ([[IANA]] 登録) ----- [[RFC 3023]] を参照。 --- [64] [[DocBook]] ([CODE(MIME)@en[[[application/docbook+xml]]]]) ---- [CITE@en[The DocBook Document Type]] ----- [[RFC 3023]] を参照。 ---- [[DocBook]] 4.3 [[WD]] ----- [[RFC 3023]] を参照。 --- [81] [[WS-CDL]] ([CODE(MIME)@en[[[application/cdl+xml]]]]) ---- [CITE@en[Web Services Choreography Description Language Version 1.0]] ----- [[RFC 3023]] を参照。 --- [101] [[Atom]] ([CODE(MIME)@en[[[application/atom+xml]]]]) ---- [[RFC 4287]] 7. ----- [[RFC 3023]]を参照。 --- [159] [[Atomサービス文書]] ([CODE(MIME)@en[[[application/atomsvc+xml]]]]) ---- [[RFC 5023]] ----- [[RFC 3023]]を参照。 --- [158] [[Atom分類文書]] ([CODE(MIME)@en[[[application/atomcat+xml]]]]) ---- [[RFC 5023]] ----- [[RFC 3023]]を参照。 --- [102] [[SPARQL]]結果 ([CODE(MIME)@en[[[application/sparql-result+xml]]]]) ---- [CITE@en[SPARQL Query Results XML Format]] ---- [CITE@en[SPARQL Query Results XML Format (Second Edition)]] ([TIME[2013-03-21 20:27:51 +09:00]] 版) ----- [[RFC 3023]]を参照。 --- [117] [[XSLT 2.0]] ([CODE(MIME)@en[[[application/xslt+xml]]]]) ---- [CITE@en[XSL Transformations (XSLT) Version 2.0]] ----- [[RFC 3023]] を参照。 ----- 本文中に [CODE(XML)@en[[[ID]]]] [[属性]]を[[参照]]する例あり。 - [118] [[XQueryX]] ([CODE(MIME)@en[[[application/xquery+xml]]]]) -- [186] [CITE@en[XML Syntax for XQuery 1.0 (XQueryX)]] --- [[RFC 3023]] を参照。 -- [185] [CITE@EN[XML Syntax for XQuery 1.0 (XQueryX) (Second Edition)]] - [129] [[WS-Policy]] 1.5 ([CODE(MIME)@en[[[application/wspolycy+xml]]]]) ---- [CITE@en-US[Web Services Policy 1.5 - Framework]] ----- [[RFC 3023]] を参照。 ---- [CITE@en-US[Web Services Policy 1.5 - Framework]] ----- [CODE(XMLa)@en[[VAR@en[wsu]]:[[Id]]]] [[属性]]を使った[[素片識別子]]について [[WS-Security]] 2004 を参照。 - [171] [[POWDER]] ([CODE(MIME)@en[[[application/powder+xml]]]]) -- [CITE@en[Protocol for Web Description Resources (POWDER): Description Resources]] ([TIME[2009-08-29 01:37:33 +09:00]] 版) --- [[RFC 3023]] [CODE(MIME)@en[[[application/xml]]]] を参照。 - [172] [[POWDER-S]] ([CODE(MIME)@en[[[application/powder-s+xml]]]]) -- [CITE@en[Protocol for Web Description Resources (POWDER): Description Resources]] ([TIME[2009-08-29 01:37:33 +09:00]] 版) --- [[RFC 3023]] [CODE(MIME)@en[[[application/xml]]]] を参照。 - [195] [[TEI]] ([CODE(MIME)@en[[[application/tei+xml]]]]) -- [CITE@en[RFC 6129 - The \x27application/tei+xml\x27 Media Type]] ([TIME[2011-04-21 05:04:28 +09:00]] 版) -- [[RFC 3023]] [CODE(MIME)@en[[[application/xml]]]] を参照。 - [199] [CODE(MIME)@en[[[application/xhtml+xml]]]] -- [210] - [208] [CODE(MIME)@en[[[application/inkml+xml]]]] -- [209] [CITE[Ink Markup Language (InkML)]] ([TIME[2011-09-20 17:16:49 +09:00]] 版) -- [[RFC 3023]] [CODE(MIME)@en[[[application/xml]]]] を参照。 *** [[SVG]] 素片識別子 --- [29] [[SVG]] は [[XPointer]] と互換な簡単な素片識別子の構文を規定しています。 --- [30] [CODE(MIME)[[[image/svg+xml]]]] ---- [CITE[Linking - SVG 1.0]] ---- [CITE[Linking - SVG 1.1]] ----[CITE[Linking – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) *** XML 署名における XPointer -- [49] [[XML署名]], [[XML暗号化]] ([CODE(MIME)[[[application/xenc+xml]]]]) --- [CITE[XML-Signature Syntax and Processing]] --- [[XML暗号化]] ([CODE(MIME)[[[application/xenc+xml]]]]) の仕様書やその中の登録雛形には素片識別子に関する明確な規定がありませんが、 [[XML署名]]の仕様の処理モデルに従うようです。 --- というか、外部から文書を参照するためのものではなく、処理中の [[XML署名]]や [[XML暗号化]]の文書内にある [[URI参照]]の[[素片識別子]]の解釈について規定されています。 --- [CITE[Decryption Transform for XML Signature]] [REFS[ - [236] [CITE@en[XML Signature Syntax and Processing Version 1.1]] ([TIME[2013-04-16 23:47:22 +09:00]] 版) ]REFS] [235] [[XML署名1.0]] では[[素片識別子]]は [[XPointer]] [[CR]] とされています [SRC[>>49]]。 [237] [[XML署名1.1]] では[[素片識別子]]は [[XPointer]] [[勧告]] (および [CODE(XPointerScheme)@en[[[xpointer()]]]] [[WD]]) を参照しており、 [CODE(XPointerScheme)@en[[[xpointer()]]]] は[RUBYB[非推奨]@en[discouraged]]とされています [SRC[>>286]]。 *** XFrames 素片識別子 [38] [[XFrames]] は [[XPointer scheme]] に似た構文の [CODE(URI)@en[[[frames()]]]] を規定しています。ただし [[XPointer]] であるとは書かれていません。 [39] 単純な [[XFrames]] の[[素片識別子]]は単純な [[XPointer]] で [CODE(URI)@en[[[frames()]]]] [[scheme]] を使ったものと互換性がある、と言える程度ではあります。 ただし現時点で [[W3C]] の [[XPointer scheme]] 登録簿に [CODE(URI)@en[[[frames()]]]] はありません。 [TIME[2011-04-25T23:24:26.800Z]] - [40] [CITE[XFrames]] - ... - [194] [CITE@en[XFrames]] ([TIME[2010-12-17 00:45:08 +09:00]] 版) *** -- [69] [[WSDL 2.0]] 方式 --- [70] [[WSDL 2.0]] [[XML]] [[直列化]] ([CODE(MIME)@en[[[application/wsdl+xml]]]]) ---- [71] [CITE@en[Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language]] ---- [72] [[RFC 3023]] の定義とこの仕様の附属書の定義のどちらかを使うと定義されています (なんだそりゃ)。附属書で定義されているのは [[XPointer]] の[[プロファイル]]です。 -- [119] [[WSDL 1.1]] --- [CITE@en[WSDL 1.1 Element Identifiers]] ([CODE[2007-01-30 07:47:21 +09:00]] 版) --- [[比較]]のための[[正準形]]も定義されています。 -- [91] [[TEI]] --- [[TEI]]では[[XPointer]]を[[素片識別子]]として使います。 --- [CITE[Linking, Segmentation, and Alignment]] -- [92] [[XSD]] --- [CSECTION@en[3.15.2.2 References to Schema Components from Elsewhere]] -- [125] [[SML]] --- [CITE[Service Modeling Language, Version 1.0]] --- [[XPointer]] の[[プロファイル]]。 -- [124] [[XFA]] --- [[XFA]] 2.4 195頁 --- 明確に[[素片識別子]]であるとは書かれていませんが、 見た感じ[[URI参照]]である[[構文]]が定義されています。 --- [[素片識別子]]部は明らかに [[XPointer]] を意識しています。 --- [[素片識別子]]部内に[[百分率符号化]]されていない [CODE(URI)[#]] が登場し得るようです。 -- [[WebCGM]] 方式 --- [4] [[WebCGM]] ([CODE(MIME)[[[image/cgm]]; [[version]]=4; [[profileid]]=WebCGM]]) は [[XPointer]] に似ている [WEAK[(もののやや異なる)]] 構文の素片識別子を使っています。 --- 初版: [CITE[WebCGM Intelligent Content]] --- 第2版: [CITE[WebCGM Intelligent Content]] --- 2.0 [[会員提出]]: [CITE@en[OASIS CGM Open specification - WebCGM 2.0 - WebCGM Intelligent Content]] --- 2.0 [[勧告]]: [CITE[WebCGM 2.0 - WebCGM Intelligent Content]] ([CODE[2007-01-25 02:12:49 +09:00]] 版) --- 2.0 [[標準]]: [CITE[WebCGM 2.0 - WebCGM Intelligent Content]] ([CODE[2006-11-04 01:53:46 +09:00]] 版) --- 2.1 [[勧告]] ---- ---- -- [19] [[FIXptr]] --- [CODE(MIME)[[[application/xml]]]], [CODE(MIME)[[[text/xml]]]]: [[Gecko]] などが実装。 --- [[XPointer]] の古い案の簡略版。現在の [[XPointer]] とは非互換。 *** 「RFC 3023 またはその改訂版」を参照 - [177] [[XProc]] ([CODE(MIME)@en[[[application/xproc+xml]]]]) -- [CODE(MIME)@en[[[application/xml]]]] と同じ -- [CITE[XProc: An XML Pipeline Language]] ([TIME[2010-05-11 22:38:07 +09:00]] 版) *** SML の素片識別子 [170] [[SML 1.1]] の [[SML URI Reference Scheme]] では、[[素片識別子]]に[[速記指示子]]または [CODE(XPointerScheme)@en[[[smlxpath1()]]]] [[XPointer scheme]] のいずれかが利用できることになっています。 ;; [CITE@en-US[Service Modeling Language, Version 1.1]] ([TIME[2009-05-12 17:50:10 +09:00]] 版) *** MPEG の素片識別子 [188] [[ISO/IEC 21000-17]] は [[MP3]] と [[MP4]] のための[[素片識別子]]を規定しています。 これは実質的には [[XPointer]] の[[プロファイル]]ですが、 [[XPointer]] を引用しつつも独自に定義しています。 **** 仕様書 - [189] [[ISO/IEC 21000-17:2006]] *** EPUB CFI [234] [[EPUB]] は [[CFI]] と呼ばれる [[XPointer]] ベースの独自の構文を[[素片識別子]]として採用しています。 [REFS[ - [233] [CITE[EPUB Canonical Fragment Identifier (epubcfi) Specification]] ([TIME[2011-10-11 03:59:06 +09:00]] 版) ]REFS] *** メモ [107] [CITE[Re: XPointer considered incomprehensible from Bjoern Hoehrmann on 2006-09-05 (www-tag@w3.org from September 2006)]] ([[名無しさん]] [WEAK[2006-09-07 23:21:03 +00:00]]) [CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+xml]]]] [[媒体型]]の[[素片識別子]]の定義の実態を調査した報告です。 [130] [CITE@en[Numbers as anchors]] ([[Henry S. Thompson]] 著, [CODE[2008-02-15 02:28:33 +09:00]] 版) [[数値]]からはじまる[[素片識別子]]を [[XML]] では定義できないことが問題提起されています。 ;; この問題は、連番や日付を使いたいときによく遭遇します。 [[#comment]] ** RDF 系素片識別子 [13] [[RDF]] は >>97 のような事情から、 [[RDF URI参照]]における[[素片識別子]]は [CODE(MIME)@en[[[application/rdf+xml]]]] の[[表現]]のものである、 などといった辻褄あわせともいえる規定を持っています。 - [148] [[RDF/XML]] ([CODE(MIME)[[[application/rdf+xml]]]]) -- [[RFC 3870]] -- [CITE@en[Resource Description Framework (RDF): Concepts and Abstract Syntax]] [CSECTION@en[7. Fragment Identifiers]] [147] [[RDF]] の[[具象構文]]の1つ、 [[N3]] は、 [[RDF]] を直接参照せず、このように[[素片識別子]]を規定しています。 - [[素片識別子]]以外の部分が [[N3]] [[表現]]を持つ[[資源]]を識別する場合、 その[[素片識別子]]は、抽象的であろうが具象的であるが、 任意の[[情報資源]]を識別することができます。 - その [[N3]] [[表現]]は、その[[情報資源]]についての情報を[[文]]として含めることができます。 - 構文的には、 [[N3]] における [[qname]] の [CODE(char)[[[:]]]] 以降の部分と一致するべきです - [149] [[N3]] ([CODE(MIME)@en[[[text/n3]]]], [CODE(MIME)@en[[[text/rdf+n3]]]], [CODE(MIME)@en[[[application/n3]]]]) -- [CITE@en[Notation3 (N3): A readable RDF syntax]] ([CODE[2008-01-16 03:12:43 +09:00]] 版) ** 媒体素片URL [245] [[W3C]] の[RUBYB[[[媒体素片作業部会]]]@en[Media Fragments Working Group]]による[RUBYB[[[媒体素片URL]]]@en[Media Fragments URL]]仕様は、 [[画像]]、[[音声]]、[[動画]]の一部を識別する[[素片識別子]]の構文を規定しています。ただし、 ([[URL]] 全般の原則に従い、) 実際にその規定を適用するためには当該 [[MIME型]]の仕様から本仕様を参照しないといけないことになっています。 [REFS[ - [244] [CITE@en-us[Media Fragments URI 1.0 (basic)]] ([TIME[2012-09-27 23:08:40 +09:00]] 版) ]REFS] [248] この仕様の策定の過程で既存の[[MIME型]]の[[素片識別子]]の調査が行われています。それによると、 MIME型の登録で素片識別子を定義しているものはなく、(仕様上は) 本仕様と衝突するおそれはないとされています。 [REFS[ - [246] [CITE[MediaTypeReview - Media Fragments Working Group Wiki]] ([TIME[2013-06-13 21:01:58 +09:00]] 版) - [247] [CITE@en[Results of the media type review regarding fragment identifier (semantics)]] ([[Michael Hausenblas]] 著, [TIME[2009-04-18 23:07:07 +09:00]] 版) ]REFS] ただし、この調査自体では当時知られていた [CODE(MIME)@en[[[audio/mpeg]]]] 等の[[素片識別子]]の定義 ([[MIME型]]の登録には含まれておらず [[ISO]] の仕様で規定されている。) を検出できていません。 また、当時未登録とはいえ同じ [[W3C]] 内の [CODE(MIME)@en[[[image/svg+xml]]]] で[[SVG素片識別子]]が定義されていますし、 [[WebCGM]] ([CODE(MIME)@en[[[image/cgm]]]]) にも[[素片識別子]]がありますが、これらはまったく言及もされていません。 既存の[[MIME型]]の調査としてはとても杜撰と言わざるを得ません。 ([[MIME型]]の登録自体に[[素片識別子]]の定義が言及されていることを期待しているようですが、 [[URI]] の [[RFC]] は別にそれを要求していません。) ** Blorb 素片識別子 [111] [CITE[Suggested Interactive Fiction Mediatypes]] [[Blorb]] ([CODE(MIME)@en[[[application/prs.blorb]]]], [CODE(MIME)@en[[[[VAR[*]]/[VAR[*]]+blorb]]]]) の[[素片識別子]]として、 [CODE(URI)@en[#Pict([VAR[n]])]] や [CODE(URI)@en[#Fspc]] のようなものを提案しています。 また、関連して、 [[TADS]] 3 ([CODE(MIME)@en[[[application/prs.t3vm.image]]]]) の[[素片識別子]]として [CODE(URI)@en[#mres([VAR[path]])]] を提案してます。 [[#comment]] ** XTM 2.0 素片識別子 [155] [[XTM 2.0]] は、[[素片識別子]]の意味を明確に規定しているわけではないのですが、 その [CODE(XMLe)@en[[[topic]]]] [[要素]]や [CODE(XMLe)@en[[[topicRef]]]] [[要素]]の規定より、次のように解釈できます。 [[XTM 2.0]] [[文書]]の[[素片識別子]]は、[[百分率符号化]]を解いて [[UTF-8]] [[文字列]]として解釈した時、 = [CODE(XMLa)@en[[[id]]]] が一致する [CODE(XMLe)@en[[[topic]]]] があれば、その ([[名前]]の) [[話題]]を指します = なければ、その[[名前]]の[[話題]]を指します 構文的には、[[素片識別子]]を解いた[[文字列]]は [[XPointer]] [[速記指示子]]でなければなりません。 - [CITE[ISO 13250-2: Topic Maps — Data Model]] ([TIME[2008-06-04 22:00:09 +09:00]] 版) ** その他の名前型素片識別子 - [43] [[N-Gram]] -- [[開始記号]]を素片識別子で指定します。 -- [CITE[Stochastic Language Models (n-gram) Specification]] -- [CITE[Speech Recognition Grammar Specification Version 1.0]] - [77] [[LTM]] ([[線形Topic Map記法]]) -- [[話題ID]] を使用します。 -- [CITE[The Linear Topic Map Notation]] - [58] [[P3P]] -- [CODE(XMLe)[[[POLICY]]]] [[要素]] [CODE(XMLa)[[[name]]]] [[属性]] ([CODE(XML)[[[ID]]]] 型): [[素片識別子]]として使われます。 -- [CODE(XMLe)[[[POLICY-REF]]]] [[要素]] [CODE(XMLa)[[[about]]]] [[属性]]で使う[[素片識別子]]: [CODE(XMLe)[[[POLICY]]]] [[要素]]で [CODE(XMLa)[[[name]]]] [[属性]]が一致するものを指します。 -- [CODE(XMLe)[[[DATA]]]] [[要素]] [CODE(XMLa)[[[ref]]]] [[属性]]で使う[[素片識別子]]: [[データ要素]]や[[データ集合]]を指します。 [[要素型名]]を[[親]]から[[子]]に向かって [CODE(char)[.]] で連結したものを使います。 -- [CODE(XMLe)[[[DATA-STRUCT]]]], [CODE(XMLe)[[[DATA-DEF]]]] [[要素]] [CODE(XMLa)[[[structref]]]] [[属性]]: [[構造]]を指します。構造の名前 ([CODE(XMLa)[[[name]]]] [[属性]] ([CODE(XML)[[[ID]]]] 型) の [CODE(char)[.]] で階層を区切った文字列) を使います。 指される方の定義が明示的に[[要素]]として存在するとは限りません。 [WEAK[(例えば [SAMP(URI)[#a]] が指すものは [SAMP[a.b]] や [SAMP[a.c]] などによって暗示的に定義され得ます。)]] - [65] [[DITA]] -- [CITE@en[OASIS Standards and Other Approved Work]] -- [CITE@en[topic]] --- [CODE(XML)@en[[[ID]]]] -- [CITE@en[xref]] --- [CODE(ABNF)[[CODE(XML)@en[[[ID]]]] "/" [CODE(XML)@en[[[ID]]]]]] -- [CITE@en[link]] --- [CODE(XML)@en[[[ID]]]] -- [CITE@en[%id-atts;]] --- [CODE(ABNF)[[CODE(XML)@en[[[ID]]]] "/" [CODE(XML)@en[[[ID]]]]]] - [87] [[J#]] [[マネージ・ライブラリ]] -- [[クラス名]]を[[素片識別子]]として使用 -- [CITE[Java アプレットから Microsoft J# ブラウザ コントロールへの移行]] - [67] [[X3D]] 系 ([[視点]]の名前を指定) -- [66] [[VRML]] ([CODE(MIME)@en[[[model/vrml]]]]) --- --- -- [68] [[X3D]] --- [CITE@en[Extensible 3D (X3D), ISO/IEC 19775-1:200x, Part 1 -- 23 Navigation component]] --- [CITE@en[Extensible 3D (X3D), ISO/IEC 19775-1:200x, Part 1 -- 9 Networking component]] - [41] [CODE(MIME)[[[application/srgs]]]] ([[SRGS]] [[ABNF]] 形) -- XML 形の [CODE(XML)[ID]] に相当する規則名を指します。 -- [CITE[Speech Recognition Grammar Specification Version 1.0]] -- [DEL[以前媒体型の IANA 登録のための [[I-D]] が出ていて、素片識別子は [[RFC 3023]] と同じなどと頓珍漢なことが書かれていました。登録手続きはその後音沙汰なし。 (2005年3月現在)]] -- その後 [[RFC 4267]] で登録されましたが、 [[素片識別子]]に関する規定はなくなっています。 - [42] [[TTZ]] ([[T-Time]] 文書) -- [[TTZ]] [[ファイル]]内の[[名前]]。 - [88] [[Texinfo]] -- [[Texinfo]]系[CODE(URI)@en[[[info]]:]] [[URI]]で[[節点名]]が[[素片識別子]]として使われます。 - [89] [[HORB]] [[ACL]][[ファイル]] -- [CODE(URI)@en[[[horb]]:]] [[URI]]で[[ACL]]名が[[素片識別子]]として使われます。 - [93] [CODE(URI)@en[[[irc]]:]] [[URI scheme]] -- [[チャンネル名]]を[[素片識別子]]とする流儀があります。 - [94] [[名前空間]]に属する[[語彙]] -- [CITE[XML Schema Part 2: Datatypes Second Edition]] -- [CITE[Associating Resources with Namespaces]] [[#comment]] ** 関数呼び出し型素片識別子 - [5] [CODE(MIME)[[[text/vnd.wap.wmlscript]]]] -- 関数呼出しを記述できます。 -- - [78] [[Java]] -- [CODE(URI)@en[[[java]]:]] [[URI scheme]] (非標準) の実装で、 [CODE(ABNF)@en[[[path]]]] で[[クラス]]を識別し、 素片識別子で[[メソッド]]を識別するものがあります [WEAK[([[Java]] におけるメソッドの識別法 (非 URI) に倣っています)]]。 [[#comment]] ** 名前・値型素片識別子 [9] いくつかの [[MIME型]]では [CODE[[VAR@en[name]]=[VAR@en[value]];[VAR@en[name]]=[VAR@en[value]]]] のような形式が採用されています。 - [10] [CODE(MIME)@en[[[text/plain]]]] -- [[RFC 5147]] --- 長らく [[I-D]] で半放置状態でしたが、ようやく [[RFC]] になりました。 -- [CODE(ABNF)@en[[[param]]]] 型構文で文章の行や文字列を指定できます。 - [241] [CODE(MIME)@en[[[text/csv]]]] -- [[I-D]] -- [15] [[CAB]] ファイル --- [CODE(ABNF)[param]] 型構文で [[ActiveX Control]] の版を指定できます。 -- [31] [CODE(MIME)[[[application/pdf]]]] --- [CODE(ABNF)[param]] 型構文で命令を指定できます。 -- [126] [[時刻付き媒体]]向け[[素片識別子]] --- [127] [CITE@en[Specifying time intervals in URI queries and fragments of time-based Web resources]] ([CODE[2006-05-06 10:39:46 +09:00]] 版) ---- [[満期]] ([DEL@en[[[IETF]] [[I-D]]]]) ---- この仕様自体は特定の[[媒体型]]には依存していません。 --- [128] [[CMML]] ([CODE(MIME)@en[[[text/cmml]]]]) ---- [CITE@en[The Continuous Media Markup Language (CMML), Version 2.1]] ([CODE[2006-05-06 10:39:46 +09:00]] 版) ---- [[満期]] ([DEL@en[[[IETF]] [[I-D]]]]) ---- >>127 を採用しています。 [[#comment]] ** 数値型素片識別子 - [11] 数値系 -- [12] [CODE(MIME)[[[text/plain]]]] --- 行数などを指定。 --- [[w3m]] などが実装。 -- [86] [[ニュース組]]の[[記事番号]] --- [[w3m]] が以前実装していました。 --- [CODE(URI)@en[[[news]]:]] [[URI]] が[[ニュース組]]を表す際に使えました。 -- [90] [CODE(URI)@en[[[artifact]]:]], [CODE(URI)@en[[[link]]:]], [CODE(URI)@en[[[local]]:]] [[URI scheme]]では、 版番号のために[[素片識別子]]が使われています。 ** 含まれている内容に依存するもの [211] [CODE(MIME)@en[[[multipart/x-mixed-replace]]]] の[[素片識別子]]は、 含まれている[[本体部分]]それぞれに、それぞれの[[MIME型]]に従い適用されます。 [REFS[ - [212] [CITE@en-US-x-hixie[Web Applications 1.0]] ([TIME[2011-09-29 00:25:11 +09:00]] 版) ]REFS] ** 素片識別子は未定義と明記されているもの [105] [[素片識別子]]を定義している[[媒体型]]はほんの一握りで、 [[IANA]] に登録されているほとんどの[[媒体型]]の仕様では[[素片識別子]]は言及すらされていません。 しかし、一部の[[媒体型]]に関しては、「[[素片識別子]]は未定義」 の旨が明確に規定されています。 - [106] [[JavaScript]]・[[ECMAScript]] ([CODE(MIME)@en[[[text/javascript]]]], [CODE(MIME)@en[[[text/ecmascript]]]], [CODE(MIME)@en[[[application/javascript]]]], [CODE(MIME)@en[[[application/ecmascript]]]]) -- [[RFC 4329]] - [197] [CODE(MIME)@en[[[text/event-stream]]]] -- - [200] [CODE(MIME)@en[[[application/x-www-url-formencoded]]]] -- - [201] [CODE(MIME)@en[[[text/cache-manifest]]]] -- - [202] [CODE(MIME)@en[[[text/ping]]]] -- - [203] [CODE(MIME)@en[[[text/vtt]]]] -- - [205] [CODE(MIME)@en[[[application/html-peer-connection-data]]]] -- - [239] [CODE(MIME)@en[[[application/provenance+xml]]]] -- [CITE@en[PROV-XML: The PROV XML Schema]] ([TIME[2013-04-30 13:05:52 +09:00]] 版) -- 「N/A」とされています。 *** JSON と同じ - [204] [CODE(MIME)@en[[[application/microdata+json]]]] -- -- [[JSON]] ([CODE(MIME)@en[[[application/json]]]]) と同じとされています。 -- ただし現時点で [[JSON]] に[[素片識別子]]は定義されていません。 *** URL scheme の規定で未定義とされているもの - [219] [CODE(URI)@en[[[rtsp:]]]], [CODE(URI)@en[[[rtspu:]]]] -- [[RFC 2326]] は、構文上[[素片識別子]]を使っておらず、本文でその意味は未定義であると説明しており、 解釈は[[鯖]]に委ねられると述べています。 ** メモ [59] [CITE@en[XML Schema Datatypes in RDF and OWL]] [[XML Schema]] で定義された[[データ型]]をどういう [[URI]] ([[素片識別子]]) で識別するべきかという議論があります。 [121] [CITE[Fragment Search]] ([CODE[2007-02-10 03:37:54 +09:00]] 版) ([[名無しさん]] [WEAK[2007-02-14 22:56:14 +00:00]]) > Fragment Search is a Greasemonkey script which allows people to create URLs which link to content within a page without having control over that page. > So, for example, http://www.gerv.net/#!s!design searches for the word "design" on the front page of this site. "#" starts the fragment identifier, "!" is the special character so it's obvious it's not a normal fragment identifier, "s" stands for search (there are several other things we want to do with the fragment identifier, like link fingerprints, so we need to keep them all separate) and the second "!" separates the command name from the instruction - i.e. what to search for, in this case "design". * 生成規則 [CODE(ABNF)[fragment]] [227] [[URI]] 系規格で構文規則 [DFN[[CODE(ABNF)[fragment]]]] は、[[素片識別子]]を表しています。 [FIG[ = [228] [CODE(ABNF)[[DFN[fragmentid]] := [[xalphas]] ;; [[RFC 1630]]]] = [229] [CODE(ABNF)[[DFN[fragment]] := *( [[uchar]] / [[reserved]] ) ;; [[RFC 1808]]]] = [230] [CODE(ABNF)[[DFN[fragment]] := *[[uric]] ;; [[RFC 2396]] 4.1]] ]FIG] * テスト・ケース [207] ([TIME[2011-09-11 03:41:55 +09:00]] 版) * 関連 [16] [CODE(URI)[[[jar]]:]] [[URI scheme]] は、 [[ZIP]] 形式の圧縮ファイルの中のファイルを識別できます。 本来、[Q[ある資源の中に含まれる資源]]ですから、 素片識別子を使って表現するのが適当にも思えますが、 [CODE(URI)[jar:]] は[Q[資源の中の資源]]まで一つの URI 本体だけで識別できます。 (この方式を推進する人は、[Q[ある資源の中の資源の中の資源]] のような入れ子の場合を素片識別子は綺麗に表現できないことを問題視しています。) 同様な [[URI scheme]] は [CODE(URI)@en[[[zip]]:]], [CODE(URI)@en[[[tar]]:]], [CODE(URI)@en[[[pack]]:]] など多数あります。 [32] >>16 他に、素片識別子を使った表現の方法を採ると[[相対参照]]が使えなくなってしまう問題もあります。 [123] [[CSS]] などで用いられる[[識別子選択子]]は本質的に[[素片識別子]]と同じものです。 [132] [[HTML]] の [CODE(HTMLa)@en[[[usemap]]]] [[属性]]の値は元々 [[URI参照]]であるとされていましたが、諸々の事情により、 現在は [CODE(char)[#]] の後に参照する [CODE(HTMLe)@en[[[map]]]] [[要素]]の [CODE(HTMLa)@en[[[name]]]] [[属性]]の値を指定することになっています。 [151] [[Webブラウザ]]で表示中の[[文書]]で[[ナビゲーション]]の結果[[素片識別子]]が変更された時に発生する [[DOM]] [[事象]] [CODE(DOMe)@en[[[hashchange]]]] が [[HTML 5]] で定義されています。 ** 素片識別子だけを使うプロトコル要素 [17] [[SMIL]] の [CODE(XMLa)[[[fragment]]]] 属性は、 [[HTML]] の [CODE(HTMLa)[[[name]]]] 属性や [CODE(HTMLa)[[[id]]]] 属性や、 [[XML]] の素片識別子を使ってある資源の一部を識別するために使うことができます。 [18] [[XInclude]] の [CODE(XMLa)[[[xpointer]]]] 属性は、 [[XPointer]] を使って XML の一部を識別するために使うことができます。 * メモ [160] [CITE[秋元@サイボウズラボ・プログラマー・ブログ: ブラウザのアドレスバーに動くアスキーアートを組み込む]] ([TIME[2009-01-14 14:00:00 +09:00]] 版) [168] [CITE@en-US[Usage Patterns For Client-Side URI parameters]] ([TIME[2009-04-17 01:15:21 +09:00]] 版) [169] [CITE@en-us[Use cases and requirements for Media Fragments]] ([TIME[2009-05-01 02:03:22 +09:00]] 版) [173] [CITE[auでLocatiuonヘッダにフラグメント識別子を入れた場合の挙動 - maru.cc@はてな]] ([TIME[2009-09-19 18:13:22 +09:00]] 版) [174] [CITE@EN[XForms 1.1]] ([TIME[2009-10-20 22:51:54 +09:00]] 版) [175] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-12-05 01:03:33 +09:00]] 版) [176] [CITE@en-us[Media Fragments URI 1.0]] ([TIME[2010-04-13 21:53:59 +09:00]] 版) [182] [CITE[IRC logs: freenode / #whatwg / 20100525]] ([TIME[2010-06-15 22:35:31 +09:00]] 版) [183] [CITE@en-us[Media Fragments URI 1.0]] ([TIME[2010-06-24 18:17:25 +09:00]] 版) [184] [CITE[Getting Started - Making AJAX Applications Crawlable - Google Code]] ( ([TIME[2010-10-14 00:08:52 +09:00]] 版)) [187] [CITE@en[Repurposing the Hash Sign for the New Web]] ( ([TIME[2011-01-16 06:03:54 +09:00]] 版)) [190] [CITE[Tagneto: Cross Domain Frame Communication with Fragment Identifiers (for Comet?)]] ( ([TIME[2011-03-04 15:42:42 +09:00]] 版)) [191] [CITE@en-us[Media Fragments URI 1.0]] ( ([TIME[2011-03-18 02:20:59 +09:00]] 版)) [192] [CITE[MediaTypeReview - Media Fragments Working Group Wiki]] ( ([TIME[2011-03-16 01:29:58 +09:00]] 版)) [193] [CITE@en[RFC 5122 - Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP)]] ( ([TIME[2011-01-27 11:38:10 +09:00]] 版)) [196] [CITE@en[draft-hoehrmann-javascript-scheme-03 - The \x27javascript\x27 resource identifier scheme]] ( ([TIME[2011-03-02 19:54:01 +09:00]] 版)) [206] [CITE@en[Web Applications 1.0 r6519 Allow frag IDs to be used by scripts rather than having them point to IDs only.]] ( ([TIME[2011-08-23 07:36:00 +09:00]] 版)) [213] [CITE@en-us[Media Fragments URI 1.0]] ( ([TIME[2011-12-01 17:05:44 +09:00]] 版)) [214] [CITE@en-us[Protocol for Media Fragments 1.0 Resolution in HTTP]] ( ([TIME[2011-12-01 17:49:26 +09:00]] 版)) [217] [CITE@en[Identifying Application State]] ( ([TIME[2011-12-10 07:10:28 +09:00]] 版)) [218] [CITE@en[mozdev.org - mdhashtool: lfinfo]] ([TIME[2012-02-17 17:48:42 +09:00]] 版) [220] [CITE@en-us[Media Fragments URI 1.0 (basic)]] ( ([TIME[2012-03-14 02:53:51 +09:00]] 版)) [221] [CITE[TAG Product: Fragment Identifiers and Mime Types]] ( ([TIME[2012-05-29 06:09:08 +09:00]] 版)) [222] [CITE@en[Best Practices for Fragment Identifiers and Media Type Definitions]] ( ([TIME[2012-05-29 04:35:36 +09:00]] 版)) [223] [CITE@en[Session on mime types and fragids]] ( ([[Jeni Tennison]] 著, [TIME[2011-06-01 07:33:32 +09:00]] 版)) [224] [CITE[Web Application Description Language]] ( ([TIME[2009-09-10 03:59:24 +09:00]] 版)) [225] [CITE@en[Best Practices for Fragment Identifiers and Media Type Definitions]] ( ([TIME[2012-07-26 00:15:04 +09:00]] 版)) [226] [CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) [FIG[ [REFS[ -[231] [CITE@en-us[Media Fragments URI 1.0 (basic)]] ([TIME[2012-09-27 23:08:40 +09:00]] 版) ]REFS] >URI fragment: The fragment component is indicated by the presence of a number sign ("#") character and terminated by the end of the URI. ]FIG] [232] [CITE@en[Best Practices for Fragment Identifiers and Media Type Definitions]] ( ([TIME[2012-10-25 03:38:57 +09:00]] 版)) [238] [CITE[IRC logs: freenode / #whatwg / 20130424]] ( ([TIME[2013-05-04 00:32:00 +09:00]] 版)) [240] [CITE@en[Web Applications 1.0 r7947 Add TextTrack.id and TextTrackList.getTrackById to enable in-band text tracks to be identified and selected from JS]] ( ([TIME[2013-06-08 09:05:00 +09:00]] 版)) [242] [CITE[Bug 100841 – Allow CSS selectors as fragment identifiers]] ( ([TIME[2013-07-04 09:25:06 +09:00]] 版)) [243] [CITE@en[Floating Quotable Citations (FQC)]] ( ([[David Cuenca]] 著, [TIME[2013-02-20 23:40:47 +09:00]] 版)) [249] [CITE[zip fragments]] ( ([TIME[2013-08-26 12:06:02 +09:00]] 版)) [250] [CITE[IRC logs: freenode / #whatwg / 20130822]] ( ([TIME[2013-08-26 10:03:00 +09:00]] 版))