#?SuikaWiki/0.9 - [2] [CODE[element]] の訳語: [CODE[[[要素]]]] (一般, [[SGML]]), [CODE[[[元素]]]] ([[化学]]), [CODE[[[元]]]] [[#comment]] * element() scheme (XPointer) [1] ''XPointer element() Scheme'' [2] 何に使うのかがよく分からない。 [[XPath]] つかう [CODE(XPointerScheme)[[[xpointer]]]] [[scheme]] の簡易版のつもりなのかなあ。 [3] >>1 まあそんなもんです。むしろ、従来の [[ID]] を[[素片識別子]]に使う方法と互換である[[速記]]法の scheme 版とでも言うか。でも大して用途があるとは思えないんだよなあ。 [SAMP(XPointer)[[CODE(XPointerScheme)[xmlns]]([INS[...]]) [CODE(XPointerScheme)[[VAR[something]]]]([INS[...]]) [CODE(XPointerScheme)[[VAR[something]]]]([INS[...]]) [INS[...]] [CODE(XPointerScheme)[element]](id-of-element)]] って感じで fallback として使うことが目的なのかな。 確かにこのためだけに XPath を実装するのは重いかも。 [4] 構文: - [CODE(ABNF)[[DFN[element 指示子部分]] := 'element(' element scheme データ ')']] - [CODE(ABNF)[[DFN[element scheme データ]] := 識別子 [子連] / 子連]] - [CODE(ABNF)[[DFN[識別子]] := [[NCName]] ;; [[速記]]で使うのと同じ意味での要素の識別子]] - [CODE(ABNF)[[DFN[子連]] := 1*("/" <[1-9]> *[[DIGIT]])]] [5] 例: :[SAMP(XPointer)[[CODE(XPointerScheme)[element]](foo)]]:識別子 [SAMP[foo]] の要素 :[SAMP(XPointer)[[CODE(XPointerScheme)[element]](foo/1)]]:識別子 [SAMP[foo]] の要素の最初の子要素 :[SAMP(XPointer)[[CODE(XPointerScheme)[element]](foo/2/15)]]:識別子 [SAMP[foo]] の要素の2番目の子要素の15番目の子要素 :[SAMP(XPointer)[[CODE(XPointerScheme)[element]](/1)]]:[[根節]]の下の最初の要素 ([[文書実体]]であれば、[[文書要素]]。) :[SAMP(XPointer)[[CODE(XPointerScheme)[element]](/2)]]:根節の下の2番目の要素 ([[外部解析実体]]対象のときには存在する可能性がある) [6] 一致する要素が見つからなかった場合は単に一致なしで、 [[指示子]]全体としてみたときに次の指示子部分があれば、 そちらに処理が移ります。 [WEAK[もちろん、最後の指示子部分だったとすればその指示子は該当なしということに。]] [7] >>1 の仕様書、すごいですねぇ。実に半分が前書き。 残り半分のさらに半分くらいは引用規格。 - [8] ''XPointer xpointer() Scheme'' で [CODE(XPointerScheme)[element]] scheme を (XPointer scheme としてではありませんが) 微妙に拡張して再定義してたりします。 [9] >>8 は、範囲選択の記法の説明の中に登場するのですが、微妙に拡張というより、[CODE(ABNF)[子列]]の一番最初の [CODE[/]] を省略して、 [SAMP(XPointer)[[CODE(XPointerScheme)[element]](1/2)]] のように書いています。 (何かの間違いでしょう。) ([[名無しさん]]) [10] >>4 [[XML名前空間]] 1.0 の [CODE(ABNF)[NCName]] を参照しているので、このままでは [[XML 1.1]] で (必ずしも) 使えません。今のところ errata にも修正ありませんけど、どうするのでしょう? ([[名無しさん]] [WEAK[2004-05-03 00:13:06 +00:00]]) [[#comment]] * メモ