Mozilla XForms プロジェクト
ニュースグループ: netscape.public.mozilla.xml
連絡先
この XForms プロジェクトの最終的な目標は、 W3C による XForms 1.0 勧告を Mozilla に組み込むことです。
目次
XForms とは
XForms とは、W3C により、オンラインフォームの未来をなすと想定されているものです。XML スキーマ、XPath、XML イベントなどのような、W3C の標準をもとにして、XForms は、現在の HTML フォームモデルの限界のいくつかを乗り越える試みになります。大抵の Web フォームには、クライアントサイドでの整合性チェックや、入力した要素の相互依存性を操作したり、宣言したりする機能があります。HTML では、この機能を記述するには、巨大な JavaScript ライブラリを書かねばならず、入力データが変更されるたびに、アップデートしたりメンテナンスしなければなりませんでした。XForms は、内部でこの機能を組み込んでおり、フォームの作者は、単純な XML のマークアップを使うことで、この機能を利用することができます。ほかにも、XForms の利点として、見た目とデータの分離、強力なデータ定義、name/value のペア要素に変わって XML データをサーバーに送信する機能、フォームを表示できるようにフォーム作者が操作できるような記述法といったものです。いろんな面を扱った XForms 仕組みの解説やチュートリアルは、Web 上にたくさん存在しています。まずは、W3C のページ か、利用可能な ドキュメント から始めるのが良いでしょう。
概要
このプロジェクトでは、XML スキーマのフルサポートだけでなく、データインスタンスの作成、条件分岐、トグルスイッチなどの UI の要素との結合といった膨大な作業も抱えています。まずはじめに、このプロジェクトでは、Mozilla のコードベースへの最小の割り込みと最小の作業量しか必要としないような形で、XForms のほとんどの機能の実現を試みます。最初の目標は、ブラウザに対するプラグインのような拡張で、XForms の機能が利用可能なところで、一部のスキーマをサポートして、XTF を利用することです。
進捗状況
私たちは XForms 1.0 の実装完了に向けて着実に作業を進めています。まだ作業は残っていますが、ぜひ 開発ビルド をお試しください。
CVS からビルドする か ナイトリービルド からダウンロード可能な拡張機能の 現在のコードの状況 をご覧いただけます。
品質保証とテスト
まずは、W3C のほうで一連の テストセット を用意してくれています。このテストは、仕様の様々な章で紹介されているトピックに合わせて作られています。
さらに包括的なテストケースとなると、エンタープライズ環境やオンラインショッピングサイトを記述したり利用したりすることを反映して作ることになるのでしょう。もし QA を手伝ってくれるのだとしたら、下記のどれかに参加してみてください。
- 実装されたコンポーネントのどれかの QA オーナーとして参加してください。QA オーナーは、コンポーネントに関連するテストを管轄し、関連するバグの QA の窓口役になり、レグレッションテストをサポートをすることになります。
- 実装されたコンポーネントを使った総合テストや個別のテストに参加してみてください。テストで見付かったバグを投稿するか、および/または、ツリーにチェックインしてください。
- 実装されたコンポーネントに関するバグを投稿してください。バグは、Browser プロダクトの XForms コンポーネントに分類してください。
ドキュメント
この技術に精通するには、サンプルに触ってみるのが一番です。仕様には、素晴らしい 紹介とそのサンプル があります。
また、W3C のワーキンググループのメンバーにより執筆された、XForms の本が 2 冊出ています。ひとつは、Micah Dubinko による XFormsEssentials で、もうひとつは、T.V. Raman による XForms: XML Powered Web Forms です。
それから、XForms に関するニュース全般を扱う活発な メーリングリスト もあります。これは、XForms のドキュメントに関する質問や関連情報を投げるのに、最適な場所でもあります。
ほかにも、XForms を組み込んだいろんなサンプルが手に入ります。作業を進めていく最中も、更にテストケースをテストディレクトリに追加していくつもりです。ツリーをセットアップしたら、このプロジェクトページからテストディレクトリへのリンクをはります。また、利用可能になった段階で、Mozilla 固有のドキュメントへもリンクしていきます。
協力するには
- モジュール内に組み込まれたコンポーネントの テスト を手伝ってください。
- モジュールの ドキュメント を書いてみてください。
- コード関連だと、バグ修正や機能を満たすためのパッチを書いてくれると助かります。
ビルドの手順
ソースコードは Seamonkey トランクの mozilla/extensions/xforms ディレクトリから入手できます。ビルドに必要な手順は以下の通りです。
- .mozconfig の拡張リストに xforms と schema-validation を加えてください。もしなかったら、以下の行を追加してください。
ac_add_options --enable-extensions="default,xforms,schema-validation" - あとは、
makeを使って 通常通り ツリーを取得し、ビルドしてください。
ダウンロード
警告: これはエンドユーザ向けではありません。評価用に公開されているものです。
私たちの作業の進捗状況を示す早期ベータ版を公開します。いつものように、これはまだ開発中のもので、実稼働環境には適さない ことにご注意ください。しかし、実感としてはかなり安定しており、評価をフィードバックしていただけることを心待ちにしています。近いうちに独自のフィードバック窓口を設けたいと考えていますが、今のところはニュースグループ netscape.public.mozilla.xml をご利用ください。件名のどこかに XForms の文字を入れてくださると、私たちの目を引きやすくなります :-)
この拡張機能は Mozilla の eXtensible Tag Framework (XTF) を利用するため、XTF サポートを含む Mozilla/Firefox ビルドが必要となります。現在公開されている Mozilla や Firefox にはまだ XTF は含まれていませんが、Mozilla 1.8 と Firefox 1.1 のリリース時には含まれる予定です。私たちは、いくつかの問題に関して、ナイトリービルドでテストを続けています。また、下で説明したナイトリービルドを必要とする Mozilla の XPath 評価ツールの現行バージョンに関する依存関係も追っています。
インストール
標準的な Mozilla 1.7.x や Firefox 1.0.x を使ってテストすることはできませんのでご注意ください。
- Deer Park Alpha 1 (Firefox 1.1 プレビューリリース) - まずこの Deer Park ビルドをダウンロードし、そのビルドに適切な XForms をインストールしてください。
- ナイトリー開発ビルド
- XForms 拡張機能の最新ビルドは Firefox のナイトリー XPI トランクビルド にあります。最新の
2005-XX-XX-XX-trunk/ディレクトリの中に (OS の種類に応じて)linux-xpi、windows-xpi、mac-xpiがあります。これらは最新のナイトリービルドにインストールし、古い拡張機能はすべて削除するようにしてください。
- XForms 拡張機能の最新ビルドは Firefox のナイトリー XPI トランクビルド にあります。最新の
Firefox ユーザへの注意: これらのダウンロードリンクをクリックすると、ブラウザのコンテンツエリアの上部に "To protect your computer, Firefox prevented this site from installing softwared on your computer." といったメッセージが表示されます。メッセージの右端にある [Edit Options...] ボタンをクリックしてください。[Allow] ボタンをクリックし、[OK] ボタンをクリックします。その後インストールが開始されます。これは、ftp.mozilla.org (またはそれに対応したミラーサイト) がホワイトリストに含まれていないために見られるものです。
リリースノート をご覧ください。このリリースノートには、仕様に対するこれまでの進捗状況や、独自に実装している動作などが載っています。その中でも特筆すべきことは:
- XForms ドキュメントは、HTML ではなく XHTML として送信する必要があります。
- Mozilla のセキュリティポリシーに準拠するため、ドキュメントの送信元とは異なるドメインにフォームの内容を送信することはできません。
- このベータ版は今のところ、XForms CSS 疑似クラス、疑似要素をサポートしていません。一時的な対応策として、invalid、irrelevant などとして CSS でスタイル付けできるコントロール上に属性を指定しています。この問題は今後のビルドで修正されます。
ここに、自分で試せる XForms のサンプルがいくつかあります。思わず「おっ」と言わせるものではないでしょうか。しかし若干挙動が怪しい点があるかもしれません。とにかく楽しんでください!