この文書は、W3C 標準情報 (TR) の作業ドラフト、"XML Base (XBase)" <http://www.w3.org/TR/1999/WD-xmlbase-19991220> を ToyFish.Net が独自に翻訳したものです。この仕様書の正式なものは W3C のサイトにある英語版であり、その著作権は W3C が保有しています。また、翻訳に誤りがある可能性に留意してください。
なお、原文は最新の仕様ではありません。ToyFish.Net による最新の翻訳は http://www2.airnet.ne.jp/sardine/docs/xmlbase にありますのでご利用ください。
誤訳・誤植を発見された方は ToyFish.Net までお知らせください。
翻訳の最終更新日: 2000 年 2 月 28 日
Copyright ©1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
この文書は、xml:base
という XML 属性を定義することにより、
XML 文書一般において HTML の BASE と同等の機能を提供するための書式を提案するものです。
XML リンク作業グループは、 この 1999 年 12 月 20 日付の初の XBase 作業ドラフトで、この仕様に対する コメントを求めます。
W3C XML アクティビティは この種の機能がまもなく W3C 内外の様々な種類の XML アプリケーションで必要になると 考えています。
W3C 会員各位とその他の関連団体には、この仕様を論評し 早期実装の経験について報告されるよう要請します。このドラフトを公開するする目的は、 こういった機能の必要性と機構の適応可能性の両方のコミュニティからのフィードバックを 求めることです。
この文書に対するコメントは公開メーリングリスト www-xml-linking-comments@w3.org (アーカイブ) まで お送りください。実装経験の報告は歓迎しますが、 XML リンク作業グループは 最終リリースに先立ってこの仕様に変更を行う権限を初期実装が制限することは 認めません。
この作業の背景については、 XML アクティビティ宣言を ご覧ください。
XML リンク言語 [XLink] はリソース間のリンクを記述するための XML の構文を定義しています。XLink で宣言されている要件のひとつは、汎用的な方法で HTML 4.0 [HTML40] のリンク構文をサポートすることです。 HTML の BASE 要素は、XLink 作業グループが検討した構文のひとつです。 BASE を使うと、制作者は、外部に置かれた画像、アプレット、フォーム処理プログラム、 スタイルシートなどへのリンクの相対 URI を解決するために、文書の基底 URI を 指定することができます。
この文書では、一般的な XML アプリケーションに対して BASE の機能を提供することを提案します。さらに、相対 URI の解決を XLink の領域に 限定せず、相対 URI を利用するあらゆる XML アプリケーションに対して適用可能とすることを 提案します。言い換えれば、この問題は位置指定 (URI) のレベルで解決されるべきであり、 より高いレベルのリンク (XLink) で解決されるべきではないということです。
この文書では、
xml:base
属性を定義することにより、XML 文書一般に対して
汎用の BASE 機能のための書式を導入します。
属性 xml:base
を XML 文書に挿入すると、文書や外部実体の基底 URI 以外の
基底 URI を指定することができます。通常は、相対 URI の解決には文書や外部実体の基底 URI が
使用されています。
この属性の値は RFC 2396 [RFC2396] て定義されている URI である
ものとして解釈されます。
xml:base
で指定された基底 URI は、
この属性が置かれた要素と、さらに xml:base
属性が適用されたものを除く
子孫要素に対して、基底 URI 情報セット特性を設定します。xml:base
属性の値自体が
その置かれた要素の基底 URI に基づいて解決されなければならない場合には、
この属性の値自体が相対 URI であってもかまいません。このときの基底 URI は
先祖要素の xml:base
属性から取得されたものでもかまいません。これにより、
スコープ決定の動作が xml:lang
および xml:space
と一貫性を持つことに
なります。
「XML 名前空間」[XML Names] で述べられているように、
名前空間に対応した XML プロセッサでは "xml" という接頭辞は
名前空間名 http://www.w3.org/XML/1998/namespace
に束縛されます。
xml:base
は名前空間に対応していないプロセッサでも利用できる点に
注意してください。
注:
実装者への警告: base
属性を xml 名前空間に置いてしまうと、
この仕様が勧告になる前に名前空間のバージョン変更が行われた場合の余裕がなくなります。
実装者は、この仕様が安定していると認識できるまでは、この作業ドラフトの URI など、
プロトタイプ用の別の名前空間を使いたいかもしれません。
簡単な XHTML 文書での xml:base
の例を次に挙げます。
<?xml version="1.0"?> <html xmlns="http://www.w3.org/TR/xhtml1/strict" xml:base="http://somewhere.org"> <head> <title>仮想図書館</title> </head> <body> <p><a href="new.xml">新着情報</a>をご覧ください!</p> <p>今日の注目作品をチェックしてください!</p> <ol xml:base="/hotpicks"> <li><a href="pick1.xml">注目作品 その 1</a></li> <li><a href="pick2.xml">注目作品 その 2</a></li> <li><a href="pick3.xml">注目作品 その 3</a></li> </ol> </body> </html> |
この例の URL は解決されて次のような完全な URI になります。
XML 文書中の URI を解決するアプリケーションは、こういった URI を、
RFC 2396 [RFC2396] で述べられている基底 URI を基準にして
解決すべきです。以下ではとくに xml:base
を含む XML 文書に RFC 2396 が
どのように適用できるのかについて述べます。
基底 URI は次の順序 (優先度の高いものから 低いものへ) に沿って算出されます。
xml:base
属性の対象範囲で決まります。注: 上記の手順 2〜4 は、XML 1.0 および XML 情報セット (Infoset) の現在の動作をまとめたものです。 手順 1 がこの仕様で述べられています。
基底 URI が未定義の場合、その URI は誤りとみなされます。
編集者の注: 「誤り」は何を意味するのでしょうか? 私は HTML 仕様からそのまま写したのですが……。
xml:base
の対象範囲は外部実体には
及ばないことに注意してください。
この動作は xml:space
にあわせています。
XML 情報セット [XML Infoset] は
省略可能な基底 URI 特性を公開していますが、これは現在では
xml:base
の有無に影響を受けません。
この文書では、基底 URI 情報セット特性と xml:base
を
統合する、XML 情報セットへの追加事項を規定します。
これにより、xml:base
属性に依拠したアプリケーションと
基底 URI 情報セット特性を表に出した機構に依拠したアプリケーションが
確実に同じ結果を出すことになります。
注: "xml" 名前空間を使うことが必要になるのは、XMl 1.0 と情報セットの この統合のレベルです。
文書情報アイテムの基底 URI 特性の値は xml:base
に影響されません。
要素情報アイテムや 処理命令における省略可能な基底 URI 特性の値は、上記の 相対 URI 解決の規則によって決まります。
基底 URI 特性に加えて、
情報セットは xml:base
を属性として公開し続けるべきです。
課題 (xmlbase:system-identifiers): システム識別子に影響できないということは、全域的な「基底」の適用可能性が失われる ことになりますが、これは後方互換性という理由からはなんとしても望まれないかも しれません。これを解決する方法のひとつは、xml:base 属性と同様な特性を持つ xml:base 疑似属性を XML 宣言で使えるようにすることかもしれません。
xml:base
で
指定された URI からの相対指定として解決すべきではありません。課題 (xmlbase:namespaces-compatibility): 名前空間は xml:base 属性を考慮に入れるように拡張されるべきでしょうか?
xml:base
で指定された基底 URI からの
相対参照として解決することができます。XLink 仕様は相互運用性の利点から
xml:base
のサポートが必要かもしれません。xml:base
属性で
指定された基底 URI からの相対参照として解決することができます。
XHTML 仕様は相互運用性の利点から xml:base
をサポートしたほうが
いいかもしれません。uri
データ型を
定義しています。このデータ型を認識してその URI を解決するアプリケーションは、
その内容が相対 URI である場合には xml:base
で指定された基底 URI からの
相対指定として解決されるべきであることを認識すべきです。[ここから訳注]
有志や関連団体により、各仕様の日本語訳が作成されています。ウェブ上で公開されていて訳者が知っているものは次の通りです。他にもご存知の方は訳者までお知らせいただけると嬉しいです。
W3C 文書の翻訳について詳しくは、W3C の翻訳に関するサイト もご覧ください。
[訳注ここまで]