* 名前空間節点 (XPath 1.0 データ・モデル) [2] [[XPath 1.0データ・モデル]]の[DFN[[RUBY[名前空間節点][なまえくうかんせってん]@en[namespace node]]]]は、 [[名前空間束縛]]を表す[[節点]]です。 [1] 仕様書: - [[XPath 1.0]] -- [CSECTION@en[5.4 Namespace Nodes]] -- [[正誤表]] [3] [[要素節点]]は、[[先祖要素]]で[[宣言]]されたものも含め、 [[適用範囲]]内にあるすべての[[名前空間]]に対応する[[名前空間節点]]を持っています。 [6] '''名前空間属性との関係''' [[要素節点]]は、次のような[[名前空間節点]]を持ちます [SRC@en[XPath 1.0 5.4]]: - 問題の[[要素]]の、[[名前]]が [CODE(XML)@en[[[xmlns]]:]] で始まる[[属性]]に対応する[[名前空間節点]] - [[先祖要素]]の、[[名前]]が [CODE(XML)@en[[[xmlns]]:]] で始まる[[属性]]のうち、問題の[[要素]]またはそれにより近い[[先祖要素]]が[[再宣言]]していないものに対応する[[名前空間節点]] -- ただし、[[属性値]]が[[空]]では''ない''場合に限ります [SRC[XPath 1.0 正誤表]] - 暗黙に[[宣言]]された [CODE(XML)@en[[[xml]]]] [[名前空間]]に対応する[[名前空間宣言]] - 問題の[[要素]]またはその[[先祖要素]]に [CODE(XMLa)@en[[[xmlns]]]] [[属性]]があって、 そのうちの直近の[[要素]]の [CODE(XMLa)@en[[[xmlns]]]] [[属性値]]が[[空]]では''ない''場合、 それに対応する[[名前空間節点]] [4] '''親子関係''' [[名前空間節点]]の[[親]]は、対応する[[要素節点]]です。 しかし、逆に、[[名前空間節点]]は[[要素節点]]の[[子供]]では''ありません''。 [SRC@en[XPath 1.0 5.4]] [5] '''等価性''' 別の[[要素節点]]に属する[[名前空間節点]]は、 [WEAK[(たとえ同じ[[名前空間属性]]に由来するとしても)]] 別の[[節点]]です。 [SRC@en[XPath 1.0 5.4]] [6] '''展開名''' [[名前空間節点]]には[[展開名]]があります [SRC@en[XPath 1.0 5.4]]: - [[局所部分]]は、[[名前空間接頭辞]]です。 ただし、[[既定名前空間]]についての[[名前空間節点]]では、 [[空]]となります。 - [[名前空間URI]] は、 [CODE@en[[[null]]]] です。 [7] '''文字列値''' [[名前空間節点]]の[[文字列値]]は、 その[[名前空間接頭辞]]に[[束縛]]された[[名前空間URI]] です。 [SRC@en[XPath 1.0 5.4]] [8] [[文字列値]]である[[名前空間URI]] が[[相対参照]]の場合、 [[展開名]]中の[[名前空間URI]] のように[[解決]]しなければなりません、 [SRC@en[XPath 1.0 5.4]] と規定されていました。 [[要素節点]]や[[属性節点]]の[[名前空間URI]] のように、[[基底URI]] に基づき[[解決]]するということです。 [9] [[正誤表]] [SRC[XPath 1.0 正誤表]]では、 [[XML総会]]での決定に基づき、 [[相対参照]]の場合の[[文字列値]]は[[実装依存]]と改めています。 [10] '''XML 情報集合との関係''' [[XPath 1.0]] [[名前空間節点]]は、 [[XML情報集合]][[名前空間情報項目]]と、 次のように対応します [SRC[XPath 1.0 正誤表]]: - [[展開名]]の[[局所部分]]は、 [CODE(InfoProp)[[[接頭辞]]]][[特性]]に対応します。 - [[展開名]]の[[名前空間URI]]は常に [CODE@en[[[null]]]] です。 - [[文字列値]]は、[CODE(InfoProp)[[[名前空間名]]]][[特性]]に対応します。 - [[名前空間節点]]の[[親]]は、 その[[名前空間節点]]が[[名前空間集成]]に含まれる[[要素節点]]です。 [[要素節点]]の[[名前空間群]]は、 [CODE(InfoProp)[[[適用範囲内名前空間]]]]に対応します [SRC[XPath 1.0 正誤表]]。 [14] [CODE(XML)@en[[[xmlns]]]] [[名前空間]]に対応する[[名前空間節点]]はあありません。 [13] '''XML 名前空間 1.1 との関係''' [[XML名前空間 1.1]] では、 [[空]]の[[属性値]]により[[名前空間接頭辞]]を無効化できるようになりました。 それに対応する規定が[[正誤表]]で追加されています (>>6)。 また、従来の [[URI参照]]に加え、[[IRI]] にも対応して構いませんとされています [SRC[XPath 1.0 正誤表]]。 [11] '''DOM 中核との関係''' [[DOM]] は [[XPath 1.0]] の[[名前空間節点]]のような[Q[[[宣言]]された[[名前空間]]]]の代わりに、 [[名前空間]]を[[宣言]]する[[名前空間属性]]を通常の[[属性節点]]として保持します。 従って、 - 暗黙または[[継承]]により、ある[[要素]]で適用範囲内であっても明示されていない[[名前空間]]に対応する[[節点]]は、 [[DOM]] にはありません。 - [[名前空間宣言]]を無効化する[[名前空間属性]] ([[属性値]]が[[空]]の[[属性]]) に対応する[[節点]]が [[DOM]] にはあります。 - [[名前空間URI]] は [[XPath 1.0]] では [CODE@en[[[null]]]] ですが、 [[DOM]] では [CODE(URI)@en[[[http://www.w3.org/2000/xmlns/]]]] です。 - [CODE(XMLa)@en[[[xmlns]]]] の [[XPath 1.0]] [[局所部分]]は[[空]]ですが、 [[DOM]] [[局所名]] ([CODE(DOMa)@en[[[localName]]]]) は [CODE(XMLa)@en[[[xmlns]]]] です。 [15] '''XPath 2.0 との関係''' @@ TBD * DOM XPath @@ [12] 仕様上は... [16] [[Firefox]] でも [[Chrome]] でも、[[名前空間節点]]は存在せず、 [CODE(XPath)@en[[[namespace::]]]] [[軸]]は何も選択しません。 [TIME[2013-10-05T07:37:26.700Z]]