(57)【特許請求の範囲】
【請求項１】
ツリー構造を有する形式でデータを記述する第１の情報を受信し、
前記第１の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第１の情報から前記第４の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第４の情報を生成する、
処理を情報処理装置に実行させることを特徴とするデータ処理プログラム。
【請求項２】
ツリー構造を有さない形式でデータを記述する第４の情報を受信し、
ツリー構造を有する形式でデータを記述する第１の情報のツリー構造上における前記データを含むノードへの経路と、前記第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第４の情報から前記第１の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第１の情報を生成する、
処理を情報処理装置に実行させることを特徴とするデータ処理プログラム。
【請求項３】
前記データ処理プログラムは、
前記ツリー構造における前記分岐ノードの階層の深さに応じて、前記第３の情報を生成する、
処理を実行させることを特徴とする請求項１および請求項２に記載のデータ処理プログラム。
【請求項４】
前記データ処理プログラムは、
前記分岐ノードが保持する子ノードの数に応じて、前記第３の情報を生成する、
処理を実行させることを特徴とする請求項１および請求項２に記載のデータ処理プログラム。
【請求項５】
制御部と記憶部を有する情報処理装置におけるデータ処理方法であって、
前記制御部は、
ツリー構造を有する形式でデータを記述する第１の情報を受信し、
前記第１の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、前記記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第１の情報から前記第４の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第４の情報を生成する、
ことを特徴とするデータ処理方法。
【請求項６】
制御部と記憶部を有する情報処理装置におけるデータ処理方法であって、
前記制御部は、
ツリー構造を有さない形式でデータを記述する第４の情報を受信し、
ツリー構造を有する形式でデータを記述する第１の情報のツリー構造上における前記データを含むノードへの経路と、前記第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、前記記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第４の情報から前記第１の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第１の情報を生成する、
ことを特徴とするデータ処理方法。
【請求項７】
制御部と記憶部を有する情報処理装置であって、
前記制御部は、
ツリー構造を有する形式でデータを記述する第１の情報を受信し、
前記第１の情報のツリー構造上における前記データを含むノードへの経路と、前記ツリー構造を有さない形式でデータを記述する第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、前記記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第１の情報から前記第４の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第４の情報を生成する、
ことを特徴とする情報処理装置。
【請求項８】
制御部と記憶部を有する情報処理装置であって、
前記制御部は、
ツリー構造を有さない形式でデータを記述する第４の情報を受信し、
ツリー構造を有する形式でデータを記述する第１の情報のツリー構造上における前記データを含むノードへの経路と、前記第４の情報における前記ノードに対応するデータとを対応付ける第２の情報を、前記記憶部から読出し、
前記第２の情報に基づいて、前記ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、
前記第２の情報と前記第３の情報に基づいて、前記第４の情報から前記第１の情報の形式に応じた所定の位置に設定する値を取得して配置し、前記第１の情報を生成する、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理プログラム、データ処理方法および情報処理装置に関する。
【背景技術】
【０００２】
従来から、データ交換などで用いられる言語としてＸＭＬ（eXtensible Markup Language）が知られている。
ＸＭＬは、データ交換に用いるデータ形式や、ツリー構造として表現できるデータを保存するための一般的な枠組みなどで利用されている。ツリー構造は、相互に階層的な関係を有するノードによって構成されるものである。
【０００３】
また、近年、ＸＭＬで作成された文書の特定の要素を指し示す記述方法を定めたＸＰａｔｈ（XML Path Language；ＸＭＬパス言語）が知られている。ＸＰａｔｈは、ＸＭＬで記述されたツリー構造を辿り文書中の要素や属性等にアクセスする手段である。
【０００４】
このような、ＸＰａｔｈを用いて、ＸＭＬで記述された文書を検索する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１７５０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＸＭＬは、ＰＣサーバとメインフレームとの間でデータ交換する際にも用いられる。ＸＭＬで記述されたツリー構造のデータを、メインフレームで用いるためには、ツリー構造のデータをメインフレームで用いられるデータ構造のデータ（フラット形式データ）にデータ変換することを要する。
【０００７】
データ変換において、ツリー構造のノードの値（以下、ノード値と表記）を取得しフラット形式データに設定することや、フラット形式データの値を取得しツリー構造のノードに設定することを要する。このため、データ変換においては、ツリー構造のノードにアクセスする頻度が高くなる。
【０００８】
ノードへアクセスするためには、ツリー構造における最上位のノードからアクセス対象のノードに至る経路（パス）を指定する。ツリー構造の階層が深くなるほどノード数が増加し、これに伴いパスの記述が長くなり、ノードのアクセスに時間を要し、データ変換の負荷を高める原因の１つとなっている。
【０００９】
一側面では、本発明は、データ変換の効率を向上できるデータ処理プログラム、データ処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、以下に示すようなデータ処理プログラムを提供する。
情報処理装置に処理を実行させるデータ処理プログラムは、ツリー構造を有する形式でデータを記述する第１の情報を受信し、第１の情報のツリー構造上におけるデータを含むノードへの経路と、ツリー構造を有さない形式でデータを記述する第４の情報におけるノードに対応するデータとを対応付ける第２の情報を、記憶部から読出し、第２の情報に基づいて、ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、第２の情報と第３の情報に基づいて、第１の情報から第４の情報の形式に応じた所定の位置に設定する値を取得して配置し、第４の情報を生成する。
【００１１】
情報処理装置に処理を実行させるデータ処理プログラムは、ツリー構造を有さない形式でデータを記述する第４の情報を受信し、ツリー構造を有する形式でデータを記述する第１の情報のツリー構造上におけるデータを含むノードへの経路と、第４の情報におけるノードに対応するデータとを対応付ける第２の情報を、記憶部から読出し、第２の情報に基づいて、ツリー構造を構成する最上位のノードから分岐ノードへの経路である第３の情報を生成し、第２の情報と第３の情報に基づいて、第４の情報から第１の情報の形式に応じた所定の位置に設定する値を取得して配置し、第１の情報を生成する。
【発明の効果】
【００１２】
一態様によれば、データ処理プログラム、データ処理方法および情報処理装置において、データ変換の効率を向上できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態の情報処理装置におけるデータ処理の一例を示す図である。
【図２】第２の実施形態のデータ処理システムの構成の一例を示す図である。
【図３】第２の実施形態の情報処理装置のハードウェア構成の一例を示す図である。
【図４】第２の実施形態のデータ交換のイメージの一例を示す図である。
【図５】第２の実施形態のデータ変換１のイメージの一例を示す図である。
【図６】第２の実施形態のデータ変換２のイメージの一例を示す図である。
【図７】第２の実施形態の構造化文書のイメージの一例を示す図である。
【図８】第２の実施形態のツリー形式データとフラット形式データのイメージの一例を示す図である。
【図９】第２の実施形態のマッピング情報のイメージの一例を示す図である。
【図１０】第２の実施形態のツリー形式オブジェクトモデルの一例を示す図である。
【図１１】第２の実施形態のフラット形式オブジェクトモデルの一例を示す図である。
【図１２】第２の実施形態のパスリストとオブジェクトテーブルの一例を示す図である。
【図１３】第２の実施形態のデータ変換処理１のフローチャートの一例である。
【図１４】第２の実施形態のパス解析処理１のフローチャートの一例である。
【図１５】第２の実施形態のデータ変換処理２のフローチャートの一例である。
【図１６】第２の実施形態のパス解析処理２のフローチャートの一例である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態の情報処理装置におけるデータ処理について図１を用いて説明する。図１は、第１の実施形態の情報処理装置におけるデータ処理の一例を示す図である。
【００１５】
情報処理装置１は、第１の情報６または第４の情報７を受信し、受信したデータのデータ構造を変換するプログラムが実行される情報処理装置である。
情報処理装置１は、制御部２と記憶部３を有する。制御部２は、情報処理装置１を制御するプロセッサなどである。記憶部３は、情報を記憶するメモリやディスクなどである。記憶部３は、予め第２の情報４が記憶されている。また、記憶部３は、第３の情報５を記憶する。
【００１６】
第１の情報６は、ツリー構造を有するデータであり、たとえば、ＸＭＬデータなどである。図１では、第１の情報６をメモリ展開したツリー構造のイメージを図示している。
第１の情報６は、最上位のノード「Ｒｏｏｔ」と、分岐ノード「Ａ」を含む。また分岐ノード「Ａ」は、２つの子ノード「Ｂ」と「Ｃ」を保持する。第２の情報４において、ツリー構造を構成する各ノードに至る経路は、記号「／」でノード名を繋げたパスで示す。たとえば、ノード「Ｂ」に至る経路は、「／Ｒｏｏｔ／Ａ／Ｂ」というパスで示す。パスは、ノードが保持する情報（ノード名、ノードの値、子ノードの数等）を取得するために、情報処理装置１がノードを指定する際に用いられる。
【００１７】
第４の情報７は、非ツリー構造を有するデータである。第４の情報７は、たとえば、メインフレームやデータベースなどで用いられるフラットな構造を有するデータであり、１以上のレコード（項目）を含む。図１では、第４の情報７をメモリ展開したフラット構造のイメージを図示している。第４の情報７は、値を保持する項目として項目「０１」と「０２」を有する。
【００１８】
第２の情報４は、データ構造が異なるデータ間においてデータ構造の変換をおこなうためのルールを定めた情報である。たとえば、第１の情報６に含まれるノードと第４の情報７に含まれる項目との対応関係を定めた情報である。
【００１９】
第３の情報５は、第２の情報４に含まれるパスを抽出した情報である。言い換えると、第３の情報５は、メモリ展開された第１の情報６にアクセスしやすくなるよう、第２の情報４に含まれる第１の情報６のパスを所定の条件で抽出し、抽出したパスを登録した情報である。
【００２０】
ここで、情報処理装置１が、受信した第１の情報６を第４の情報７にデータ形式を変換する処理について説明する。
まず、情報処理装置１は、第１の情報６を受信する。情報処理装置１は、受信した第１の情報６と対応する第２の情報４を読出す。情報処理装置１は、第２の情報４ａに含まれるパスと、前方一致するパスが第３の情報５に含まれているか否か検索する。第３の情報５の初期状態において、登録されているパスは存在せず、検索した結果、一致するパスは存在しない。
【００２１】
情報処理装置１は、一致するパスが存在しない場合、第２の情報４ａに含まれる第１の情報６のパスを解析する。
情報処理装置１は、パスを解析した結果、パスに分岐ノードが含まれる場合は、パスの最上位のノードから分岐ノードに至るパスを生成し、第３の情報５として記憶部３に記憶する。分岐ノードとは、複数の子ノードを保持するノードであり、言い換えると、ツリー構造における枝分かれする分岐点となるノードである。
【００２２】
第２の情報４ａに分岐ノード「Ａ」に至るパスが含まれているため、情報処理装置１は、最上位のノードから分岐ノード「Ａ」に至るパス「／Ｒｏｏｔ／Ａ」を生成し、第３の情報５ａとして設定する。
【００２３】
情報処理装置１は、第３の情報５ａと第２の情報４ａに基づき第１の情報６のノードを辿り、データ変換元のノード「Ｂ」の値を取得し、データ変換先の項目「０１」へ値を設定する。
【００２４】
次に、情報処理装置１は、第２の情報４ｂに含まれるパスと、前方一致するパスが第３の情報５に含まれているか否か検索する。
情報処理装置１は、第２の情報４ｂに含まれるパスと第３の情報５ａは「／Ｒｏｏｔ／Ａ」のパスが前方一致する。
【００２５】
情報処理装置１は、前方一致した第３の情報５ａのパス「／Ｒｏｏｔ／Ａ」と第２の情報４ｂに基づき、第３の情報５ａの末端のノード「Ａ」から順に第１の情報６のノードを辿り、データ変換元のノード「Ｃ」の値を取得し、データ変換先の項目「０２」へ値を設定する。
【００２６】
このようにして、情報処理装置１は、第２の情報４と第３の情報５に基づいて、第１の情報６から第４の情報７の形式に応じた所定の位置に設定する値を取得して配置し、第４の情報７を生成する、
次に、情報処理装置１が、受信した第４の情報７を第１の情報６にデータ形式を変換する処理について説明する。
【００２７】
まず、情報処理装置１は、第４の情報７を受信する。情報処理装置１は、受信した第４の情報７と対応する第２の情報４を読出す。
情報処理装置１は、第２の情報４ａに含まれるパスと、前方一致するパスが第３の情報５に含まれているか否か検索する。第３の情報５の初期状態において、登録されているパスは存在せず、検索した結果、一致するパスは存在しないと判定する。
【００２８】
情報処理装置１は、一致するパスが存在しない場合、第２の情報４ａに含まれる第１の情報６のパスを解析する。
情報処理装置１は、パスを解析した結果、パスに分岐ノードが含まれる場合は、パスの最上位のノードから分岐ノードに至るパスを生成し、第３の情報５として記憶部３に記憶する。
【００２９】
第２の情報４ａに分岐ノード「Ａ」に至るパスが含まれているため、情報処理装置１は、最上位のノードから分岐ノード「Ａ」に至るパス「／Ｒｏｏｔ／Ａ」を生成し、第３の情報５ａとして設定する。
【００３０】
情報処理装置１は、前方一致したパス（第３の情報５ａ）と第２の情報４ａに基づき、最上位のノードではなく、第３の情報５ａの末端のノード「Ａ」から順にノードを辿り、データ変換元の項目「０１」の値を取得し、データ変換先のノード「Ｂ」へ値を設定する。
【００３１】
情報処理装置１は、第２の情報４ｂに含まれるパスと、前方一致するパスが第３の情報５に含まれているか否か検索する。
情報処理装置１は、検索した結果、第２の情報４ｂに含まれるパスと第３の情報５ａは「／Ｒｏｏｔ／Ａ」のパスが前方一致すると判定する。
【００３２】
情報処理装置１は、前方一致したパス（第３の情報５ａ）と第２の情報４ｂに基づき、最上位のノードではなく、第３の情報５ａの末端のノード「Ａ」から順にノードを辿り、データ変換元の項目「０２」の値を取得し、データ変換先のノード「Ｃ」へ値を設定する。
【００３３】
このようにして、情報処理装置１は、第２の情報４と第３の情報５に基づいて、第４の情報７から第１の情報６の形式に応じた所定の位置に設定する値を取得して配置し、第１の情報６を生成する。
【００３４】
こうして、情報処理装置１は、ノードへのアクセスに用いられる頻度の高い分岐ノードへ至るパスを第３の情報５として生成し、第３の情報５を用いて第３の情報５に含まれる末端のノードへアクセスする。情報処理装置１は、第３の情報５に含まれる末端のノードを起点としてノードにアクセスできるため、最上位のノードから子ノードへと順にアクセスした場合に比較し、ノードへのアクセス効率を高めることができる。
【００３５】
なお、情報処理装置１は、ツリー構造における分岐ノードの階層の深さに応じて、第３の情報５を生成してもよい。たとえば、情報処理装置１は、第２の情報４に含まれるパスのうち、４階層以上の深さの分岐ノードに至るパスを第３の情報５として生成してもよい。
【００３６】
また、情報処理装置１は、分岐ノードが保持する子ノードの数に応じて、第３の情報５を生成してもよい。たとえば、情報処理装置１は、第２の情報４に含まれるパスのうち、３以上の子ノードを保持する分岐ノードに至るパスを第３の情報５として生成してもよい。
【００３７】
第１の情報６と第４の情報７のデータ構造の変換において、情報処理装置１は、第１の情報６のツリー構造を構成するノードの値を取得し、第４の情報７に設定することを要する。また、情報処理装置１は、第４の情報７の値を取得し、第１の情報６のツリー構造を構成するノードの値として設定することを要する。
【００３８】
このため、データ構造の変換において、情報処理装置１は、ツリー構造のパスを解析しノードにアクセスする頻度が高くなる。
情報処理装置１は、ノードへアクセスするためには、ツリー構造における最上位のノードからアクセス対象のノードに至る経路（パス）を辿ることを要する。ツリー構造の階層が深くなるほどノード数が増加し、これに伴いパスが長くなり、情報処理装置１は、ノードのアクセスに時間を要しデータ構造の変換の負荷を高める原因の１つとなっている。
【００３９】
情報処理装置１は、ノードへアクセスする利用頻度の高いパスや階層の深いパスなどを保持し、ノードへのアクセスの際に用いることで、ツリー構造のデータのノードにアクセスしやすくなり、データ構造の変換の効率を向上できる。
【００４０】
［第２の実施形態］
次に、第２の実施形態のデータ処理システムの構成について図２を用いて説明する。図２は、第２の実施形態のデータ処理システムの構成の一例を示す図である。
【００４１】
データ処理システム１１は、ネットワーク１２ａを介して接続した複数の企業システム１５ａ，１５ｂを備える。
企業システム１５ａは、１以上の情報処理装置１３ａを備える。企業システム１５ｂは、ネットワーク１２ｂを介して接続した情報処理装置１３ｂと、情報処理装置１３ｃと、記憶装置１４とを備える。
【００４２】
情報処理装置１３は、コンピュータであり、たとえば、ＷｅｂサーバやＰＣサーバやメインフレームやＤＢＭＳ（DataBase Management System）が稼働する計算機などを含む。また、記憶装置１４は、データを記憶する装置であり、たとえば、ＤＢ（DataBase）やＲＡＩＤ（Redundant Arrays of Independent Disks）装置などのストレージ装置を含む。
【００４３】
企業システム１５ａと企業システム１５ｂは、ネットワーク１２ａを介してデータを交換する。たとえば、企業システム１５ａにおける情報処理装置１３ａが送信したデータは、企業システム１５ｂにおける情報処理装置１３ｂによって受信される。
【００４４】
企業システム１５ｂにおいて、情報処理装置１３ｂが受信したデータは、ネットワーク１２ｂを介して情報処理装置１３ｃに送信される場合もあれば、記憶装置１４に記憶される場合もある。
【００４５】
企業システム１５ｂにおけるデータ交換のイメージに関して、図４を用いて後で説明する。
次に、第２の実施形態の情報処理装置のハードウェア構成について図３を用いて説明する。図３は、第２の実施形態の情報処理装置のハードウェア構成の一例を示す図である。
【００４６】
情報処理装置１３は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４７】
ＲＡＭ１０２は、情報処理装置１３の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００４８】
バス１０７に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、入出力信号インタフェース１０４、記憶媒体インタフェース１０５および通信インタフェース１０６がある。
【００４９】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読出しをおこなう。ＨＤＤ１０３は、情報処理装置１３の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００５０】
入出力信号インタフェース１０４には、入出力デバイス１０８が接続されている。入出力デバイス１０８は、入力デバイスと出力デバイスを含む。入力デバイスの一例として、キーボードや、マウスや、タッチパネルなどがある。また、出力デバイスの一例には、モニタや、液晶表示や、各種パネル表示装置などがある。
【００５１】
入出力信号インタフェース１０４は、キーボードやマウスから送られてくる信号をプロセッサ１０１に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５２】
入出力デバイス１０８の出力デバイスは、プロセッサ１０１からの命令にしたがって、画像をモニタ画面に表示させる。モニタとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５３】
記憶媒体インタフェース１０５は、磁気やレーザなどを利用して記憶媒体１０９に記録されたデータの読取りや書き込みをおこなう。また、記憶媒体インタフェース１０５は、半導体メモリなどの記憶媒体に記録されたデータの読取りをおこなうものであってもよい。記憶媒体１０９とは、たとえば、光ディスクや、フラッシュメモリなどの半導体メモリなどを含む。光ディスクは、光の反射によって読取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５４】
記憶媒体インタフェース１０５は、情報処理装置１３に周辺機器を接続するための通信インタフェースとしても用いることができる。たとえば、記憶媒体インタフェース１０５には、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、記憶媒体インタフェース１０５との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読出しをおこなう装置である。メモリカードは、カード型の記録媒体である。
【００５５】
通信インタフェース１０６は、ネットワーク１２に接続されている。通信インタフェース１０６は、ネットワーク１２を介して、他のコンピュータまたは通信機器との間でデータの送受信をおこなう。なお、ネットワーク１２は、有線ネットワークでもよいし、無線ネットワークでもよい。通信インタフェース１０６は、双方向デジタル通信を送受信可能なインタフェースでもよいし、一方向性の放送を受信可能なインタフェースでもよい。
【００５６】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。
なお、第１の実施の形態に示した情報処理装置１も、図３に示した情報処理装置１３と同様のハードウェアにより実現することができる。
【００５７】
情報処理装置１３は、たとえばコンピュータ読取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。情報処理装置１３に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、情報処理装置１３に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。また、情報処理装置１３に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読出して実行することもできる。
【００５８】
次に、第２の実施形態のデータ交換のイメージについて図４を用いて説明する。図４は、第２の実施形態のデータ交換のイメージの一例を示す図である。
図４は、情報処理装置１３ｂが、情報処理装置１３ａからデータを受信し、データ交換をする場合のイメージの一例である。
【００５９】
情報処理装置１３ｂは情報処理装置１３ａからデータを受信するサーバの役割を担い、情報処理装置１３ｃはメインフレームやＤＢＭＳなど従来から用いられている情報システムの役割を担う。
【００６０】
情報処理装置１３ｂは、情報処理装置１３ａとの間においてツリー形式データ１２１でデータ交換をおこなう。ツリー形式データ１２１は、たとえば、構造化文書データや、ＸＭＬなどのマークアップ言語で記述されたツリー構造のデータである。
【００６１】
情報処理装置１３ｂは、情報処理装置１３ｃとの間においてフラット形式データ１２３でデータ交換をおこなう。フラット形式データ１２３は、たとえば、メインフレームなどで用いられる形式のデータである。
【００６２】
ここで、情報処理装置１３ａから送信されたデータが、情報処理装置１３ｂを介して情報処理装置１３ｃに受信されるデータ交換の流れについて説明する。
情報処理装置１３ａは、ネットワーク１２ａを介して情報処理装置１３ｂにツリー形式データ１２１を送信する。
【００６３】
情報処理装置１３ｂは、受信したツリー形式データ１２１をフラット形式データ１２３にデータ形式を変換する処理をする。情報処理装置１３ｂは、ツリー形式データ１２１を中間データ１２２に変換し、中間データ１２２をフラット形式データ１２３に変換する。
【００６４】
情報処理装置１３ｂは、ネットワーク１２ｂを介して情報処理装置１３ｃに変換したフラット形式データ１２３を送信する。情報処理装置１３ｃは、フラット形式データ１２３を受信する。
【００６５】
ここで、情報処理装置１３ｃから送信されたデータが、情報処理装置１３ｂを介して情報処理装置１３ａに受信されるデータ交換の流れについて説明する。
情報処理装置１３ｃは、ネットワーク１２ｂを介して情報処理装置１３ｂにフラット形式データ１２３を送信する。
【００６６】
情報処理装置１３ｂは、受信したフラット形式データ１２３をツリー形式データ１２１にデータ形式を変換する処理をする。情報処理装置１３ｂは、フラット形式データ１２３を中間データ１２２に変換し、中間データ１２２をツリー形式データ１２１に変換する。
【００６７】
情報処理装置１３ｂは、ネットワーク１２ａを介して情報処理装置１３ａに変換したツリー形式データ１２１を送信する。情報処理装置１３ｃは、ツリー形式データ１２１を受信する。
【００６８】
このように、情報処理装置１３ｂは、データ交換において、ツリー形式データ１２１とフラット形式データ１２３とのデータ形式を変更する処理をおこなう。
次に、第２の実施形態のデータ変換１のイメージについて図５を用いて説明する。図５は、第２の実施形態のデータ変換１のイメージの一例を示す図である。
【００６９】
図５は、情報処理装置１３ｂにおいて、ツリー形式データ１２１ａが中間データ１２２ａを介してフラット形式データ１２３ａにデータ変換するイメージを示した一例である。
図５は、データ変換の過程（１２１ａ，１２２ａ，１２３ａ）と、処理の過程（Ｃ１３１）〜（Ｃ１３５）と、処理実行時に生成する管理情報（１５１，１５２）とを関連付けて示している。管理情報（１５１，１５２）は、パスリスト１５１とオブジェクトテーブル１５２を含む。
【００７０】
なお、図示していないが、情報処理装置１３ｂは、ツリー形式データ１２１ａに含まれるデータと、フラット形式データ１２３ａに含まれるデータとを対応付けたデータ変換アドレス情報を予め、たとえば、ＨＤＤ１０３に記憶している。
【００７１】
情報処理装置１３ｂは、ツリー形式データ１２１ａを識別情報とともに受信する（Ｃ１３１）。識別情報は、データの種別を識別する情報である。情報処理装置１３ａと情報処理装置１３ｂとの間では、各種データが送受信されており、送受信時のフォーマットはデータの種別ごとに異なる。情報処理装置１３ｂには、各種データに合わせたツリー形式およびフラット形式のフォーマットが識別情報に対応付けて記憶されている。
【００７２】
情報処理装置１３ｂは、受信したツリー形式データ１２１ａと識別情報に基づいて、中間データ１２２ａであるツリー形式オブジェクトを生成する。また、情報処理装置１３ｂは、データ変換先となるフラット形式オブジェクトを、予め記憶されているフォーマットと、識別情報とに基づいて生成する。
【００７３】
オブジェクトは、メモリ展開されアドレスパスが付される。なおツリー形式データ１２１ａの送信元である情報処理装置１３ａでは、予め決められたフォーマットに準拠してツリー形式データ１２１ａを生成するが、この際、必要のないデータなどを削除することができる。また、受信したツリー形式データ１２１ａを構成するノードには、値を保持しないノードが含まれる場合もある。このため、情報処理装置１３ｂは、ツリー形式データ１２１ａを受信するごとに、オブジェクトを生成し、アドレスパスを設定する必要がある（Ｃ１３２）。
【００７４】
中間データ１２２ａとしてオブジェクトを生成する方法として、たとえば、ＪＡＸＢ（Java（登録商標） Architecture for XML Binding）クラスのオブジェクトを用いる方法がある。情報処理装置１３ｂは、ＪＡＸＢクラスのオブジェクトを用いて、ツリー形式データ１２１ａであるＸＭＬデータから、中間データ１２２ａであるＪａｖａオブジェクトを生成できる。
【００７５】
なお、実施例においては、中間データ１２２であるオブジェクトは、オブジェクトモデルと受信したデータとに基づき生成されるものとする。オブジェクトモデルについては、図１０、図１１を用いて後で説明する。
【００７６】
情報処理装置１３ｂは、オブジェクトに付されたパスが、パスリスト１５１に存在するか否かを検索する（Ｃ１３３）。ツリー構造におけるデータ検索では、ツリー構造内の所望のノードへアクセスする際には、ツリー構造の最上位からパスに沿ってノードを順に辿っていく。ツリー構造が複雑で階層が深い場合、情報処理装置１３ｂは、パス検索に時間がかかる。これを解消するため、パスリスト１５１とオブジェクトテーブル１５２を用いてパスを辿りツリー構造のノードへのアクセス処理を効率化する。
【００７７】
パスリスト１５１は、ツリー形式データ１２１に基づきメモリ展開したツリー構造を検索しやすくするため、ツリー構造に含まれるノードのアドレスを示すパス（アドレスパス）を登録した情報である。パスリスト１５１は、図１２を用いて後で説明する。
【００７８】
オブジェクトテーブル１５２は、パスと当該パスの末端に位置するノードオブジェクトとを対応付けて登録した情報である。オブジェクトテーブル１５２には、ノードオブジェクトのメモリ上の位置を示す位置情報が含まれている。この位置情報に基づき、パスを辿らなくても、このノードオブジェクトに直接アクセスすることができる。オブジェクトテーブル１５２の詳細は、図１２を用いて後で説明する。
【００７９】
情報処理装置１３ｂは、検索したパスがパスリスト１５１に登録されていない場合、パスリスト１５１とオブジェクトテーブル１５２に登録する（Ｃ１３４）。次回からは、登録済みのパスリスト１５１とオブジェクトテーブル１５２を用いることで、情報処理装置１３ｂは、パス検索の効率を高めることができる。
【００８０】
情報処理装置１３ｂは、変換元のツリー形式オブジェクトから取得したノード値をフラット形式オブジェクトへ設定し（Ｃ１３５）、フラット形式データ１２３ａを生成する。このようにして情報処理装置１３ｂは、ツリー形式データ１２１ａからフラット形式データ１２３ａへデータ変換をおこなう。
【００８１】
なお、ツリー形式データ１２１ａからフラット形式データ１２３ａへのデータ形式変換処理は、後で図１３と図１４を用いて説明する。
次に、第２の実施形態のデータ変換２のイメージについて図６を用いて説明する。図６は、第２の実施形態のデータ変換２のイメージの一例を示す図である。
【００８２】
図６は、情報処理装置１３ｂにおいて、フラット形式データ１２３ｂが中間データ１２２ｂを介してツリー形式データ１２１ｂにデータ変換するイメージを示した一例である。
図６は、データ変換の過程（１２３ｂ，１２２ｂ，１２１ｂ）と、処理の過程（Ｃ１４１）〜（Ｃ１４５）と、処理で用いる管理情報（１５１，１５２）とを関連付けて示している。
【００８３】
情報処理装置１３ｂは、フラット形式データ１２３ｂを識別情報とともに受信する（Ｃ１４１）。
情報処理装置１３ｂは、受信したフラット形式データ１２３ｂと識別情報に基づいて、中間データ１２２ｂであるオブジェクトを生成する。情報処理装置１３ｂは、データ変換元である値を保持したフラット形式オブジェクトと、データ変換先となる最上位ノードのみを保持するツリー形式オブジェクトとを生成する。なお、最上位のノードの配下のノードは、フラット形式データ１２３ｂの項目の値をツリー形式オブジェクトに設定する際に、子ノードとして生成される。オブジェクトは、メモリ展開されアドレスパスが付される（Ｃ１４２）。
【００８４】
情報処理装置１３ｂは、オブジェクトに付加したパスが、パスリスト１５１に存在するか否かを検索する（Ｃ１４３）。
情報処理装置１３ｂは、パスリスト１５１とオブジェクトテーブル１５２に検索したパスが登録されていない場合、新たに登録する（Ｃ１４４）。次回からは、登録済みのパスリスト１５１とオブジェクトテーブル１５２を用いることで、情報処理装置１３ｂは、パス検索の速度を高めることができる。
【００８５】
情報処理装置１３ｂは、変換元のフラット形式オブジェクトから取得した値を中間データ１２２ｂであるツリー形式オブジェクトへ設定し（Ｃ１４５）、ツリー形式データ１２１ｂを生成する。このようにして情報処理装置１３ｂは、フラット形式データ１２３ｂからツリー形式データ１２１ｂへデータ変換をおこなう。
【００８６】
なお、フラット形式データ１２３ｂからツリー形式データ１２１ｂへのデータ形式変換処理は、後で図１５と図１６を用いて説明する。
次に、第２の実施形態の構造化文書のイメージについて図７を用いて説明する。図７は、第２の実施形態の構造化文書のイメージの一例を示す図である。
【００８７】
図７は、構造化文書のツリー構造イメージの一例を示す図であり、ＸＭＬデータを理解しやすくするための図である。図７に示す構造化文書は、企業システム１５ａ，１５ｂ間において、株や証券の売買などのために交換されるツリー形式データ１２１をイメージしたものである。
【００８８】
構造化文書におけるツリー構造の最上位のノード名は「ドキュメント」である。日本語のノード名に併記した英文字「Document」は、ＸＭＬデータでタグに用いるタグ名である。ノード名とタグ名は、１対１で対応する。図７の説明においては、構造化文書とＸＭＬデータとの関係が理解しやすいよう、日本語のノード名に英文字のタグ名を併記する。
【００８９】
最上位の「ドキュメント（Document）」ノードは、「照合データ（S-TradConf）」ノードと「取引者（ConfPties）」ノードの２つの子ノードを保持する。
「照合データ（S-TradConf）」ノードは、「約定照合キー（CmonId）」ノードと「約定データ（TradDtls）」ノードの２つの子ノードを保持するノードである。「約定照合キー（CmonId）」ノードは、ノード値「２００４０５０８１」を保持する末端のノードである。
【００９０】
「約定データ（TradDtls）」ノードは、「約定金額（Amt）」ノードと「銘柄コード（ISIN）」ノードの２つの子ノードを有する。「約定金額（Amt）」ノードは、ノード値「１３７０００」を保持する末端のノードである。「銘柄コード（ISIN）」ノードは、ノード値「ＪＰ１２３」を保持する末端のノードである。
【００９１】
「取引者（ConfPties）」ノードは、「買い手（Buyr）」ノードと「売り手（Sellr）」ノードの２つの子ノードを保持する。「買い手（Buyr）」ノードは、ノード値「Ｂ信託銀行」を保持する末端のノードである。「売り手（Sellr）」ノードは、ノード値「Ｃ証券会社」を保持する末端のノードである。
【００９２】
次に、第２の実施形態のツリー形式データとフラット形式データのイメージについて図８を用いて説明する。図８は、第２の実施形態のツリー形式データとフラット形式データのイメージの一例を示す図である。
【００９３】
図８（Ａ）は、図７に対応するツリー形式データの一例を示す図である。ツリー形式データは、ＸＭＬで記述されたＸＭＬデータである。ＸＭＬデータは、ＸＭＬデータ識別情報で識別され、ＨＤＤ１０３などの記憶部に記憶されるデータである。
【００９４】
図８（Ａ）は、図７のノード名と対応するタグで記載されている。たとえば、「Document」タグは、文書全体を囲むタグである。「S-TradConf」タグは、「S-TradConf」ノードの配下のノードを囲むタグである。「CmonId」タグは、ノード値「２００４０５０８１」を囲むタグである。「CmonId」タグを指定するパスは、「／Document／S-TradConf／CmonId」で表される。
【００９５】
なお、ＸＭＬデータ識別情報は、マッピング識別情報と、ツリー形式オブジェクト識別情報と、フラット形式オブジェクト識別情報とを対応付けてＨＤＤ１０３等の記憶部に記憶される。マッピング識別情報は、マッピング情報を識別する情報であり、図９を用いて後で説明する。ツリー形式オブジェクト識別情報は、ツリー形式オブジェクトモデルを識別する情報であり、図１０を用いて後で説明する。フラット形式オブジェクト識別情報は、フラット形式オブジェクトモデルを識別する情報であり、図１１を用いて後で説明する。
【００９６】
情報処理装置１３ｂは、受信したＸＭＬデータを識別するＸＭＬデータ識別情報に対応する識別情報（マッピング識別情報、ツリー形式オブジェクト識別情報、フラット形式オブジェクト識別情報）を読出す。情報処理装置１３ｂは、読出した識別情報に基づき、ツリー形式オブジェクトとフラット形式オブジェクトとを生成し、マッピング情報を対応付ける。
【００９７】
図８（Ｂ）は、フラット形式データ１２３の一例である。フラット形式データ１２３は、項目名とフラット形式データの値とが対応したものを１以上ストリーム出力したデータである。
【００９８】
たとえば、フラットデータ項目名「０１０１」とフラット形式データの値「２００４０５０８１」は対応している。
マッピング情報に基づき、フラットデータ項目名とフラット形式データの値とを対応させたものをストリーム出力することで一連のデータにし、フラット形式データ１２３が生成される。
【００９９】
また、フラット形式データ１２３は、フラットデータ項目名とフラット形式データの値だけではなく、データを管理するための情報も含むが、図では省略する。
また、フラット形式データ１２３は、フラット形式データ識別情報で識別される。なお、フラット形式データ識別情報は、マッピング識別情報と、ツリー形式オブジェクト識別情報と、フラット形式オブジェクト識別情報とを対応付けてＨＤＤ１０３等の記憶部に記憶される。マッピング識別情報は、マッピング情報を識別する情報であり、図９を用いて後で説明する。ツリー形式オブジェクト識別情報は、ツリー形式オブジェクトモデルを識別する情報であり、図１０を用いて後で説明する。フラット形式オブジェクト識別情報は、フラット形式オブジェクトモデルを識別する情報であり、図１１を用いて後で説明する。
【０１００】
情報処理装置１３ｂは、受信したフラット形式データ１２３を識別するＸＭＬデータ識別情報に対応する識別情報（マッピング識別情報、ツリー形式オブジェクト識別情報、フラット形式オブジェクト識別情報）を読出す。情報処理装置１３ｂは、読出した識別情報に基づき、ツリー形式オブジェクトとフラット形式オブジェクトとを生成し、マッピング情報を対応付ける。
【０１０１】
次に、第２の実施形態のマッピング情報のイメージについて図９を用いて説明する。図９は、第２の実施形態のマッピング情報のイメージの一例を示す図である。
図９は、ツリー形式データ１２１とフラット形式データ１２３とを対応付けるためのマッピング情報の一例である。マッピング情報は、マッピング識別情報で識別される情報であり、ＨＤＤ１０３などの記憶部に予め記憶される。
【０１０２】
マッピング情報は、ツリー形式データ１２１のパスとフラット形式データ１２３のフラットデータ項目名とを１対１で対応付けた情報や、フラット形式データ１２３の値を設定するためのデータ長などを含む情報である。
【０１０３】
たとえば、パス「／Document／S-TradConf／CmonId」は、フラット形式データの項目名「０１０１」と対応付けられている。データ長に関しては、図示を略す。
次に、第２の実施形態のツリー形式オブジェクトモデルについて図１０を用いて説明する。図１０は、第２の実施形態のツリー形式オブジェクトモデルの一例を示す図である。
【０１０４】
図１０で示したオブジェクトモデルは、中間データ１２２であるオブジェクトを生成するために用いられる、オブジェクトのフォーマット（ひな型）である。
オブジェクトを生成する方法として、たとえば、ＪＡＸＢクラスに基づいてオブジェクトを生成する方法がある。実施例においては、中間データ１２２であるオブジェクトは、オブジェクトモデルと受信したデータに基づき生成されるものとする。
【０１０５】
オブジェクトを生成することにより、情報処理装置１３ｂは、データ変換のために要するメモリ領域の確保や、データ構造の設定などができる。
図１０は、ツリー形式オブジェクトモデルである。ツリー形式オブジェクトモデルは、中間データ１２２ｂであるツリー形式オブジェクトを生成するためのフォーマットである。ツリー形式オブジェクトモデルは、ツリー形式オブジェクトモデル識別情報で識別され、ＨＤＤ１０３などの記憶装置に予め記憶される。
【０１０６】
ツリー形式オブジェクトモデルは、ノードオブジェクトがツリー構造を有するオブジェクトモデルである。
ノードオブジェクトは、ツリー形式オブジェクトにおける個々の要素であり、ノードに関する情報を保持するオブジェクトである。ノードに関する情報とは、ノードオブジェクトのツリー構造を示す情報（ノードオブジェクトの階層構造を示すポインタ情報等）、ノードオブジェクトが保持するメモリ領域に関する情報がある。また、ノードオブジェクトが保持するメモリ領域に設定する値に関する情報、ノードオブジェクトの名前などの情報も含む。
【０１０７】
図１０において、横長の長方形でノードオブジェクトを示し、ノードオブジェクトを繋ぐ線でツリー構造を示している。ノードオブジェクトを繋ぐ線の端部に付した白抜き菱形は、親ノードとなるノードオブジェクトに付される記号である。ノードオブジェクトの名前は、「NodeName＝ノードオブジェクト名」で示す。ノードオブジェクトが保持するデータ種別は、「Data＝データ種別」で示す。
【０１０８】
たとえば、S-TradConfノードオブジェクトは、CmonIdノードオブジェクトとTradDtlsノードオブジェクトの２つの子ノードオブジェクトを保持する。CmonIdノードオブジェクトは、文字列データをノードオブジェクトの値として設定される。
【０１０９】
次に、第２の実施形態のフラット形式オブジェクトモデルについて図１１を用いて説明する。図１１は、第２の実施形態のフラット形式オブジェクトモデルの一例を示す図である。
【０１１０】
図１１で示したフラット形式オブジェクトモデルは、中間データ１２２であるオブジェクトを生成するために用いられる、オブジェクトのフォーマット（ひな型）である。
図１１は、フラット形式オブジェクトモデルである。フラット形式オブジェクトモデルは、中間データ１２２ａであるフラット形式オブジェクトを生成するためのフォーマットである。フラット形式オブジェクトモデルは、フラット形式オブジェクトモデル識別情報で識別され、ＨＤＤ１０３などの記憶装置に予め記憶される。
【０１１１】
フラット形式オブジェクトモデルは、フラットデータオブジェクトがフラット構造を有するオブジェクトモデルである。
フラットデータオブジェクトは、フラット形式オブジェクトにおける個々の要素であり、フラット形式データの値を保持するオブジェクトである。フラットデータに関する情報には、フラットデータのフラット構造を示す情報（データを連結するポインタ情報等）、フラットデータオブジェクトが保持するメモリ領域に関する情報などがある。また、フラットデータオブジェクトが保持するメモリ領域に設定する値に関する情報、フラットデータオブジェクトの項目名などの情報も含む。
【０１１２】
図１１において、横長の長方形でフラットデータオブジェクトを示し、オブジェクトを繋ぐ線でデータ構造を示す。フラットデータオブジェクトの項目名は、「FlatField＝フラットデータオブジェクト名」で示す。フラットデータオブジェクトが保持するデータの種別は、「Data＝データ種別」で示す。
【０１１３】
たとえば、項目名「０１０１」フラットデータオブジェクトは、情報処理装置１３ｂによって、文字列データをフラットデータオブジェクトの値として設定される。
なお、フラットデータオブジェクトは、図１０と異なり、ツリー構造ではなく、フラットデータが順に連結した構造をとる。このため、最上位（FlatRecordAccess0123）のオブジェクトは、全てのフラットデータオブジェクトを包含し、フラットデータオブジェクト間で階層構造（ツリー構造）は有さない。
【０１１４】
図１０と図１１のオブジェクトモデルから生成されたオブジェクトは、図９のマッピング情報で対応付けられるものである。たとえば、図１０のツリー形式オブジェクトモデルに含まれる各ノードオブジェクトに至るパスは、図９のマッピング情報に含まれるパスと対応している。また、図１１のフラット形式オブジェクトモデルに含まれるフラットデータオブジェクトの項目名は、マッピング情報に含まれるフラットデータ項目名である。
【０１１５】
図１０および図１１のオブジェクトモデルに基づいて生成されたオブジェクトに対して、図９のマッピング情報で対応付けることにより、フラットデータオブジェクトとノードオブジェクトが１対１で対応する。
【０１１６】
次に、第２の実施形態のパスリストとオブジェクトテーブルについて図１２を用いて説明する。図１２は、第２の実施形態のパスリストとオブジェクトテーブルの一例を示す図である。
【０１１７】
パスリスト１５１とオブジェクトテーブル１５２は、情報処理装置１３ｂにおいてデータ変換をおこなう際に用いられる情報であり、ＨＤＤ１０３などの記憶装置に記憶される。
【０１１８】
図１２（Ａ）は、パスリスト１５１の一例である。パスリスト１５１は、ツリー形式データ１２１に基づきメモリ展開したツリー構造を検索しやすくするため、ツリー構造に含まれるノードのパスを登録した情報である。
【０１１９】
パスリスト１５１には、情報処理装置１３ｂが受信したツリー形式データ１２１をメモリ展開した情報に基づき、パスが登録される。
パスリスト１５１に登録されるパスとして選定されるパスは、ツリー構造へのアクセス効率を高めるために効果のあるパスである。たとえば、子ノードを複数保持するノードに至るパスがパスリスト１５１に登録される。
【０１２０】
また、パスリスト１５１に登録するノード数が増加すると、情報処理装置１３ｂにおいて登録されたノード数に応じて検索に要する負荷が高くなる。このため、パスリスト１５１には、アクセスに効果の高いパス（分岐ノードに至るパス）を選定して登録する。また、検索する効率が高まるよう、パスリスト１５１に登録されたパスをソートして管理する。また、パスリスト１５１に登録するパスは、ノードが保持する子ノードの数や、パスの階層の深さなどに応じて選定してもよい。
【０１２１】
図１２（Ａ）のパスリスト１５１には、３つのパスが登録されている。３つのパスは、「／Document／S-TradConf」、「／Document／S-TradConf／TradDtls」、「／Document／ConfPties」である。これらのパスは、ツリー形式データ１２１である図８（Ａ）のＸＭＬデータをメモリ展開した場合における、分岐ノード（S-TradConfノード、TradDtlsノード、ConfPtiesノード）に至るパスである。
【０１２２】
なお、図８（Ａ）に示したＸＭＬデータの例において、ツリー構造における分岐ノードが有する子ノードの数は最大でノード数２であるが、企業システム１５ａ，１５ｂにおけるデータ交換においては数十以上の多数の子ノードを有する分岐ノードも存在し得る。
【０１２３】
また、図８（Ａ）に示したＸＭＬデータの例において、ツリー構造における階層の深さは、最上位ノード（Documentノード）を０階層として数えた場合、３階層（Amtノード、ISINノード）が階層の最大深さである。しかし、企業システム１５ａ，１５ｂにおけるデータ交換においては、数十階層以上の深い階層を有するツリー構造も存在し得る。
【０１２４】
ツリー構造において、階層が深いノードは、子ノードが少ない場合でも、パスリスト１５１に保持する効果がある。ツリー構造の階層が深いノードにアクセスするには、ツリーの最上位から順にノードを辿ることになるため、ノードの階層の深さに応じてアクセスに時間を要するためである。
【０１２５】
しかし、階層が浅いノードにアクセスする場合はアクセスにさほど時間を要しないため、子ノードの数が少なく浅いノードであればアクセス負荷よりも検索負荷のほうが高くなる可能性がある。
【０１２６】
これらのことを踏まえ、情報処理装置１３ｂは、分岐ノードに至るパスをパスリスト１５１に登録する。また、情報処理装置１３ｂは、パスを保持する条件を階層に応じて変更し、検索の負荷と、アクセスの負荷とのバランスを取る。
【０１２７】
図１２（Ｂ）は、オブジェクトテーブル１５２の一例である。オブジェクトテーブル１５２は、パスリストに登録されたパスと当該パスの末端に位置するノードオブジェクトとを対応付けて登録した情報である。
【０１２８】
オブジェクトテーブル１５２は、分岐ノードのノードオブジェクトを取得するために用いられる情報である。オブジェクトテーブル１５２を用いて分岐ノードを取得することにより、情報処理装置１３ｂは、階層が深いノードへのアクセスを早めることができる。
【０１２９】
オブジェクトテーブル１５２は、パスとノードオブジェクトとを対応付けた情報である。たとえば、パス「／Document／S-TradConf」に対しては、S-TradConfノードのノードオブジェクトが格納される。
【０１３０】
ノードオブジェクトは、ノード名、ノードのメモリアドレス、ノード値、子ノードについての情報を含む。なおこれは一例であり、必要に応じてノードオブジェクトに、ノードオブジェクトが保持するメモリ領域に関する情報などを記憶してもよい。
【０１３１】
次に、第２の実施形態のデータ変換処理１について図１３を用いて説明する。図１３は、第２の実施形態のデータ変換処理１のフローチャートの一例である。
データ変換処理１は、情報処理装置１２ｂがツリー形式データ１２１を受信し、フラット形式データ１２３へデータ変換し、フラット形式データ１２３を送信する処理である。情報処理装置１３ｂのプロセッサ１０１は、ツリー形式データ１２１を受信した場合に、データ変換処理１を実行する。
【０１３２】
［ステップＳ１１］プロセッサ１０１は、ツリー形式データ１２１およびデータ識別情報を受信する。ツリー形式データ１２１は、たとえば、図８（Ａ）で示したＸＭＬデータである。データ識別情報とは、たとえば、ＸＭＬデータ識別情報であり、ＸＭＬデータを識別するための情報である。
【０１３３】
［ステップＳ１２］プロセッサ１０１は、受信したデータ識別情報に基づき、中間データ１２２を生成するために用いるオブジェクトモデルを決定する。たとえば、図１０（Ａ）（Ｂ）で示したフラット形式オブジェクトモデルが決定される。
【０１３４】
［ステップＳ１３］プロセッサ１０１は、オブジェクトモデルに基づき、オブジェクトを生成する。
プロセッサ１０１は、受信したツリー形式データ１２１に対応するツリー形式オブジェクトと、データ変換先であるフラット形式データ１２３に対応するフラット形式オブジェクトとを生成する。
【０１３５】
プロセッサ１０１は、ツリー形式オブジェクトモデルに基づき、受信したツリー形式データ１２１の値が設定されたツリー形式オブジェクトを生成する。プロセッサ１０１は、フラット形式オブジェクトモデルに基づき、値が設定されていないフラット形式オブジェクトを生成する。
【０１３６】
［ステップＳ１４］プロセッサ１０１は、マッピング情報を用いて、オブジェクトを対応付ける。言い換えると、プロセッサ１０１は、ツリー形式オブジェクトに含まれる個々のノードオブジェクトとフラット形式オブジェクトに含まれる個々のフラットデータオブジェクトとをマッピング情報で対応付ける。
【０１３７】
プロセッサ１０１は、生成したフラットデータオブジェクトに、マッピング情報に基づいてアドレスパスを付する。
［ステップＳ１５］プロセッサ１０１は、パス解析処理１を実行する。パス解析処理１は、フラットデータオブジェクトに設定されたアドレスパスを解析し、フラットデータオブジェクトに値を設定する処理である。パス解析処理１は、図１４を用いて後で説明する。
【０１３８】
［ステップＳ１６］プロセッサ１０１は、処理対象のフラットデータオブジェクトが有るか否かを判定する。言い換えると、パス解析処理が済んでいないフラットデータオブジェクトの有無を判定する。
【０１３９】
プロセッサ１０１は、処理対象のフラットデータオブジェクトが有ると判定した場合はステップＳ１５にもどり、処理対象のフラットデータオブジェクトが無いと判定した場合はステップＳ１７にすすむ。
【０１４０】
［ステップＳ１７］プロセッサ１０１は、フラットデータオブジェクトをストリーム出力し、一連のフラット形式データ１２３を生成する。
［ステップＳ１８］プロセッサ１０１は、生成したフラット形式データ１２３を送信し、処理を終了する。
【０１４１】
次に、第２の実施形態のパス解析処理１のフローチャートについて図１４を用いて説明する。図１４は、第２の実施形態のパス解析処理１のフローチャートの一例である。
パス解析処理１は、フラットデータオブジェクトに設定されたアドレスパスを解析し、条件に応じて、パスリスト１５１とオブジェクトテーブル１５２にパスを登録し、フラットデータオブジェクトに値を設定する処理である。パス解析処理１は、データ変換処理１のステップＳ１５で、情報処理装置１３ｂのプロセッサ１０１が実行する処理である。
【０１４２】
［ステップＳ２１］プロセッサ１０１は、フラットデータオブジェクトに付したアドレスパスと前方一致するパスが、パスリスト１５１に存在するか検索する。
なお、プロセッサ１０１は、パスを検索するためにＪａｖａの関数を用いることができる。
【０１４３】
［ステップＳ２２］プロセッサ１０１は、検索結果に基づき、パスリスト１５１にフラットデータオブジェクトに付したアドレスパスと前方一致するパスが有るか否かを判定する。
【０１４４】
なお、前方一致するパスがパスリスト１５１に複数存在する場合、プロセッサ１０１は、階層が深い（パスに含まれるノード数が多い）パスを、前方一致したパスとする。
プロセッサ１０１は、前方一致するパスがパスリスト１５１に無い場合はステップＳ２３にすすみ、有る場合はステップＳ２４にすすむ。
【０１４５】
［ステップＳ２３］プロセッサ１０１は、フラットデータオブジェクトに付したアドレスパスの最上位を対象とするパス（以下、対象パスと表記）とし、パスの最上位のノードを対象とするノード（以下、対象ノードと表記）とする。
【０１４６】
［ステップＳ２４］プロセッサ１０１は、オブジェクトテーブル１５２から前方一致したパスと当該パスの末端に対応するノードのノードオブジェクトを取得する。
プロセッサ１０１は、前方一致したパスを対象パスとし、対象パスの末端のノードを対象ノードとする。
【０１４７】
［ステップＳ２５］プロセッサ１０１は、対象ノードのノードオブジェクト（以下、対象ノードオブジェクトと表記）がパスリスト１５１に登録するための条件（以下、登録条件と表記）を満たすか否かを判定する。
【０１４８】
登録条件は、システム管理者が設定してもよいし、予めＨＤＤ１０３などの記憶装置に記憶してもよい。また、登録条件は、１つの登録条件を設定してもよいし、複数の登録条件を設定してもよい。
【０１４９】
登録条件の具体例１としては、たとえば、対象ノードオブジェクトが分岐ノードであること、言い換えると、複数の子ノードを保持するノードであることである。分岐ノードに至るまでのパスをパスリスト１５１に登録することで、情報処理装置１３ｂは、利用頻度が高いパスをパスリスト１５１に登録することができる。
【０１５０】
また、登録条件の具体例２としては、たとえば、対象ノードオブジェクトが保持する子ノードの数が閾値（子ノード閾値）以上であることである。対象ノードオブジェクトが保持する子ノードの数が多いほど、当該対象ノードオブジェクトに至るパスは利用頻度が高いパスである蓋然性が高いためである。また、保持する子ノードの数が少ないノードに至るパスをも含めて、全てのパスを登録すると、パスリスト１５１を検索する負荷が高くなる。検索負荷が高くなることを回避し、パスリスト１５１に登録するパスを選別するために有効である。
【０１５１】
また、登録条件の具体例３としては、対象ノードオブジェクトがツリー構造において深い階層に位置すること、言い換えると、階層が深いパス（階層閾値以上のパス）に位置することである。情報処理装置１３ｂがパス検索に要する負荷は、階層数に応じて高くなる。このため、対象ノードオブジェクトが保持する子ノード数が少なくとも階層が深い場合には、パス検索の効率を高めるためパスリスト１５１に登録する。
【０１５２】
なお、プロセッサ１０１は、ノードオブジェクトが保持する情報を取得するために、Ｊａｖａや、ＤＯＭ（Document Object Model）の関数（getChildNodes）などを用いることができる。
【０１５３】
［ステップＳ２６］プロセッサ１０１は、対象ノードに至るパスについてパスリスト１５１に登録が有るか否かを判定する。プロセッサ１０１は、登録が有る場合はステップＳ２９にすすみ、登録が無い場合はステップＳ２７にすすむ。
【０１５４】
［ステップＳ２７］プロセッサ１０１は、パスリスト１５１に対象パスを登録する。
［ステップＳ２８］プロセッサ１０１は、オブジェクトテーブル１５２に対象パスと対象ノードオブジェクトとを登録する。
【０１５５】
［ステップＳ２９］プロセッサ１０１は、対象ノードがフラットデータオブジェクトに付したアドレスパスの末端のノードか否かを判定する。
プロセッサ１０１は、対象ノードが末端のノードでない場合はステップＳ３２にすすみ、末端のノードである場合はステップＳ３０にすすむ。
【０１５６】
［ステップＳ３０］プロセッサ１０１は、対象ノードにノード値が有るか否かを判定する。
プロセッサ１０１は、対象ノードオブジェクトにノード値が有る場合はステップＳ３１にすすみ、ノード値が無い場合は処理を終了する。
【０１５７】
［ステップＳ３１］プロセッサ１０１は、対象ノードオブジェクトに対応するフラットデータオブジェクトに対して、対象ノードオブジェクトのノード値を設定する。言い換えると、プロセッサ１０１は、空であったフラットデータオブジェクトのメモリ領域に、値を設定する。
【０１５８】
［ステップＳ３２］プロセッサ１０１は、対象ノードに子ノードが有るか否かを判定する。
プロセッサ１０１は、対象ノードオブジェクトに子ノードが有る場合はステップＳ３３にすすみ、無い場合は処理を終了する。
【０１５９】
［ステップＳ３３］プロセッサ１０１は、対象ノードの子ノードを対象ノードとし、子ノードに至るパスを対象パスとし、ステップＳ２５にもどる。
このようにして、情報処理装置１３ｂは、受信したツリー形式データ１２１を解析し、使用頻度の高いパスや階層の深いパスを登録し、登録したパスをフラット形式データ１２３へデータ変換をおこなう際に用いてパス検索の効率を高める。これにより、情報処理装置１３ｂは、フラット形式データ１２３を扱うメインフレームなどのシステムに対し、速やかにデータ変換をおこなうことができる。
【０１６０】
次に、第２の実施形態のデータ変換処理２のフローチャートについて図１５を用いて説明する。図１５は、第２の実施形態のデータ変換処理２のフローチャートの一例である。
データ変換処理２は、情報処理装置１２ｂがフラット形式データ１２３を受信し、ツリー形式データ１２１へデータ変換し、ツリー形式データ１２１を送信する処理である。情報処理装置１３ｂのプロセッサ１０１は、フラット形式データ１２３を受信した場合に、データ変換処理２を実行する。
【０１６１】
［ステップＳ４１］プロセッサ１０１は、フラット形式データ１２３およびデータ識別情報を受信する。フラット形式データ１２３は、たとえば、図８（Ｂ）で示したデータである。データ識別情報とは、たとえば、フラット形式データ識別情報であり、フラット形式データを識別するための情報である。
【０１６２】
［ステップＳ４２］プロセッサ１０１は、受信したデータ識別情報に基づき、中間データ１２２を生成するために用いるオブジェクトモデルを決定する。
［ステップＳ４３］プロセッサ１０１は、オブジェクトモデルに基づき、オブジェクトを生成する。
【０１６３】
プロセッサ１０１は、受信したフラット形式データ１２３に対応するフラット形式オブジェクトと、データ変換先であるツリー形式データ１２１に対応するツリー形式オブジェクトとを生成する。
【０１６４】
プロセッサ１０１は、フラット形式オブジェクトモデルに基づき、受信したフラット形式データ１２３の値が設定されたフラット形式オブジェクトを生成する。
プロセッサ１０１は、ツリー形式オブジェクトモデルに基づき、最上位ノードオブジェクトのみを保持するツリー形式オブジェクトを生成する。
【０１６５】
［ステップＳ４４］プロセッサ１０１は、マッピング情報を用いて、オブジェクトを対応付ける。言い換えると、プロセッサ１０１は、フラット形式オブジェクトに含まれる個々のフラットデータオブジェクトをマッピング情報で対応付ける。
【０１６６】
プロセッサ１０１は、生成したフラットデータオブジェクトに、マッピング情報に基づいてアドレスパスを付する。
［ステップＳ４５］プロセッサ１０１は、パス解析処理２を実行する。パス解析処理２は、フラットデータオブジェクトに設定されたアドレスパスを解析し、ノードオブジェクトに値を設定する処理である。パス解析処理２は、図１６を用いて後で説明する。
【０１６７】
［ステップＳ４６］プロセッサ１０１は、処理対象のフラットデータオブジェクトが有るか否かを判定する。言い換えると、パス解析処理２が済んでいないフラットデータオブジェクトの有無を判定する。
【０１６８】
プロセッサ１０１は、処理対象のフラットデータオブジェクトが有ると判定した場合はステップＳ４５にもどり、処理対象のフラットデータオブジェクトが無いと判定した場合はステップＳ４７にすすむ。
【０１６９】
［ステップＳ４７］プロセッサ１０１は、ノードオブジェクトをツリー形式データとしてストリーム出力しツリー形式データ１２１を生成する。
［ステップＳ４８］プロセッサ１０１は、生成したツリー形式データ１２１を送信し、処理を終了する。
【０１７０】
次に、第２の実施形態のパス解析処理２のフローチャートについて図１６を用いて説明する。図１６は、第２の実施形態のパス解析処理２のフローチャートの一例である。
パス解析処理２は、フラットデータオブジェクトに設定されたアドレスパスを解析し、ノードオブジェクトに値を設定する処理である。パス解析処理２は、データ変換処理２のステップＳ４５で、情報処理装置１３ｂのプロセッサ１０１が実行する処理である。
【０１７１】
［ステップＳ５０］プロセッサ１０１は、フラットデータオブジェクトに値が設定されているか否かを判定する。
なお、フラットデータオブジェクトに値が設定されていない場合とは、たとえば、対応するメモリ領域に空白やヌル（０）が設定されている場合である。値が設定されていない場合、プロセッサ１０１は、ノードオブジェクトに値を設定しない。
【０１７２】
プロセッサ１０１は、フラットデータオブジェクトに値が設定されている場合はステップＳ５１にすすみ、設定されていない場合は処理を終了する。
［ステップＳ５１］プロセッサ１０１は、フラットデータオブジェクトに付したアドレスパスと前方一致するパスが、パスリスト１５１に存在するか検索する。
【０１７３】
なお、プロセッサ１０１は、パスを検索するためにＪａｖａの関数を用いることができる。
［ステップＳ５２］プロセッサ１０１は、検索結果に基づき、パスリスト１５１にフラットデータオブジェクトに付したアドレスパスと前方一致するパスが有るか否かを判定する。
【０１７４】
なお、前方一致するパスがパスリスト１５１に複数存在する場合、プロセッサ１０１は、階層が深い（パスに含まれるノード数が多い）パスを、前方一致したパスとする。
プロセッサ１０１は、前方一致するパスがパスリスト１５１に無い場合はステップＳ５３にすすみ、有る場合はステップＳ５４にすすむ。
【０１７５】
［ステップＳ５３］プロセッサ１０１は、フラットデータオブジェクトに付したアドレスパスの最上位を対象とするパスとし、パスの最上位のノードを対象とするノードとする。
【０１７６】
［ステップＳ５４］プロセッサ１０１は、オブジェクトテーブル１５２から前方一致したパスと当該パスの末端に対応するノードのノードオブジェクトを取得する。
プロセッサ１０１は、前方一致したパスを対象パスとし、対象パスの末端のノードを対象ノードとする。
【０１７７】
［ステップＳ５５］プロセッサ１０１は、対象ノードのノードオブジェクトがパスリスト１５１に登録するための条件（以下、登録条件と表記）を満たすか否かを判定する。
登録条件は、システム管理者が設定してもよいし、予めＨＤＤ１０３などの記憶装置に記憶してもよい。また、登録条件は、１つの登録条件を設定してもよいし、複数の登録条件を設定してもよい。
【０１７８】
登録条件の具体例１としては、たとえば、対象ノードオブジェクトが分岐ノードであること、言い換えると、複数の子ノードを保持するノードであることである。分岐ノードに至るまでのパスをパスリスト１５１に登録することで、情報処理装置１３ｂは、利用頻度が高いパスをパスリスト１５１に登録することができる。
【０１７９】
また、登録条件の具体例２としては、たとえば、対象ノードオブジェクトが保持する子ノードの数が閾値（子ノード閾値）以上であることである。対象ノードオブジェクトが保持する子ノードの数が多いほど、当該対象ノードオブジェクトに至るパスは利用頻度が高いパスである蓋然性が高いためである。また、保持する子ノードの数が少ないノードに至るパスをも含めて、全てのパスを登録すると、パスリスト１５１を検索する負荷が高くなる。検索負荷が高くなることを回避し、パスリスト１５１に登録するパスを選別するために有効である。
【０１８０】
また、登録条件の具体例３としては、対象ノードオブジェクトがツリー構造において深い階層に位置すること、言い換えると、階層が深いパス（階層閾値以上のパス）に位置することである。情報処理装置１３ｂがパス検索に要する負荷は、階層数に応じて高くなる。このため、対象ノードオブジェクトが保持する子ノード数が少なくとも階層が深い場合には、パス検索の効率を高めるためパスリスト１５１に登録する。
【０１８１】
なお、プロセッサ１０１は、ノードオブジェクトが保持する情報を取得するために、Ｊａｖａや、ＤＯＭの関数などを用いることができる。
［ステップＳ５６］プロセッサ１０１は、対象ノードに至るパスについてパスリスト１５１に登録が有るか否かを判定する。プロセッサ１０１は、登録が有る場合はステップＳ５９にすすみ、登録が無い場合はステップＳ５７にすすむ。
【０１８２】
［ステップＳ５７］プロセッサ１０１は、パスリスト１５１に対象パスを登録する。
［ステップＳ５８］プロセッサ１０１は、オブジェクトテーブル１５２に対象パスと対象ノードオブジェクトとを登録する。
【０１８３】
［ステップＳ５９］プロセッサ１０１は、対象ノードがフラットデータオブジェクトに付したアドレスパスの末端のノードか否かを判定する。
プロセッサ１０１は、対象ノードが末端のノードでない場合はステップＳ６１にすすみ、末端のノードである場合はステップＳ６０にすすむ。
【０１８４】
［ステップＳ６０］プロセッサ１０１は、対象ノードオブジェクトに対応するフラットデータオブジェクトから値を取得し、対象ノードオブジェクトのノード値として設定する。言い換えると、プロセッサ１０１は、空であったノードオブジェクトのメモリ領域に、値を設定する。
【０１８５】
［ステップＳ６１］プロセッサ１０１は、対象ノードに子ノードを生成する。
［ステップＳ６２］プロセッサ１０１は、対象ノードの子ノードを対象ノードとし、子ノードに至るパスを対象パスとし、ステップＳ５５にもどる。
【０１８６】
このようにして、情報処理装置１３ｂは、データ変換の対象となるツリー形式データ１２１を解析し、使用頻度の高いパスや階層の深いパスを登録し、登録したパスをデータ変換処理に用いることでパス検索の効率を高める。これにより、情報処理装置１３ｂは、フラット形式データ１２３を扱うメインフレームなどのシステムに対し、速やかにデータ変換をおこなうことができる。
【０１８７】
このように、情報処理装置１，１３ｂは、データ交換の効率を高めることができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１，１３ｂが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。コンピュータで読取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１９０】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１９１】
１  情報処理装置
２  制御部
３  記憶部
４，４ａ，４ｂ  第２の情報
５，５ａ  第３の情報
６  第１の情報
７  第４の情報
１１  データ処理システム
１２，１２ａ，１２ｂ  ネットワーク
１３，１３ａ，１３ｂ，１３ｃ  情報処理装置
１４  記憶装置
１５ａ，１５ｂ  企業システム
１０１  プロセッサ
１０２  ＲＡＭ
１０３  ＨＤＤ
１０４  入出力信号インタフェース
１０５  記憶媒体インタフェース
１０６  通信インタフェース
１０７  バス
１０８  入出力デバイス
１０９  記憶媒体
【図１】
0006293083.tif 000002
【図２】
0006293083.tif 000003
【図３】
0006293083.tif 000004
【図４】
0006293083.tif 000005
【図５】
0006293083.tif 000006
【図６】
0006293083.tif 000007
【図７】
0006293083.tif 000008
【図８】
0006293083.tif 000009
【図９】
0006293083.tif 000010
【図１０】
0006293083.tif 000011
【図１１】
0006293083.tif 000012
【図１２】
0006293083.tif 000013
【図１３】
0006293083.tif 000014
【図１４】
0006293083.tif 000015
【図１５】
0006293083.tif 000016
【図１６】
0006293083.tif 000017