| 1 |
wakaba |
1.1 |
|
| 2 |
|
|
[1] |
| 3 |
|
|
[DFN[[RUBYB[基底] [Base]] URI]] |
| 4 |
|
|
は、[[相対URI参照]]を解決するときに[[基底]]となる |
| 5 |
|
|
[[URI]] です。 |
| 6 |
|
|
|
| 7 |
|
|
[2] |
| 8 |
|
|
[Q[基底 URI 参照]]ではなく単に[Q[基底 URI]] とだけ言った場合でも、実は URI ではなく URI 参照であることも少なくありません。 |
| 9 |
|
|
相対 URI の解決では、素片識別子の有無は結果に影響しません。 |
| 10 |
|
|
ですが、あえて素片識別子つき URI 参照を除外する必要も普通はないので、 |
| 11 |
|
|
基底 URI と言ったときには URI 参照も含まれていたりするのでしょう。 |
| 12 |
|
|
|
| 13 |
|
|
[3] 基底 URI (参照) は、普通は絶対 URI 参照です。 |
| 14 |
|
|
[CODE(XMLa)[[[xml]]:[[base]]]] 属性のように、指定する基底 URI |
| 15 |
|
|
が相対 URI でもよいことがありますが、 |
| 16 |
|
|
そのような場合は絶対 URI 参照を得るために更に上位の情報を入手する必要があります。 |
| 17 |
|
|
([[名無しさん]]) |
| 18 |
|
|
|
| 19 |
|
|
[4] |
| 20 |
|
|
|
| 21 |
|
|
@@ [[基底URI]]が純粋に[[相対参照]]を[[解決]]するため''だけ''の[[文脈]]情報として用いられている場合と、 |
| 22 |
|
|
[[文書]]自体の[[URI]]を上書きするものとして用いられているらしき場合があります。 |
| 23 |
|
|
|
| 24 |
|
|
[[#comment]] |
| 25 |
|
|
|
| 26 |
|
|
|
| 27 |
|
|
* [CODE(InfoProp)[XML基底]]特性 (XML情報集合) |
| 28 |
|
|
|
| 29 |
|
|
[5] [[XML情報集合]]の[DFN[[CODE(InfoProp)[[RUBYB[基底URI] @en[base URI]]]]]][[特性]]は、 |
| 30 |
|
|
その[[情報項目]]の[[基底URI]]を値として保持します。 |
| 31 |
|
|
この[[特性]]は、 |
| 32 |
|
|
- [[文書情報項目]] |
| 33 |
|
|
- [[要素情報項目]] |
| 34 |
|
|
- [[処理指令情報項目]] |
| 35 |
|
|
|
| 36 |
|
|
で定義されています。 |
| 37 |
|
|
|
| 38 |
|
|
[6] '''仕様書''' |
| 39 |
|
|
- [[XML情報集合]] |
| 40 |
|
|
-- [CSECTION@en[Base URIs]] |
| 41 |
|
|
<IW:Infoset:"#intro.baseURIs"> |
| 42 |
|
|
-- [CSECTION@en[2.1. The Document Information Item]] |
| 43 |
|
|
<IW:Infoset:"#infoitem.document"> |
| 44 |
|
|
-- [CSECTION@en[2.2. Element Information Items]] |
| 45 |
|
|
<IW:Infoset:"#infoitem.element"> |
| 46 |
|
|
-- [CSECTION@en[2.4. Processing Instruction Information Items]] |
| 47 |
|
|
<IW:Infoset:"#infoitem.pi"> |
| 48 |
|
|
- [[XML基底]] <IW:XMLBase:""> |
| 49 |
|
|
|
| 50 |
|
|
[[#comment]] |
| 51 |
|
|
|
| 52 |
|
|
|
| 53 |
|
|
** 特性値 |
| 54 |
|
|
|
| 55 |
|
|
[7] '''文書情報項目の場合''' |
| 56 |
|
|
|
| 57 |
|
|
= [[文書実体]]の[[基底URI]]です。 [SRC[XML情報集合 2.1]] |
| 58 |
|
|
= [[XML基底]]仕様に従います。 [SRC[XML情報集合 1]] |
| 59 |
|
|
= [[RFC 2396]]に従います。 [SRC[XML基底 4]] |
| 60 |
|
|
|
| 61 |
|
|
[[XML基底]]の仕様書の内容には多少曖昧な点もありますが、 |
| 62 |
|
|
[[RFC 2396]]の規定と矛盾する規定を行う意図はなさそうなので、 |
| 63 |
|
|
= [[転送プロトコル]]によってもたらされた[[基底URI]] |
| 64 |
|
|
= [[文書実体]]の[[取出し]]に用いた[[URI]] |
| 65 |
|
|
([[リダイレクト]]がある場合は、最終的な[[URI]]) |
| 66 |
|
|
= [[応用]]の文脈に依存した[[URI]] |
| 67 |
|
|
|
| 68 |
|
|
の順で決定するものと思われます。 |
| 69 |
|
|
|
| 70 |
|
|
[8] '''要素情報項目の場合''' |
| 71 |
|
|
|
| 72 |
|
|
= [[要素]]の[[基底URI]]です。 [SRC[XML情報集合 2.2]] |
| 73 |
|
|
= [[XML基底]]仕様に従います。 [SRC[XML情報集合 1]] |
| 74 |
|
|
= [CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]の項を参照。 |
| 75 |
|
|
|
| 76 |
|
|
[9] '''処理指令情報項目の場合''' |
| 77 |
|
|
|
| 78 |
|
|
= [[処理指令]]の[[基底URI]]です。 [SRC[XML情報集合 2.4]] |
| 79 |
|
|
= [[XML基底]]仕様に従います。 [SRC[XML情報集合 1]] |
| 80 |
|
|
= [CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]の項を参照。 |
| 81 |
|
|
|
| 82 |
|
|
[16] '''逃避''' |
| 83 |
|
|
|
| 84 |
|
|
[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]の[[値]]を[[URI参照]]として使うためには[[逃避]]が必要です |
| 85 |
|
|
[WEAK[([CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]の項を参照してください。)]] |
| 86 |
|
|
が、[[特性値]]はその''前''のものです。 |
| 87 |
|
|
[SRC[XML情報集合 1]] |
| 88 |
|
|
|
| 89 |
|
|
[14] '''応用依存''' |
| 90 |
|
|
|
| 91 |
|
|
[[XML基底]]仕様で[[基底URI]]が[[応用]]依存になる場合に関して、 |
| 92 |
|
|
[[XML情報集合]]仕様は[CODE(InfoProp)[[[基底URI]]]]の値を規定しません。 |
| 93 |
|
|
[SRC[XML情報集合 1]] |
| 94 |
|
|
|
| 95 |
|
|
;; |
| 96 |
|
|
[15] |
| 97 |
|
|
[[DTD]]を[[処理]]するか否かによって結果が異なり得る[[特性]]では[[値]]が[[無値]]や[[未知]]になることもありますが、 |
| 98 |
|
|
[CODE(InfoProp)[[[基底URI]]]]ではそれは無いようです。 |
| 99 |
|
|
[[DTD]]を[[処理]]しない場合に関しても[[XML基底]]仕様で[[基底URI]]が明確に定義されているためでしょうか。 |
| 100 |
|
|
(実際[[DTD]]を[[処理]]していないからといって[[無値]]や[[未知]]にされては役に立ちませんしw) |
| 101 |
|
|
|
| 102 |
|
|
[[#comment]] |
| 103 |
|
|
|
| 104 |
|
|
|
| 105 |
|
|
** 関連 |
| 106 |
|
|
|
| 107 |
|
|
[13] '''合成情報集合''' |
| 108 |
|
|
|
| 109 |
|
|
[[合成情報集合]] ([[XML]][[文書]]から生成してすぐの[[情報集合]]''以外'') |
| 110 |
|
|
では、[CODE(InfoProp)[[[基底URI]]]]と[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]][[情報項目]]に齟齬が生じていることもあります。 |
| 111 |
|
|
[SRC[XML情報集合 1]] |
| 112 |
|
|
|
| 113 |
|
|
[10] '''処理指令情報項目の直列化''' |
| 114 |
|
|
|
| 115 |
|
|
[[外部実体]]の直下に[[処理指令]]がある場合、 |
| 116 |
|
|
その[[外部実体]]の[[基底URI]]が[[処理指令]]の[[基底URI]]になりますが、 |
| 117 |
|
|
[[処理指令]][[情報項目]]を含む[[情報集合]]を[[直列化]]する時にその[[基底URI]]の情報は保存する方法がありません。 |
| 118 |
|
|
[SRC[XML情報集合 2.4]] |
| 119 |
|
|
|
| 120 |
|
|
[11] '''[CODE(InfoProp)[宣言基底URI]]''' |
| 121 |
|
|
|
| 122 |
|
|
[[非解析対象実体]][[情報項目]]や[[記法]][[情報項目]]には、 |
| 123 |
|
|
[CODE(InfoProp)[[[宣言基底URI]]]]という[[特性]]が定義されています。 |
| 124 |
|
|
|
| 125 |
|
|
[12] '''DOM特性''' |
| 126 |
|
|
|
| 127 |
|
|
[[DOM]]の[CODE(DOMa)@en[[[baseURI]]]][[特性]]は[CODE(InfoProp)[[[基底URI]]]]ではなく、 |
| 128 |
|
|
[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]に基づき定義されています。 |
| 129 |
|
|
|
| 130 |
|
|
[17] |
| 131 |
|
|
[[XInclude]]では[[基底URI]]を保存するために[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]を追加して整合性を維持することがあります。 |
| 132 |
|
|
([[名無しさん]]) |
| 133 |
|
|
|
| 134 |
|
|
[18] |
| 135 |
|
|
[CODE(InfoProp)[[[基底URI]]]]と[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]では、 |
| 136 |
|
|
[CODE(InfoProp)[[[基底URI]]]]の方を優先して[[相対参照]]の[[解決]]に使うべきとされています。 |
| 137 |
|
|
[SRC[XML情報集合 1]] |
| 138 |
|
|
|
| 139 |
|
|
[19] '''[CODE@en[base-uri]] アクセス子''' |
| 140 |
|
|
|
| 141 |
|
|
[[RDF/XML]][[構文]]を定義する[[事象]]モデルでは、 |
| 142 |
|
|
[[根]][[事象]]と[[要素]][[事象]]に[CODE@en[[[base-uri]]]][[アクセス子]]があり、 |
| 143 |
|
|
共に[CODE(InfoProp)[[[基底URI]]]][[特性]]から値を得ることとされています。 |
| 144 |
|
|
|
| 145 |
|
|
[20] '''XSLTデータ・モデル''' |
| 146 |
|
|
|
| 147 |
|
|
[[XPath 1.0]]の[[データ・モデル]]には、 |
| 148 |
|
|
[CODE(InfoProp)[[[基底URI]]]]に相当するものがありません。 |
| 149 |
|
|
|
| 150 |
|
|
[[XSLT 1]]の[[データ・モデル]]における[CODE(InfoProp)[[[基底URI]]]]相当のものに関しては、 |
| 151 |
|
|
>>26 を参照してください。 |
| 152 |
|
|
[[#comment]] |
| 153 |
|
|
|
| 154 |
|
|
|
| 155 |
|
|
** メモ |
| 156 |
|
|
|
| 157 |
|
|
[[#comment]] |
| 158 |
|
|
|
| 159 |
|
|
|
| 160 |
|
|
* 基底URI (XSLTデータ・モデル) |
| 161 |
|
|
|
| 162 |
|
|
[26] |
| 163 |
|
|
|
| 164 |
|
|
[[XPath 1.0]]の[[データ・モデル]]では[[基底URI]]は扱われていません。 |
| 165 |
|
|
|
| 166 |
|
|
[[XSLT 1.0]]の[[データ・モデル]]は[[基底URI]]を各[[節点]]に対して規定していますが、 |
| 167 |
|
|
[[XML基底]]よりも前に作られた仕様なので、[CODE(XMLa)@en[[[xml]]:[[base]]]][[属性]]が反映されません。 |
| 168 |
|
|
|
| 169 |
|
|
[[XSLT 1.1]]の[[データ・モデル]]は基本的に[[XML基底]]に基づいています。 |
| 170 |
|
|
|
| 171 |
|
|
[25] '''仕様書''' |
| 172 |
|
|
- [[XSLT 1]] |
| 173 |
|
|
-- [CSECTION@en[3.2 Base URI]] <IW:XSLT1:"#base-uri"> |
| 174 |
|
|
-- [CSECTION@en[3.3 Unparsed Entities]] <IW:XSLT1:"#unparsed-entities"> |
| 175 |
|
|
-- [CITE@en[Errata in REC-xslt-19991116]] |
| 176 |
|
|
<http://www.w3.org/1999/11/REC-xslt-19991116-errata/#E5> |
| 177 |
|
|
|
| 178 |
|
|
[24] |
| 179 |
|
|
, ,[[XSLT 1.0]] ,[[XSLT 1.1]] |
| 180 |
|
|
,[[文書節点]] ,[[文書実体]]の[[URI]] ,(規定なし) |
| 181 |
|
|
,[[根節点]] ,(規定なし) ,[[文書実体]]の[[URI]] |
| 182 |
|
|
,[[要素節点]] ,[[外部実体]]中なら[[外部実体]]の[[URI]]、そうでなければ[[文書]]の[[基底URI]] ,[[XML基底]]による |
| 183 |
|
|
,[[処理指令節点]] ,[[外部実体]]中なら[[外部実体]]の[[URI]]、そうでなければ[[文書]]の[[基底URI]] ,[[XML基底]]による |
| 184 |
|
|
,"[[文節点]], [[注釈節点]], [[属性節点]]" ,[[親節点]]の[[基底URI]] ,== |
| 185 |
|
|
,[[名前空間節点]] ,[[親節点]]の[[基底URI]] ,実装依存 |
| 186 |
|
|
,[[非解析対象実体]]の[[システム識別子]] ,[[実体宣言]]を含む[[資源]]の[[基底URI]] ,== |
| 187 |
|
|
|
| 188 |
|
|
;; - [21] [Q[[[文書実体]]・[[外部実体]]の[[基底URI]]]]では''なく''て[Q[[[文書実体]]・[[外部実体]]の[[URI]]]]なのがちょっと・・・。 |
| 189 |
|
|
- [22] それでいて[Q[そうでなければ[[文書]]の[[基底URI]]]]とは何事か。 |
| 190 |
|
|
[[文書実体]]や[[文書節点]]ではなく、[[文書]]の[[基底URI]]なのか? |
| 191 |
|
|
- [23] そもそも[[文書節点]]という語も、 |
| 192 |
|
|
ここ1箇所でしか出てこない ([[根節点]]の誤りか)。 |
| 193 |
|
|
|
| 194 |
|
|
[[#comment]] |
| 195 |
|
|
|
| 196 |
|
|
|
| 197 |
|
|
* メモ |
| 198 |
|
|
|
| 199 |
|
|
[27] |
| 200 |
|
|
|
| 201 |
|
|
@@ [[RFC 4722]] [CODE(XMLa)@en[[[baseurl]]]] |
| 202 |
|
|
([[名無しさん]] [WEAK[2006-11-18 03:19:09 +00:00]]) |
| 203 |
|
|
|