(57)【要約】  【課題】表現形式の異なる構造化データを処理する際に、処理負担を軽減すること。  【解決手段】第一の構造化データの項目の位置を特定するための第一の位置情報、および、当該第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、当該第一の位置情報により特定される項目に対応する第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けたパス対応関係テーブルをパス対応関係テーブル記憶領域１１２に記憶し、第一の位置情報を指定して、第二の構造化データにおける項目に関連する情報を取得する要求を受けた場合には、パス変換部１２１において、パス対応関係テーブルを用いて、第一の位置情報を第二の位置情報に変換して、構造化データ記憶領域１１１に記憶されている第二の構造化データから項目に関連する情報を取得する。【選択図】図１
2008041082.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶部と、
前記第一の構造化データから前記項目に関する情報を取得する取得部と、
を備える処理装置であって、
前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目の位置を特定するための第一の位置情報に変換する変換部を備え、
前記取得部は、前記変換部により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得すること、
を特徴とする処理装置。
【請求項２】
請求項１に記載の処理装置であって、
前記記憶部には、前記第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶しており、
前記変換部は、第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一の構造化データから前記項目に関する情報を取得するものであること、
を特徴とする処理装置。
【請求項３】
請求項１又は２に記載の処理装置であって、
前記第一の構造化データ及び前記第二の構造化データは、ＸＭＬで記述されたものであり、前記第一の位置情報及び前記第二の位置情報は、ＸＰａｔｈであること、
を特徴とする処理装置。
【請求項４】
請求項１又は２に記載の処理装置であって、
前記第二の位置情報は、入力部を介して入力されたものであること、
を特徴とする処理装置。
【請求項５】
コンピュータを、
少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶手段、
前記第一の構造化データから前記項目に関する情報を取得する処理を行う制御手段、
として機能させるプログラムであって、
前記制御手段に、
前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目を検索するための第一の位置情報に変換する変換処理と、
前記変換処理により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得する取得処理と、
を行わせることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムであって、
前記記憶手段には、前記第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報が記憶されており、
前記制御手段が行う前記変換処理は、第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一の構造化データから前記項目に関する情報を取得するものであること、
を特徴とするプログラム。
【請求項７】
請求項５又は６に記載のプログラムであって、
前記第一の構造化データ及び前記第二の構造化データは、ＸＭＬで記述されたものであり、前記第一の位置情報及び前記第二の位置情報は、ＸＰａｔｈであること、
を特徴とするプログラム。
【請求項８】
請求項５又は６に記載のプログラムであって、
コンピュータを、前記第二の位置情報を入力する入力手段として機能させること、
を特徴とするプログラム。
【請求項９】
少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する生成部を備える処理装置であって、
前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、
前記生成部は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成すること、
を特徴とする処理装置。
【請求項１０】
請求項９に記載の処理装置であって、
少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶部を備え、
前記生成部は、第三の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一のデータ変換定義の第三の位置情報を、取得した第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成するものであること、
を特徴とする処理装置。
【請求項１１】
少なくとも一つ以上の項目を有する第三の構造化データを、前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第二の構造化データに変換する第三のデータ変換定義から、前記第三の構造化データを、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データに変換する第四のデータ変換定義を生成する生成部を備える処理装置であって、
前記第三のデータ変換定義は、前記第三の構造化データから情報を取り出す項目の位置を特定する第五の位置情報、および、該第五の位置情報で特定される位置の項目から取り出した情報を前記第二の構造化データに取り込む項目の位置を特定する第六の位置情報、を備えるものであって、
前記生成部は、前記第三のデータ変換定義の前記第六の位置情報を、前記第六の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成すること、
を特徴とする処理装置。
【請求項１２】
請求項１１に記載の処理装置であって、
少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶部を備え、
前記生成部は、第六の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第三のデータ変換定義の前記第六の位置情報を、取得した第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成するものであること、
を特徴とする処理装置。
【請求項１３】
請求項９乃至１２の何れか一項に記載の処理装置であって、
前記第一の構造化データ、前記第二の構造化データ及び前記第三の構造化データは、ＸＭＬで記述されたものであり、前記第一の位置情報、前記第二の位置情報、前記第三の位置情報、前記第四の位置情報及び前記第五の位置情報は、ＸＰａｔｈであり、
前記第一のデータ変換定義、前記第二のデータ変換定義、前記第三のデータ変換定義及び前記第四のデータ変換定義は、ＸＳＬＴスタイルシートであること、
を特徴とする処理装置。
【請求項１４】
コンピュータを、
少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する処理を行う制御手段として機能させるプログラムであって、
前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、
前記制御手段は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成する処理を行うものであること、
を特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムであって、
コンピュータを、
少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶手段として機能させ、
前記制御手段は、第三の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第一のデータ変換定義の第三の位置情報を、取得した第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成する処理を行うものであること、
を特徴とするプログラム。
【請求項１６】
コンピュータを、
少なくとも一つ以上の項目を有する第三の構造化データを、前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第二の構造化データに変換する第三のデータ変換定義から、前記第三の構造化データを、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データに変換する第四のデータ変換定義を生成する処理を行う制御手段として機能させるプログラムであって、
前記第三のデータ変換定義は、前記第三の構造化データから情報を取り出す項目の位置を特定する第五の位置情報、および、該第五の位置情報で特定される位置の項目から取り出した情報を前記第二の構造化データに取り込む項目の位置を特定する第六の位置情報、を備えるものであって、
前記制御手段は、前記第三のデータ変換定義の前記第六の位置情報を、前記第六の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成する処理を行うこと、
を特徴とするプログラム。
【請求項１７】
請求項１６に記載のプログラムであって、
コンピュータを、
少なくとも一つ以上の項目を有する第一の構造化データの項目の位置を特定するための第一の位置情報、および、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目であって、前記第一の位置情報により特定される項目に対応する前記第二の構造化データの項目の位置を特定するための第二の位置情報、を対応付けた対応関係情報を記憶する記憶手段として機能させ、
前記制御手段は、第六の位置情報に一致する第二の位置情報に対応する第一の位置情報を前記対応関係情報から取得して、前記第三のデータ変換定義の前記第六の位置情報を、取得した第一の位置情報に置き換えることで、前記第四のデータ変換定義を生成する処理を行うものであること、
を特徴とするプログラム。
【請求項１８】
請求項１４乃至１７の何れか一項に記載のプログラムであって、
前記第一の構造化データ、前記第二の構造化データ及び前記第三の構造化データは、ＸＭＬで記述されたものであり、前記第一の位置情報、前記第二の位置情報、前記第三の位置情報、前記第四の位置情報及び前記第五の位置情報は、ＸＰａｔｈであり、
前記第一のデータ変換定義、前記第二のデータ変換定義、前記第三のデータ変換定義及び前記第四のデータ変換定義は、ＸＳＬＴスタイルシートであること、
を特徴とするプログラム。
【請求項１９】
少なくとも１つ以上の項目を有する構造化データであるリクエストデータを送付するクライアント処理装置と、前記クライアント処理装置からのリクエストデータを受け取りそのリクエストデータに基づいてサービス処理装置の呼び出し制御を行う処理装置と、当該処理装置から呼び出され特定の処理を実施するサービス処理装置から構成されるシステムに用いられる処理装置において、
前記処理装置は、サービス呼出制御定義に基づいてサービスの呼び出しを制御するサービス呼出制御部、パス変換部、値取得部及び値更新部を有し、
前記処理装置に受け取られ得るリクエストデータとして、第一の構造化データである第一のリクエストデータと、第一のリクエストデータと表現形式が異なる第二の構造化データである第二のリクエストデータが存在する場合に、
前記第二のリクエストデータの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報を記憶部に記憶しており、
前記サービス呼出制御定義には、前記処理装置に入力された特定の表現形式の構造化データを位置情報に基づいて操作する方法が定義可能であり、
前記サービス呼出制御定義には前記第一のリクエストデータの中から位置情報に基づいて値を取得又は更新する処理が定義されており、
前記サービス呼出制御部が、前記第二のリクエストデータを受け取った場合、前記対応関係情報から、前記第一の位置情報に対応する第二の位置情報を取得して、前記第二の構造化データである第二のリクエストデータから前記第二の位置情報で特定される項目に関する情報を取得又は更新し、
当該取得した情報又は更新した構造化データを用いてサービスの呼び出しを制御することを特徴とする処理装置。
【請求項２０】
少なくとも１つ以上の項目を有する第一の構造化データと、第一の構造化データとは表現形式が異なる第三の構造化データにデータ変換する処理装置であって、
前記第一の構造化データ及び前記第三の構造化データと表現形式が異なる第二の構造化データを第三の構造化データに変換する方法を記述したデータ変換定義と、
前記第二の構造化データの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報と、を記憶部に記憶しており、
前記データ変換定義に従って、データ変換の実施中に実施される、前記データ変換定義に定義された第二の構造化データ内の特定の項目を示す第二の位置情報が示す項目の情報を取得する前に、前記対応関係情報から、前記第二の位置情報に対応する第一の位置情報を取得して、前記第一の構造化データから前記第一の位置情報で特定される項目に関する情報を取得し、その取得した情報を、第三の構造化データの一部として埋め込む処理を、
第二の位置情報が示す項目の情報を取得する前毎に実施することで第一の構造化データから第三の構造化データにデータ変換することを特徴とする処理装置。
【請求項２１】
請求項１９記載のサービス呼出制御定義を変換する処理装置であって、
サービス呼出制御定義に従ってサービスの呼び出し制御を行うサービス呼出制御部で利用される構造化データとして、第一の構造化データと、その第一の構造化データとは表現形式の異なる第二の構造化データが存在する場合であり、かつ、
前記第一の構造化データの項目の位置を特定する第一の位置情報の記述を含む第一のサービス呼出制御定義が存在する場合であり、かつ、
記憶部には、前記第二の構造化データの項目の位置を特定する第二の位置情報、及び、前記第一の構造化データに含まれる項目であって、前記第二の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定する第一の位置情報、を対応付けた対応関係情報を記憶している場合、
前記第一のサービス呼出制御定義内に含まれる第一の構造化データの項目を特定する第一の位置情報を、前記対応関係情報から、前記第一の位置情報に対応する第二の位置情報に変換し、その第二の位置情報を、前記第一のサービス呼出制御定義内の第一の構造化データの第一の位置情報が記述されていた位置に書き込む処理を、前記第一のサービス呼出制御定義に含まれる第一の構造化データの項目を特定する全ての位置情報の記述に対して実施することにより、第二の構造化データ向けの第二のサービス呼出制御定義を作成することを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる表現形式で作成された構造化文書を処理する技術に関する。
【背景技術】
【０００２】
従来、表現形式の異なる構造化データを処理する場合、様々な表現形式の構造化データを共通の表現形式の構造化データに変換してから、必要なデータを参照又は更新するようにしている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００２−２５９６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のように、表現形式の異なる構造化データを共通の表現形式の構造化データに変換してから処理していたのでは、例えば、構造化データの一部のデータのみを必要とする場合にも、構造化データの全体を変換しなければならず、処理負担が大きかった。
【０００５】
また、従来の技術では、表現形式の異なる構造化データを変換するために、変換を行う各々の表現形式毎に変換定義を生成しなければならず、不便であった。
【０００６】
そこで、本発明の第一の目的は、表現形式の異なる構造化データを処理する際に、処理負担を軽減することである。
【０００７】
また、本発明の第二の目的は、表現形式毎の変換定義を作成する負担を軽減することにある。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、本願の第一の発明は、構造化データにおける項目の位置を特定するための情報を変換することで、表現形式の異なる構造化データから必要な項目に関連する情報を取り出して処理することができるようにする。
【０００９】
例えば、少なくとも一つ以上の項目を有する第一の構造化データを記憶する記憶部と、前記第一の構造化データから前記項目に関する情報を取得する取得部と、を備える処理装置であって、前記第一の構造化データとは異なる表現形式を有する第二の構造化データの項目の位置を特定するための第二の位置情報を、前記第一の構造化データの項目の位置を特定するための第一の位置情報に変換する変換部を備え、前記取得部は、前記変換部により変換された前記第一の位置情報を用いて前記第一の構造化データから前記項目に関する情報を取得すること、を特徴とする。
【００１０】
また、本願の第二の発明は、構造化データの項目の位置を特定して所定の変換を行う変換定義において、項目の位置を特定するための情報を、異なる構造化データにおける項目の位置を特定するための情報に変換することで、異なる構造化データの変換定義を生成する。
【００１１】
例えば、少なくとも一つ以上の項目を有する第二の構造化データを、前記第二の構造化データとは異なり、少なくとも一つ以上の項目を有する第三の構造化データに変換する第一のデータ変換定義から、前記第二の構造化データ及び前記第三の構造化データとは異なり、少なくとも一つ以上の項目を有する第一の構造化データを、前記第三の構造化データに変換する第二のデータ変換定義を生成する生成部を備える処理装置であって、前記第一のデータ変換定義は、前記第二の構造化データから情報を取り出す項目の位置を特定する第三の位置情報、および、該第三の位置情報で特定される位置の項目から取り出した情報を前記第三の構造化データに取り込む項目の位置を特定する第四の位置情報、を備えるものであって、前記生成部は、前記第一のデータ変換定義の前記第三の位置情報を、前記第三の位置情報により特定される項目に対応する前記第一の構造化データの項目の位置を特定するための第一の位置情報に置き換えることで、前記第二のデータ変換定義を生成すること、を特徴とする。
【発明の効果】
【００１２】
以上のように、本願の第一の発明によれば、構造化データにおける要素を特定するための情報を変換することで、構造化データから必要な要素を特定して処理することができ、構造化データ全体を変換する必要がなくなり、高速に処理することができるようになる。
【００１３】
また、本発明の第二の発明によれば、変換定義における要素を特定するための情報を変換することで、異なる構造化データの変換定義を生成することができるため、この異なる構造化データの変換定義を作成する負担を軽減することができるとともに、構造化データの変換を効率的に行うことができるようになる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の第一の実施形態である処理装置１００の概略図である。
【００１５】
図示するように、処理装置１００は、記憶部１１０と、制御部１２０と、入力部１３０と、出力部１４０と、を備えている。
【００１６】
記憶部１１０は、構造化データ記憶領域１１１と、パス対応関係テーブル記憶領域１１２と、を有している。
【００１７】
構造化データ記憶領域１１１には、少なくとも一つ以上の項目を有する構造化データが記憶される。
【００１８】
本実施形態においては、図２に示されているような第一種別の構造化データ１６０と、図３に示されているような第二種別の構造化データ１６１と、が記憶されているものとする。なお、これらの構造化データについては、記憶部１１０に記憶されている必要はなく、処理を行う段階で、外部から入力されるようになっていてもよい。
【００１９】
ここで、第一種別の構造化データ１６０と、第二種別の構造化データ１６１とは、ともに少なくとも一つ以上の項目によりデータを特定しているが、表現形式が異なるものとなっている。
【００２０】
例えば、第一種別の構造化データ１６０と、第二種別の構造化データ１６１とは、ともに、会社に所属する社員を管理するためのデータを特定しており、ここでは、ＸＭＬ（eXtensible Markup Language）を用いて、各々の社員毎に、氏名、会社名、部署名、地位、電話番号及び電子メールアドレスという項目を特定しているが、その表現形式が異なっている。
【００２１】
即ち、第一種別の構造化データ１６０では、「userlist」をルート要素として、その子要素として社員毎に「userinfo」にＩＤ番号を付したタグを設けて、「name」のタグにより氏名を特定し、「company」のタグにより会社名を特定し、「department」のタグにより部署を特定し、「post」のタグにより地位を特定し、「tel」のタグにより電話番号を特定し、「email」のタグにより電子メールアドレスを特定している。
【００２２】
一方、第二種別の構造化データ１６１では、「employees」をルート要素として、その子要素として社員毎に「employee」にＩＤ番号を付したタグを設けて、「company」のタグにより会社名を特定し、「dept」のタグにより部署を特定し、「position」のタグにより地位を特定し、「name」のタグにより氏名を特定し、「tel-internal」のタグにより内線番号を特定し、「tel-external」のタグにより外線番号（第一の種別の構造化データ１６０における電話番号に相当）を特定し、「email」のタグにより電子メールアドレスを特定している。
【００２３】
パス対応関係テーブル記憶領域１１２には、構造化データ記憶領域１１１に記憶された一の構造化データの項目の位置を特定するための位置情報と、他の構造化データにおいて、一の構造化データの項目に対応する項目の位置を特定するための位置情報と、を対応させたテーブル情報が記憶される。
【００２４】
例えば、本実施形態においては、図４に示されているようなパス対応関係テーブル１６２が記憶されている。
【００２５】
パス対応関係テーブル１６２は、第一のデータ種別欄１６２ａと、変換元パス欄１６２ｂと、第二のデータ種別欄１６２ｃと、変換先パス欄１６２ｄと、を備えている。
【００２６】
第一のデータ種別欄１６２ａには、後述する変換元パス欄１６２ｂに格納するＸＰａｔｈにより項目の位置を特定する構造化データの表現形式であるデータ種別を特定するための情報が格納される。
【００２７】
変換元パス欄１６２ｂには、第一のデータ種別欄１６２ａで特定された表現形式で作成された構造化データにおいて特定の項目の位置を特定する位置情報が格納される。
【００２８】
ここで、本実施形態においては、構造化データをＸＭＬにより記述しているため、位置情報としてＸＰａｔｈ（XML Path Language）が格納されている。
【００２９】
第二のデータ種別欄１６２ｃには、後述する変換先パス欄１６２ｄに格納するＸＰａｔｈにより項目の位置を特定する構造化データの表現形式であるデータ種別を特定するための情報が格納される。
【００３０】
変換先パス欄１６２ｄには、第二のデータ種別欄１６２ｃで特定された表現形式で作成された構造化データにおいて、変換元パス欄１６２ｂに格納されたＸＰａｔｈで指定されたノードに対応するノードを指定するためのＸＰａｔｈが格納される。
【００３１】
例えば、パス対応関係テーブル１６２の第一の行１６２ｅでは、第一種別の構造化データ１６０において、「userinfo1」で特定される社員の「email」を指定するためのＸＰａｔｈである「/userlist/userinfo1/email」が変換元パス１６２ｂに格納されており、第二の種別の構造化データ１６１において、この社員の「email」を指定するためのＸＰａｔｈである「/employees/employee1/email」が変換先パス１６２ｄに格納される。
【００３２】
制御部１２０は、パス変換部１２１と、値取得部１２２と、値更新部１２３と、を備えている。
【００３３】
パス変換部１２１は、後述する入力部１３０を介して、ＸＰａｔｈ、変換元のデータ種別及び変換先のデータ種別の入力を受け付け、入力された変換元のデータ種別と変換先のデータ種別とが異なっている場合には、入力された変換元のデータ種別が第一のデータ種別欄１６２ａに格納され、入力されたＸＰａｔｈが変換元パス欄１６２ｂに格納され、さらに、入力された変換先のデータ種別が第二のデータ種別欄１６２ｃに格納されているパス対応換関係テーブル１６２の行を特定し、特定した行の変換先パス欄１６２ｄに格納されているＸＰａｔｈを抽出し、抽出されたＸＰａｔｈ及び入力された変換先のデータ種別を後述する値取得部１２２に送る。
【００３４】
一方、パス変換部１２１は、入力された変換元のデータ種別と変換先のデータ種別とが等しい場合には、入力されたＸＰａｔｈ及び入力された変換先のデータ種別を後述する値取得部１２２に送る。
【００３５】
値取得部１２２は、パス変換部１２１から送られてきたデータ種別に対応する構造化データを構造化データ記憶領域１１１から特定し、パス変換部１２１に送られてきたＸＰａｔｈに対応するノードに格納されているデータを特定された構造化データから取得し、後述する出力部１４０に出力する。
【００３６】
値更新部１２３は、値取得部１２２で取得されたデータに対して加筆、修正等の更新を行う指示が、後述する入力部１３０を介してなされた場合に、取得されたデータに対応するデータ種別とＸＰａｔｈとを値取得部１２２から取得し、取得したデータ種別に対応する構造化データを構造化データ記憶領域１１１から特定して、取得したＸＰａｔｈに対応するノード位置に更新されたデータを格納する処理を行う。
【００３７】
入力部１３０は、構造化データ記憶領域１１１に記憶する構造化データや、パス対応関係テーブル記憶領域１１２に記憶するパス対応関係テーブル等の入力を受け付けるとともに、構造化データ記憶領域１１１に記憶されている構造化データからデータを取得するための変換元データ種別、変換先データ種別及びＸＰａｔｈの入力を受け付ける。
【００３８】
また、入力部１３０は、更新する情報及び更新する指示の入力を受け付け、値更新部１２３に送る。
【００３９】
出力部１４０は、値取得部１２２で取得されたデータを所定の形式で表示、印刷等の出力を行う。
【００４０】
以上に記載した処理装置１００については、コンピュータにより実現可能である。例えば、記憶部１１０については、メモリやハードディスク等の外部記憶装置により構成可能であり、制御部１２０については、ＣＰＵ（Central Processing Unit）で外部記憶装置等に記憶されている所定のプログラムを実行することにより実現可能である。また、入力部１３０については、マウスやキーボードといった入力装置や情報を入力することのできる入力インターフェースにより実現可能であり、出力部１４０については、ディスプレイ装置や情報を出力することのできる出力インターフェースにより実現可能である。
【００４１】
以上のように構成される処理装置１００において、構造化データから所定のデータを取得する処理を図５に示すフローチャートを用いて説明する。
【００４２】
まず、処理装置１００では、入力部１３０を介して、変換元のデータ種別、変換先のデータ種別及びＸＰａｔｈの入力を受け付けることにより（Ｓ１７０）、処理を開始する。
【００４３】
入力部１３０を介して、入力された変換元のデータ種別と、変換先のデータ種別は、パス変換部１２１に送られ、パス変換部１２１においてこれらのデータ種別が等しいものか否かが判断される（Ｓ１７１）。
【００４４】
そして、これらのデータ種別が等しいものである場合には（Ｓ１７１）、パス変換部１２１は、入力された変換先データ種別及び入力されたＸＰａｔｈを値取得部１２２に送り、値取得部１２２は、変換先データ種別に対応する構造化データを構造化データ記憶領域１１１から特定し、特定した構造化データにおいて、ＸＰａｔｈに対応するノードに対応するデータを取得する（Ｓ１７２）。
【００４５】
一方、パス変換部１２２は、入力された変換元のデータ種別と変換先のデータ種別とが異なるものである場合には（Ｓ１７１）、パス対応関係テーブル記憶領域１１２に記憶されているパス対応関係テーブル１６２を検索して、入力された変換元のデータ種別が第一のデータ種別欄１６２ａに格納され、入力されたＸＰａｔｈが変換元パス欄１６２ｂに格納され、さらに、入力された変換先のデータ種別が第二のデータ種別欄１６２ｃに格納されているパス対応換関係テーブル１６２の行を特定し、特定した行の変換先パス欄１６２ｄに格納されているＸＰａｔｈを抽出し、抽出されたＸＰａｔｈ及び入力された変換先のデータ種別を値取得部１２２に送り（Ｓ１７３）、値取得部１２２は、変換先データ種別に対応する構造化データを構造化データ記憶領域１１１から特定し、特定した構造化データにおいて、ＸＰａｔｈに対応するノードに対応するデータを取得する（Ｓ１７４）。
【００４６】
図６は、本発明の第二の実施形態である処理装置２００の概略図である。
【００４７】
ここで、第一の実施形態においては、表現形式の異なる構造化データのデータ種別が第一種別と第二種別の二種類を用いて説明したが、本実施形態では、このようなデータ種別として、ｄａｔａ＿ａからｄａｔａ＿ｚの２６種類の構造化データと、ｄａｔａ＿ｃｏｍｍｏｎの構造化データと、があるものとして説明する。
【００４８】
図示するように、処理装置２００は、記憶部２１０と、制御部２２０と、入力部２３０と、出力部２４０と、を備えている。
【００４９】
記憶部２１０は、構造化データ記憶領域２１１と、パス対応関係テーブル記憶領域２１２と、データ変換定義記憶領域２１３と、を有している。
【００５０】
構造化データ記憶領域２１１には、第一の実施形態と同様に、少なくとも一つ以上の項目を有する構造化データが記憶される。なお、この構造化データについても、記憶部２１０に記憶されている必要はなく、処理を行う段階で、外部から入力されるようになっていてもよい。
【００５１】
パス対応関係テーブル記憶領域２１２には、第一の実施形態と同様に、構造化データ記憶領域２１１に記憶された一の構造化データの項目の位置を特定するための位置情報と、他の構造化データにおいて、一の構造化データの項目に対応する項目の位置を特定するための位置情報と、を対応させたテーブル情報が記憶される。
【００５２】
例えば、本実施形態においても、図７に示されているような、第一のデータ種別欄２６２ａと、変換元パス欄２６２ｂと、第二のデータ種別欄２６２ｃと、変換先パス欄２６２ｄと、を備えるパス対応関係テーブル２６２が記憶される。
【００５３】
データ変換定義記憶領域２１３には、変換元のデータ種別を特定する情報と、変換先のデータ種別を特定する情報と、変換元のデータ種別から変換先のデータ種別に変換する変換定義と、が記憶されている。
【００５４】
例えば、データ変換定義記憶領域２１３には、図８に示されているような変換テーブル２６３が記憶されている。
【００５５】
変換テーブル２６３は、ＩＤ欄２６３ａと、変換元データ種別欄２６３ｂと、変換先データ種別欄２６３ｃと、データ変換定義欄２６３ｄと、自動生成欄２６３ｅと、を有する。
【００５６】
ＩＤ欄２６３ａには、データ変換定義欄２６３ｄに格納されるデータ変換定義を一意に識別するための識別情報が格納される。
【００５７】
変換元データ種別欄２６３ｂには、データ変換定義欄２６３ｄに格納されるデータ変換定義によって変換される変換前の構造化データ（変換元の構造化データ）の表現形式を特定するデータ種別が格納される。
【００５８】
変換先データ種別欄２６３ｃには、データ変換定義欄２６３ｄに格納されるデータ変換定義によって変換される変換後の構造化データ（変換先の構造化データ）の表現形式を特定するデータ種別が格納される。
【００５９】
データ変換定義欄２６３ｄには、変換元データ種別欄２６３ｂに格納されるデータ種別により特定される変換元の構造化データを、変換先データ種別欄２６３ｃに格納されるデータ種別により特定される変換先の構造化データに変換するためのデータ変換定義が格納される。
【００６０】
ここで、本実施形態においては、変換を施す構造化データをＸＭＬで作成しており、データ変換定義として、ＸＳＬＴ（XSL Transformations）スタイルシートを用いている。
【００６１】
自動生成欄２６３ｅには、データ変換定義欄２６３ｄに格納されるデータ変換定義が、後述のように処理装置２００において自動的に生成されたものであるか否かを特定するための情報が格納される。
【００６２】
ここで、本実施形態においては、データ変換定義欄２６３ｄに格納されるデータ変換定義が、処理装置２００において自動的に生成されたものである場合には、本欄に「○」の記号を格納し、処理装置２００において自動的に生成されたものではない場合には、本欄に「×」の記号が格納される。
【００６３】
制御部２２０は、パス変換部１２１と、値取得部１２２と、値更新部１２３と、データ変換定義生成部２２４と、データ変換部２２５と、を備えている。
【００６４】
ここで、パス変換部１２１、値取得部１２２及び値更新部１２３で行う処理については、第一の実施形態と同様であるため説明を省略する。
【００６５】
データ変換定義生成部２２４は、後述する入力部２３０を介して、変換元データ種別及び変換先データ種別を特定したデータ変換定義が入力されると、既にデータ変換定義がデータ変換定義記憶領域２１３に記憶されているデータ種別と新たに入力されたデータ種別との間のデータ変換定義を作成する。
【００６６】
具体的には、データ変換定義生成部２２４は、まず、入力された変換元データ種別が変換テーブル２６３の変換先データ種別欄２６３ｃに格納されている場合には、同じ行に格納されている（同じＩＤで識別される）変換元データ種別欄２６３ｂに格納されているデータ種別を抽出して、合成リストを生成する。
【００６７】
そして、生成した合成リストに登録されているデータ種別を一つずつ抽出して、抽出したデータ種別が第一のデータ種別欄２６２ａに格納され、入力された変換元データ種別が第二のデータ種別欄２６２ｃに格納されている行をパス対応関係テーブル２６２から特定し、特定した行の変換先パス欄２６２ｄに格納されているＸＰａｔｈに該当するＸＰａｔｈが入力されたデータ変換定義に含まれている場合には、データ変換定義に含まれているそのＸＰａｔｈを変換元パス欄２６２ｂに格納されているＸＰａｔｈと置き換えることにより、抽出したデータ種別から入力されたデータ種別に表現形式を変換するためのデータ変換定義を生成する。
【００６８】
以上の処理を繰り返すことにより、データ変換定義生成部２２４は、既にデータ変換定義が生成されているデータ種別から、新たなデータ種別に表現形式を変換するためのデータ変換定義を生成する。
【００６９】
次に、データ変換定義生成部２２４は、入力された変換先データ種別が変換テーブル２６３の変換元データ種別欄２６３ｂに格納されている場合には、同じ行に格納されている（同じＩＤで識別される）変換先データ種別欄２６３ｃに格納されているデータ種別を抽出して、合成リストを生成する。
【００７０】
そして、生成した合成リストに登録されているデータ種別を一つずつ抽出して、抽出したデータ種別が第二のデータ種別欄２６２ｃに格納され、入力された変換先データ種別が第一のデータ種別欄２６２ａに格納されている行をパス対応関係テーブル２６２から特定し、特定した行の変換元パス欄２６２ｂに格納されているＸＰａｔｈに該当するＸＰａｔｈが入力されたデータ変換定義に含まれている場合には、データ変換定義に含まれているそのＸＰａｔｈを変換先パス欄２６２ｄに格納されているＸＰａｔｈと置き換えることにより、入力されたデータ種別から抽出されたデータ種別に表現形式を変換するためのデータ変換定義を生成する。
【００７１】
以上の処理を繰り返すことにより、データ変換定義生成部２２４は、新たなデータ種別から、既にデータ変換定義が生成されているデータ種別に表現形式を変換するデータ変換定義を生成する。
【００７２】
データ変換部２２５は、入力部２３０を介して入力された構造化データ又は構造化データ記憶領域２１１に記憶されている構造化データの表現形式を、データ変換定義記憶領域２１３に記憶されているデータ変換定義を用いて変換する。なお、この処理については従来から行われているものであるため、説明を省略する。
【００７３】
入力部２３０は、第一の実施形態と同様の情報の入力を受け付けるほか、本実施形態においては、データ変換定義生成部２２４でデータ変換定義の生成を行うために、既にデータ変換定義がデータ変換定義記憶領域２１３に記憶されているデータ種別を、変換先又は変換元のデータ種別の表現形式に変換するデータ変換定義の入力を受け付ける。
【００７４】
出力部２４０は、第一の実施形態と同様の情報の出力を行うほか、データ変換部２２５でデータ変換を行った構造化データを所定の形式で出力する。
【００７５】
以上に記載した処理装置２００についても、第一の実施形態と同様にコンピュータにより実現可能である。例えば、記憶部２１０については、メモリやハードディスク等の外部記憶装置により構成可能であり、制御部２２０については、ＣＰＵ（Central Processing Unit）で外部記憶装置等に記憶されている所定のプログラムを実行することにより実現
可能である。また、入力部２３０については、マウスやキーボードといった入力装置や情報を入力することのできる入力インターフェースにより実現可能であり、出力部２４０については、ディスプレイ装置や情報を出力することのできる出力インターフェースにより実現可能である。
【００７６】
以上のように構成される処理装置２００においてデータ変換定義を生成する処理を図９に示すフローチャートを用いて説明する。
【００７７】
まず、入力部２３０を介して、変換元データ種別、変換先データ種別及びデータ変換定義を受け付けることで処理が開始される（Ｓ２８０）。
【００７８】
そして、データ変換定義生成部２２４は、入力された変換元データ種別、変換先データ種別及びデータ変換定義をデータ変換定義記憶領域２１３の変換テーブル２６３の該当する欄に格納する（Ｓ２８１）。このとき、他のデータ変換定義と重ならないようにＩＤを付与してＩＤ欄２６３ａに格納し、自動生成欄２６３ｅには、「×」の記号を格納する。
【００７９】
次に、データ変換定義生成部２２４は、データ変換テーブル２６３において、入力された変換元データ種別が変換先データ種別欄２６３ｃのデータ種別と一致する行の変換元データ種別を取得し、合成リストに格納する（Ｓ２８２）。
【００８０】
次に、データ変換定義生成部２２４は、合成リストから、まだ処理していないデータ種別を抽出し（Ｓ２８３）、パス対応関係テーブル２６２において、抽出されたデータ種別が第二のデータ種別欄２６２ａに一致し、入力された変換元データ種別が第一のデータ種別欄２６２ｃに一致する行を特定し、特定した行から変換元パス欄２６２ｂに格納されているＸＰａｔｈと、変換先パス欄２６２ｄに格納されているＸＰａｔｈと、を抽出する（Ｓ２８４）。
【００８１】
そして、データ変換定義生成部２２４は、入力されたデータ変換定義の変換元パスにおいて、抽出した変換元のＸＰａｔｈが入力されている位置に、同じ行から抽出した変換先のＸＰａｔｈを置き換える処理を抽出した変換元のＸＰａｔｈ毎に繰り返すことにより、データ変換定義を生成する（Ｓ２８５）。
【００８２】
このようにして生成されたデータ変換定義を変換テーブル２６３のデータ変換定義欄２６３ｄに格納する（Ｓ２８６）。このとき、他のデータ変換定義と重複しないようにＩＤを付与してＩＤ欄２６３ａに格納し、合成リストから抽出したデータ種別を変換元データ種別欄２６３ｂに格納し、入力された変換先データ種別を変換先データ種別欄２６３ｃに格納し、自動生成欄２６３ｅには、「○」の記号を格納する。
【００８３】
そして、合成リストにまだ処理されていないデータ種別がある場合には（Ｓ２８７）、Ｓ２８４〜Ｓ２８６の処理を繰り返す。
【００８４】
また、データ変換定義生成部２２４は、データ変換テーブル２６３において、入力された変換先データ種別が変換元データ種別欄２６３ｂのデータ種別と一致する行の変換先データ種別を取得し、合成リストに格納する（Ｓ２８８）。
【００８５】
次に、データ変換定義生成部２２４は、合成リストから、まだ処理していないデータ種別を抽出し（Ｓ２８９）、パス対応関係テーブル２６２において、抽出されたデータ種別が第二のデータ種別欄２６２ｃに一致し、入力された変換元データ種別が第一のデータ種別欄２６２ａに一致する行を特定し、特定した行から変換元パス欄２６２ｂに格納されているＸＰａｔｈと、変換先パス欄２６２ｄに格納されているＸＰａｔｈと、を抽出する（Ｓ２９０）。
【００８６】
そして、データ変換定義生成部２２４は、入力されたデータ変換定義の変換先パスにおいて、抽出した変換元のＸＰａｔｈが入力されている位置に、同じ行から抽出した変換先のＸＰａｔｈを置き換える処理を抽出した変換元のＸＰａｔｈ毎に繰り返すことにより、データ変換定義を生成する（Ｓ２９１）。
【００８７】
このようにして生成されたデータ変換定義を変換テーブル２６３のデータ変換定義欄２６３ｄに格納する（Ｓ２９２）。このとき、他のデータ変換定義と重複しないようにＩＤを付与してＩＤ欄２６３ａに格納し、入力された変換元データ種別を変換元データ種別欄２６３ｂに格納し、合成リストから抽出したデータ種別を変換先データ種別欄２６３ｃに格納し、自動生成欄２６３ｅには、「○」の記号を格納する。
【００８８】
そして、合成リストにまだ処理されていないデータ種別がある場合には（Ｓ２９３）、Ｓ２８９〜Ｓ２９２の処理を繰り返す。
【００８９】
なお、図９に示したフローチャートでは、入力部２３０を介して入力されたデータ変換定義の変換元のデータ種別を異なるデータ種別に変更して新たなデータ変換定義を生成し、その後で、入力されたデータ変換定義の変換先のデータ種別を異なるデータ種別に変更して新たなデータ変換定義を生成するようにしているが、このような態様に限定されずに、これらの順番を入れ替えたり、これらのいずれか一方のみを生成するようにしてもよい。
【００９０】
以上のような処理を行うことにより、例えば、図１０に示されているようなｄａｔａ＿ｃｏｍｍｏｎからｄａｔａ＿ｇへのデータ変換定義２６４が入力部２３０を介して入力されたような場合に、図１１に示されているようなｄａｔａ＿ｃｏｍｍｏｎとｄａｔａ＿ａとの間のＸＰａｔｈの対応関係がパス対応関係テーブル２６２に格納されていれば、ｄａｔａ＿ｃｏｍｍｏｎからｄａｔａ＿ｇへのデータ変換定義２６４において、ｄａｔａ＿ｃｏｍｍｏｎに対応するＸＰａｔｈが入力されている要素２６４ａ、２６４ｂ、２６４ｃ、２６４ｄを、ｄａｔａ＿ａに対応するＸＰａｔｈ（図１１参照）で置き換えることにより、ｄａｔａ＿ａからｄａｔａ＿ｇへのデータ変換定義２６５（図１２参照）を生成することができる。
【００９１】
ここで、データ変換定義２６５では、要素２６５ａ、２６５ｂ、２６５ｃ、２６５ｄに入力されているＸＰａｔｈがｄａｔａ＿ａに対応したものに置き換えられている。
【００９２】
なお、本実施形態では、図１０に示されているデータ変換定義２６４において、タグ名がユニークであり、かつ、タグ名が１対１に対応することを前提とするため、図１１に示すようにパス対応関係テーブル２６２において、親子関係を特定するＸＰａｔｈは格納されていないが、タグ名がユニークでない場合や１つのタグを複数の階層に渡るタグに変換する必要がある場合には、親子関係を特定するＸＰａｔｈやルートノード「/」からの絶対ロケーションパスを、パス対応関係テーブル２６２に格納しておくことで対応する必要がある。
【００９３】
以上に記載した実施形態において、パス対応関係格納テーブル１６２、２６２については、パス対応関係テーブル記憶領域１１２、２１２に予め記憶されていることが前提となっている。
【００９４】
この点、例えば、処理装置１００、２００のオペレータがパス対応関係格納テーブル１６２、２６２を作成して、パス対応関係テーブル記憶領域１１２、２１２に記憶しておけばよい。
【００９５】
処理装置１００、２００のオペレータがパス対応関係テーブル１６２、２６２を作成する際には、例えば、図１３に示すようなパス入力ダイアログ画面１６６を出力部１４０、２４０に表示して、処理装置１００、２００のオペレータに対応するパスの入力を求めることで、容易にパス対応関係テーブル１６２、２６２を作成することができ、また、必要な対応関係を段階的に拡充することが可能となる。
【００９６】
また、本実施形態で使用しているＸＳＬＴスタイルシートでは、データの変換を行うノードの位置、即ち、データの変換を行う変換元のノード位置をＸＰａｔｈで指定するようになっており、変換先のノード位置をＸＰａｔｈとしても利用可能なタグ名で指定するようになっているため、このようなＸＳＬＴスタイルシートから同じノード位置を示すＸＰａｔｈの対応関係を容易に把握することができるため、例えば、以下に示すように処理装置１００、２００においてパス対応関係テーブル１６２、２６２を自動的に生成することも可能である。
【００９７】
例えば、図１４に示されているようなｄａｔａ＿ａからｄａｔａ＿ｃｏｍｍｏｎへのデータ変換定義１６７を例にして説明すると、親要素が「<xsl:template match=”□□□” >」の場合、「<xsl:template match=”□□□”>」の行１６７ａの「□□□」の部分が変換元パスとなり、タグ「<xsl:template>」で囲まれた子要素の「<xsl:element name=”△△△”>」の行１６７ｂの「△△△」の部分が変換先パスとなる。
【００９８】
また、子要素が「<xsl:value-of select=”□□□□”/>」の場合、「<xsl:value-of select=”□□□□”/>」の行１６７ｄ、１６７ｆ、１６７ｈの「□□□□」の部分が変換元のパスとなり、その行１６７ｄ、１６７ｆ、１６７ｈと同じ「<xsl:template>」の要素となっている「<xsl:element name=”△△△△”>」の「△△△△」の部分が変換先のパスとなる。
【００９９】
以上のようにして、データ変換定義からパス対応関係テーブルを生成することができる。なお、ここでは、データ変換定義の読み取り元パス、書き込み先パスを各々単体で取得しているが、データ変換定義を解析するときに、ルートからのパスも同時に構築し、書き込み先パス、読み取り元パスを取得した後、ルートからのフルパスに加工して、パス対応関係テーブルの該当する欄に格納するようにしてもよい。
【０１００】
このようにデータ変換定義からパス対応関係を抽出することで、パス対応関係格納テーブルの作成の手間を削減することができる。
【０１０１】
また、以上に記載した実施形態において、ＸＰａｔｈを用いて取得した値を加工する場合には、パス対応関係テーブル１６２、２６２に格納するＸＰａｔｈに関数を用いればよい。
【０１０２】
例えば、図１５（ａ）に示されているように、名と姓とが同じ要素内容１６８ａ、１６８ｂとなっている構造化データ１６８と、名の要素内容１６９ａ、１６９ｃと、姓の要素内容１６９ｂ、１６９ｄと、を有する構造化データ１６９と、の間の対応関係については、図１６に示されているような関数を用いたＸＰａｔｈを格納したパス対応関係テーブル３６２を用いればよい。
【０１０３】
例えば、パス対応関係テーブル３６２の変換先パス欄３６２ｄに格納されているＸＰａｔｈ「concat(/employees/employee/lastname,     /employees/employee/firstname)」で使用されているconcat関数は、引数で渡された文字列を連結する関数であり、ここでは「/userlist/userinfo/name」が、「/employees/employee/lastname」で示される文字列と、「    スペース)」、「/employees/employee/firstname」を連結した文字列に対応することを表している。
【０１０４】
また、パス対応関係テーブル３６２の変換先パス欄３６２ｄに格納されているＸＰａｔｈ「substr-before(/userlist/userinfo/name,    」で使用されているsubstr-before関数は、ある文字列の前に記述された文字列を取得する関数であり、ここでは、「/employees/employee/lastname」が「/userlist/userinfo/name」の中の「    スペース)」よりも前の文字列に対応することを表している。
【０１０５】
さらに、パス対応関係テーブル３６２の変換先パス欄３６２ｄに格納されているＸＰａｔｈ「substr-after(/userlist/userinfo/name,    」で使用されているsubstr-after関数は、ある文字列の後に記述された文字列を取得する関数であり、ここでは、「/employees/employee/firstname」は、「/userlist/userinfo/name」の中の「    スペース)」よりも後の文字列に対応することを表している。
【０１０６】
このように関数を用いたＸＰａｔｈの対応関係を、パス対応関係テーブル３６２に格納することで、より柔軟な対応関係を記述することが可能となる。
【０１０７】
また、以上に記載した実施形態において、ＸＰａｔｈに変数を埋め込むことにより、外部的な要因で決定する値をＸＰａｔｈの条件に記述することも可能となる。
【０１０８】
例えば、図１７に示されているようなパス対応関係テーブル４６２では、変換元パス欄４６２ｂ及び変換先パス欄４６２ｄに格納されるＸＰａｔｈに変数が埋め込まれている。なお、図１７では、「$1」が変数を示している。
【０１０９】
例えば、変換元パス欄４６２ｂに「/userlist/userinfo[email=suzume@a.com']/tel」のように格納することにより、「emailアドレス」が「suzume@a.com」である社員の電話番号を取得することができる。
【０１１０】
そして、「emailアドレス」が外部の要因で決定する場合(例えばシステムのユーザが入力することで決定する場合)がある。この場合、「/userlist/userinfo[email=$1']/tel」で示すようにパス内に外部の要因で変更する可能性のある個所を変数として埋め込む。
【０１１１】
このようにしておくことで、パス変換手段101を用いてdata_xの構造化データにおけるＸＰａｔｈ「/userlist/userinfo[email=$1']/tel」から、data_yの構造化データにおけるＸＰａｔｈ「/employees/employee[email=$1']/tel」を得ることができ、取得したパスの「$1」の個所を「suzume@a.com」に置き換えることで、data_yの構造化データに対してもdata_xの構造化データに対してと同様の検索をすることが可能となる。
【０１１２】
このように、パスに変数を埋め込んだ形でパス対応関係テーブルを構築することにより、外部の要因に応じた柔軟な検索が可能となる。
【０１１３】
また、以上に記載した第一の実施形態において、パス変換部１２１が取得したＸＰａｔｈが変換元パス欄１６２ｂに格納されているか否かを確認し、格納されていなければ、対応するＸＰａｔｈを取得することができないので、他のデータ種別に変換してからパス対応関係テーブル１６２に格納されているＸＰａｔｈを用いて特定の値を取得するようにしてもよい。
【０１１４】
説明は前後するが、図6の実施形態により得られる効果の一例について説明する。
図１８の左側に示すようにデータ種別Ａ５０１〜Ｄ５０４をデータ変換部２２５により、データ種別Ｅ５０５〜Ｈ５０８に変換したいとする。
これを実現するためには、データ変換定義を４×４の１６個用意する必要がある。この１６個のデータ変換定義を作成する手間を削減するために、従来は図１８の右側に示すように、共通データ種別５０９を用いて、データ種別Ａ５０１〜Ｄ５０４を共通データ種別５０９にまずは変換し、共通データ種別５０９をデータ種別Ｅ５０５〜Ｈ５０８に変換する手法を用いていた。この手法により、１６個必要であった変換定義が４＋４の８個で済むが、二回データ変換を実施するため、性能が悪くなる。第二の実施形態によれば、予めデータ種別Ａ５０１〜Ｄ５０４と共通データ種別５０９のパス対応関係テーブルと、共通データ種別５０９からデータ種別Ｅ５０５〜Ｈ５０８のデータ変換定義を用意する手間で、事前に１６個のデータ変換定義を自動生成することができる。また、これを用いれば一回のデータ変換で済むため性能が悪化することはない。
【０１１５】
本発明の第三の実施形態について説明する。図６の実施形態では、データ変換定義内に記述された変換元のパスを変換して新しいデータ変換定義を予め作成していた。
第三の実施形態ではデータ変換定義を新規に作成せずデータ変換の実行時にパス変換部、値取得部を利用して変換元のパスを変換する。そして、そのパスを用いてデータ変換定義が期待していない変換元の構造化データから直接必要な値を取得する。処理装置の概略図は図６からデータ変換定義生成部２２４を削除したものと同等である。
【０１１６】
図６の実施形態と同様に、図１０に示すｄａｔａ＿ｃｏｍｍｏｎからｄａｔａ＿ｇへのデータ変換定義２６４と図１１に示すｄａｔａ＿ｃｏｍｍｏｎとｄａｔａ＿ａのパス対応関係テーブルを予め用意する。ｄａｔａ＿ａの変換元データからｄａｔａ＿ｇへの変換の実行時に、図１０のデータ変換定義２６４に含まれるｄａｔａ＿ｃｏｍｍｏｎのパスを図１１のパス対応関係テーブルに従ってｄａｔａ＿ａのパスに変換しながらデータ変換処理を行う。
【０１１７】
データ変換実行時にパス変換を行う処理フローの一例を図１９に示す。説明を分かり易くするために図１０のデータ変換定義２６４に限定した処理について記述する。図１０はデータ変換定義としてＸＳＬＴスタイルシートを用いた例である。実際にＸＳＬＴスタイルシートで表現できる全てのバリエーションに対応するためにはより多くの処理を追加する必要があるがここでは省略する。
【０１１８】
まず、変換元データ種別、変換先データ種別、データ変換定義、変換元データの入力を受け付ける(Ｓ６００)。次にデータ変換定義の内容を順に取得(Ｓ６０１)する。取得した内容が、「<xsl:value-of select=”パス”/>」である場合(Ｓ６０２)、変換元データ種別、変換先データ種別、取得した内容に含まれるパスを引数にして図５に示す構造化データから所定のデータを取得する処理(Ｓ６０３)を実施し、取得したデータを、データ変換定義に従って変換先の構造化データとして出力(Ｓ６０４)する。
【０１１９】
取得した内容が、「<xsl:template match=”パス”>」である場合(Ｓ６０６)、変換元データ種別、変換先データ種別、取得した内容に含まれるパスを引数にして図５に示す構造化データから所定のデータを取得する処理(Ｓ６０７)を実施する。ここでは、データとして値ではなくノードを取得する。そして、取得したノードをカレントノードに設定(Ｓ６０８)する。カレントノードとは変換元データ内の現在処理中のノードを指す。データ変換ではカレントノードを移動しながら処理を進める。
【０１２０】
取得した内容が、それ以外の場合、従来のデータ変換の処理(Ｓ６０９)を行う。
【０１２１】
いずれかの処理を実施した結果、データ変換定義の最後に至っているかどうかを確認する(Ｓ６０５)。データ変換定義の最後に至っていなかったらＳ６０１から処理を繰り返し、最後まで処理したら終了する。
【０１２２】
図２０は、本発明の第四の実施形態である処理装置の概略図である。
本実施形態ではサービスと呼ぶ処理装置上で実行するソフトウェア機能を連携することでシステムを構築する。サービスの連携は、仲介処理装置７００を用いて行うことにより、サービス間の関係を疎にする。これにより、システム変更時には仲介処理装置７００にのみ変更を加えれば良く、変更のコストが少なくて済むという効果がある。
【０１２３】
仲介処理装置７００は第一の実施形態の処理装置１００にネットワークインターフェース部７５０とサービス呼出制御部７２１とサービス呼出制御定義テーブル記憶領域７１３を新たに追加したものである。ここで、ネットワークインターフェース部７５０は、第一の実施形態の処理装置１００では入力部１３０及び出力部１４０の一部として記載していたが、説明を容易にするため、入力部７３０及び出力部７４０とは別に記載している。ネットワーク７７０を介してクライアント1稼動処理装置７６１、クライアント２稼動処理装置７６２、サービスＡ稼動処理装置７６３、サービスB稼動処理装置７６４を接続する。クライアント１稼動処理装置７６１はシステムに対して処理を要求するリクエストデータ１を発信し、その結果を受け取る処理装置であり、クライアント２稼動処理装置７６２はリクエストデータ１と異なる形式のリクエストデータ２を発信して結果を受け取る処理装置である。サービスＡ稼動処理装置７６３、サービスＢ稼動処理装置７６４はリクエストに応じて各々特定の処理を実行し、結果を返すソフトウェア機能が稼動している処理装置である。
【０１２４】
クライアント１稼動処理装置７６１、クライアント２稼動処理装置７６２は、ネットワーク７７０を介してリクエストデータを仲介処理装置７００に発信する。仲介処理装置７００では、ネットワークインターフェース部７５０を利用してリクエストデータを受け取り構造化データ記憶領域７１１に配する。サービス呼出制御部７２１ではリクエストデータの内容に応じてサービス呼び出しの制御を行う。
【０１２５】
サービス呼び出し制御の仕方は、サービス呼出制御定義として実現する。これは、リクエストデータの処理の方法や、サービスの呼び出しの順序やサービスの返り値を処理する方法などを定義したもので、一種のプログラムである。サービス呼出制御定義は、サービス呼出制御定義テーブル記憶領域７１３に格納する。サービス呼出制御定義テーブル７８０の例を図２１に示す。サービス呼出制御定義テーブル７８０は、呼出先ＵＲＩ７８１とサービス呼出制御定義782から構成される。呼出先ＵＲＩ７８１にはクライアントが処理要求時にリクエストデータを送信する宛先のＵＲＩを格納する。ここでは、”http://sample_uris.com/service_a_b”を呼出先ＵＲＩとし、クライアント１稼働処理装置７６１及びクライアント２稼働処理装置７６２は、このＵＲＩに向けてリクエストデータを送出する。データ送受信のプロトコルはＨＴＴＰを利用することとする。サービス呼出制御定義７８２にはサービス呼出制御定義の内容を格納する。
【０１２６】
サービス呼出制御部７２１はサービス呼出制御定義テーブル７８０から呼出先ＵＲＩ７８１に対応するサービス呼出制御定義の内容を取得して処理する。この処理の中でリクエストデータなどの構造化データを操作するときにパス変換部、値取得部、値更新部を適宜利用する。
【０１２７】
図２２にリクエストデータ１(８０１)とリクエストデータ２(８０２)の一例を示す。リクエストデータ１(８０１)は、rootをルート要素とし、itemをその子要素に持つ。itemはidという属性を持つ。この例ではidの値は「0」である。さらにitemはdataという子要素を持つ。この例の場合、dataの値は「データ」である。リクエストデータ２(８０２)は、recordsをルート要素とし、recordをその子要素に持つ。recordはさらに子要素としてnumberとinfoを持つ。この例の場合、numberの値は「0」であり、dataの値は「データ」である。
【０１２８】
リクエストデータ１(８０１)とリクエストデータ２(８０２)のパス対応関係を図２３に示す。リクエストデータ１(８０１)の/root/item/@idは、リクエストデータ２(８０２)の/records/record/numberに対応し、リクエストデータ１(８０１)の/root/item/dataは、リクエストデータ２(８０２)の/records/record/infoに対応する。
サービス呼出制御部７２１で実行するサービス呼出制御定義の処理フローの例を図２４に示す。この例におけるサービス呼出制御定義は、データ種別としてリクエストデータ１(８０１)を期待している。つまり、処理フローの中に記述されたパスはリクエストデータ１(８０１)のパスであるとする。
【０１２９】
引数としてリクエストデータ及びリクエストデータ種別の入力を受け付ける(S８２０)。次に構造化データから所定のデータを取得する処理(S８２１)を実行する。この処理は図５で示す処理であり、変換元のデータ種別としてリクエストデータ種別、変換先のデータ種別としてリクエストデータ１(８０１)、ＸＰａｔｈとして”/root/item/@id”を与える。この処理の結果、取得した値が”0”の場合(S８２２)、サービスＡを呼び(Ｓ８２３)、取得した値が”0”でない場合(S822)、サービスBを呼ぶ(S824)。何れかのサービスを呼び出した結果を呼び出し元のクライアントに返して処理を終了する。本例では、サービスＡはサービスA稼動処理装置７６３で稼動し、サービスBはサービスB稼動処理装置７６４で稼動しており、呼び出しはネットワーク７７０を介して行う。
【０１３０】
サービス呼出制御部７２１で実行するサービス呼出制御定義はサービス呼出制御定義テーブル記憶領域７１３に格納せず、サービス呼出制御部７２１が同等の定義を内包していても良い。
【０１３１】
本例では、リクエストデータから値を取得する場合にのみ適用したが、サービスを呼び出した結果得られるレスポンスデータが構造化データであり、このレスポンスデータが複数種類存在する場合に、特定の構造化データ向けのパスのみをサービス呼出制御定義に記述しておき、その特定の構造化データとそれ以外の各レスポンスデータのパス対応関係テーブルを用意しておくことで複数のレスポンスデータに対応する方式も考えられる。
【０１３２】
本例では、値取得のみを実施しているが、例えばサービスA又はサービスBの呼出時に利用するリクエストデータが構造化データであり、呼び出すサービス毎にリクエストデータの形式が異なる場合、その構造化データの、パスで特定できる一部の値を更新してリクエストデータを作成する場合や、クライアント１、クライアント２毎に期待するレスポンスデータの形式が違う場合、レスポンスデータの、パスで特定できる一部の値を更新してレスポンスデータを作成する場合にパス変換部１２１及び値更新部１２３を利用することも考えられる。この処理は、図５における変換元のデータ種別、変換先のデータ種別、ＸＰａｔｈの入力を受け付けるステップＳ１７０を、変換元のデータ種別、変換先のデータ種別、ＸＰａｔｈ、更新値を受け付けるステップに変更し、さらに、入力されたＸＰａｔｈを用いてデータを取得するステップＳ１７２及びＳ１７４を、入力されたＸＰａｔｈを用いてデータを更新するステップに置き換えることにより実現できる。
【０１３３】
従来、サービス呼出制御部７２１が期待していない形式のリクエストデータが到達した場合、事前に期待する形式にデータ変換してからサービス呼出制御部７２１に渡していたが、第四の実施形態を用いると、データ変換を実施する必要がなくなる。代わりにパス変換を実行する必要があるが、構造化データ内の全ての要素を変換しなければならないデータ変換に比べて、一部の値を参照するために用いるパス変換は非常に高速であるため、データ変換による性能劣化を防ぐことができる。
【０１３４】
第四の実施形態では実行時にパス変換を実施しており、データ変換程ではないと思われるがパス変換による性能の劣化が懸念される。そこで、パス変換の性能の劣化を防ぐための第五の実施形態について説明する。
【０１３５】
この実施形態の構成は、図２０の制御部７２０にサービス呼出制御定義生成部を追加したものである。また、サービス呼出制御定義テーブルの構成も変更する。
【０１３６】
図２５にサービス呼出制御テーブル８３０の例を示す。呼出先ＵＲＩ８３１、リクエストデータ種別８３２、サービス呼出制御定義８３３から構成する。呼出先ＵＲＩ８３１にはクライアントが処理要求時にリクエストデータを送信する宛先のＵＲＩを格納する。リクエストデータ種別８３２にはサービス呼出制御部７２１に到達するリクエストデータの種別を格納する。サービス呼出制御定義８３３にはサービス呼出制御定義の内容を格納する。
【０１３７】
サービス呼出制御部７２１では、呼出先ＵＲＩ８３１と到達したリクエストデータ種別８３２に応じてサービス呼出制御定義テーブル８３０からサービス呼出制御定義８３３を取得して実行する。
【０１３８】
サービス呼出制御定義生成部では、サービス呼出制御定義を作成し、サービス呼出制御定義テーブル８３０に格納する。
【０１３９】
図２６に処理フローを示す。事前にリクエストデータ1向けのサービス呼出制御定義(図２４の「構造化データから所定のデータを取得Ｓ８２１」処理を「入力されたＸＰａｔｈを用いてデータを取得Ｓ１７２」処理に変更した処理フローに相当)と、図２３に示すパス対応関係テーブル８１０が用意されているものとする。まず、変換元のサービス呼出制御定義、適用するデータ種別の入力を受け付ける(Ｓ８４０)。この例では変換元のサービス呼出制御定義はリクエストデータ１向けのサービス呼出制御定義であり、適用するデータ種別はリクエストデータ２である。次に、変換元のサービス呼出制御定義内に含まれるパスを順に取得(Ｓ８４１)する。パス対応関係テーブルから、第一のデータ種別がリクエストデータ１、変換元パスが取得したパス、第二のデータ種別が適用するデータ種別である変換先パスを取得(Ｓ８４２)する。取得した変換先パスを、変換元のサービス呼出制御定義内の取得したパスと置き換える(Ｓ８４３)。変換元のサービス呼出制御定義内の全てのパスを置き換えていない(Ｓ８４４)ならばＳ８４１の処理から繰り返し、全てのパスを置き換えていた(Ｓ８４４)ならば、適用するデータ種別とパスを置き換えたサービス呼出制御定義をサービス呼出制御定義テーブルに格納(Ｓ８４５)して処理を終了する。
【０１４０】
この実施形態では説明を容易にするためにリクエストデータに適用する例で説明したが、リクエストデータに限らず、サービス呼出制御定義内で利用するその他の構造化データに適用しても良い。
【０１４１】
以上のように事前に扱う構造化データの種類に応じてサービス呼出制御定義を作成しておくことで、実行時にパス変換を行う必要がなくなり、第四の実施形態よりも性能の良い仲介処理装置７００を実現することができる。
【図面の簡単な説明】
【０１４２】
【図１】処理装置１００の概略図。
【図２】第一種別の構造化データ１６０の概略図。
【図３】第二種別の構造化データ１６１の概略図。
【図４】パス対応関係テーブル１６２の概略図。
【図５】構造化データから所定のデータを取得する処理を示すフローチャート。
【図６】処理装置２００の概略図。
【図７】パス対応関係テーブル２６２の概略図。
【図８】変換テーブル２６３の概略図。
【図９】データ変換定義を生成する処理を示すフローチャート。
【図１０】データ変換定義２６４の概略図。
【図１１】パス対応関係テーブル２６２の概略図。
【図１２】データ変換定義２６５の概略図。
【図１３】パス入力ダイアログ画面１６６の概略図。
【図１４】データ変換定義１６７の概略図。
【図１５】構造化データ１６８及び構造化データ１６９の概略図。
【図１６】パス対応関係テーブル３６２の概略図。
【図１７】パス対応関係テーブル４６２の概略図。
【図１８】第2の実施形態の有効性を表す図。
【図１９】データ変換実行時にパス変換を行う処理を示すフローチャート。
【図２０】サービス呼び出しの仲介を行うシステムの概略図。
【図２１】サービス呼出制御定義テーブル７８０の概略図。
【図２２】リクエストデータの概略図。
【図２３】パス対応関係テーブル８１０の概略図。
【図２４】サービス呼出制御定義の処理を示すフローチャート。
【図２５】サービス呼出制御定義テーブル８３０の概略図。
【図２６】サービス呼出制御定義を作成する処理を示すフローチャート。
【符号の説明】
【０１４３】
１００、２００  処理装置
１１０、２１０  記憶部
１１１、２１１  構造化データ記憶領域
１１２、２１２  パス対応関係テーブル記憶領域
２１３  データ変換定義記憶領域
１２０、２２０  制御部
１２１  パス変換部
１２２  値取得部
１２３  値更新部
２２４  データ変換定義生成部
２２５  データ変換部
１３０、２３０  入力部
１４０、２４０  出力部
【図１】
2008041082.tif 000003
【図２】
2008041082.tif 000004
【図３】
2008041082.tif 000005
【図４】
2008041082.tif 000006
【図５】
2008041082.tif 000007
【図６】
2008041082.tif 000008
【図７】
2008041082.tif 000009
【図８】
2008041082.tif 000010
【図９】
2008041082.tif 000011
【図１０】
2008041082.tif 000012
【図１１】
2008041082.tif 000013
【図１２】
2008041082.tif 000014
【図１３】
2008041082.tif 000015
【図１４】
2008041082.tif 000016
【図１５】
2008041082.tif 000017
【図１６】
2008041082.tif 000018
【図１７】
2008041082.tif 000019
【図１８】
2008041082.tif 000020
【図１９】
2008041082.tif 000021
【図２０】
2008041082.tif 000022
【図２１】
2008041082.tif 000023
【図２２】
2008041082.tif 000024
【図２３】
2008041082.tif 000025
【図２４】
2008041082.tif 000026
【図２５】
2008041082.tif 000027
【図２６】
2008041082.tif 000028