[10] [[XML名前空間]]において、[[名前空間接頭辞]]を除去した純粋な名前の部分を[DFN[[RUBYB[局所名]@en[local name]]]]や[DFN[[RUBYB[局所部分]@en[local part]]]]といいます。 * 仕様書 - [11] [[XML名前空間]] -- * 呼称 [16] [[XML名前空間]]仕様自体では「[[局所部分]]」という名称を使っていますが、他の多くの仕様では 「[[局所名]]」と言っています。[[DOM]] の[[属性]]の名前も [CODE(DOMa)@en[[[localName]]]] です。 * 定義 [6] >[定義: [INS[[[名前]][VAR@en[N]]が[[名前空間]][VAR@en[I]]に属する場合と[[名前空間]]に属さない場合で、[SRC[引用者による追記]]]]いずれの場合でも、[DFN[[RUBY[局所名][きょくしょめい]@en[local name]]]]は[VAR@en[N]]です。] ;; >>11 * 構文 [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'' [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]] 版))