/
663.txt
149 lines (117 loc) · 6.07 KB
/
663.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
* 名前空間節点 (XPath 1.0 データ・モデル)
[2]
[[XPath 1.0データ・モデル]]の[DFN[[RUBY[名前空間節点][なまえくうかんせってん]@en[namespace node]]]]は、
[[名前空間束縛]]を表す[[節点]]です。
[1] 仕様書:
- [[XPath 1.0]]
-- [CSECTION@en[5.4 Namespace Nodes]]
<IW:XPath:"#namespace-nodes">
-- [[正誤表]]
<http://www.w3.org/1999/11/REC-xpath-19991116-errata/>
[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]]
[17] [CITE@EN[XQuery 3.0: An XML Query Language]]
( ([TIME[2014-04-08 08:26:21 +09:00]] 版))
<http://www.w3.org/TR/xquery-30/#dt-in-scope-namespaces>
[18] [CITE@EN[XML Path Language (XPath) 3.0]]
( ([TIME[2014-04-08 07:58:50 +09:00]] 版))
<http://www.w3.org/TR/xpath-30/#dt-in-scope-namespaces>
[19] [CITE@en[XQuery and XPath Data Model 3.0]]
( ([TIME[2014-04-08 07:00:06 +09:00]] 版))
<http://www.w3.org/TR/xpath-datamodel-3/#NamespaceNode>