XML 追加モジュールは、開発者が XML をデータ (つまりただのドキュメントフォーマットとしてだけでなく) として扱うことを可能とするいくつかの機能を含んでいます。このモジュールは drop-in のコンポーネントとして構成され、その XML-as-data (XML をデータとして扱う) 機能を JavaScript と C++/XPCOM ユーザの双方に公開します。XML 追加モジュールは、すべてのプラットフォームにおいて標準でビルドされており、ブラウザのインストーラに含まれているため、ナイトリービルドでも利用可能です。
機能の状態
機能 | 状態 |
XMLSerializer | 利用可能 |
XMLHttpRequest | 利用可能 |
DOMParser (string and stream input source) | 利用可能 |
SOAP と WSDL を使った Web Services | 1.4 Alpha 以降で利用可能。1.4 Beta 開発期間中に Web Services へ移行。 |
XML Persistence | |
FIXptr と XPointer | 1.4 Alpha 以降、Mozilla コアで利用可能。1.4 Beta 開発期間中に XML Extras へ移行。 |
以下の資料もご覧ください。
- XML-RPC
- XML in Mozilla
- document.load()
- A few examples dealing with XML from MozillaZine Knowledge Base.
品質保証とテスト
XMLHttpRequest を通じて HTTP GET メソッドを使うことを主な目的とした、オンラインテスト がいくつかあります。
上記の実装されたコンポーネントに対する最小限のテストケースは extensions/xmlextras/tests/
にあります。しかし、より網羅的なテストを作る必要があります。もしあなたが品質保証を手助けしたいと思うなら、以下のことができます。
- 実装されたコンポーネントの品質保証オーナーとして登録します。品質保証オーナーは、それらのコンポーネントに関連したテストを管理し、関連したバグと品質保証の接点として活動し、回帰テストを手伝います。
- 実装されたコンポーネントを用いたテストスイートか個別のテストに貢献します。新しいテストを作成したら、バグとして登録するか、
extensions/xmlextras/tests/
にチェックインします。 - 実装されたコンポーネントに対するバグを提出します。バグは Browser プロダクトの XML コンポーネントに登録します。
ドキュメント化
Probably the best way to learn how to use these technologies is through examples. There are some in extensions/xmlextras/tests/
. If you follow that link to look at the examples you will need to look at page source for the HTML documents.
For XMLHttpRequest object you can mostly rely on the Microsoft XMLHttpRequest documentation, with some caveats: all functions and property names begin with a lower case letter and the object creation is different. Some properties are not implemented.
Thad Hoffman has written a document that shows how you can mimic XML Data Islands in Mozilla. Edmond Woychowsky has also written articles on XML Data Islands in Mozilla: "Make XML data islands work in Mozilla", "Build cross-browser XML paging code" and "Implement a flexible shopping cart with XML and ASP". The Mozilla Developer Center has several pages for XMLHttpRequest.
Below are some key differencies in "XML Extras" between Mozilla and Microsoft software:
Difference | Microsoft | Mozilla |
Member names | Case insensitive? | Begins with lower case letter |
XMLHttpRequest Creation | new ActiveXObject("Msxml2.XMLHTTP")
| new XMLHttpRequest()
|
XMLHttpRequest.send("some string")
| ok | ok starting with milestone 0.9.7 (actually nightly 2001-11-28). With older builds, passing strings to send() works only in chrome, see post.html sample. The "workaround" is to use DOMParser object's parseFromString() method to create a document from string, and pass the temporary document into send() .
|
XMLHttpRequest.open("aHost")
| ok | <tt>file://</tt> documents can access <tt>https://</tt> documents but you need to enable UniversalBrowserRead privilege in your scripts - see the JavaScript Security: Signed Scripts document for more details. Normally your files should reside on a webserver so this shouldn't pose a problem (there you do not need that line either). Additionally, "foo.com:80" and "foo.com:313" are considered different hosts for security purposes. You cannot open a connection to a different host.
|
DOMParser Creation | not available | new DOMParser()
|
XMLSerializer Creation | not available | new XMLSerializer()
|
上記の実装されたコンポーネントに対する最小限のドキュメントは Doxygen によって生成された Mozilla ドキュメントで見つけることができます。追加のドキュメント化での貢献は、JavaScript 開発者に向けたものと、 IDL ファイル内で JavaDoc スタイルのコメントを完成させ明確にしたもののどちらでも、新しいバグに登録してください。
- nsIDOMSerializer (現在、JavaScript のコンストラクタは
XMLSerializer()
です) - nsIDOMParser (現在、JavaScript のコンストラクタは
DOMParser()
です) - nsIXMLHttpRequest
Please see the XML Linking and Pointing section in XML in Mozilla document for FIXptr and XPointer documentation.