(57)【要約】【課題】構造化文書の属性値を用いて他の要素を参照する作業を容易にする。【解決手段】プログラム開発装置は、構造化文書に記述された要素を属性や親子関係を含む情報が設定されたクラスオブジェクト２１に変換する構造化文書要素変換手段２２と、構造化文書要素変換手段２２により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段２４と、構造化文書中の要素同士の関連性に基づいて、クラスオブジェクト２１または要素オブジェクトリスト２３から関連性のある要素を抽出する関連データ抽出手段２８とを具備する。【選択図】      図２
2009157847.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、
構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、
前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段と
を具備したことを特徴とするプログラム開発装置。
【請求項２】
前記構造化文書に記述される要素同士の関連性を示すルールを記憶する関連テーブルと、
前記構造化文書に記述される要素の属性に対して属性値を設定する要素属性設定手段とをさらに具備し、
前記関連データ抽出手段は、前記要素属性設定手段により設定された属性値と一致する属性値を含む、前記関連テーブルに設定されたルールを満たす他の要素を前記構造化文書から抽出することを特徴とする請求項１記載のプログラム開発装置。
【請求項３】
前記要素属性設定手段によって設定された属性値を表示すると共に、前記関連データ抽出手段によって抽出された他の属性の属性値を表示させる表示制御手段をさらに具備したことを特徴とする請求項２記載のプログラム開発装置。
【請求項４】
（請求項１に対応するプログラム）
コンピュータを、
構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、
構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、
前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段として機能させるためのプログラム開発プログラム。
【請求項５】
コンピュータを、さらに
前記構造化文書に記述される要素同士の関連性を示すルールを記憶する関連テーブルと、
前記構造化文書に記述される要素の属性に対して属性値を設定する要素属性設定手段とに機能させ、
前記関連データ抽出手段により、前記要素属性設定手段により設定された属性値と一致する属性値を含む、前記関連テーブルに記憶されたルールを満たす他の要素を前記構造化文書から抽出させるための請求項４記載のプログラム開発プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書ベース記述言語プログラムの開発に好適なプログラム開発装置、同装置において実行されるプログラム開発プログラムに関する。
【背景技術】
【０００２】
近年、大規模なシステムを、サービスの集まりとして構築するサービス指向アーキテクチャ（ステップＳＯＡ（Service Oriented Architecture）という考え方が普及してきている。サービスの単位として有望視されているものがＷｅｂサービスであり、Ｗｅｂサービス記述言語ＷＳＤＬ（Web Services Description Language）によってインタフェースが記述される。
【０００３】
Ｗｅｂサービスを連携するための言語仕様として、ビジネスプロセス実行言語ＢＰＥＬ（Business Process Execution Language）がある。ＢＰＥＬでＷｅｂサービスを連携するためには、サービスのインタフェース記述であるＷＳＤＬで記述されるパラメータの値と、ＢＰＥＬで記述するパラメータの値を正確に合わせる必要がある。これは人手で実施するには面倒な入力作業であった。
【０００４】
面倒な入力作業を支援するための方法として、特許文献１には、プロセスの粒度に依存することなく、複数のシステム間で再利用可能なプロセスを効率よく抽出することを可能にするプロセスマッピング装置が記載されている。特許文献１に記載されたプロセスマッピング装置では、プロセスを構成するソフトウェアコンポーネントの入力メッセージに基づいて、プロセス間で対応関係にあるソフトウェアことを抽出し、ソフトウェアコンポーネントの出力メッセージに基づいて、プロセス間で対応関係にあるソフトウェアコンポーネントを抽出し、それぞれ抽出されたソフトウェアコンポーネントを起点および終点とするサブプロセスを抽出する。そして、これらのサブプロセスを利用可能としてランキングしてユーザ端末に提示する。
【特許文献１】特開２００６−１７２１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
構造化文書では、属性値を用いて他の要素を参照することがよくある。構造化文書ベースの記述言語を記述する際には、構造化文書中の要素が記述される定義位置や参照元の位置関係（親子関係等）を意識しながら対象となるデータを決定する必要がある。これらの行為は開発者にとって困難を極める作業となっておりプログラム開発の効率を妨げるものとなっていた。
【０００６】
本発明は上記の事情を考慮したもので、その目的は、構造化文書の属性値を用いて他の要素を参照する作業を容易にすることが可能なプログラム開発装置、プログラム開発プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係わるプログラム開発装置は、構造化文書に記述された要素を属性や親子関係を含む情報が設定されたオブジェクトに変換する構造化文書要素変換手段と、構造化文書要素変換手段により変換されたオブジェクトが要素別にリスト化された要素オブジェクトリストを生成する要素オブジェクトリスト化手段と、前記構造化文書中の要素同士の関連性に基づいて、前記オブジェクトまたは前記要素オブジェクトリストから関連性のある要素を抽出する関連データ抽出手段とを具備したことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、構造化文書における定義位置や参照元の位置関係に従って、属性値を用いて他の要素を容易に参照することができ、プログラム開発の効率化を図ることが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。なお、以下の説明では、構造化文書としてＸＭＬ（Extensible Markup Language）により記述された文書を例にして説明する。なお、本発明は、ＸＭＬ以外の他の構造化文書を対象としても実現することが可能である。
【００１０】
図１は、本実施形態における構造化文書ベース記述言語プログラム開発装置（以下、プログラム開発装置と略称する）の構成を示すブロック図である。
【００１１】
プログラム開発装置は、図１に示すように、プログラム開発装置を実現するためのプログラム開発プログラムを含む各種プログラムやデータの制御などの処理を行うＣＰＵ（中央処理装置）１０と、ＣＰＵ１０が処理するためのプログラムやデータを一時的に記憶するＲＡＭ（Random Access Memory）１１と、処理プログラムなどを記憶するＲＯＭ（Read Only Memory）１２と、構造化文書などを長期的に記憶するためのハードディスク（ＨＤ）に対するアクセスを制御するハードディスク駆動制御部１３と、プログラムなどを記憶しているＣＤ−ＲＯＭを制御するＣＤ−ＲＯＭ駆動制御部１４とを含んでいる。さらに構造化文書やその他の情報を表示する表示器１６を制御する表示器制御回路１５と、キーボード１８やマウス等の入力装置の制御を行う入力制御部１７と、ネットワークからデータを入力する通信インタフェース（Ｉ／Ｆ）１９を含んでいる。
【００１２】
プログラム開発装置を実現するプログラム開発プログラムは、ＨＤに格納されている。ＨＤに格納される際は、ＣＤ−ＲＯＭからインストールされてもよいし、ＣＤ−ＲＯＭ以外のドライブやメディア（例えば、ＭＯドライブとＭＯディスク、ＵＳＢ端子とＵＳＢメモリなど）からインストールされてもよい。
【００１３】
図２は、プログラム開発プログラムをＣＰＵ１０によって実行することにより実現されるプログラム開発装置の機能構成を示す図である。
【００１４】
図２に示すように、プログラム開発装置には、構造化文書２０に記述された要素を属性や親子関係などを含む情報が設定されたクラスオブジェクト２１に変換する構造化文書要素変換手段２２と、構造化文書要素変換手段２２によりクラスオブジェクト化されたクラスオブジェクト２１（要素オブジェクト）が要素別にリスト化された要素オブジェクトリスト２３を生成する要素オブジェクトリスト化手段２４と、入力・表示ウィンドウ２５を通じて要素の属性を設定・表示するための要素属性設定・表示制御手段２６と、要素同士の関連性を示す情報が設定された関連テーブル２７と、関連テーブル２７の情報をもとにクラスオブジェクト２１（要素オブジェクト）や要素オブジェクトリスト２３から関連性のある要素の属性値の候補を抽出する関連データ抽出手段２８とが設けられる。
【００１５】
構造化文書要素変換手段２２、要素オブジェクトリスト化手段２４、要素属性設定・表示制御手段２６、及び関連データ抽出手段２８は、ＣＰＵ１０、ＲＡＭ１１、及びＲＯＭ１２の組み合わせにより実現される機能である。ＣＰＵ１０は、ＲＡＭ１１あるいはＲＯＭ１２に記憶された、プログラム開発プログラムに含まれるそれぞれに対応するプログラムを実行することにより各手段を実現する。構造化文書２０、クラスオブジェクト２１、要素オブジェクトリスト２３、及び関連テーブル２７は、ハードディスクに記憶され、必要に応じてＲＡＭ１１に読み出されて処理に供される。入力・表示ウィンドウ２５は、ＲＡＭ１１あるいはＲＯＭ１２に記憶されたウィンドウフォーマットのデータに基づいて表示される。
【００１６】
次に、本実施の形態のプログラム開発装置で使用される構造化文書２０について説明する。  
本実施の形態は、構造化文書２０であるＢＰＥＬ（Business Process Execution Language）文書の参照や編集に適応する場合を用いて説明する。ＢＰＥＬは、ＸＭＬベースのワークフロー記述言語であり、データの操作や、Ｗｅｂサービスの呼び出し、例外処理などの処理単位を組み合わせて複雑なフローを記述する言語である。
【００１７】
図３に例示するＸＭＬ文書はＢＰＥＬ文書を示している。ＢＰＥＬ文書では、１つの処理要素をＸＭＬのタグの形で記述し、一連の処理を示す場合や、要素の集合を示す場合には開始タグ・終了タグにはさむ形で入れ子にする。例えば、ワークフローの宣言を行う要素ｐｒｏｃｅｓｓは、１行目の開始タグと１９行目の終了タグによりワークフロー全体を入れ子にしている。変数定義の集合を示すｖａｒｉａｂｌｅｓ要素は変数の定義ｖａｒｉａｂｌｅを入れ子としている。また、１つの要素で完結するものに関しては空要素と呼ばれている。例えば、変数の定義を行うｖａｒｉａｂｌｅ（６，７行目）や、メッセージの受信を行うｒｅｃｅｉｖｅ（１０行目）などが空要素を指している。また、各要素に必要な情報は属性と呼ばれ、開始タグと空要素タグ内で記述される。例えば、ｐｒｏｃｅｓｓ（１行目）のｎａｍｅやｘｍｌｎｓなどの情報が属性に当たる。
【００１８】
また、ＢＰＥＬ文書はＸＭＬ文書であるため、ＸＭＬの論理構造に基づき木構造に示すことができる。図４は、図３に示すＢＰＥＬ文書の属性部分を除き、要素の関係を構造木の形にしたものである。各要素名の括弧に示された数字は、図３の行番号と対応している（実際の木構造には行番号は含まれない）。ＸＭＬ文書において、それぞれの要素は構造木表現においてノードとも呼ばれる。以下の説明では、ＸＭＬ文書の要素を、構造化文書２０では要素やタグ、文書構造木ではノードという表現を用いる。
【００１９】
ノードの相対関係を示すとき「親」「子」「子孫」「先祖」といった表現を利用する。親ノードとは、対象とするノードの１つ上位のノードを指す。例えば、ｖａｒｉａｂｌｅ（６）の親ノードはｖａｒｉａｂｌｅｓ（５）となる。子ノードとは対象とする１つ下位のノードを指す。例えば、ｖａｒｉａｂｌｅｓ（５）の子ノードはｖａｒｉａｂｌｅ（６）、ｖａｒｉａｂｌｅ（７）となる。先祖ノードとは、対象となるノードの全上位ノードを指す。子孫ノードは対象となるノードの全下位ノードを指す。またｐｒｏｃｅｓｓ（１）のように頂点のノードのことをルートノードと呼ぶ。構造化文書２０を構造木の形で表現することにより、各ノードの関係性が明確になるため、構造化文書２０に対する処理が容易に行われると考えられている。
【００２０】
ＢＰＥＬ文書はワークフローの流れのみを示し、Ｗｅｂサービスや自分自身がサービスとして提供された際のインタフェース情報は含まれない。このインタフェース情報を示したものがＷＳＤＬ（Web Services Description Language）文書である。これには、メッセージのデータ型や、通信プロトコル、サービス名などが含まれる。ＷＳＤＬ文書もＢＰＥＬ文書同様ＸＭＬにて表現される。図３で示したＢＰＥＬ文書がサービス化された時のインタフェースを示したＷＳＤＬ文書を図５に示す。
【００２１】
図３に示すＢＰＥＬ文書内には、図５に示すＷＳＤＬ文書とマッピングするための情報が含まれる。例えば、ｖａｒｉａｂｌｅ（６行目）はメッセージのデータの保存に利用されるが、そのデータ型を示すのは、ｍｅｓｓａｇｅ（７行目）となる。ＢＰＥＬ文書のｖａｒｉａｂｌｅ（６行目）のｍｅｓｓａｇｅＴｙｐｅ属性に参照元の情報が記述されている。ｔｎｓは、ＷＳＤＬ文書を指定するものであり、ＭＲｅｓｕｅｓｔは、ＷＳＤＬ文書内のｍｅｓｓａｇｅ（７行目）を示している。参照のルールはＢＰＥＬ文書の仕様により定められており、開発者はこの仕様に基づきＢＰＥＬ文書を構築する。
【００２２】
次に、本実施形態におけるプログラム開発装置が、構造化文書２０からクラスオブジェクト２１ならびに要素オブジェクトリスト２３を作成する処理について説明する。ここでは、図３のＢＰＥＬ文書、図５のＷＳＤＬ文書を対象とする。説明を簡単にするため、これら文書は簡略化された形で記述されている。
【００２３】
まず、構造化文書要素変換手段２２により構造化文書２０の各要素に対応したクラスからオブジェクトをインスタンス化する。図６はインスタンス化処理を示すフローチャートである。
【００２４】
まず、構造化文書要素変換手段２２は、ＢＰＥＬ文書を要素単位に切り出す（ステップＳ５０１）。そして、この切り出した要素を対応するクラスオブジェクトに変換する（ステップＳ５０２）。このクラスオブジェクトは、属性値、親要素、子要素リストのデータ群からなる。属性値は文字列で、親要素、子要素のリストは、他のクラスオブジェクトを値として持つ。親要素や子要素リストに設定されるオブジェクトは参照型となる。そのため、オブジェクト内にある親要素や子要素リストに設定されたオブジェクトにアクセスすることで、それぞれのオブジェクトのデータ群にアクセスすることが可能となる。ここで処理中の要素をＮ、親要素をＰ（Ｎ）、子要素をＣ１（Ｎ），Ｃ２（Ｎ），…と表す。
【００２５】
まず、構造化文書要素変換手段２２は、切り出した要素より属性値を抜き出し、クラスオブジェクトＮの属性値として設定する。次に処理要素の親要素にあたるオブジェクトＰ（Ｎ）をＲＡＭ１１から取得する（ステップＳ５０３）。
【００２６】
親要素にあたるオブジェクトＰ（Ｎ）が設定されているか否かを判定する（ステップＳ５０４）。親要素にあたるオブジェクトＰ（Ｎ）が設定されていた場合（ステップＳ５０４のＹｅｓ）、構造化文書要素変換手段２２は、処理要素Ｎに対する親要素としてＰ（Ｎ）をＲＡＭ１１に設定する（ステップＳ５０５）。その後、親要素Ｐ（Ｎ）の子要素リストの末尾に自身のオブジェクトＮを追加する（ステップＳ５０６）。親要素Ｐ（Ｎ）の子要素リストには、前述のように子要素オブジェクト自身がセットするため、子要素がない場合は、子要素リストに要素オブジェクトはセットされない。
【００２７】
構造化文書要素変換手段２２は、オブジェクトを設定すると、ＲＡＭ１１に保存された親要素Ｐ（Ｎ）を現在の処理要素Ｎに変更する（ステップＳ５０７）。すなわち、次の処理要素となる子要素に対して親要素となる現在のオブジェクトＮをＲＡＭ１１に設定しておく。
【００２８】
次に、構造化文書要素変換手段２２は、処理要素Ｎの全ての子要素のそれぞれに対して、前述したインスタンス化処理を再帰的に実施する（ステップＳ５０８）。全ての子要素に対するインスタンス化処理を終了すると、一連のオブジェクト初期化作業は終了となる。この結果、ＢＰＥＬ文書に含まれる要素の関係を表すオブジェクトツリーが構築される。
【００２９】
なお、処理要素がルートノードであるためＲＡＭ１１に親要素が設定されていない場合（ステップＳ５０４のＮｏ）、構造化文書要素変換手段２２は、ステップＳ５０５，Ｓ５０６の処理を実行せず、処理要素に対する親要素を設定しない。すなわちステップＳ５０７の処理に移る。
【００３０】
図７は、図３に示すＢＰＥＬ文章を構造化文書要素変換手段２２によりオブジェクト化したときのオブジェクトツリーを示す。
【００３１】
図７において、ルートノードの要素Ｐｒｏｃｅｓｓのオブジェクトの子要素リストには、要素ｖａｒｉａｂｌｅｓ、要素ｐａｒｔｎｅｒＬｉｎｋｓ、要素ｓｅｑｕｅｎｃｅのオブジェクトが設定される（Ｃ１，Ｃ２，Ｃ３）。また例えば、要素Ｐｒｏｃｅｓｓの子要素である要素ｓｅｑｕｅｎｃｅには、親要素として要素Ｐｒｏｃｅｓｓのオブジェクト（Ｐ）が設定され、子要素リストには、要素ｒｅｃｅｉｖｅ、要素ａｓｓｉｇｎ、要素ｒｅｐｌｙのオブジェクトが設定される（Ｃ１，Ｃ２，Ｃ３）。さらに、要素ａｓｓｉｇｎの子要素である要素ｃｏｐｙのオブジェクトには、親要素ａｓｓｉｇｎのオブジェクト（Ｐ）が設定され、子要素リストには、要素ｆｒｏｍ、要素ｔｏのオブジェクトが設定される（Ｃ１，Ｃ２）。他の子要素のオブジェクトについても、同様にして親子関係に応じて、親要素と子要素リストが設定される。
【００３２】
なお、図７では示していないが、各オブジェクトには属性値を示すデータが含まれている。例えば、要素ｒｅｃｅｉｖｅのオブジェクトには、図３に示すＢＰＥＬ文書の１０行目にあるように、ｐａｒｔｎｅｒＬｉｎｋ、ｐｏｒｔＴｙｐｅ、ｏｐｅｒａｔｉｏｎ、ｖａｒｉａｂｌｅの各属性が設定されている。
【００３３】
このようにインスタンス化処理によって生成されたクラスオブジェクト２１では、構造化文書２０における要素の親子関係が定義される。従って、クラスオブジェクト２１を参照とすることで、各オブジェクトの親子関係や属性値、また親子関係にある他のオブジェクトの情報を知ることができるようになる。
【００３４】
なお、前述した説明では、ＢＰＥＬ文書のみを対象にして説明しているが、構造化文書要素変換手段２２は、全てのＷＳＤＬ文書についても同様にしてインスタンス化処理を実行する。
【００３５】
従って、構造化文書要素変換手段２２によるインスタンス化処理によって、ＢＰＥＬ文書から変換されたＢＰＥＬ文書オブジェクトと、ＷＳＤＬ文書から変換されたＷＳＤＬ文書オブジェクトが生成される。
【００３６】
次に、要素オブジェクトリスト化手段２４は、構造化文書要素変換手段２２によるインスタンス化処理により生成されたクラスオブジェクト２１を要素の種類別にリスト化された要素オブジェクトリストを生成するためのリスト化処理を実行する。図８は、リスト化処理を示すフローチャートである。
【００３７】
まず、要素オブジェクトリスト化手段２４は、構造化文書要素変換手段２２により生成されたクラスオブジェクト２１から親要素を持たないオブジェクトを検索する（ステップＳ７０１）。図７のＢＰＥＬ文書のオブジェクトの構成例からもわかるように、親要素を持たないオブジェクトはただ１つであり、この要素がルートノードとなる。
【００３８】
次に、要素オブジェクトリスト化手段２４は、要素の種類ごとに用意されている要素オブジェクトリスト２３の末尾にオブジェクトを追加する（ステップＳ７０２）。そして、次の要素を処理するため自身が持つ全ての子要素に対し、上記の処理を再帰的に繰り返して実行する（ステップＳ７０３）。全ての子要素のオブジェクトを種類毎の要素オブジェクトリスト２３の何れかに追加すると、この要素に対するオブジェクトのリスト化作業は終了となる。インスタンス化処理と同様にして、再帰的に子要素に対してリスト化処理を実行することによって全てのオブジェクトをリスト化し、要素の種類別の要素オブジェクトリストを生成することができる。
【００３９】
要素オブジェクトリスト化手段２４によるリスト化処理によって、例えばｖａｒｉａｂｌｅ要素リスト、ｐｒｔｎｅｒＬｉｎｋｓ要素リスト、ｓｅｑｕｅｎｃｅ要素リストなどの要素オブジェクトリスト２３に対して、図７（図３）に示すｖａｒｉａｂｌｅ要素のオブジェクト、要素ｐｒｔｎｅｒＬｉｎｋｓのオブジェクト、要素ｓｅｑｕｅｎｃｅのオブジェクトが、それぞれに対応するリストに追加される。
【００４０】
図７（図３）に示すＢＰＥＬ文書例のｖａｒｉａｂｌｅ要素のように文書中の他の部分に同じ種類のオブジェクトがあれば同じ要素オブジェクトリスト２３にそれぞれ登録される。  
こうして生成された要素オブジェクトリスト２３は、ＲＡＭ１１に記憶され、後述する処理において参照される。
【００４１】
次に、開発者から指示される文書中の要素のある属性値を得ることにより、他の属性値の候補を抽出して出力する要素属性設定・表示処理について、図９に示すフローチャートを参照しながら説明する。ここでは、図３に示すＢＰＥＬ文書の要素ｒｅｃｅｉｖｅ（１０行目）のｏｐｅｒａｔｉｏｎ属性に対して指定された属性値に関連する、他の属性の属性値候補を抽出する場合を例にして説明する。
【００４２】
まず、要素属性設定・表示制御手段２６は、開発者によるキーボード１８の操作等により関連データ抽出要求と共に、抽出対象となる文書中の要素（ここではＢＰＥＬ文書の要素ｒｅｃｅｉｖｅ）の指定を受ける（ステップＳ１００１）。要素属性設定・表示制御手段２６は、関連データ抽出要求に対して、ウィンドウフォーマットのデータに基づいて入力・表示ウィンドウ２５を表示器１５において表示させる（ステップＳ１００２）。そして、要素属性設定・表示制御手段２６は、要素オブジェクトリスト２３に登録された要素オブジェクトを参照して、図１０に示すように、入力・表示ウィンドウ２５中の所定の位置において、要素に含まれる属性名９１の一覧と、各属性に対する属性値が表示される表示欄９２を表示器１５において表示させる（ステップＳ１００３）。
【００４３】
例えば、ＢＰＥＬ文書の要素ｒｅｃｅｉｖｅに対する要素オブジェクトには、属性名９１として、ｐａｒｔｎｅｒＬｉｎｋ、ｐｏｒｔＴｙｐｅ、ｏｐｅｒａｔｉｏｎ、ｖａｒｉａｂｌｅが設定されているため、この各属性名の一覧が入力・表示ウィンドウ２５に設定される。また、ＢＰＥＬ文書において、属性に対して属性値が設定されていれば表示欄９２に属性値が表示される。
【００４４】
入力・表示ウィンドウ２５においては、例えば開発者がキーボード１８の操作によって、表示欄９２に対して属性名９１が示す属性の属性値を入力をすることができる。要素属性設定・表示制御手段２６は、何れかの表示欄９２が指定されて属性値が入力されると、この表示欄９２において属性値を表示させる。ここで、入力・表示ウィンドウ２５に設けられた「ＯＫ」ボタンを選択する操作がされることによって、関連データ抽出処理で参照される、構造化文書に記述される要素の属性に対する属性値を設定する（ステップＳ１００４）。要素属性設定・表示制御手段２６は、開発者によって指定された要素と、入力・表示ウィンドウ２５を通じて設定された属性値を関連データ抽出手段２８に渡して関連データ抽出処理を実行させる。
【００４５】
例えば、入力・表示ウィンドウ２５に設定された属性名ｏｐｅｒａｔｉｏｎに対応する表示欄９２に「ｈｅｌｌｏ」の文字列が入力されて属性値として設定されると、この文字列が関連データ抽出手段２８に渡され、ｏｐｅｒａｔｉｏｎ属性以外の他の属性以外の属性ｐａｒｔｎｅｒＬｉｎｋ、ｐｏｒｔＴｙｐｅ、ｖａｒｉａｂｌｅについての属性値の候補を抽出する関連データ抽出処理が実行される。
【００４６】
関連データ抽出手段２８は、要素属性設定・表示制御手段２６からの指示に応じて、要素オブジェクトリスト２３、関連テーブル２７をもとにして、開発者により入力されたある要素の属性値（例えば「ｈｅｌｌｏ」）をもとにして、関係する他の属性値の候補を抽出する関連データ抽出処理を実行する（ステップＳ１００５）。なお、関連データ抽出処理の詳細については後述する。
【００４７】
要素属性設定・表示制御手段２６は、入力・表示ウィンドウ２５において、開発者により入力されたある要素の属性値を表示欄９２において表示すると共に、関連データ抽出手段２８による関連データ抽出処理によって得られた抽出結果を表示する（ステップＳ１００６）。すなわち要素属性設定・表示制御手段２６は、開発者により入力された属性値と関係する他の属性の属性値の候補を関連データ抽出手段２８から受け取り、それぞれの属性名９１に対応する表示欄９２に表示させる。なお、表示欄９２では、１つの属性に対して複数の属性値の候補が得られた場合には、任意に選択して表示させることができる。
【００４８】
次に、関連データ抽出手段２８により実行される関連データ抽出処理について、図１１に示すフローチャートを参照しながら説明する。  
まず、関連データ抽出手段２８は、要素属性設定・表示制御手段２６から受け取った要素をもとに、関連テーブル２７から関連を示すルール群を取得する（ステップＳ１１０１）。例えば、要素ｒｅｃｅｉｖｅが指定されている場合には、関連データ抽出手段２８は、関連テーブル２７から要素ｒｅｃｅｉｖｅに関するルール群を取得する。
【００４９】
図１２には、要素ｒｅｃｅｉｖｅについてのルール群の一例を示している。図１２に示すように、関連テーブル２７には、ＢＰＥＬ文書及びＷＳＤＬ文書を作成する場合に従う必要のある要素同士の関連性を示すルールが設定されており、要素間の参照関係や要素の親子関係などが定義されている。
【００５０】
図１３、図１４、及び図１５は、図１２に示す関連テーブル２７に設定されるルール群が示す相関関係を分かりやすく示す図である。図１３は、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｐｏｒｔＴｙｐｅ属性の関連を示す図、図１４は、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｐａｒｔｎｅｒＬｉｎｋ属性の関連を示す図、図１５は、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｖａｒｉａｂｌｅ属性の関連を示す図である。
【００５１】
関連テーブル２７には、ＢＰＥＬ文書及びＷＳＤＬ文書において使用される各要素のそれぞれに対応するルール群が存在している。関連データ抽出手段２８は、これらのルールをアルゴリズム化した抽出アルゴリズム処理が用意されている。関連データ抽出手段２８は、関連データの抽出対象となる属性を選択する（ステップＳ１１０２）。そして、ステップＳ１１０１において取得したルール群に従い、選択した対象の属性に対して抽出アルゴリズム処理を実施する（ステップＳ１１０３）。抽出アルゴリズム処理の具体例については後述する。
【００５２】
関連テーブル２７に設定されたルールには、複数の要素が共通する要素を参照するものが含まれる。例えば、図１３に示すルール１０＿１ｃと１０＿１ｅや、図１５に示すルール１０＿５は、矢印の先が一致しており、参照先の要素が一致しなくてはいけないという制約があることを示している。抽出アルゴリズムでは、前述したような参照先の要素が一致する条件を満たすものを候補として抽出する。
【００５３】
関連データ抽出手段２８は、対象の属性についての抽出アルゴリズム処理を完了すると、他の全ての属性の値を抽出したかを判定する（ステップＳ１１０４）。ここで、全ての属性の値を抽出したと判定した場合（ステップＳ１１０４のＹｅｓ）、関連データ抽出手段２８は、一致した全ての属性値を要素属性設定・表示制御手段２６に渡す（ステップＳ１１０５）。
【００５４】
ステップＳ１１０４でＮｏの場合、関連データ抽出手段２８は、ステップＳ１１０２に戻り、次に対象とする属性を選択して、同様にして抽出アルゴリズム処理を実行する。
【００５５】
要素属性設定・表示制御手段２６は、関連データ抽出手段２８から渡された属性値の候補を、前述したように入力・表示ウィンドウ２５の表示欄９２において表示させる。
【００５６】
次に、ステップＳ１１０３における抽出アルゴリズム処理の具体例について説明する。  
まず、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｐｏｒｔＴｙｐｅ属性の属性値を抽出するための抽出アルゴリズム処理について、図１６に示すフローチャートを参照しながら説明する。
【００５７】
関連データ抽出手段２８は、図１２及び図１３に示すｐｏｒｔＴｙｐｅ属性に関係するルール１０−１ｂを適用するために、ＷＳＤＬ文書の要素ｐｏｒｔＴｙｐｅの要素オブジェクトリスト２３（ｐｏｒｔＴｙｐｅ要素リスト）をＲＡＭ１１から取得する（ステップＳ１３０１）。
【００５８】
次に、関連データ抽出手段２８は、ｐｏｒｔＴｙｐｅ要素リストから処理対象とするｐｏｒｔＴｙｐｅ要素のオブジェクトを取得する（ステップＳ１３０２）。
【００５９】
関連データ抽出手段２８は、この取得した要素オブジェクトに設定されている子要素のｏｐｅａｒａｔｉｏｎ要素のオブジェクトを取得する（ステップＳ１３０３）。そして、このｏｐｅｒａｔｉｏｎ要素のオブジェクトに設定されたｎａｍｅ属性の属性値、すなわちｏｐｅａｒａｔｉｏｎ要素に設定されている名前を取得する（ステップＳ１３０４）。
【００６０】
関連データ抽出手段２８は、この処理対象となっているオブジェクトに設定されたｏｐｅａｒａｔｉｏｎ要素の名前が、入力・表示ウィンドウ２５を通じてＢＰＥＬ文書のｏｐｅｒａｔｉｏｎ要素に対して開発者が指定した属性値と一致するか、すなわちルール１０−１ｃを満たしているかを判定する（ステップＳ１３０５）。この判定の結果、一致していた場合には（ステップＳ１３０５のＹｅｓ）、関連データ抽出手段２８は、一致した属性値が設定されている処理対象としているｐｏｒｔＴｙｐｅ要素のオブジェクトをＲＡＭ１１に設定される候補リストに登録して保持する（ステップＳ１３０６）。
【００６１】
例えば、入力・表示ウィンドウ２５を通じて属性ｏｐｅｒａｔｉｏｎに対して属性値「ｈｅｌｌｏ」が指定されていた場合、図５に示すＷＳＤＬ文書の１３行目にあるｐｏｒｔＴｙｐｅ要素の子要素ｏｐｒａｔｉｏｎの属性値「ｈｅｌｌｏ」（１４行目）と一致するか判定される。この結果、一致していると判定されるため、ＷＳＤＬ文書の１３行目に相当するｐｏｒｔＴｙｐｅ要素のオブジェクトが候補リストに記録される。この場合、ｐｏｒｔＴｙｐｅ要素のオブジェクトに設定されている属性値である「ｈｅｌｌｏＰＴ」（ＷＳＤＬ文書の１３行目）が、入力・表示ウィンドウ２５の属性名９１に設定されたｐｏｒｔＴｙｐｅに対する表示欄９２に表示されることになる。
【００６２】
関連データ抽出手段２８は、要素オブジェクトリスト２３に登録された全てのオブジェクトについての検証が終了したか否かを判定する（Ｓ１３０７）。全てのオブジェクトについての検証が終了していないと判断すると（ステップＳ１３０７のＮｏ）、ステップＳ１３０２に戻る。以下、同様にして、要素ｐｏｒｔＴｙｐｅの要素オブジェクトリスト２３に設定されているオブジェクトを順次取得して（ステップＳ１３０２）、ルールを満たす候補に該当するかを判定し（Ｓ１３０３〜Ｓ１３０５）、該当するオブジェクトを候補リストに追加登録していく（ステップＳ１３０６）。関連データ抽出手段２８は、要素オブジェクトリスト２３に登録された全てのオブジェクトについての検証が終了すると（ステップＳ１３０７のＹｅｓ）、ｐｏｒｔＴｙｐｅ属性の属性値の候補を抽出するための抽出アルゴリズム処理を終了する。また、ステップＳ１３０５において一致していない場合には（ステップＳ１３０５のＮｏ）、開発者が指定した属性値と関連する属性値の候補としてステップＳ１３０７に移る。
【００６３】
次に、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｐａｒｔｎｅｒＬｉｎｋ属性の属性値を抽出するための抽出アルゴリズム処理について、図１７に示すフローチャートを参照しながら説明する。
【００６４】
関連データ抽出手段２８は、図１２及び図１４に示すｐａｒｔｎｅｒＬｉｎｋ属性に関係するルール１０＿１ａを適用するために、ＢＰＥＬ文書の要素ｐａｒｔｎｅｒＬｉｎｋの要素オブジェクトリスト２３（ｐａｒｔｎｅｒＬｉｎｋ要素リスト）をＲＡＭ１１から取得する（ステップＳ１４０１）。
【００６５】
次に、関連データ抽出手段２８は、ｐａｒｔｎｅｒＬｉｎｋ要素リストから処理対象とするｐａｒｔｎｅｒＬｉｎｋ要素のオブジェクトを取得する（ステップＳ１４０２）。
【００６６】
関連データ抽出手段２８は、ルール１０＿１ａに従い、ｐａｒｔｎｅｒＬｉｎｋ要素リストから取得した要素オブジェクトにｍｙＲｏｌｅの属性値が設定されているか判定する（ステップＳ１４０３）。この判定の結果、ｍｙＲｏｌｅの属性値が設定されていた場合（ステップＳ１４０３のＹｅｓ）、関連データ抽出手段２８は、ｐａｒｔｎｅｒＬｉｎｋ要素に対する別のルール１０＿３を確認するため、ＷＳＤＬ文書のｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素リストをＲＡＭ１１より取得する（ステップＳ１４０４）。
【００６７】
関連データ抽出手段２８は、この取得したｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素リストから処理対象とするｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素のオブジェクトを取得する（ステップＳ１４０５）。そして、ステップＳ１４０３において要素オブジェクトに設定されている判定されたｍｙＲｏｌｅの属性値と、ｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素のオブジェクトに設定された子要素のＲｏｌｅ要素のｎａｍｅ属性の設定値、すなわちＲｏｌｅ要素に設定されている名前とが一致しているかを判定する（ステップＳ１４０６）。
【００６８】
ここで、一致すると判定された場合には（ステップＳ１４０６のＹｅｓ）、関連データ抽出手段２８は、図１２及び図１４に示すルール１０＿４を適用するために、ＷＳＤＬ文書のｐｏｒｔＴｙｐｅ要素の要素オブジェクトリスト２３（ｐｏｒｔＴｙｐｅ要素リスト）をＲＡＭ１１から取得する（ステップＳ１４０７）。
【００６９】
関連データ抽出手段２８は、ｐｏｒｔＴｙｐｅ要素リストから処理対象とするｐｏｒｔＴｙｐｅ要素のオブジェクトを取得する（ステップＳ１４０８）。
【００７０】
関連データ抽出手段２８は、ルール１０＿４に従い、ｐｏｒｔＴｙｐｅ要素リストから取得した要素オブジェクトについて、ステップＳ１４０６において一致したと判定されたｍｙＲｏｌｅ要素の子要素ｐｏｒｔＴｙｐｅ要素のｎａｍｅ属性と、ステップＳ１４０８で取得した要素オブジェクトのｎａｍｅ属性とが一致しているかを判定する（ステップＳ１４０９）。
【００７１】
この比較の結果、一致していると判定された場合（ステップＳ１４０９のＹｅｓ）、ルール１０＿１ｂを満たす必要があるため、関連データ抽出手段２８は、ステップＳ１４１０において取得した処理対象とするｐｏｒｔＴｙｐｅ要素のオブジェクトに設定された、子要素のｏｐｅｒａｔｉｏｎ要素のｎａｍｅ属性値と、入力・表示ウィンドウ２５を通じてＢＰＥＬ文書のｒｅｃｅｉｖｅ要素のｏｐｅｒａｔｉｏｎ属性に対して開発者が指定した属性値と一致するかを判定する（ステップＳ１４１０）。
【００７２】
ここで、一致していた場合には（ステップＳ１４１０のＹｅｓ）、図１２及び図１４に示すｐａｒｔｎｅｒＬｉｎｋ属性に関するルールを満たすため、関連データ抽出手段２８は、一致した属性値が設定されている、ステップＳ１４０２で取得した処理対象とするｐａｒｔｎｅｒＬｉｎｋ要素のオブジェクトをＲＡＭ１１中の候補リストに登録して保持する（ステップＳ１４１１）。
【００７３】
ここで、ｐｏｒｔＴｙｐｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了しているか否かを判断する（ステップＳ１４１２）。前述した検証を完了していなければ（ステップＳ１４１２のＮｏ）、関連データ抽出手段２８は、ステップＳ１４０８に戻り、前述と同様の処理を繰り返して実行する（ステップＳ１４０８〜Ｓ１４１１）。なお、ステップＳ１４０９またはステップＳ１４１０において一致していないと判定された場合には（ステップＳ１４０９のＮｏ、ステップＳ１４１０のＮｏ）、開発者が指定した属性値と関連しないものとして、ステップＳ１４０２で取得した処理対象とするｐａｒｔｎｅｒＬｉｎｋ要素のオブジェクトをＲＡＭ１１に保持せず、ステップＳ１４１２に移る。
【００７４】
関連データ抽出手段２８は、ｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了したか否かを判断する（ステップＳ１４１３）。前述した検証を完了していない場合（ステップＳ１４１３のＮｏ）、ステップＳ１４０５に戻り、ｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素リストから次のｐａｒｔｎｅｒＬｉｎｋＴｙｐｅオブジェクトを取得して、前述と同様の処理を実行する（ステップＳ１４０６〜Ｓ１４１２）。
【００７５】
なお、ステップＳ１４０６において一致していないと判定された場合には（ステップＳ１４０６のＮｏ）、ｐｏｒｔＴｙｐｅ要素リストに対する処理を実行しないでステップＳ１４１３の処理に移る。
【００７６】
関連データ抽出手段２８は、ｐａｒｔｎｅｒＬｉｎｋＴｙｐｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合（ステップＳ１４１３のＹｅｓ）、ｐａｒｔｎｅｒＬｉｎｋ要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する（ステップＳ１４１４）。ここで、ｐａｒｔｎｅｒＬｉｎｋ要素リストの全ての要素オブジェクトについて、前述した検証を完了していない場合（ステップＳ１４１４のＮｏ）、関連データ抽出手段２８は、ステップＳ１４０２に戻り、ｐａｒｔｎｅｒＬｉｎｋ要素リストから次に処理対象とするｐａｒｔｎｅｒＬｉｎｋ要素のオブジェクトを取得して前述と同様の処理を実行する（ステップＳ１４０２〜Ｓ１４１３）。
【００７７】
こうして関連データ抽出手段２８は、前述した一連の処理を全てのリストに設定されたオブジェクトに対して検証が終了するまで実施する。関連データ抽出手段２８は、ｐａｒｔｎｅｒＬｉｎｋ要素リストの全ての要素オブジェクトについて前述した検証を完了すると（ステップＳ１４１４のＹｅｓ）、抽出アルゴリズム処理を終了する。
【００７８】
以上の抽出アルゴリズム処理を完了すると、ｐａｒｔｎｅｒＬｉｎｋ属性の属性値の候補が設定された要素オブジェクトがＲＡＭ１１に記憶された候補リストに登録される。
【００７９】
このようにして、ｐａｒｔｎｅｒＬｉｎｋ属性についての関連ルールは、前述したｐｏｒｔＴｙｐｅ属性の属性値を抽出する場合より複雑なルールであるが、このルールに基づく抽出アルゴリズム処理により、開発者が入力・表示ウィンドウ２５から例えば要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性の属性値を入力することで、容易にｐａｒｔｎｅｒＬｉｎｋ属性の属性値の候補を抽出して開発者に提示することが可能となる。
【００８０】
次に、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｖａｒｉａｂｌｅ属性の属性値を抽出するための抽出アルゴリズム処理について、図１８に示すフローチャートを参照しながら説明する。  
関連データ抽出手段２８は、図１２及び図１５に示すｖａｒｉａｂｌｅ属性に関係するルール１０＿１ｂを適用するために、ＷＳＤＬ文書の要素ｏｐｅｒａｔｉｏｎの要素オブジェクトリスト２３（ｐｏｒｔＴｙｐｅ要素リスト）をＲＡＭ１１から取得する（ステップＳ１５０１）。
【００８１】
次に、関連データ抽出手段２８は、ｐｏｒｔＴｙｐｅ要素リストから処理対象とするｐｏｒｔＴｙｐｅ要素のオブジェクトを取得する（ステップＳ１５０２）。
【００８２】
ここで、関連データ抽出手段２８は、子要素のｏｐｅｒａｔｉｏｎ要素のｎａｍｅ属性値と、入力・表示ウィンドウ２５を通じてＢＰＥＬ文書のｒｅｃｅｉｖｅ要素のｏｐｅｒａｔｉｏｎ要素に対して開発者が指定した属性値と一致するかを判定する（ステップＳ１５０３）。
【００８３】
ここで、一致していると判定された場合（ステップＳ１５０３のＹｅｓ）、関連データ抽出手段２８は、ルール１０＿６を適用するために、ステップＳ１５０２で取得したｐｏｒｔＴｙｐｅ要素の孫要素の中からｉｎｐｕｔ要素のｍｅｓｓａｇｅ属性の属性値を取得する（ステップＳ１５０４）。
【００８４】
次に、関連データ抽出手段２８は、ＷＳＤＬ文書のｍｅｓｓａｇｅ要素リストをＲＡＭ１１から取得する（ステップＳ１５０５）。そして、このｍｅｓｓａｇｅ要素リストから処理対象とするｍｅｓｓａｇｅ要素のオブジェクトを取得する（ステップＳ１５０６）。
【００８５】
そして、関連データ抽出手段２８は、ｍｅｓｓａｇｅ要素のオブジェクトのｎａｍｅ属性と、Ｓ１５０４で取得したｉｎｐｕｔ要素のｍｅｓｓａｇｅ属性の属性値とが一致するかを判定する（ステップＳ１５０７）。
【００８６】
この比較の結果、一致していると判定された場合は（ステップＳ１５０７のＹｅｓ）、関連データ抽出手段２８は、ルール１０＿５を適用できるｖａｒｉａｂｌｅ要素を以下のようにして探す。これはルール１０＿２を満たし、かつルール１０＿６（前述したステップＳ１５０７）を満たしたものとなるので、ルール１０＿２についての検証を行えばよい。
【００８７】
まず、関連データ抽出手段２８は、ＢＰＥＬ文書のｖａｒｉａｂｌｅ要素リストをＲＡＭ１１から取得する（ステップＳ１５０８）。そして、このリストから処理対象とするｖａｒｉａｂｌｅ要素のオブジェクトを取得する（ステップＳ１５０９）。
【００８８】
ここで、関連データ抽出手段２８は、ｖａｒｉａｂｌｅ要素のｍｅｓｓａｇｅＴｙｐｅ属性の属性値と、ステップＳ１５０７で一致したと判定されたｍｅｓｓａｇｅ要素のｎａｍｅ属性の属性値とが一致するかを判定する（ステップＳ１５１０）。
【００８９】
この比較の結果、一致していると判定された場合（ステップＳ１５１０のＹｅｓ）、関連データ抽出手段２８は、要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｖａｒｉａｂｌｅ属性に関する図１２及び図１５に示すルールを満たすため、一致した属性値が設定されている、ステップＳ１５０９で取得した処理対象とするｖａｒｉａｂｌｅ要素のオブジェクトをＲＡＭ１１中の候補リストに登録して保持する（ステップＳ１５１１）。
【００９０】
ここで、ｖａｒｉａｂｌｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了したか否かを判断する(ステップＳ１５１２)。前述した検証を完了していない場合（ステップＳ１５１２のＮｏ）、関連データ抽出手段２８は、ステップＳ１５０９に戻り、前述と同様にして、ｖａｒｉａｂｌｅ要素リストに設定されている次に処理対象とするオブジェクトを取得して、前述と同様の処理を実行する（ステップＳ１５０９〜Ｓ１５１２）。
【００９１】
関連データ抽出手段２８は、ｖａｒｉａｂｌｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合（ステップＳ１５１２のＹｅｓ）、ｍｅｓｓａｇｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する（ステップＳ１５１３）。ここで、ｍｅｓｓａｇｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了していない場合（ステップＳ１５１３のＮｏ）、関連データ抽出手段２８は、ステップＳ１５０６に戻り、ｍｅｓｓａｇｅ要素リストから処理対象とするｍｅｓｓａｇｅ要素のオブジェクトを取得して、前述と同様の処理を実行する（ステップＳ１５０６〜Ｓ１５１３）。  
一方、ステップＳ１５１０において一致していると判定されない場合（ステップＳ１５１０のＮｏ）はステップＳ１５１３に移る。
【００９２】
ｍｅｓｓａｇｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了した場合（ステップＳ１５１３のＹｅｓ）、関連データ抽出手段２８は、ｐｏｒｔＴｙｐｅ要素リストの全ての要素オブジェクトについて、前述した検証を完了したかを判定する（ステップＳ１５１４）。
【００９３】
ｐｏｒｔＴｙｐｅ要素リストの全てのオブジェクトについて検証が終了していなければ（ステップＳ１５１４のＮｏ）、関連データ抽出手段２８は、ステップＳ１５０２に戻り、ｐｏｒｔＴｙｐｅ要素リストから次に処理対象とするｐｏｒｔＴｙｐｅ要素のオブジェクトを取得して、前述と同様の処理を実行する（ステップＳ１５０２〜Ｓ１５１３）。
【００９４】
ｐｏｒｔＴｙｐｅ要素リストの全てのオブジェクトについて検証が完了すると（ステップＳ１５１４のＹｅｓ）、関連データ抽出手段２８は、抽出アルゴリズム処理を終了する。
【００９５】
以上の抽出アルゴリズム処理を完了すると、ｖａｒｉａｂｌｅ属性の属性値の候補が設定された要素オブジェクトがＲＡＭ１１に記憶された候補リストに登録される。
【００９６】
このようにして、ＢＰＥＬ文書やＷＳＤＬ文書で使用される構造化文書ベース記述言語では、要素間に参照関係が存在するだけでなく、ネストの中に情報が収められていたり、参照範囲を構造によって制御することが多い。そのため、ＢＰＥＬ文書やＷＳＤＬ文書中の要素がオブジェクト化されてリスト化された要素オブジェクトリスト２３と、関連テーブル２７に定義される親子関係などに対応する抽出アルゴリズム処理を実行することで、柔軟に文書内の適切な位置に記述された内容を参照することが可能となり、効率的に対象となる属性値の候補を参照することができる。
【００９７】
本実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態における構造化文書ベース記述言語プログラム開発装置の構成を示すブロック図。
【図２】プログラム開発プログラムをＣＰＵ１０によって実行することにより実現されるプログラム開発装置の機能構成を示す図。
【図３】ＢＰＥＬ文書の一例を示す図。
【図４】図３に示すＢＰＥＬ文書の要素の関係を構造木によって示す図。
【図５】ＷＳＤＬ文書の一例を示す図。
【図６】本実施形態におけるインスタンス化処理を示すフローチャート。
【図７】図３に示すＢＰＥＬ文章をオブジェクト化したときのオブジェクトツリーを示す図。
【図８】本実施形態におけるリスト化処理を示すフローチャート。
【図９】本実施形態における要素属性設定・表示処理について示すフローチャート。
【図１０】入力・表示ウィンドウ２５の一例を示す図。
【図１１】本実施形態における関連データ抽出処理について示すフローチャート。
【図１２】要素ｒｅｃｅｉｖｅについてのルール群の一例を示す図。
【図１３】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｐｏｒｔＴｙｐｅ属性の関連を示す図。
【図１４】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｐａｒｔｎｅｒＬｉｎｋ属性の関連を示す図。
【図１５】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性とｖａｒｉａｂｌｅ属性の関連を示す図。
【図１６】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｐｏｒｔＴｙｐｅ属性の属性値を抽出するための抽出アルゴリズム処理について示すフローチャート。
【図１７】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｐａｒｔｎｅｒＬｉｎｋ属性の属性値を抽出するための抽出アルゴリズム処理について示すフローチャート。
【図１８】要素ｒｅｃｅｉｖｅのｏｐｅｒａｔｉｏｎ属性からｖａｒｉａｂｌｅ属性の属性値を抽出するための抽出アルゴリズム処理について示すフローチャート。
【符号の説明】
【００９９】
１０…ＣＰＵ、１１…ＲＡＭ、１２…ＲＯＭ、２０…構造化文書、２１…クラスオブジェクト、２２…構造化文書要素変換手段、２３…要素オブジェクトリスト、２４…要素オブジェクトリスト化手段、２８…関連データ抽出手段。
【図１】
2009157847.tif 000003
【図２】
2009157847.tif 000004
【図３】
2009157847.tif 000005
【図４】
2009157847.tif 000006
【図５】
2009157847.tif 000007
【図６】
2009157847.tif 000008
【図７】
2009157847.tif 000009
【図８】
2009157847.tif 000010
【図９】
2009157847.tif 000011
【図１０】
2009157847.tif 000012
【図１１】
2009157847.tif 000013
【図１２】
2009157847.tif 000014
【図１３】
2009157847.tif 000015
【図１４】
2009157847.tif 000016
【図１５】
2009157847.tif 000017
【図１６】
2009157847.tif 000018
【図１７】
2009157847.tif 000019
【図１８】
2009157847.tif 000020