本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

XForms 入門、第 2 回: フォーム、モデル、コントロール、そして送信アクション

Chris Herborth, Freelance, Freelance Writer
Photo of Chris Herborth
Chris Herborth は、数々の賞を受賞したテクニカル・ライターであり、オペレーティング・システムやプログラミングに関する執筆に 10 年以上携わっています。彼は息子の Alex と遊んでいる時や妻の Lynette と時間を過ごしている時以外は、ビデオ・ゲームの設計やプログラミング、そして研究 (つまりゲームで遊ぶこと) を行っています。

概要: XForms は、次世代の Web ベースのデータ処理です。XForms は従来の HTML フォームを、XML データ・モデルとプレゼンテーション要素で置き換えています。この 3 回シリーズでは、XForms とその機能について、基本的な XForms モデルとフォーム、様々なタイプのコントロール、基本的なフォーム送信や高度なフォーム送信などを含めて解説します。第 2 回目の今回は、XForms で利用できる様々なコントロールを使った XForms ベースのフォームの作成と、データ・モデルの作成に焦点を当てます。

日付:  2006年 9月 19日
レベル:  中級 この記事の原文:  英語
アクティビティー: 3058 ビュー
お気軽にご意見・ご感想をお寄せください: 


はじめに

XForms は、エクステンションやプラグインを使って一般的なブラウザーでサポートできるようになったこと、また IBM® Workplace Forms のような技術 (詳細については「参考文献」を参照してください) によって、急速に勢いを増しています。XForms の柔軟性と強力さは Web 開発者にとって魅力的であり、またフットプリントが小さなことやクライアントサイドでの処理はシステム管理者にとって魅力的です。W3C は現在、ワーキング・ドラフト文書として XForms 1.1 をレビュー中であり (1.0 は正式なインターネット勧告であり、XHTML や PNG、CSS などと同じレベルです)、また IBM は現在、機能や能力で XForms と競合するいくつかの XMLベースのフォーム標準を統合する作業の先頭に立っています。

この記事では、XForms で利用できる様々なコントロールを使った XForms ベースのフォームの作成と、データ・モデルの作成、また、様々なタイプの基本的な送信アクションについて説明します。第 1 回では、様々なブラウザーについて、またそうしたブラウザーで XForms 文書の閲覧や XForms 文書を使った対話動作を行うためのプラグインに関して説明したので、今回はそれらの説明を省略します。この記事で取り上げる内容を追うためには、あるいは既にブラウザーでプラグインが動作しているのであれば、この記事のためのコードを早速ダウンロードし、サンプルの XForms を見てください。


基本的なフォームを作成する

このシリーズの第 1 回では、非常に基本的なフォームを作成しました。このフォームにはテキスト入力フィールドが 1 つ、送信ボタンが 1 つあり、localhost 上にある仮想的な検索エンジンにクエリーを送信するものでした (図 1)。通常、こうした種類のフォームは単独の Web ページとして独立していることはありませんが、それでも非常に一般的なものと言うことができます。


図 1. 非常に基本的な Web フォーム
図 1. 非常に基本的な Web フォーム

出発点としてはこれで十分なので、XHTML と XForms のコードを見ることにしましょう (リスト 1)。XForms 独特の部分は、目立つように太字で示してあります。それ以外の部分は、純粋な XHTML 1.1 Strict です。


リスト 1. 出発点
                
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xf="http://www.w3.org/2002/xforms"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ev="http://www.w3.org/2001/xml-events">
<head>
<title>Search Form</title>
<xf:model>
    <xf:submission action="http://localhost/imaginary-search-engine" 
        method="get" id="submit-search"/>
</xf:model>
</head>
<body>
<h1>Search Form</h1>

<p>
Enter a search string, then click the Search button.
</p>

<p>
<xf:input ref="query"><xf:label>Find:</xf:label></xf:input>
<xf:submit 
submission="submit-search"><xf:label>Search</xf:label>
</xf:submit>
</p>
</body>
</html>

XForms 名前空間 (xf: 接頭辞が付いています) を追加した後に、submit-search という名前の送信アクションを宣言する <xf:model> ブロックがあります。このブロックは、指定された検索ストリングを、標準的な HTTP GET メソッドを使って送信します。<body> の中の下の方を見ると、この単純なフォームを構成している <xf:input> 要素と <xf:submit> 要素があります。これらは入力フィールドと送信ボタンであり、<xf:model> の中で宣言されるアクションをトリガーします。

これを実験してみようと思う方は、ぜひ試してみてください。<xf:input> 要素と <xf:submit> 要素の間隔や順序、場所には何も特別な要求はなく、その文書の <body> のどこにでも置くことができます。入力ウィジェットによるフォームのプレゼンテーションは、フォームのデータ・モデルとは分離されているのです。

この記事では、これをXForms 文書の出発点として使うため、この中には XMLSchema と xml-events に対する XML 名前空間宣言も含まれています。XForms は、この補完的な標準である XMLSchema と xml-events を、それぞれ標準のデータ型とフォーム・イベントを提供するために活用しています。


単純なモデルを作成する

XForms の魅力の 1 つは、データ・モデルをプレゼンテーションから分離できることです。先ほどのリスト 1 を見るとわかるように、モデル (<xf:model> ブロックの中) は独立して XHTML 文書の <head> の中に存在しています。

もちろん、このモデルは 1 つの送信アクションを除いて、まったくの空です。何もデータは含まれていません。

いや、ちょっと待ってください。データが含まれているのです。システム (この場合は XForms をサポートするブラウザー) が、データを作ってくれるのです (リスト 2) 。この中にはフォームの中で参照されるデータ・フィールドが含まれています。


リスト 2. この単純なフォームによって示される、完全な <xf:model>
                
<xf:model>
    <xf:instance>
        <data xmlns="">
            <query/>
        </data>
    </xf:instance>
    <xf:submission action="http://localhost/imaginary-search-engine" 
        method="get" id="submit-search"/>
</xf:model>

こうしたインスタンスを明示的に含むことによって、フォームに検証レベルが 1 つ追加されます。つまり、モデル・インスタンスの中に、フォーム・コントロールが参照するフィールド (この単純なサンプル・フォームではテキスト・フィールドと送信ボタン) がなければならないのです。存在しないインスタンス要素を参照するコントロールは、描画に失敗するか、あるいはエラー・メッセージを生成します (どちらになるかは XForms の実装に依存します)。


デフォルト値

データ・インスタンスを明示的に宣言する場合は、それを単純にフィールド要素の内側に置くことでデフォルト値を定義することができます。リスト 3 は、リスト 2 のモデルに、クエリーに便利なようにデフォルト値を持たせたものを示しています (図 2)。


リスト 3. <xf:instance> の中にデフォルト値を直接含める
                
<xf:model>
    <xf:instance>
        <data xmlns="">
            <query>One or more search keywords.</query>
        </data>
    </xf:instance>
    <xf:submission action="http://localhost/imaginary-search-engine" 
        method="get" id="submit-search"/>
</xf:model>


図 2. ヒントあるいは意味のあるデフォルトとして、モデル・インスタンスの中にデータを含める
図 2. ヒントあるいは意味のあるデフォルトとして、モデル・インスタンスの中にデータを含める

隠された値、隠されたコントロール

XForms は、ユーザーが送信アクションを有効にすると、完全な XML 文書 (データ・モデル・インスタンス) を送信します。モデル・インスタンスを作成する際には、任意のデータを含めることができます。

そのため、隠されたコントロールをフォームの中に含める必要がなくなります。サーバー上のフォーム・プロセッサーに対して送信すべきデータがあり、そのデータをユーザーに見せる必要がない場合には (あるいはデータが定数でなければならない場合には)、そのデータをモデル・インスタンスに追加します (リスト 4)。


リスト 4. 隠されたデータまたは定数データを、フォームではなくインスタンスの中に含める
                
<xf:model>
    <xf:instance>
        <data xmlns="">
            <query>One or more search keywords.</query>
            <engine-version>2</engine-version>
            <results>25</results>
        </data>
    </xf:instance>
    <xf:submission action="http://localhost/imaginary-search-engine" 
        method="get" id="submit-search"/>
</xf:model>

この例では、<engine-version> と <results> はフォーム・コントロールに参照されることはなく、また (ページ・ソースを見ない限り) ユーザーに見られることもありません。これらはクエリーの一部として仮想検索エンジンに送信され、仮想検索エンジンはこれらを使って検索エンジンを選択し、返すべき結果の数を設定します。


インスタンスをロードする

大きなデータ・モデルがある場合、あるいはユーザーには隠したいデータがある場合には、外部の XML ファイルからインスタンスをロードすることができます (リスト 5)。


リスト 5. XML ファイルの中にある単純なモデル・インスタンス
                
<?xml version="1.0" encoding="UTF-8"?>
<data xmlns="">
    <query>One or more search keywords.</query>
    <engine-version>2</engine-version>
    <results>25</results>
</data>

<xf:instance> を、インスタンス URL (リスト 6) を参照するように変更すれば、それで完璧です。


リスト 6. 外部のモデル・インスタンスを参照する
                
<xf:model>
    <xf:instance src="search-instance.xml"/>
    <xf:submission action="http://localhost/imaginary-search-engine" 
        method="get" id="submit-search"/>
</xf:model>

<xf:instance> の src 属性は任意の URL から任意の XML データをロードできるので、XForms を使えば、文字どおり任意のデータを編集したり表示したりすることができます。ほとんどの XForms 実装はソース文書の URL を同じドメインに制限していますが、一部には、許可された信頼できる一連のサイトを設定できるものもあります。


XML データの中での参照

データ・インスタンスとして XML ファイルをロードする場合、その XML をコントロールできないことがあります。例えばデータがデータベースや他のアプリケーションから提供されるような場合です。その XML の中の特定の要素を、どのように参照するのでしょう。今まで見てきたのは、データ・モデルと一致する要素への参照についてのみでした。

XForms フォーム要素が使うデータ・モデル参照は、実際には XPath 式なので、XPath 式を使えばモデル中の任意の要素を参照することができます。リスト 7 は、いくつかのネスト要素を含む、拡張されたインスタンスを示しています。


リスト 7. より複雑なデータ・モデル・インスタンス
                
<?xml version="1.0" encoding="UTF-8"?>
<data xmlns="">
    <query>One or more search keywords.</query>
    <engine-version>2</engine-version>
    <results>25</results>
    <some>
        <additional>
            <info status="important">Nested info.</info>
        </additional>
    </some>
</data>

<info> 要素にアクセスするためには、XPath 式 some/additional/info (絶対パスが必要な場合は /data/some/additional/info) と、<info> 要素の、some/additional/info/@status を持つステータス属性を使います。リスト 8 は、このデータ・ファイルの編集に使えるフォームを示しています (このフォームは Web サーバーが PUT メソッドをサポートしているという前提ですが、PUT メソッドは何らかの認証機構の背後に保護しておきたいことが多いかもしれません)。


リスト 8. より複雑な XML データを編集する
                
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<title>Search Form</title>
<xf:model>
    <xf:instance src="http://localhost/~chrish/data.xml"/>
    <xf:submission action="http://localhost/~chrish/data.xml" 
        method="put" id="submit-edit"/>
</xf:model>
</head>
<body>
<h1>XPath</h1>

<p>
Change the info and status!
</p>

<p>
<xf:input ref="some/additional/info"><xf:label>New 
info:</xf:label></xf:input><br/>
<xf:input ref="some/additional/info/@status"><xf:label>New 
status:</xf:label></xf:input>
<xf:submit 
submission="submit-edit"><xf:label>Save</xf:label></xf:submit>
</p>
</body>
</html>

XPath は、クライアントにとってもサーバーにとっても、XForms を補完する素晴らしい技術です。XPath をマスターしさえすれば、フォームの中でもフォーム・プロセッサーの中でも XPath が使えるのです。


コントロールのタイプ

ここまでは <xf:input> と <xf:submit> というコントロールしか見てきませんでしたが、XForms には他にも非常に多様なコントロールが用意されています。それらについて、対応する HTML と比較しながら簡単に調べてみましょう。

<xf:group> (HTML の <fieldset>) は、フォームの 1 つのセクションの中で、いくつかのコントロールを論理的に 1 つのグループにまとめるために使われます。リスト 9 は、<xf:group> を使って 3 つの入力フィールドにラベルを付ける方法を示しています。


リスト 9. コントロールをグループにまとめる
                
<xf:group>
   <xf:label>Personal Information</xf:label>
   <p><xf:input ref="lastname"><xf:label>Last 
name:</xf:label></xf:input></p>
   <p><xf:input ref="firstname"><xf:label>First 
name:</xf:label></xf:input></p>
   <p><xf:input 
ref="address"><xf:label>Address:</xf:label></xf:input></p>
</xf:group>

<xf:input> (HTML の <input type="text">) は標準的なテキスト入力フィールドを表示します。これが実際に使われているところは、既に何度か見てきました。

<xf:secret> (HTML の <input type="password">) は、入力内容が隠されるテキスト入力フィールドを表示します。これはパスワードなど秘密データの入力に適しています。<xf:secret> は、文書ソースの中では <xf:input> とまったく同様に動作します。

<xf:select appearance="full"> (HTML の <input type="checkbox">) は、ユーザーに対して 1 つ以上の選択アイテムを提供し、また複数のアイテムを選択させます。リスト 10 は、その一例です。


リスト 10. 複数選択のコントロール
                
<xf:select ref="potato-chips" appearance="full">
   <xf:label>Favourite flavours:</xf:label>
   <xf:item><xf:label>Dill 
Pickle</xf:label><xf:value>dill</xf:value></xf:item>
   
<xf:item><xf:label>Ketchup</xf:label><xf:value>ketchup<
/xf:value></xf:item>
   
<xf:item><xf:label>Plain</xf:label><xf:value>plain<
/xf:value></xf:item>
   <xf:item><xf:label>Salt & 
Vinegar</xf:label><xf:value>snv</xf:value></xf:item>
</xf:select>

<xf:select appearance="minimal"> (HTML の <select multiple>) は、メニューまたはリストから 1 つ以上のアイテムを選択する場合に使われます。appearance 属性に minimal を使うと、アイテム・リストを小さなエリアに表示しようとします。

<xf:select1> (HTML の <input type="radio">) は <xf:select> と似ていますが、ユーザーはリストの中から 1 つしか選択できません。これはラジオ・ボタンのリストとして、スクロール選択エリアとして、あるいはメニューとして表示されますが、appearance 属性を使うとレンダラーにヒントを提供することができます。

ネストした <xf:choices> を持つ <xf:select1> (HTML では、ネストした <optgroup> を持つ <select>) では、ユーザーはグループとして構成されたリストから 1 つのアイテムを選択します。<xf:choices> サブ・リストのラベルはリストの中に描画されますが、選択することはできません。リスト 11 は、飲み物のリストを示しています。ユーザーは何も選択しないか、非アルコール飲料のリスト、あるいはアルコール飲料のリストから選択することができます。


リスト 11. いくつかのグループから 1 つのアイテムを選択する
                
<xf:select1 ref="drink">
   <xf:label>Drink:</xf:label>
   <xf:item><xf:label>None</xf:label><xf:value>none
</xf:value></xf:item>
   <xf:choices>
      <xf:label>Soft drinks</xf:label>
      
<xf:item><xf:label>Juice</xf:label><xf:value>juice
</xf:value></xf:item>
      
<xf:item><xf:label>Milk</xf:label><xf:value>milk
</xf:value></xf:item>
      
<xf:item><xf:label>Soda</xf:label><xf:value>soda
</xf:value></xf:item>
      
<xf:item><xf:label>Water</xf:label><xf:value>water<
/xf:value></xf:item>
   </xf:choices>
   <xf:choices>
      <xf:label>Wine and beer</xf:label>
      
<xf:item><xf:label>Beer</xf:label><xf:value>beer<
/xf:value></xf:item>
      <xf:item><xf:label>Red 
wine</xf:label><xf:value>redwine</xf:value></xf:item>
      <xf:item><xf:label>White 
wine</xf:label><xf:value>whitewine</xf:value></xf:item>
   </xf:choices>
</xf:select1>

<xf:textarea> (HTML の <textarea>) は、ユーザーに複数行の入力フィールドを提供します。このフィールドのデフォルト・サイズが適切でない場合には、CSS スタイリングを使ってサイズをコントロールします。

<xf:trigger> (HTML の <input type="button">) は、アクション・ボタンを描画します。ボタンは事前定義された動作を持っていないため、ボタンが有効になった場合にトリガーされるアクションを付加する必要があります。リスト 12 は、calculate() という名前の JavaScript™ 関数を有効にする <xf:trigger> を示しています。


リスト 12. calculate() という JavaScript ファンクションを呼ぶボタン
                
<xf:trigger>
    <xf:label>Calculate</xf:label>
    <script ev:event="DOMActivate" type="text/javascript">
    calculate();
    </script>
</xf:trigger>

しばらく前に基本的なフォームの例で ev: 名前空間が宣言されてから、ここで初めて使われていることに注意してください。ev: 名前空間を使うと、標準の XML Events 属性、ev:event を参照することができ、ev:event は、そのスクリプトをいつ有効にすべきかをトリガーに伝えます。

<xf:trigger> (HTML の <input type="image">) は、フォームに画像ボタンを追加するためにも使うことができます。そのためには、<xf:label> 要素の内側に単純に <img> 要素を挿入するか、あるいは CSS を使って要素の背景に画像を追加します。

<xf:trigger> (HTML の <input type="reset">) を使うと、古いフォームを HTML からXForms にアップグレードするような場合に Reset ボタンを追加することができます (アップグレードの仕様として、役に立たない Reset ボタンを含めて「既存のすべての機能」が要求されるかもしれません)。リスト 13 は、フォームのリセット・ボタンの作り方を示していますが、これを新しいフォームの中で使ってはいけません。エンド・ユーザーが意図的に Reset ボタンを押すことはないはずです。


リスト 13. 役立たずの歴史的成果物、Reset ボタンを実装する
                
<xf:trigger>
    <xf:label>Reset</xf:label>
    <xf:reset ev:event="DOMActivate"/>
</xf:trigger>

<xf:upload> (HTML の <intput type="file">) は、ファイルをアップロードするために使われます。このコントロールは特別な <xf:submission> メソッド、form-data-post を使う必要があるため、他のコントロールよりも少し複雑です (リスト 14)。


リスト 14. ファイルのアップロードに使われる <xf:submission> メソッド
                
<xf:model>
   ...
    <xf:submission action="http://localhost/upload-engine"
        method="form-data-post" id="upload"/>
</xf:model>

フォームの中では、<xf:upload> 要素は、<xf:submit> や <xf:input> とほとんど同じように見えます (リスト 15)。


リスト 15. <xf:upload> を使ってファイルをアップロードする
                
<xf:upload ref="upload"><xf:label>Upload a
 file:</xf:label></xf:upload>

以上の他に、HTML には存在しないコントロールもあります。

<xf:output> を使うと、文書の中にテキストとして値を含めることができます。例えばリスト 7 では、データ・モデルに <results> 要素を追加しています。ユーザーはこれを変更できませんが、モデルを編集すれば変更することができます (特に、外部の XML ファイルで定義されるモデルを使っている場合には)。そして <xf:output> 要素を使えば、この情報をユーザーに表示することができます (リスト 16)。


リスト 16. <xf:output> を使って、モデルのデータを表示する
                
<p>
Your search will return a maximum of
<xf:output ref="results"> matches.
</p>

<xf:range> を使うと、範囲スライドや、制約された値の取得に適切なものをユーザーに表示することができます。例えばこれを 3 つ使い、検索結果を強調表示する際に使う色として、ユーザーに赤、緑、青のいずれかの値を入力させることができます (リスト 17)。


リスト 17. 入力範囲コントロールを使う
                
<p>
Keyword highlight:<br/>
<xf:range ref="r" start="0" end="100" step="1"><xf:label>Red</xf:label></xf:range><br/>
<xf:range ref="g" start="0" end="100" step="1"><xf:label>Green</xf:label></xf:range><br/>
<xf:range ref="b" start="0" end="100" step="1"><xf:label>Blue</xf:label></xf:range>
</p>

これで XForms の様々な入力コントロール (そして 1 つの出力コントロール) はわかったので、今度は様々な送信アクションを見てみましょう。


基本的な送信アクション

XForms 標準は通常の HTML フォーム送信メソッドをサポートしていますが、HTML では送信メソッドを規定するために method と enctype が必要なのに対して、XForms では method しか必要ありません。

<xf:submission method="form-data-post" action="url"/> は、HTML の <form method="post" enctype="multipart/form-data"> と同じであり、受信側の URL でも同じように処理することができます。

<xf:submission method="get" action="url"/> は、HTML の <form method="get"> と同じです。

<xf:submission method="urlencoded-post" action="url"> は、HTML の <form method="post" enctype="application/x-www-form-urlencoded"> と同じです。

こうした、HTML と互換性のある送信メソッドの他に、XForms では 2 つの新しい送信アクション method="post" と method="put" が定義されています。

method="post" アクションはフォームのデータ・モデル・インスタンスを、XSLT や他の XML 処理技術を使った処理に適したXML 文書として、受信側の URL にポストします。クライアントでは余分なエンコーディングやエスケープ処理は何も必要なく、またサーバーでも (標準的な XML 構文解析以外には)、余分な処理は必要ありません。

method="put" アクションは、フォームのデータ・モデル・インスタンスを、XML 文書として宛先 URL に置きます。サーバーが PUT メソッドをサポートしており、また宛先 URL で PUT メソッドを使うためのパーミションが得られた場合には、その XML 文書は宛先 URL 上のファイルと置き換えられます。この方法は、そこに置かれている「任意の」XML 文書の編集に使うことができます。つまりデータ・モデル・インスタンスを、後で put アクションで使う URL をとおしてロードすればよいのです。

純 XML の post メソッドと put メソッドは XForms の魅力の一部であり、データ処理の柔軟性を高めることができます。


まとめ

XForms では、一貫性を持った、XML ベースの明確なデータ・モデルが提供されています。そのため、任意の XML を、文書の中に、あるいはページの処理中にロードされる外部ファイルの中に直接含めることができます。XForms 標準は、既存の標準的な HTML フォーム・コントロールに等価なコントロールをすべてサポートしており、それ以外にも、範囲選択やデータ表示に便利ないくつかのコントロールをサポートしています。また基本的な XForms 送信アクションは、HTML のレガシー送信メソッドの他、2 つの XML ベースのメソッドをカバーしています。この記事では、皆さん自身が XForms を試すための出発点として、これらについて簡単に説明しました。



ダウンロード

内容ファイル名サイズダウンロード形式
Part 2 sample codexforms2.zip3KBHTTP

ダウンロード形式について


参考文献

学ぶために

  • W3C の XForms home を訪れてください。

  • XForms.org: The Nexus for Intelligent Web Apps には、XForms の宝庫として、様々な情報やリンクが用意されています。

  • XForms と似ていますが競合する、Web Forms 2. の仕様を見てください。

  • 「XForms 入門」(devleoperWorks、2002年9月) は、この重要な技術の概要をうまくまとめています。

  • XPath に関する素晴らしい入門チュートリアルとして、「Get Started With XPath」(developerWorks、2004年5月) を見てください。

  • XPath を使うことによる強みを解説した記事として、「The Java XPath API」 (developerWorks、2006年7月) を読んでください。

  • XPath の具体的な機能を取りあげた記事として、「データ用のXML: XPath 2.0の新機能」(developerWorks、2002年9月) を読んでください。

  • この、XForms 入門シリーズの第 1 回を読んでください。

  • XML Events がどのように登場したか、何に対して有効なのか、どのように動作するのか、などを知るために、「XML Events入門」(developerWorks、2004年11月) を読んでください。

  • John Boyer が XForms に関して書いているブログ、Web Forms 2.0 and the future of XML content on the web を読んでください。

  • 「SVGとXForms: 入門」(developerWorks、2003年11月) は、この 2 つの技術の概要を紹介し、両者の間にシナジー効果の可能性があることをハイライトしています。

  • O'Reilly Media から出版されている、Micah Dubinko の著による XForms Essentials を読んでください。

  • XForms に関して調べるための出発点として、XML.com の Ten Favorite XForms Engines を読んでください。

  • W3C の XForms に関するインタラクティブでクロス・プラットフォームのチュートリアルを利用するために、XForms institute を訪ねてください。

  • XForms の起源と目的の歴史的な概要を知るために、SGML の歴史についての簡潔な説明を見てください。

  • XML に関する基礎を学ぶために、チュートリアル、 「Introduction to XML」(developerWorks、2002年8月) を利用してください。

  • developerWorks の XML ゾーンでは、XML に関するすべてを学ぶことができます。

議論するために

著者について

Photo of Chris Herborth

Chris Herborth は、数々の賞を受賞したテクニカル・ライターであり、オペレーティング・システムやプログラミングに関する執筆に 10 年以上携わっています。彼は息子の Alex と遊んでいる時や妻の Lynette と時間を過ごしている時以外は、ビデオ・ゲームの設計やプログラミング、そして研究 (つまりゲームで遊ぶこと) を行っています。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=252447
ArticleTitle=XForms 入門、第 2 回: フォーム、モデル、コントロール、そして送信アクション
publish-date=09192006
author1-email=chrish@pobox.com
author1-email-cc=troy@backstopmedia.com

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。