-
Notifications
You must be signed in to change notification settings - Fork 4
/
752.txt
99 lines (69 loc) · 4.59 KB
/
752.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
[10] [[XML名前空間]]において、[[名前空間接頭辞]]を除去した純粋な名前の部分を[DFN[[RUBYB[局所名]@en[local name]]]]や[DFN[[RUBYB[局所部分]@en[local part]]]]といいます。
* 仕様書
- [11] [[XML名前空間]]
-- <http://www.w3.org/TR/xml-names#dt-localname>
* 呼称
[16] [[XML名前空間]]仕様自体では「[[局所部分]]」という名称を使っていますが、他の多くの仕様では
「[[局所名]]」と言っています。[[DOM]] の[[属性]]の名前も [CODE(DOMa)@en[[[localName]]]]
です。
* 定義
** XML 名前空間における定義
[6]
>[定義: [INS[[[名前]][VAR@en[N]]が[[名前空間]][VAR@en[I]]に属する場合と[[名前空間]]に属さない場合で、[SRC[引用者による追記]]]]いずれの場合でも、[DFN[[RUBY[局所名][きょくしょめい]@en[local name]]]]は[VAR@en[N]]です。]
;; >>11
** XDM における定義
[17]
>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".
;; [18] [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>
* 構文
[12] [[修飾名]] ([[QName]]) の後半、すなわち、
QName から[[名前空間接頭辞]]と [CODE(XML)[:]] を (あれば)
取り除いたものが[[局所名]]です。
[13] 局所名は、構文的には [CODE(ABNF)[[[NCName]]]] です。
[WEAK[(具体的に使える文字の種類は [[XML名前空間 1.0]] と [[XML名前空間 1.1]] で異なります。)]]
[15] [[RDF]] などでは、 [[QName]] を[[展開]]して1つの [[URI参照]]
[WEAK[(ないし [[IRI参照]])]] として扱うことにしています。
そのような用途が想定される場合は、相互運用性の観点から、 [[ASCII]]
に含まれない[[名前文字]]を[[局所名]]の一部に使用しない方が好ましいかもしれません。
** 予約名との関係
[14] [[名前空間接頭辞]]がない場合 [WEAK[([[既定名前空間]]に属する場合)]]
には、[[局所名]]はそのものが1つの[[名前]]と見なされることになりますから、
最初の3文字が大文字または小文字の [CODE(ABNF)["XML"]]
であってはなりません。そのような名前は [[W3C]] が予約しています。
名前空間接頭辞がある場合でも、既定名前空間を使った場合に予約名となってしまう
[CODE(ABNF)["XML"]] から始まるものは使わない方が良いとされています。
(詳しくは XML 名前空間の仕様書をご覧下さい。)
* [CODE(DOMi)@en[Node]] 界面 [CODE(DOMa)@en[localName]] 属性 (DOM)
[1] [[DOM2]] 読み取り属性
[CODE[[VAR(DOMi)[[[Node]]]].[CODE(DOMa)[localName]]]]
の値は、その節の[[局部名]]です ([CODE(DOM)[DOMString]])。
[2] その節が要素節又は属性節のいずれでもない場合および
''[[DOM1]] の method で作成された節''の場合には、
[CODE(DOM)[null]] になります。
- [DOM2] ''Document Object Model Core'' <http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-NodeNSLocalN>
[3]
>>2 [[DOM]] である節点が DOM 水準 1 の
(名前空間を知らない) 節点なのか DOM
水準 2 以上の (名前空間を知っている)
節点なのかを判断するためには
[CODE(DOMa)[localName]] が [CODE(DOM)[null]]
かどうかを調べればいいことになっています。
[4]
が、困ったことに [[Gecko]] は
DOM 水準 1 の節点でも[[要素型名]]や[[属性名]]を
[CODE(DOMa)[localName]] にしている模様です。
([[名無しさん]] [WEAK[2005-05-13 11:07:46 +00:00]])
[6]
>>4 [[Opera]]も (確か[[Safari]]も) そう。
@@ [[MSXML]]は?
[7]
>>4 [CODE(DOMi)@en[[[DocumentType]]]]は[CODE(DOMa)@en[[[localName]]]]が常に[CODE(DOM)@en[[[null]]]]らしい。
[8] [[WinIE7]] が [[XMLHttpRequest]] の [CODE(DOMa)@en[[[responseXML]]]]
で返す [[XML DOM]] ([[MSXML]]?) は [CODE(DOMa)@en[[[namespaceURI]]]]
や [CODE(DOMa)@en[[[prefix]]]] がありますが、
[CODE(DOMa)@en[[[localName]]]] はなぜかありません ([CODE(JS)@en[[[undefined]]]])。
[CODE(DOMa)@en[[[nodeName]]]] に[[修飾名]]があるので、そこから取るしかありません。
* メモ
[9] [CITE[IRC logs: freenode / #whatwg / 20100906]]
( ([TIME[2010-09-23 19:52:11 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20100906>