XML in Mozilla

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 名前空間は http://www.w3.org/1999/xhtml です。

&auml; といった 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 の名前空間 http://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 勧告

仕様や技術 文書 Mozilla プロジェクト
XSLT W3C 勧告 XSLT
XPath W3C 勧告 XSLT
XMLHttpRequest W3C 草案 XML Extras
DOMParserXMLSerializer Mozilla XML Extras
SAX http://www.saxproject.org/
SOAP W3C ノート Web Services
XML-RPC UserLand Software XML-RPC
RDF W3C 勧告 RDF
SVG W3C 勧告案 SVG
MathML W3C 勧告 MathML
P3P W3C 勧告 P3P
WSDL W3C ノート Web Services
XBL Mozilla の XBL リファレンス
XUL Mozilla の XUL リファレンス

ロードマップ

次の大きな仕事は、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 では動かなかった、という人たちによって発見されたものです。

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: kohei.yoshino, Mgjbot, Yama, Okome
 最終更新者: kohei.yoshino,