-
Notifications
You must be signed in to change notification settings - Fork 4
/
113.txt
296 lines (202 loc) · 15.7 KB
/
113.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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
[43] [[XML名前空間]]における[DFN[[RUBYB[名前空間名]@en[namespace name]]]]は、
[[名前空間]]を識別する[[文字列]]です。[[名前空間名]]は[[絶対URL参照]]であることから、
[DFN[[RUBYB[[[名前空間URL]]]@en[namespace URL]]]]、
[DFN[[RUBYB[[[名前空間URI]]]@en[namespace URI]]]]、
[DFN[[RUBYB[[[名前空間IRI]]]@en[namespace IRI]]]]とも呼ばれます。
* 仕様書
-[7] [[XML名前空間]]
-- <http://www.w3.org/TR/xml-names#dt-NSName>
-- [[XML名前空間 1.0]] 第1版正誤表
<http://www.w3.org/XML/xml-names-19990114-errata#NE12>
-- [CSECTION@en[2.2 Use of IRIs as Namespace Names]]
<http://www.w3.org/TR/xml-names#iri-use>
-- [CSECTION@en[2.3 Comparing IRI References]]
<http://www.w3.org/TR/xml-names#IRIComparison>
;; [47] [[XML名前空間 1.0]] 第1版から [[XML名前空間 1.1]] 第1版の間で仕様書の構成や定義の仕方が大きく変わっています。
[[XML名前空間 1.0]] 第2版は [[XML名前空間 1.1]] ベースの仕様書となっています。
* 呼称
[59] [[XML名前空間]]仕様では「[[名前空間名]]」と呼んでいますが、
それ以外のほとんどの仕様では「[[名前空間URI]]」などの [[URI]] であることを強調した名称を使っています。
[[DOM]] でも[[属性]]の名前が [CODE(DOMa)@en[[[namespaceURI]]]] となっています。
[[URI]] の呼称のバリエーションにより、「[[名前空間IRI]]」や「[[名前空間URL]]」
とも呼ばれます。
* 定義
** XML 名前空間 1.0 第1版世代における定義
[1]
> [定義:] [INS[[[名前空間属性]]の[SRC[引用者による追記]]]][[属性]]の[INS[正規化[SRC[正誤表による追記]]]][[値]]は、
[[URI参照]]で、[[名前空間]]を[[識別]]する[DFN[[RUBY[名前空間名] [なまえくうかんめい] @en[namespace name]]]]です。
名前空間名は、その目的の達成のため、[[固有性]]と[[持続性]]を有するべきです。
[[スキーマ]]の[[取出し]] (存在するとして。)
に直接利用可能であることは目標とはしていません。
この目標を踏まえて設計された構文の例に[[統一資源名]]
[SRC@en[[[RFC 2141]]]] があります。しかし、普通の [[URL]]
も同じ目標を達成するために使えることに注意して下さい。
[SRC[[[XML名前空間 1.0]] 第1版]]
** XML 名前空間 1.1 世代における定義
[8]
> [定義: [[IRI]] [VAR@en[I]]で[[識別]]される[[名前]][VAR@en[N]]について、
[DFN[[RUBY[[[名前空間名]]] [なまえくうかんめい] @en[namespace name]]]]は[VAR@en[I]]です。
[[名前空間]]に属さない[[名前]][VAR@en[N]]について、
[DFN[[RUBY[[[名前空間名]]] [なまえくうかんめい] @en[namespace name]]]]は[[無値]]です。]
[SRC[[[XML名前空間 1.1]] 第1版]]
;; [42] [[XML名前空間 1.0]] 第2版では >>8 の「[[IRI]]」を「[[URI]]」
に置き換えた定義になっています。
** XDM における定義
[41]
> This document uses the phrase "namespace URI" to identify the concept identified in [Namespaces in XML] as "namespace name", and the phrase "local name" to identify the concept identified in [Namespaces in XML] as "local part".
;; [40] [CITE@EN[XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)]] ([TIME[2010-12-17 00:06:54 +09:00]] 版) <http://www.w3.org/TR/2010/REC-xpath-functions-20101214/#namespace-terminology>
* 意味
** 名前空間 URL の割り当てと管理
[35] [[名前空間URL]] の決め方や割り当てポリシーについての議論は、
[[XML名前空間の管理]]を参照してください。
** 名前空間 URL とスキーマ
@@ ・・・
[23] [[カメレオン名前空間]]も参照。
** 名前空間 URL と版付け
@@ ・・・
[35]
[CITE[SMIL Namespace Documentation - Anne’s Weblog about Markup & Style]] <http://annevankesteren.nl/2006/03/smil>
([[名無しさん]] [WEAK[2006-03-18 01:40:47 +00:00]])
;; [22] [[SMIL]] も参照。
[38]
In Adobe AIR documents, namespace URIs are used to identify the required (minimum) version of AIR runtime for the application.
** 展開名の一部としての名前空間URL
[24] [[RDF/XML]] では、[[名前空間URL]]と[[局所名]]を連結した[[展開URL]]を使っています。
[[名前空間URL]]自体には然程の意味はありません。
;; [[展開URL]]参照。
* 構文
** 空文字列
[10]
[[空文字列]]も[[URI参照]]あるいは[[IRI参照]]としては[[合法]]ですが、
[[名前空間名]]として使うことはできません。
[SRC[1.1 2.2]]
** 相対参照
[11]
[[相対参照]]を[[名前空間名]]で使用するのは[[非推奨]]です。
[SRC[1.1 2.2]]
[58] [CITE[W3C XML Plenary Ballot on URIs and Namespaces]] ([TIME[2000-09-23 21:16:54 +09:00]] 版) <http://www.w3.org/2000/09/xppa>
* 比較
[12]
[[名前空間名]]は、([[属性値]]として出現した場合)
[[参照]]を[[展開]]して[[空白]]を処理した[[正規化値]]ですが、
これを[[文字列]]として[[比較]]して[[一致]]すれば、
[[名前空間名]]として[[一致]]したとみなします。
[SRC[1.1 2.3]]
** 大文字と小文字
[33]
> [[Universal Feed Parser]] treats namespaces as case-insensitive to match the behavior of certain versions of [[iTunes]].
;; [CITE[Namespace Handling [Universal Feed Parser]]]
<http://feedparser.org/docs/namespace-handling.html#id4756535>
これが[[誤方互換性]]ってやつかW
* 展開名
[14] [[XML名前空間]]本体仕様ではそうは規定されていませんが、
幾つかの仕様では[[修飾名]]が1つの
[[URI]] に展開できるとしています。
[15] [[RDF/XML]] や [[WebDAV]]
では、
[SAMP(XML)[<del:glider xmlns:del="http://www.del.jensen.org/"/>]]
と
[SAMP(XML)[<foo:r xmlns:foo="http://www.del.jensen.org/glide"/>]]
は同等です。
[16] WebDAV については [[RFC 2518]] 23.4.2 参照。
* XML 以外での名前空間 URL
[62] [[RDF]] では広く[[名前空間URL]]が使われていますが、 [[XML]] のように名前が所属する空間としてではなく、
>>14 の通り [[URL]] の略記法として使われています。
[18] [[RDF/XML]] や [[RDFa]] のような [[RDF]] が [[XML]] で使われる場面では、
両者の[[名前空間]]の仕組みが複雑に組み合わさっています。
;; 詳細はそれぞれの項を参照。
;; [19] そもそも現在の [[XML名前空間]]が複雑な仕組みになったのは、 [[RDF]]
関係者からの要望 (や [[TimBL]] からの圧力) によるものと言われています。
[17] [[CSS]] や[[選択子]]にも[[名前空間]]がありますが、 [[XML文書]]の[[名前空間]]を
[[CSS]] から参照するための仕組みとなっています。概念的には [[XML名前空間]]と同様のものですが、
実際にはやや広範囲を扱える仕組みになっています。
;; [[CSS名前空間]]を参照。
[21] ただし [[XML]] のために不必要に [[CSS]] を複雑化させた仕組みとみなされており、
比較的新しく導入された [CODE(DOMm)@en[[[querySelector]]]] などでは[[名前空間]]への対応を意図的に除外しています。
[63] [[RFC 2774]] は [[HTTP]] の[[ヘッダー]]の識別に[[名前空間URL]]を導入するものでしたが、支持を集められませんでした。
[65] [[CPIM]] は[[ヘッダー]]の識別に[[名前空間URL]]を使っています。 (>>63 の構文とは異なっています。)
しかし [[CPIM]] 自体が使われていません。
[64] [[DOM水準3事象]]は当初[[イベント名]]の識別に[[名前空間URL]]を導入しようと試みていましたが、
支持を集められず撤回されました。
[20] [[Dublin Core]] [CODE(HTML)@en[[[schema.*]]]] や
[CODE(HTML)@en[<[[head]] [[profile]]>]] や [[rel-profile]]
を使って[[名前空間]]を [[HTML]] の [CODE(HTMLe)@en[[[meta]]]] [[要素]]に持ち込むことが度々提案されていましたが、
ことごとく支持を集められずにいます。
* 名前空間としての URL
[39] [[XML名前空間]]では [[URL]] を[[名前空間]]の[[識別]]に使っていますが、
その妥当性については議論があります。
[37]
[CITE[XML.com: XML Namespaces Don't Need URIs]] ([[Michael Day]] 著, [CODE[2007-05-19 17:33:00 +09:00]] 版) <http://www.xml.com/pub/a/2005/04/13/namespace-uris.html>
* [CODE(DOMa)@en[namespaceURI]] (DOM Node 界面)
[44] [[DOM 2]] 読取専用属性
[CODE[[VAR(DOMi)[Node]].[CODE(DOMa)[namespaceURI]]]]
は、その節の[[名前空間名]] ([[URI]]) の値です。
[45] 節が要素節でも属性節でも無い場合、又は [[DOM 1]] method
で作成された節である場合には、 [CODE(DOM)[null]]
になります。
また、名前空間に属さない場合にも [CODE(DOM)[null]]
になります。
[46] DOM の object になった節の名前空間の情報はその節が持っていることに注意して下さい。
[CODE(DOMa)[namespaceURI]] や [CODE(DOMa)[[[prefix]]]]
の値は、その節またはその祖先節の [CODE(XML)[[[xmlns]]]]
系属性 (に対応する節) を編集しても''変化しません''。
[WEAK[(しかも、 DOM には名前空間情報を編集する方法がないので、一度生成された節の名前空間情報は二度と変わりません。)]]
- [DOM2] ''Document Object Model Core'' <http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-NodeNSname>
* [CODE(InfoProp)[名前空間名]] (XML 情報集合)
[48] [[XML情報集合]]では、[[要素情報項目]]、[[属性情報項目]]、[[名前空間情報項目]]で[[特性]][DFN[[CODE(InfoProp)[[RUBYB[[[名前空間名]]]@en[namespace name]]]]]]が定義されています。
** 仕様書
- [49] [CITE@en[XML Information Set (Second Edition)]]
-- [50] [CSECTION@en[Namespaces]] <http://www.w3.org/TR/xml-infoset/#intro.namespaces>
-- [51] [CSECTION@en[2.2. Element Information Items]] <http://www.w3.org/TR/xml-infoset/#infoitem.element>
-- [52] [CSECTION@en[2.3. Attribute Information Items]] <http://www.w3.org/TR/xml-infoset/#infoitem.attribute>
-- [53] [CSECTION@en[2.11. Namespace Information Items]] <http://www.w3.org/TR/xml-infoset/#infoitem.namespace>
** 特性値
[54] [[要素情報項目]]と[[属性情報項目]]では、この[[特性]]の値は、
その[[要素]]や[[属性]]の属する[[名前空間]]があればその[[名前空間名]]、
なければ[RUBYB[[[無値]]]@en[no value]]です [SRC[>>51, 52]]。
[55] [[名前空間情報項目]]では、この[[特性]]の値は、
その[[名前空間接頭辞]]が[[束縛]]されている[[名前空間名]]です [SRC[>>53]]。
[56] これらは対応する[[名前空間属性]]の[[正規化値]]そのものであり、
追加の[[百分率符号化]]などは行っていない元のままものです [SRC[>>50]]。
;; [57] これはつまり、構文的に [[URI]] や [[IRI]] であろうがなかろうが関係ないということですね。
ただし、 >>50 によれば[[相対URL]]を使った[[名前空間名]]を持つ[[文書]]の[[XML情報集合]]は定義されておらず、
仕様の対象外ということになります。
* メモ
- [2] 仕様書には言及がありませんが、[[相対URI]]を名前空間名とすることは非推奨であると正誤表 <http://www.w3.org/XML/xml-names-19990114-errata#NE04> は述べています。
- [3] 仕様書の[[同等]]の解説や [[XMLBase]] の仕様書の言及から推測すると、名前空間名が相対 URI である場合はその要素の[[基底URI]] ([[外部実体]]ならその URI, [[xml]]:[[base]] 属性があればそれも参照する。) を使って解決するのが良いみたいです。 (もちろん errata が述べているように、現時点では [[W3C]] はどうとも規定していませんし非推奨です。 XML Base も解釈例を述べているに過ぎません。)
- [4] 特に、空文字列 (当該文書自身 (または基底) の [[URI]] を指す。) については errata <http://www.w3.org/XML/xml-names-19990114-errata#NE09> で使用できないことが補記されています。空文字列は接頭辞無しに対して ([[xmlns]] 属性の値で) は[[既定名前空間]]であることを示します。接頭辞ありに対しては使用できません。
- [5] >>4 第1.1版では、接頭辞ありでも空に出来るようになりました ([SAMP(XML)[xmlns:foo=""]])。この場合、名前空間の宣言を取り消したことになります。(この例の場合、先祖要素で[[宣言]]した [SAMP(XML)[foo]] という接頭辞が、この要素以下では使えなくなります。) (<http://www.w3.org/TR/xml-names11/#scoping>)
- [6] ''W3C XML Plenary Ballot on URIs and Namespaces'' <http://www.w3.org/2000/09/xppa>: 相対 URI 名前空間名の取り扱いについての議事。結局非推奨とし、 [[XML情報集合]]などでも未定義となっている。
[9]
[[DOM 2]] では、 DOM 実装は名前空間名を単なる文字列として扱い、中身には介入しないから、空文字列さえ名前空間名として普通に扱うようなことが書いてありましたが、 errata で、空文字列は好きにしろ的に改められています。
([[名無しさん]])
[13]
[CITE[Re: Namespaces in XML 1.x test suite contribution from Richard Tobin on 2005-12-19 (xml-names-editor@w3.org from December 2005)]] <http://lists.w3.org/Archives/Public/xml-names-editor/2005Dec/0002.html>
[34] [[CC/PP]] では、
> All CC/PP attributes must be associated with a fully resolvable namespace identifier URI. (Relative URIs, or URIs whose interpretation may depend on the context in which they are used, should not be used.)
([Q[すべての CC/PP 属性は完全に解決可能な名前空間識別子 URI と関連付けられていなければなりません。 (相対 URI は解釈が使用された文脈に依存する URI は使用するべきではありません。)]])
とされています。ここでの[Q[完全に解決可能]]がどういう意味なのか
(括弧内の意味なのか?) はよくわかりませんが・・・。
文脈依存するべきではないというのは [CODE(URI)[[[file]]:]]
URI scheme や [[XPointer]] の [CODE(XPointerScheme)[[[xmlns-local]]]]
scheme のようなもののことを言っているのでしょう。
[CITE[Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies 1.0]] <http://www.w3.org/TR/2004/REC-CCPP-struct-vocab-20040115/#namespaces>
[60] [CITE@en[Re: Adding Web Intents to the Webapps WG deliverables]]
( ([[Tab Atkins Jr.]] 著, [TIME[2011-09-23 08:40:47 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1590.html>
[61] [CITE[XEP-0054: vcard-temp]]
([TIME[2011-10-24 00:09:47 +09:00]] 版)
<http://xmpp.org/extensions/xep-0054.html>
[66] [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/#dt-namespace-uri>
[67] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]]
( ([TIME[2014-04-26 05:17:46 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#dfn-namespace-iri>
[68] [CITE@en[Bug 27388 – Use https://schema.org/ in examples if feasible]]
( ([TIME[2014-11-22 17:02:05 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=27388>
[25] [CITE[URIs for W3C Namespaces]] ([TIME[2007-07-20 05:24:56 +09:00]] 版) <http://www.w3.org/2005/07/13-nsuri>
[26] [CITE@en[Editorial: refactor to depend on the Infra Standard]]
([[domenic]]著, [TIME[2016-11-17 07:29:00 +09:00]])
<https://github.com/whatwg/html/commit/4ac633e08c2c9430853fc8322943bc2438ed36a3>