Mozilla は XML を良好にサポートしています。World Wide Web Consortium (W3C) によるいくつかの XML ファミリーの仕様の勧告やドラフトをサポートしているとともに、他の関連する技術もサポートしています。
このページの内容は古くなっています。どなたか現状に合わせて更新してください。
サポートされているコア XML の W3C 勧告
コア XML のサポートには、XML を検証せずにパースすること (私たちは Expat パーサを使っています)、CSS を用いて XML を表示すること、DOM を通じてスクリプトで XML 文書を操作すること、XML 文書とスタイルシートを関連付けること、そして XML における名前空間が含まれています。これらのコアのサポートはすばらしく、バグもわずかなものです。
DTD に関する用語と他の外部実体
Mozilla は Web から外部実体を読み込みません。
Mozilla はシステム識別子に chrome
プロトコルを使う外部実体を読み込むことができます。この機能は主に Mozilla を別の言語でローカライズする ため (UI 文字列は外部 DTD に保存されています) に使われています。もう一つの例外は、ある実体のシステム識別子が相対パスであり、XML 宣言がその文書がスタンドアローンではない (デフォルト) ことを宣言している実体の場合です。その場合 Mozilla は <tt><bin>/res/dtd</tt> ディレクトリ下の実体を探そうとします。
また Mozilla は XHTML 文書を例外として扱います。これについては後述します。
Mozilla は、内部の (DTD) サブセットを、また特別な状況では上記に説明されたような外部 DTD を読み、そしてこの情報を ID 型属性や標準の属性値や一般の実体を認識するために使います。
ほかのメモ
多くの Document Object Model (DOM、W3C 勧告またはドラフト) は XML に適用されます。同様に、Cascading Style Sheets (CSS、W3C 勧告またはドラフト) はスタイル言語が XML 文書を表現するのに使われます。
ほとんどのコア XML のコードは Mozilla CVS サーバ上の以下のディレクトリにあります。content/xml/
、parser/expat/
、parser/htmlparser/
Mozilla における XML について話すニュースグループは質問の種類によって決まる場合があります。例えば、DOM 関連の質問はおそらく netscape.public.mozilla.dom ニュースグループで話すべきで、その一方スタイル問題は netscape.public.mozilla.style で話すべき、などです。XML の議論の包括的なニュースグループは netscape.public.mozilla.xml です。
仕様や技術 | 状態やさらなる資料 |
XML | W3C 勧告 |
XML の Namespace | W3C 勧告 |
XML 文書とスタイルシートを関連付ける | W3C 勧告 |
XML 文書を CSS でスタイルする | |
DOM を通じスクリプトで XML 文書を操作する |
サポートされているその他の XML W3C 勧告
仕様や技術 | 文書 |
XHTML | W3C 勧告 |
XML Base (リンクのみ、:visited など CSS プロパティには使われていない)
| W3C 勧告 |
XLink (単純な XLink のみ) | W3C 勧告 |
FIXptr | W3C "提案" |
XPointer フレームワーク | W3C 勧告 |
XPointer element() スキーマ
| W3C 勧告 |
XPointer xmlns() スキーマ
| W3C 勧告 |
XPointer fixptr() スキーマ
| このスキーマは FIXptr の単純なラッパーです |
XPointer xpath1() スキーマ
| インターネットドラフト |
document.load() , document.async
| DOM Level 3 Load & Save モジュールの一部、W3C 草案 【訳注: 現在は勧告】 |
XHTML
私たちは適切に XHTML をサポートしており、ほとんどのことがうまく動きます。私たちは XHTML 文書を MIME タイプ (またはファイルがローカルから読まれるときはそのファイルの接尾辞) により異なる扱いをしています。HTML コードパスを通過するファイルは整形式かどうかチェックされません。またあなたは、HTML コードパスを試験したときにすべての XHTML 機能がサポートされているわけではないことに気付くでしょう。
MIME タイプ | ファイルの接尾辞 | コードパス |
text/xml application/xml application/xhtml+xml | xml xht xhtml | XML |
text/html | html htm | HTML |
すべての文書を XHTML にする必要はありません。XHTML の名前空間を使うことで XHTML の要素を任意の XML 文書の中で使うことができます。テストと品質保証 のセクションをご覧ください。正しい XHTML 名前空間は https://www.w3.org/1999/xhtml
です。
ä
といった XHTML の実体は妥当な XHTML 公式公開識別子 (言い換えれば PUBLIC 識別子を持つ DOCTYPE セクション) を持つ XHTML 適合文書においてのみ有効です。XHTML の実体は、たとえ XHTML 名前空間が使われていなくても、任意の XML 文書内ではうまく働きません。認識される公開識別子は以下のものです。
-//W3C//DTD XHTML 1.0 Transitional//EN -//W3C//DTD XHTML 1.1//EN -//W3C//DTD XHTML 1.0 Strict//EN -//W3C//DTD XHTML 1.0 Frameset//EN -//W3C//DTD XHTML Basic 1.0//EN -//W3C//DTD XHTML 1.1 plus MathML 2.0//EN -//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN -//W3C//DTD SVG 20001102//EN -//WAPFORUM//DTD XHTML Mobile 1.0//EN
XML の Linking と Pointing
XML Linking のサポートは XML Base (リンクにマウスポインタを乗せたときとクリックしたときのみ使われます) と単純な XLinks を含みます。XLink の名前空間 https://www.w3.org/1999/xlink
を使ってどんな XML 要素も XLink に作ることができます。また XHTML 名前空間のリンクする要素も使うことができます。テストと品質保証 のセクションをご覧ください。
XML 文書内のリソースを指し示すために Mozilla は FIXptr をサポートしています。これは単純化された、互換性の無い XPointer です。リンクするのに FIXptr を使うことに加えて、スクリプトから使うこともできます。独自に開発した dom/public/idl/core/nsIDOMXMLDocument.idl
インターフェースをご覧ください。FIXptr リンク と スクリプトの例 がテストケースとなっています。
また 1.4 Alpha から Mozilla は XPointer フレームワーク、XPointer element()
スキーマ、XPointer xmlns()
スキーマ、XPointer fixptr()
スキーマ、XPointer xpath1()
スキーマ をサポートしています。
XPointer プロセッサは拡張可能で他のスキーマのサポートを容易に実装できます。API をご覧ください。xpath1()
スキーマは この拡張可能なメカニズムを使い実装されました。また XPointer プロセッサにスクリプトからアクセスするための 独自 API もあります。XPointer のテストケース で学習することもできます。
最後に、あなたが試したいであろう設定 (特に FIXptr で有用) を示します。これはリンクの対象をあなたがリンクをたどるときに選択するものです。これを設定する UI はまだ無いので、手動で設定ファイルを編集する必要があります。次の行を加えてください:
pref("layout.selectanchor", true);
DOM の読み込みと保存方法
document.load()
は W3C の DOM Level 3 Load & Save モジュール の一部です。Mozilla は現在 load()
メソッドと async
プロパティのみ実装しています。以前は非同期でしたが、1.4 Alpha からは文書を同期してロードできるようになりました。XML テストのディレクトリ内にある ロードのサンプル をご覧ください (LXR の生成したページから load.html ファイルをロードすることはできません。これは LXR が test.xml ファイルを不完全な形で HTML に変換しそれを HTML としてサーブするためです。この機能をテストするには、そのファイルをあなたのローカルディスクかウェブサーバ上に作ってください。)
別の場所に解説がある、サポートされている XML W3C 勧告
ロードマップ
次の大きな仕事は、XPointer の xpointer()
スキーマ (バグ 32832)、XInclude (バグ 201754)、XML Catalogs (バグ 98413)、XForms (バグ 97806 - 拡張機能として実装済み)、検証パーサ (バグ 196355)、XML スキーマのサポートになるでしょう。
XLink を完全に実装するために、私たちにはリンクマネージャと呼ばれるものが必要です。初期の 設計書 をご覧ください。
テストと品質保証
ブラウザ標準準拠品質保証 からテストケースが数多くリンクされています。
CVS サーバ上にあるコア XML のテスト文書のほとんどは content/xml/tests
にあります。またオンライン上にも、書籍のデモと IRS 目次デモがあります。どちらも XML、XML とスタイルシートの関連付け、XML の CSS を用いた表示、XML の名前空間、XHTML、単純な XLink、DOM を通じたスクリプトによる XMLの操作などのデモです。
Bugzilla には XML コンポーネントがあります。
また "xhtml" キーワードが XHTML バグ (これらはコンポーネント中に散在する傾向にあります) のためにあります。
どうやって手伝えばいいの?
もしコードが書けるならば、XML バグ内で helpwanted キーワード を探してください。私たちがこのキーワードを使う頻度は高くないので、重複した作業を避けたいなら Future milestone に設定されているバグか、はるか先のマイルストーンに設定されているバグで作業を開始しても良いでしょう。
あなたはいつでも私たちの XML サポートをテストできます。私たちは自動的に動くテスト (これには web 開発の知識が必要でしょう。document.load()
や XML Extra が必要かもしれません) が欲しいと思ってはいますが、私たちが得たバグのほとんどは、何かをしようとして他のブラウザでは動いたが Mozilla では動かなかった、という人たちによって発見されたものです。