IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  XML | Information Management | Web development  >

XML Forms Generator と Data Studio との統合: 第 2 回 XFG での DB2 pureXML のサポート

pureXML インスタンスに対応する登録済み XML Schema のサポートによって、pureXML を Data Web Services の pureXML パラメーターに対応する XHTML/XForm に視覚化する

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

議論する

ダウンロード

原文はこちら

原文はこちら


レベル: 中級

Xiao Feng Zhao, Staff Software Engineer, IBM
Qiang Wang, Staff Software Engineer, IBM
Susan Malaika, Senior Technical Staff Member, IBM
Keith Wells, Senior Software Engineer, IBM

2009年 01月 20日

IBM® DB2® 9 の pureXML® フィーチャーは、XML データのサポートに革命をもたらしました。pureXML では、XML を本来の階層のまま保管し、リレーショナル・データとも違う新しいデータ型として扱うことができるようになっています。IBM Data Studio では、複数の pureXML パラメーターを持つ Data Web Services を作成し、データベース内の pureXML インスタンスを操作することができます。XFG (XML Forms Generator) では、pureXML のサポートを利用して pureXML を XHTML ベースの XForm としてユーザーに表示することができます。さらに、pureXML インスタンスに関連する登録済み XML Schema を取得して、型情報と妥当性検査制約をターゲット pureXML XHTML/XForm の中に生成することもできます。このように XFG の pureXML サポートは、pureXML で保管された XML インスタンスのフォーム・インターフェースを簡単に作成できるようにします。

pureXML と Data Web Services

この連載の他の記事

XML データを CLOB として保管したり、リレーショナル・テーブルにシュレッドしたりする時代は、もう過ぎ去りました。DB2 9 の pureXML フィーチャーは、XML データのサポートに革命をもたらしました。pureXML では、XML を本来の階層のまま保管し、リレーショナル・データとも違う新しいデータ型として扱うことができるようになっています。pureXML によって XML データとリレーショナル・データをシームレスに統合できるおかげで、アプリケーション開発が迅速に行えるようになり、非常に最適化が進んだ XML 索引を利用して検索パフォーマンスを改善することができ、さらに XML データに対して SQL と XQuery の両方を使ってクエリーを実行できるという柔軟性がもたらされます。また、XML データを pureXML で保管すると、Data Web Service のメカニズムを利用して Web Services として公開することが可能になります (この連載の第 1 回を参照)。

XFG における pureXML のサポート

よく使われる頭字語
  • CLOB: Character Large Object
  • SOAP: Simple Object Access Protocol
  • UI: User interface
  • WSDL: Web Services Description Language
  • XHTML: Extensible Hypertext Markup Language
  • XML: Extensible Markup Language

XFG での pureXML サポートについて詳しいステップを説明するために、まずは DB2 に定義されたテーブルをベースとするミニ pureXML アプリケーションを作成するところから取り掛かります。このテーブルの構造は、表 1 に記載するとおりです。説明の前に、サンプル・レコードを pureXML 参照インスタンスとして挿入します。このレコードの XML1 列はどのスキーマにもバインドされていません。一方、XML2 列はリスト 1 に示す Express スキーマという登録済みスキーマにバインドされています。注: pureXML 参照インスタンスとは、XFG で XHTML/XForm を生成するために使用する XML テンプレートのことです。ご存知の通り、XFG は XML と WSDL のどちらからでもフォームを生成することができます。


表 1. テーブル構造の概要


リスト 1. Express スキーマ




上に戻る


Data Web Services を作成する

DB2 データベースにテーブルを作成したら、Data Studio を使用して、以下の SQL 文が含まれる SQL ファイルを作成します。

INSERT INTO XFGDEMO (ID, NAME, XML1, XML2) VALUES (:id, :name, :purexml1, :purexml2)

次に、Data Web Services を作成します。SQL ファイルから Data Web Services を作成する方法については、「参考文献」を参照してください。サンプル Web サービスを作成する際には、リスト 2 に示すような内容の insertRecord.wsdl という WSDL ファイルを生成します。ご覧のように、生成される WSDL ファイルには、PUREXML1PUREXML2 という 2 つの pureXML パラメーターが含まれ、どちらも xsd:anyType にバインドされています。以降のステップでは、XFG を使用して、この 2 つの pureXML フィールドを XHTML/XForm の一部として視覚化します。


リスト 2. WSDL ファイルに含まれる pureXML パラメーター




上に戻る


XHTML/XForm を生成する

Data Studio を使用して Data Web Services を作成してデプロイし終わったら、今度はこのサービスとの間でデータの受け渡しをするための XHTML/XForm と、それに対応する XML ファイルを、XFG を使用して生成します。

insertRecord.wsdl ファイルを選択し、この WSDL ファイルを右クリックして XForms Generator メニューから Generate XHTML/XForms ウィザードを選択します。図 1 に、このウィザードの最初のステップを示します。


図 1. XFG ウィザードの最初のステップ

妥当性検査情報を生成する

XFG では、pureXML フィールドに妥当性検査制約を追加することができます。「Generate validation information (妥当性検査情報を生成する)」オプションを選択すると、妥当性検査エディター・ウィザード・ページが表示されるので、このページ以降のステップに従って妥当性検査のルールを追加で構成します。

データベースから pureXML インスタンスを取得する

XFG では、WSDL の pureXML フィールドを視覚化する上で、2 つの方法をサポートします。1 つは、ローカル・ファイル・システムで pureXML インスタンスを使用し、ローカル・ファイル・システムからバインディング・スキーマを読み取るという方法で、もう 1 つは pureXML インスタンスをデータベース内で使用し、XSR (XML Schema Repository) から登録済みスキーマを取得するという方法です。この 2 つの方法を両方とも使用できるようにするには、「Retrieve PureXML instance from Database (データベースから pureXML インスタンスを取得する)」チェック・ボックスを選択します。選択しない場合は、ファイル・システム内のスキーマしか使用することができません。このチェック・ボックスにチェック・マークを付けてから、Next をクリックしてください。

次に表示される画面では、insertRecord 操作を選択して Next をクリックします。すると、図 2Configure PureXML ウィザード・ページが表示されます。この図に示されているように、XFG はすべての pureXML パラメーターを認識します。XHTML/XForm を生成して表示するためには、pureXML インスタンスを参照として指定した上で、データベースから pureXML インスタンスを取得する必要があります。参照 pureXML インスタンスのうち、PUREXML1 はどのスキーマにもバインドされていない一方、PUREXML2 はリスト 1 に示した登録済みスキーマにバインドされていることに注意してください。


図 2. Configure PureXML ウィザード・ページ

Next をクリックすると妥当性検査エディター画面が表示されます。このエディターで、スキーマにバインドされていない PUREXML1 に妥当性検査ルールを追加します。


図 3. 妥当性検査エディター

ウィザードに従ってステップを進め、最後に Finish をクリックすると XHTML/XForm が生成されます。生成される XHTML ファイルは insertRecord.xhtml です。図 4 に、生成されたフォームを示します (図 4 の拡大版を参照してください)。


図 4. Firefox にレンダリングされた生成後の XHTML/XForm




上に戻る


分析

生成された XHTML フォームのフラグメントをリスト 3 に示します。このフラグメントには、2 つの fieldset タグがあります。それぞれのタグは、データベース内の指定されたインスタンスから生成されたもので、リスト 2 の WSDL ファイルに含まれる pureXML パラメーターに対応します。


リスト 3. pureXML XForm のフラグメント

XFG は、登録済みスキーマ (リスト 1 に示したスキーマ) に対するバインド情報を生成します。この情報は、リスト 4 のとおりです。


リスト 4. 登録済みスキーマから生成された pureXML バインド情報

その一方で、XFG はウィザードで設定された PUREXML1 妥当性検査ルールに対するバインド情報も生成します。このバインド情報はリスト 5 のとおりです。


リスト 5. 妥当性検査ルールから生成された pureXML バインド情報




上に戻る


複数のモデルをマージしてサブミットする

生成された XHTML/XForm には、以下の 3 つの XForm モデルが含まれます。

  • 最初のモデルは、WSDL 操作、insertRecord に対応するグローバル・モデルです。このモデルに含まれる要素は、IDNAMEPUREXML1PUREXML2 の 4 つだけです。これらの要素は、Data Web Services の 4 つのパラメーター名それぞれに対応します。
  • 2 番目と 3 番目のモデルは、データベースまたはローカル・ファイル・システムから取得した PUREXML1、PUREXML2 のパラメーターに対応する pureXML モデルです。XHTML/XForm の 2 つの pureXML fieldset でのデータ変更はすべて、この 2 つのモデルに適用されます。

XFG は 2 番目と 3 番目の pureXML モデルを最初のグローバル XForm モデルにマージした上で、Data Web Services にサブミットします。モデルをマージするために使用するのは、リスト 6 に示す、 XHTML で生成されたクライアント・スクリプトです。このスクリプトは、XHTML フォームがサブミットされるときに、フォームの一部としてクライアントで実行されます。


リスト 6. モデルをマージする XHTML スクリプト

マージ後のデータ・モデル (リスト 7 を参照) は完全な SOAP メッセージとなります。クライアントはこの SOAP メッセージを Web サービスに直接サブミットし、フォームのデータを使って新しいレコードをテーブルに挿入します。


リスト 7. マージ後のモデル




上に戻る


まとめ

この記事では、XFG での DB2 pureXML サポートについて簡単に説明しました。XFG (XML Forms Generator) の pureXML サポートによって pureXML を XHTML ベースの XForm としてユーザーに表示できるだけでなく、pureXML インスタンスに関連する登録済み XML Schema の取得、そして型情報の生成に関しても、XFG に依存することができます。また、妥当性検査制約をフェッチしてターゲット pureXML XHTML/XForm に追加することも可能です。このように、XFG が pureXML をサポートしているおかげで、明らかに、pureXML で保管された XML インスタンスのフォーム・インターフェースを簡単に作成できるようになります。この 2 回の連載記事では、XForms、XFG、Data Studio、Web サービス、そして pureXML フィーチャーのサポートを紹介しました。この連載を読み終えた今、XFG を使い始めるのに苦労はしないはずです。バックエンドの Data Web Services に代わって機能する XHTML/XForm の UI を生成して、完全なデータ・サービス・ソリューションを構築してください。





上に戻る


ダウンロード

内容ファイル名サイズダウンロード形式
Code sample for Listing 1 in articleListing1.zip1KBHTTP
ダウンロード形式について


参考文献

学ぶために

製品や技術を入手するために
  • DB2 Express-C: DB2 Express 9 データベース・サーバーの試用版を無料でダウンロードしてください。

  • DB2 for Linux™, UNIX™, and Windows: DB2 のハイパフォーマンスと使い易さ、そして自己記述的な XML の利点を兼ね備えた対話型データ・サーバーの無料試用版をダウンロードしてください。

  • alphaWorks の XML Forms Generator: 標準ベースのデータ駆動型 Eclipse プラグインをダウンロードしてください。このプラグインは、XML データ・インスタンスまたは WSDL 文書から、XHTML 文書に XForms マークアップを組み込んだ機能的フォームを生成します。

  • IBM Data Studio: 統合データベース開発環境の無料の試用版をダウンロードしてください。データ・アクセスの効率性とパフォーマンスを向上させるこの環境では、アプリケーションを素早く設計、開発、デプロイメントできます。

  • IBM 製品評価用の試用版ソフトウェア: developerWorks から直接ダウンロードできる試用版ソフトウェアで、次のプロジェクトを構築してください。DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® によるアプリケーション開発ツールおよびミドルウェア製品のトライアル版が揃っています。


議論するために


著者について

Photo of Xiao Feng Zhao

Xiao Feng Zhao は、China Software Development Laboratory の China Emerging Technology Institute に勤務するスタッフ・ソフトウェア・エンジニアです。IBM インキュベーター・プロジェクトを専門とする彼は、Web 2.0、SOA、J2EE、そして Web 技術に関心を持っています。現在取り組んでいるのは、Ajax および SOA 標準に対応した PoCs 開発です。


Qiang Wang photo

Qiang Wang は、China Software Development Laboratory の China Emerging Technology Institute でテクニカル・リーダーを務めています。専門は、IBM インキュベーター・プロジェクトと SOA 関連のトピックです。彼が関心を持っている分野には、J2EE、SOA、MDA/MDD、AOP、RUP、そしてプロジェクト管理があります。現在は、産業関連の SOA ソリューションのリーダーとして活躍しています。


Photo of Susan Malaika

Susan Malaika は (IBM Software Group の一部である) IBM Information Management Groupのシニア・テクニカル・スタッフです。専門分野は XML、Web、データベースであり、Global Grid Forum ではグリッド環境でデータをサポートする標準を開発しました。彼女は IBM 製品のソフトウェア開発者としての経験の他に、インターネット・スペシャリスト、データ・アナリスト、アプリケーションの設計者および開発者としての経験もあります。また Web に関する共著作があり、トランザクション処理や XML に関する記事も執筆しています。彼女は IBM Academy of Technology の一員でもあります。


Keith Wells photo

Keith Wells は、ノースカロライナ州リサーチ・トライアングル・パークにある IBM のソフトウェア・エンジニアです。この数年間、Emerging Technologies および Emerging Technologies Toolkit に取り組んできました。彼は現在、合成文書、モデル駆動開発、ソフトウェア標準、XML ベース技術でのさまざまな可能性を調査しています。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


IBM、IBM ロゴ、ibm.com、DB2、developerWorks、pureXML、Lotus、Rational、Tivoli、および WebSphere は、International Business Machines Corporation の米国およびその他の国における商標または登録商標です。これらおよび他の IBM 商標に、この情報の最初に現れる個所で商標表示 (® または ™) が付されている場合、これらの表示は、この情報が公開された時点で、米国において、IBM が所有する登録商標またはコモン・ロー上の商標であることを示しています。このような商標は、その他の国においても登録商標またはコモン・ロー上の商標である可能性があります。IBM が現在所有している米国における商標のリストをご参照ください。 Adobe、Adobe ロゴ、PostScript、および PostScript ロゴ は、Adobe Systems Incorporated の米国およびその他の国における登録商標または商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。

    日本IBMについて プライバシー お問い合わせ