1 |
wakaba |
1.2 |
#?SuikaWiki/0.9
|
2 |
|
|
|
3 |
|
|
[1] 【[[XML名前空間]]】 [[名前空間接頭辞]]つきの[[属性名]]を持つ[[属性]] ⇔ [[名前空間名]]を持つ属性 ⇔ 特定の[[要素型]]に属さない属性 ⇔ 大域属性 ⇔ Global attribute。
|
4 |
|
|
|
5 |
|
|
[2]
|
6 |
|
|
たとえば、 [SAMP(XML)[<e attr="val"/>]] の [SAMP[attr]] 属性は、接頭辞を持っていません。この属性は要素型区画に属しています。これは大域属性ではありません。
|
7 |
|
|
|
8 |
|
|
一方で、 [SAMP(XML)[<e ns:attr="val"/>]]
|
9 |
|
|
では、 [SAMP(XML)[attr]] 属性は、
|
10 |
|
|
接頭辞 [SAMP(XML)[ns]] で表される名前空間に属しています。こちらを大域属性といいます。
|
11 |
|
|
|
12 |
|
|
[3] 名前空間に属しているのに''大域''属性とは変に思えるかもしれませんが、そうではありません。
|
13 |
|
|
大域属性ではない場合、
|
14 |
|
|
[SAMP(XML)[<e attr="val"/>]] と
|
15 |
|
|
[SAMP(XML)[<f attr="val"/>]] の [SAMP[attr]] 属性は、どちらも同じ属性のように思えますが、 [WEAK[(少なくても XML 名前空間の水準では)]] 別の要素型に属する別の属性です。一方で、大域属性である場合には、
|
16 |
|
|
[SAMP(XML)[<e ns:attr="val"/>]] と
|
17 |
|
|
[SAMP(XML)[<f ns:attr="val"/>]] の
|
18 |
|
|
[SAMP[attr]] 属性は、どちらも同じ名前空間に属するので、同じ属性です。
|
19 |
|
|
このように、大域属性は、要素型を超えて使うことができます。これが大域属性の大域たる所以です。
|
20 |
|
|
([[名無しさん]])
|
21 |
|
|
|
22 |
|
|
[4]
|
23 |
|
|
XML 名前空間を初めて知った人が一番よくはまるのが、 [SAMP(XML)[<ns:e attr="val"/>]]
|
24 |
|
|
と [SAMP(XML)[<ns:e ns:attr="val"/>]]
|
25 |
|
|
の違いです。
|
26 |
|
|
|
27 |
|
|
前者は大域属性ではありませんが、後者は大域属性です。
|
28 |
|
|
大域属性は名前空間に属しますが、非大域属性は要素型毎の区画に属します。
|
29 |
|
|
前者の [SAMP[attr]] 属性は[Q[名前空間 [VAR[ns]] の要素型 [SAMP[e]] の属性 [SAMP[attr]]]] であるのに対し、後者の [SAMP[attr]] 属性は[Q[名前空間 [VAR[ns]] の属性 [SAMP[attr]]]] であり、意味が異なるのです。
|
30 |
|
|
([[名無しさん]])
|
31 |
|
|
|
32 |
|
|
|
33 |
|
|
[5]
|
34 |
|
|
ところで、 XML Names 1.0 の仕様書には「global attribute」という語が何度も出てくるのに対し、 XML Names 1.1 の仕様書には一度も出てきません。他の語に置換えられたのではなく、こういう概念自体が出てきません。 (実態は変わっていないにもかかわらず。)
|
35 |
|
|
|
36 |
|
|
[6] なお、 [[HTML5]] では「[[大域属性]]」は [[HTML名前空間]]のすべての[[要素]]に共通の[[属性]]のことを指しており、
|
37 |
wakaba |
1.3 |
[[XML名前空間]]における用語とは意味が異なります。
|
38 |
|
|
|
39 |
|
|
[7] この [[wiki]] の解説文では、 [[XHTML m12n]] における[[共通属性]]を[[大域属性]]と呼んでいることがあります。 |