(57)【要約】【課題】適切にデータの形式を変換する。【解決手段】変換装置１は、全ての記述形式に適用可能な複数の要素を含む中間テンプレートデータ４２と、入力データ４１の記述形式を識別する入力形式識別手段１０と、入力データ４１に含まれ中間テンプレートデータ４２に含まれない要素名を有する要素を欠落情報データ６２として抽出する第１の欠落情報抽出手段２１と、欠落情報データ６２を中間データ４３に挿入する第１の欠落情報加工手段２２と、中間テンプレートデータ４２に含まれ入力データ４１に含まれない要素名を有する要素を不足情報データ６３として抽出する第１の不足情報識別手段２３と、不足情報データ６３を中間データ４３に挿入する第１の不足情報加工手段２５と、入力データ４１と中間テンプレートデータ４２とに含まれる要素名を有する要素を抽出し変換して、変換された該要素を中間データ４３に出力する第１の単純変換手段２６とを備える。【選択図】      図１
2008210040.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素を含む入力データの記述形式を変換する変換プログラムにおいて、
全ての記述形式に適用可能な複数の要素を含む中間テンプレートデータを記憶装置に記憶する中間テンプレートデータ記憶手段と、
前記入力データが入力されると、前記入力データの記述形式を識別し、入力形式データとして出力する入力形式識別手段と、
前記記憶装置から前記中間テンプレートデータを読み出すとともに、前記入力データに含まれ前記中間テンプレートデータに含まれない要素名を有する要素を欠落情報データとして抽出する第１の欠落情報抽出手段と、
前記欠落情報データを中間データに挿入する第１の欠落情報加工手段と、
前記中間テンプレートデータに含まれ前記入力データに含まれない要素名を有する要素を不足情報データとして抽出する第１の不足情報識別手段と、
前記不足情報データを前記中間データに挿入する第１の不足情報加工手段と、
前記入力データと前記中間テンプレートデータとに含まれる要素名を有する要素を抽出し変換して、変換された該要素を前記中間データに出力する第１の単純変換手段と
をコンピュータに実現させることを特徴とする変換プログラム。
【請求項２】
全ての記述形式について、記述形式名とテンプレートデータとを対応づけて前記記憶装置に記憶するテンプレートマスタデータ記憶手段を更に前記コンピュータに実現させ、
前記入力形式識別手段は、
前記記憶装置から前記テンプレートデータを読み出すとともに、前記記憶装置から前記入力データを読み出し、
前記入力データから要素を抽出し、抽出された要素が前記テンプレートデータに含まれているか否かを判定し、
含まれている場合、当該要素以外の新たな要素を前記入力データから抽出し、前記新たな要素の要素名が前記テンプレートデータに含まれかつ前記テンプレートデータと同じ階層構造を有しているか否かを判定し、
含まれていない場合、当該テンプレートデータ以外の新たなテンプレートデータを前記記憶装置から読み出すとともに、前記入力データから要素を抽出し、抽出された要素の要素名が前記新たなテンプレートデータに含まれているか否かを判定することにより、
前記入力データに含まれた全ての要素の要素名を含むテンプレートデータに関連づけられた記述形式名を、前記入力形式データとして出力する
ことを特徴とする請求項１に記載の変換プログラム。
【請求項３】
前記要素は、複数の属性を備え、
前記第１の欠落情報抽出手段は、
前記入力データから要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を前記中間テンプレートデータから抽出し、前記入力データの要素に含まれ前記中間テンプレートデータの要素に含まれていない前記属性がある場合、前記入力データから抽出された要素を欠落情報データとして出力し、
前記第１の欠落情報加工手段は、
前記欠落情報データの要素名と一致する前記中間テンプレートデータの要素の末尾に、前記入力データの要素に含まれ前記中間テンプレートデータの要素に含まれていない前記属性に前記入力形式データと対応づく識別子を付与して前記中間データに出力する
ことを特徴とする請求項１に記載の変換プログラム。
【請求項４】
前記要素は、複数の属性を備え、
前記第１の不足情報識別手段は、
前記入力データから要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を前記中間テンプレートデータから抽出し、前記中間テンプレートデータの要素に含まれ前記入力データの要素に含まれていない前記属性がある場合、前記入力データから抽出された要素を不足情報データとして出力し、
前記第１の不足情報加工手段は、
前記不足情報データの前記中間テンプレートデータの要素に含まれ前記入力データの要素に含まれていない前記属性に、前記補填候補データを設定して前記中間データに出力する
ことを特徴とする請求項１に記載の変換プログラム。
【請求項５】
前記記憶装置から出力テンプレートデータを読み出すとともに、前記中間データに含まれ前記出力テンプレートデータに含まれない要素名を有する要素を欠落情報データとして抽出する第２の欠落情報抽出手段と、
前記欠落情報データを出力データに挿入する第２の欠落情報加工手段と、
前記出力テンプレートデータに含まれ前記中間データに含まれない要素名を有する要素を不足情報データとして抽出する第２の不足情報識別手段と、
前記不足情報データを前記出力データに挿入する第２の不足情報加工手段と、
前記中間データと前記出力テンプレートデータとに含まれる要素名を有する要素を抽出し変換して、変換された該要素を前記出力データに出力する第２の単純変換手段と
を更にコンピュータに実現させることを特徴とする請求項１に記載の変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の要素を含む入力データの記述形式を変換する変換プログラムに関する。
【背景技術】
【０００２】
昨今の情報システムの発達とともに、様々なデータ形式が氾濫している。このデータ形式は、そのデータを出力するツールによって定義される。
【０００３】
例えば、ソフトウェアによるシステム開発において、システム開発対象となるビジネスなどに重点を置いたオブジェクト指向が広く採用されている。オブジェクト指向によるシステム開発においては、関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する。このオブジェクト自体やオブジェクト間の関連を定義づけるデータをモデルと呼ぶ。モデルを記述するための様々なツールが市販されている。
【０００４】
モデルを記述するツールは、ベンダーやバージョン毎に様々なデータ形式でモデルを保持する。従って、あるモデルを別のモデルに変換する際、使用するツールによっては、異なるモデルデータが出力されてしまう可能性がある。
【０００５】
この様な問題点を解決するために、記述形式の異なる複数の業務支援プログラムの間で対象物モデルを共有化するシステムがある（例えば、特許文献１。）。この特許文献１に記載のシステムでは、複数の業務支援プログラムのために一つの形式で対象物モデルが用いられている。更に、特許文献１に記載のシステムでは、業務支援プログラムで生成されたデータを対象物モデルの記述形式に変換してデータベースに書込む。
【０００６】
また、サプライチェーン内を流通する電子文書データの文書型を、自動的に他の文書型に変換可能にするシステムがある（例えば、特許文献２。）。この特許文献２に記載のシステムでは、複数の文書セグメントからなる電子文書データを所定のデータベースに登録し、電子文書データの文書型を他の文書型に変換するための情報を所定の変形テンプレートに登録し、サプライチェーン内を流通する電子文書データの文書型を、変形テンプレートに従って他の文書型に変換する。
【０００７】
これらの特許文献１及び特許文献２に記載の技術によると、対象物モデル及び変形テンプレートなどのデータを用いることにより、他の形式に変換することでデータ形式の異なるツール間でモデルデータを共有化できる。
【特許文献１】特開平１１−１２０２２１号公報
【特許文献２】特開２００２−３０７００５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１及び特許文献２に記載の技術では、変換前のデータと変換後のデータで共通する要素についてのみ変換できるだけである。具体的には、変換前のデータに含まれる要素が変換後のデータに含まれない場合や、変換後のデータに含まれる要素が変換前のデータに含まれない場合などには対応することができない。従って、上述した特許文献１及び特許文献２に記載の技術では、変換前のデータと変換後のデータで過不足が生じてしまう問題がある。
【０００９】
この様に、上述した特許文献１及び特許文献２に記載の技術は、適切にデータの形式を変換することはできない。
【００１０】
従って本発明の目的は、適切にデータの形式を変換できる変換プログラムを提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の特徴は、複数の要素を含む入力データの記述形式を変換する変換プログラムに関する。即ち本発明の特徴に係る変換プログラムは、全ての記述形式に適用可能な複数の要素を含む中間テンプレートデータを記憶装置に記憶する中間テンプレートデータ記憶手段と、入力データが入力されると、入力データの記述形式を識別し、入力形式データとして出力する入力形式識別手段と、記憶装置から中間テンプレートデータを読み出すとともに、入力データに含まれ中間テンプレートデータに含まれない要素名を有する要素を欠落情報データとして抽出する第１の欠落情報抽出手段と、欠落情報データを中間データに挿入する第１の欠落情報加工手段と、中間テンプレートデータに含まれ入力データに含まれない要素名を有する要素を不足情報データとして抽出する第１の不足情報識別手段と、不足情報データを中間データに挿入する第１の不足情報加工手段と、入力データと中間テンプレートデータとに含まれる要素名を有する要素を抽出し変換して、変換された該要素を中間データに出力する第１の単純変換手段とをコンピュータに実行させる。  
このような本発明によれば、入力データから中間データに変換する際、入力データにのみ含まれ中間データに含まれない要素を欠落情報データとして中間データに出力し、入力データに含まれず中間テンプレートデータに含まれる要素を不足情報データとして中間データを出力することができる。従って、この中間データは、あらゆる記述形式に適応可能なデータであると言える。
【００１２】
ここで、全ての記述形式について、記述形式名とテンプレートデータとを対応づけて記憶装置に記憶するテンプレートマスタデータ記憶手段を備えても良い。このとき、入力形式識別手段は、記憶装置からテンプレートデータを読み出すとともに、記憶装置から入力データを読み出し、入力データから要素を抽出し、抽出された要素がテンプレートデータに含まれているか否かを判定し、含まれている場合、当該要素以外の新たな要素を入力データから抽出し、新たな要素の要素名がテンプレートデータに含まれかつテンプレートデータと同じ階層構造を有しているか否かを判定し、含まれていない場合、当該テンプレートデータ以外の新たなテンプレートデータを記憶装置から読み出すとともに、入力データから要素を抽出し、抽出された要素の要素名が新たなテンプレートデータに含まれているか否かを判定することにより、入力データに含まれた全ての要素の要素名を含むテンプレートデータに関連づけられた記述形式名を、入力形式データとして出力する。  
これにより、入力データの入力形式が不明であっても、各テンプレートデータと照合させることによって入力形式を把握することができる。
【００１３】
ここで、要素は、複数の属性を備えても良い。このとき、第１の欠落情報抽出手段は、入力データから要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を中間テンプレートデータから抽出し、入力データの要素に含まれ中間テンプレートデータの要素に含まれていない属性がある場合、入力データから抽出された要素を欠落情報データとして出力する。第１の欠落情報加工手段は、欠落情報データの要素名と一致する中間テンプレートデータの要素の末尾に、入力データの要素に含まれ中間テンプレートデータの要素に含まれていない属性に入力形式データと対応づく識別子を付与して中間データに出力する。  
これにより、要素に複数の属性が含まれる場合、入力データにのみ含まれ中間データテンプレートデータに含まれない属性を含む要素を欠落情報データとして中間データに反映することができる。
【００１４】
又、第１の不足情報識別手段は、入力データから要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を中間テンプレートデータから抽出し、中間テンプレートデータの要素に含まれ入力データの要素に含まれていない属性がある場合、入力データから抽出された要素を不足情報データとして出力する。第１の不足情報加工手段は、不足情報データの中間テンプレートデータの要素に含まれ入力データの要素に含まれていない属性に、補填候補データを設定して中間データに出力する。  
これにより、要素に複数の属性が含まれる場合、入力データに含まれず中間テンプレートデータに含まれる属性を含む要素を不足情報データとして中間データに反映することができる。
【００１５】
記憶装置から出力テンプレートデータを読み出すとともに、中間データに含まれ出力テンプレートデータに含まれない要素名を有する要素を欠落情報データとして抽出する第２の欠落情報抽出手段と、欠落情報データを出力データに挿入する第２の欠落情報加工手段と、出力テンプレートデータに含まれ中間データに含まれない要素名を有する要素を不足情報データとして抽出する第２の不足情報識別手段と、不足情報データを出力データに挿入する第２の不足情報加工手段と、中間データと出力テンプレートデータとに含まれる要素名を有する要素を抽出し変換して、変換された該要素を出力データに出力する第２の単純変換手段とを更に備えても良い。  
これによれば、中間データから出力データに変換する際、中間データにのみ含まれ出力データに含まれない要素を欠落情報データとして出力データに出力し、中間データに含まれず出力テンプレートデータに含まれる要素を不足情報データとして出力データを出力することができる。従って、この出力データは、中間データを介して変換されることによって、入力データに比べると、あらゆる記述形式に適応可能なデータであると言える。
【発明の効果】
【００１６】
本発明によれば、適切にデータの形式を変換できる変換プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１７】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００１８】
本発明の最良の実施の形態において使用する用語を下記のように定義する。
【００１９】
「入力データ」とは、本発明の最良の実施の形態に係る変換装置１に入力される変換前のデータである。入力データは、入力形式データが示す記述形式で記述されている。本発明の最良の実施の形態においては、入力データは、所定のツールで作成され、ツールに特有のＸＭＩ形式で記述されている場合を想定している。
【００２０】
「出力データ」とは、本発明の最良の実施の形態に係る変換装置１が出力する変換後のデータである。出力データは、出力形式データが示す記述形式で記述されているモデルデータである。最良の実施の形態においては、出力データは、所定のツールで作成され、ツールに特有のＸＭＩ形式で記述されている場合を想定している。
【００２１】
「ソースデータ」とは、本発明の最良の実施の形態に係る変換装置１の第１の変換手段２０及び第２の変換手段３０によって、モデルデータを変換する際に入力される変換元データである。ソースデータは、所定の記述形式で記載されている。  
「ターゲットデータ」とは、第１の変換手段２０及び第２の変換手段３０によって、モデルデータを変換して出力される変換後データである。ターゲットデータは所定の記述形式で記載されている。  
「テンプレートデータ」とは、本発明の最良の実施の形態に係る変換装置１が処理可能なソースデータ及びターゲットデータの記述形式のデータである。ソースデータ及びターゲットデータ等の記述形式毎に一つのテンプレートデータが対応づけられている。テンプレートデータには、ソースデータ等を特徴づける属性値は記載されていない。
【００２２】
「中間テンプレートデータ」とは、テンプレートデータのうち、入力データ及び出力データの全ての記述形式に適用可能な複数の要素を含むデータである。具体的には、中間テンプレートデータは、ソースデータ及びターゲットデータのいずれのデータにも適用可能な上位のモデルデータである。本発明の最良の実施の形態においては、「中間テンプレートデータ」は、全ての記述形式に含まれる要素の全てを含んでいなくても良い。
【００２３】
「ターゲットテンプレートデータ」は、テンプレートデータのうち、ターゲットデータの記述形式に対応づけられたテンプレートデータである。
【００２４】
「変換する」とは、ソースデータの記述形式を、ターゲットテンプレートデータに基づいて、ターゲットデータの記述形式に変換してターゲットデータを出力することである。変換する際、ソースデータの要素は、ターゲットデータのテンプレートデータのうち、ソースデータの要素の要素名と同じ要素名を持つ位置に記述される。このとき、要素に含まれる属性も同様に、ソースデータの要素は、ターゲットデータのレンプレートデータのうち、ソースデータの要素と要素に含まれる属性と同じ要素名及び属性名を持つ位置に記述される。このとき、ターゲットデータの要素に含まれる属性の属性値には、ソースデータに記述された属性値が設定される。
【００２５】
「要素」とは、ソースデータ、ターゲットデータ、テンプレートデータの構成データである。「要素」は、要素を識別する要素名を一つ備える。また「要素」は、要素は属性を備えても良い。要素の属性は、属性名と、属性名に対応する属性値を備える。ソースデータ、ターゲットデータ及びテンプレートデータの比較において、要素が含まれるか否かの判断、及び要素が一致するか否かの判断は、要素名とその要素が備える全ての属性の属性名が一致するか否かで判断される。また属性が一致するか否かの判定は、属性名が一致するか否かで判断され、属性値が一致するか否かは問わない。  
「子要素」とは、要素を構成するデータである。子要素は要素と同様に属性を備えても良い。子要素の属性は、要素の属性と同様に、属性名及び属性値を備える。要素と子要素は親子の階層関係である。
【００２６】
「欠落情報」とは、ソースデータに含まれ、ターゲットテンプレートデータに相当する要素又は属性が存在しない情報である。
【００２７】
「不足情報」とは、ターゲットデータの作成に必要な情報のうち、ソースデータに存在しない情報である。
【００２８】
「単純変換」とは、ソースデータ及びターゲットデータにともに含まれる情報について、ソースデータからターゲットデータに変換することである。
【００２９】
［最良の実施の形態］
図１に示された本発明の最良の実施の形態に係る変換装置１は、異なる複数の要素を含む入力データの記述形式を変換する装置である。
【００３０】
図１に示された本発明の最良の実施の形態に係る変換装置１は、図２に示すように、中央処理制御装置１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３及び入出力インタフェース１０９が、バス１１０を介して接続されている。入出力インタフェース１０９には、入力装置１０４、表示装置１０５、通信制御装置１０６、記憶装置１０７及びリムーバブルディスク１０８が接続されている。
【００３１】
中央処理制御装置１０１は、入力装置１０４からの入力信号に基づいてＲＯＭ１０２から変換装置１を起動するためのブートプログラムを読み出して実行し、更に記憶装置１０７に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置１０１は、入力装置１０４や通信制御装置１０６などの入力信号に基づいて、各種装置の制御を行ったり、ＲＡＭ１０３や記憶装置１０７などに記憶されたプログラム及びデータを読み出してＲＡＭ１０３にロードするとともに、ＲＡＭ１０３から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
【００３２】
入力装置１０４は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送信される。表示装置１０５は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどであり、中央処理制御装置１０１からバス１１０及び入出力インタフェース１０９を介して表示装置１０５において表示させる出力信号を受信し、例えば中央処理制御装置１０１の処理結果などを表示する装置である。通信制御装置１０６は、ＬＡＮカードやモデムなどの装置であり、変換装置１をインターネットやＬＡＮなどの通信ネットワークに接続する装置である。通信制御装置１０６を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００３３】
記憶装置１０７は半導体記憶装置や磁気ディスク装置であって、中央処理制御装置１０１で実行されるプログラムやデータが記憶されている。リムーバブルディスク１０８は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００３４】
本発明の最良の実施の形態に係る変換装置１の記憶装置１０７には、変換プログラムが記憶されるとともに、入力データ４１、中間テンプレートデータ４２、中間データ４３、出力テンプレートデータ４４、出力データ４５、テンプレートマスタデータ５１、テンプレートデータ５２ａ、５２ｂ、５２ｃ…が各データの記憶手段によって記憶装置１０７に記憶される。また、変換プログラムが変換装置１の中央処理制御装置１０１に読み込まれ実行されることによって、入力形式識別手段１０、第１の変換手段２０及び第２の変換手段３０が実装される。第１の変換手段２０は、欠落情報抽出手段２１、欠落情報加工手段２２、不足情報識別手段２３、補填候補作成手段２４、不足情報加工手段２５、単純変換手段２６を備える。第２の変換手段３０は、欠落情報抽出手段３１、欠落情報加工手段３２、不足情報識別手段３３、補填候補作成手段３４、不足情報加工手段３５、単純変換手段３６を備える。入力形式識別手段１０、第１の変換手段２０及び第２の変換手段３０が中央処理制御装置１０１で実行されることにより、入力形式データ６１、欠落情報データ６２及び６５、不足情報データ６３及び６６、補填候補データ６４及び６７が、ＲＡＭ１０３に記憶される。
【００３５】
図１では、第１の変換手段２０及び第２の変換手段３０は、同一のプログラムを使用しても良い。その場合、その入力データ及び出力データをパラメータとして設定することにより、第１の変換手段２０及び第２の変換手段を変換装置に実装しても良い。
【００３６】
ここで、図３を参照して本発明の最良の実施の形態に係る変換装置の処理の概要を説明する。  
まず、ステップＳ１０１において、入力データ４１が変換装置１に入力され、記憶装置１０７に記憶される。このとき、出力データの記述形式である出力形式も入力されても良い。ステップＳ１０２において、入力形式識別手段１０によって、ステップＳ１０１で入力された入力データの記述形式である入力形式が識別される。
【００３７】
次にステップＳ１０３において、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２に設定されて、ステップＳ１０４において、第１の変換手段２０による第１の変換処理が実行される。ここで、第１の変換手段２０は、ソースデータからターゲットテンプレートデータに従ってターゲットデータを出力する手段である。具体的には、第１の変換手段２０は、入力データ４１の記述形式を、中間テンプレートデータ４２の記述形式に変換した中間データ４３を生成する。
【００３８】
更にステップＳ１０５において、ソースデータが中間データ４３、ターゲットデータが出力データ４４、ターゲットテンプレートデータが出力テンプレートデータ４５に設定されて、ステップＳ１０６において、第２の変換手段３０による第２の変換処理が実行される。ここで、第２の変換手段３０は、ソースデータからターゲットテンプレートデータに従ってターゲットデータを出力する手段である。具体的には、第２の変換手段３０は、中間データ４３の記述形式を、出力テンプレートデータ４４の記述形式に変換した出力データ４５を生成する。
【００３９】
次に、図４を参照して、本発明の最良の実施の形態に係る変換装置１が処理する欠落情報及び不足情報について説明する。
【００４０】
図４は、第１の変換手段２０によって、入力データ４１が中間データ４３に変換され、更に第２の変換手段３０によって、中間データ４３が出力データ４５に変換される場合において、入力データ４１、中間データ４３及び出力データ４５の記述形式を説明する概略図である。この入力データ４１及び出力データ４５の各要素に含まれるアルファベットは、中間データ４３の各要素に含まれるアルファベットと相関がある要素であることを示している。入力データ４１は、テンプレートデータ５２ａ、５２ｂ、５２ｃ…のいずれかのテンプレートデータに対応する記述形式で記載されている。中間データ４３は、中間テンプレートデータ４２に対応する記述形式で記載されている。出力データ４５は、出力テンプレートデータ４４に対応する記述形式で記載されている。
【００４１】
入力データ４１は、要素１−Ａ及び１−Ｂを有している。一方、中間データ４３は、要素Ａ、Ｃ、Ｄ及びＥを備えている。入力データ４１の要素１−Ａは、中間データ４３の要素Ａに相当するので、単純変換することができる。同様に、中間データ４３から出力データ４５を変換する場合、中間データ４３に含まれ、出力データ４５に相当するデータが含まれる中間データ４３の要素Ｄも単純変換することができる。
【００４２】
しかし、入力データ４１の要素１−Ｂは、中間データ４３に相当するデータが含まれない。従って、入力データ４１の要素１−Ｂは、中間データ４３において欠落してしまい、要素１−Ｂの情報は中間データ４３には反映されない。この様な要素１−Ｂが欠落情報である。同様に、中間データ４３から出力データ４５を変換する場合、中間データ４３に含まれ、出力データ４５に相当するデータが含まれない中間データ４３の要素Ｅも欠落情報である。
【００４３】
一方、中間データ４３の要素Ｃは、入力データ４１に相当するデータが含まれない。従って、入力データ４１を中間データ４３に変換する場合、要素Ｃに相当する要素１−Ｃの情報を中間データ４３に補う必要がある。この様な要素１−Ｃが不足情報である。同様に、中間データ４３から出力データ４５を変換する場合、出力データ４３に含まれ、中間データ４３に相当するデータが含まれない中間データ４３の要素Ｆも不足情報である。
【００４４】
本発明の最良の実施の形態に係る変換装置１において、ソースデータとターゲットデータの記述形式が異なる場合でも、欠落情報及び不足情報を考慮してソースデータからターゲットデータに変換することができる。本発明の最良の実施の形態においては、要素又は子要素の単位で、欠落情報及び不足情報を抽出する。具体的には、要素が欠落又は不足した場合は、その欠落又は不足した要素が、欠落情報又は不足情報になる。更に、要素に含まれる属性が欠落又は不足した場合でも、その欠落又は不足した属性が含まれる要素が、欠落情報又は不足情報となる。同様に、子要素に含まれる属性が欠落又は不足した場合でも、その欠落又は不足した属性が含まれる子要素が、欠落情報又は不足情報となる。
【００４５】
本発明の最良の実施の形態に係る変換装置１において、ソースデータ及びターゲットデータは、図５に示すようなＸＭＩ（XML Metadata Interchange）である場合について説明する。ここで、図５に示すＸＭＩ形式のデータ１００について詳述する。
【００４６】
コメント行は、プログラマが覚え書き等を記載し、プログラムとしては実行されない文字列である。コメント行は、”<!--”で始まる行から”-->”で終わる行までである。１行でも複数行にわかれていても良い。”<!--”から”-->”までを取得することにより、コメント行が取得できる。具体的に、データ１００においてコメント行は、「<!-- insertId1 -->」である。
【００４７】
コメントは、コメント行の記述内容のうち、区切り文字を除く文字列である。コメントは、コメント行から、”<!--”から”-->”で囲まれた文字列を取得することにより、コメントが取得される。本発明の最良の実施の形態では、空白（スペース）はコメントは無視される。
【００４８】
要素は、”＜”から”＞”で囲われる記述のうち、コメント行以外のものである。”＜”から”＞”を取得することで、データ１００から、要素が抽出される。例えば、データ１００の要素の一つは、「<UML:Class name=“myClass” xmi.id=“S.351.1058.36.1” ツール1:isSpecification=“false”> 」である。
【００４９】
要素名は、要素の先頭に記述される。また、要素名及び属性の間は半角スペースで区切られる。従って、要素を半角スペースで区切って、先頭の文字列を取得することにより、要素名が取得される。例えば、データ１００の<UML:Class name=“myClass” xmi.id=“S.351.1058.36.1” ツール1:isSpecification=“false”>の要素名は、「UML:Class」である。
【００５０】
名前空間は、同じ名前が複数存在することにより、名前が衝突することを回避するために、名前に付加される修飾語である。名前空間は、コロン（：）の前の文字列である。要素名及び属性を示す文字列において、コロンより前方の文字列を取得することにより、名前空間が取得される。例えば、データ１００において名前空間は、要素名「UML:Class」の「UML」、及び属性「ツール1:isSpecification=“false”」の「ツール１」である。
【００５１】
属性は、要素の中に含まれ、「○○＝△△」の式で表される文字列である。要素を半角スペースで区切って、１番目の文字列の要素名を除き、２番目以降の文字列を取得することにより、属性が取得される。データ１００において属性は、「name=“myClass”」などである。ここで、属性の左辺は属性名と呼ばれ、属性の右辺は属性値である。属性の”＝”より前を取得することにより、属性名が取得される。属性の”＝”より後ろを取得することにより、属性値が取得される。
【００５２】
子要素は、＜親要素名＞」から「＜/親要素名＞」で囲まれた内部に記述される要素である。データ１００において要素名「UML:Class」の要素の子要素は要素名「UML:Classihuier.feature」の要素である。「<要素名>」から「</要素名>」で囲われた領域を、要素名と同様に＜”から”＞”を取得することで、子要素が抽出される。
【００５３】
次に、本発明の最良の実施の形態に係る変換装置１の中央処理制御装置１０１に実装される各処理手段について詳述する。
【００５４】
（入力形式識別手段）
入力形式識別手段１０は、入力データ４１が入力されると、入力データ４１の記述形式を識別し、入力形式データ６１として出力する。入力データ４１の入力形式が予め定められている場合、入力データ４１とともに、予め定められた入力形式が入力形式データ６１として入力されても良い。入力形式識別手段１０は、出力データ４５の出力形式が指定された場合、出力形式に相当するテンプレートデータを抽出して、出力テンプレートデータ４４として記憶装置１０７に記憶しても良い。
【００５５】
入力形式識別手段１０は、テンプレートマスタデータ５１を参照しても良い。このテンプレートマスタデータは、全ての記述形式について、記述形式名とテンプレートデータとを対応づけられたデータである。本発明の最良の実施の形態においては、テンプレートマスタデータ５１に、記述形式名とテンプレートデータとが関連づけられる場合について説明するが、この形態には限られない。例えば、テンプレートデータ５２ａ、５２ｂ、５２ｃ…に、記述形式の記載が含まれても良いし、テンプレートデータ５２ａ、５２ｂ、５２ｃ…のファイル名に記述形式の記載が含まれても良い。テンプレートデータと、その記述形式が対応づけることができればどのような実装方法でも構わない。
【００５６】
より詳しくは、入力形式識別手段１０は、入力データ４１から要素を抽出し、抽出された要素がテンプレートデータに含まれているか否かを判定する。含まれている場合、更に入力形式識別手段１０は、当該要素以外の新たな要素を入力データから抽出し、新たな要素の要素名がテンプレートデータに含まれているか否かを判定する。含まれていない場合、更に入力形式識別手段１０は、当該テンプレートデータ以外の新たなテンプレートデータを記憶装置から読み出すとともに、入力データから要素を抽出し、抽出された要素の要素名が新たなテンプレートデータに含まれかつテンプレートデータと同じ階層構造を有しているか否かを判定する。この様な処理により、入力形式識別手段１０は、入力データ４１に含まれた全ての要素の要素名を含むテンプレートデータに関連づけられた記述形式名を、入力形式データ６１として出力する。ここで、入力形式識別手段１０は、入力データ４１の要素に含まれる子要素の要素名及び属性の属性名について、テンプレートデータ５２ａ、５２ｂ、５２ｃ・・・の要素に含まれる子要素の要素名及び属性の属性名と同じであるか否かを検討することが好ましい。
【００５７】
次に、図６を参照して、本発明の最良の実施の形態に係る入力形式識別手段１０の扱うデータを説明する。入力形式識別手段１０は、入力データ４１と、第１形式のテンプレートデータ５２ａ、第２形式のテンプレートデータ５２ｂ・・・第ｎ形式のテンプレートデータ５２ｎとを順に記述形式を比較し、入力データ４１の記述形式に合致するテンプレートデータを出力する。
【００５８】
入力データ４１と第１形式のテンプレートデータ５２ａとでは、要素名「UML:Class」の要素を有する点で一致する。しかし、第１形式のテンプレートデータ５２ａは、属性名「name」の属性のみ有するのに対し、入力データ４１は、属性名「name」、「xmi.id」及び「isSpecification」の三つの属性を有する。従って、入力データ４１と、第１形式のテンプレートデータ５２ａは、異なる記述形式を有する。
【００５９】
入力データ４１と第２形式のテンプレートデータ５２ｂとでは、要素名「UML:Class」の要素を有する点で一致する。更に、入力データ４１及び第１形式のテンプレートデータ５２ａは、属性名「name」、「xmi.id」及び「isSpecification」の三つの属性を有する点で一致する。従って、入力データ４１と、第１形式のテンプレートデータ５２ａは、同じ記述形式を有する。
【００６０】
この様に、本発明の最良の実施の形態に係る入力形式識別手段１０によれば、入力データ４１の形式が分からなくても、要素の要素名、子要素の子要素名及び属性の属性名が一致するテンプレートデータを検索することにより、入力データ４１の入力形式を特定することができる。
【００６１】
また、上記の様な方法でなくても、入力データ４１のデータに名前空間が含まれる場合、その名前空間から入力形式が判別されても良いし、引数として入力データ４１とともに入力されても良い。
【００６２】
次に、図７及び図８を参照して、入力形式識別手段１０の処理を説明する。  
まず、ステップＳ２０１で、記憶装置１０７から、まだ入力形式識別処理手段１０によって処理されていない次のテンプレートデータがあるか否かを判定する。次のテンプレートデータがない場合、具体的には、全てのテンプレートデータについて、入力形式識別処理手段１０が処理したが、一致するテンプレートデータがない場合は、入力形式識別処理を終了する。
【００６３】
次のテンプレートデータがある場合、ステップＳ２０２において、記憶装置１０７から次のテンプレートデータを読み出し、これをテンプレートデータＸとする。
【００６４】
一方、ステップＳ２０３において、入力データ４１から、まだ入力形式識別処理手段１０によって処理されていない次の要素があるか否かを判定する。次の要素がない場合、具体的には、入力データの全ての要素について入力形式識別処理による処理が終了し、入力データの全ての要素がテンプレートデータＸに含まれた場合、ステップＳ２０４に進む。このステップＳ２０３の処理により、テンプレートデータＸが、入力データ４１の全ての要素を含むテンプレートデータであることが判明する。ステップＳ２０４において、テンプレートデータＸに対応づけられた記述形式を取得し、入力形式データ６１としてＲＡＭ１０３に記憶する。
【００６５】
一方、ステップＳ２０３において次の要素があると判定される場合、ステップＳ２０５において、入力データ４１から次の要素を取得し、これを要素Ａとする。
【００６６】
次に、ステップＳ２０６において、テンプレートデータＸに次の要素があるか否かを判定する。次の要素がない場合、具体的には、テンプレートデータＸのうち、全ての要素が入力形式識別処理手段１０によって処理された場合は、ステップＳ２０１に戻る。この処理により、テンプレートデータＸは、入力データから取得した要素Ａを含んでいないことが判明する。ステップＳ２０１に戻り、次のテンプレートデータの有無を判定する。
【００６７】
テンプレートデータＸに次の要素がある場合、ステップＳ２０７において、テンプレートデータＸから次の要素を取得し、要素Ｂとする。更に、ステップＳ２０８において、ステップＳ２０５で取得した入力データ４１の要素Ａと、ステップＳ２０７で取得したテンプレートデータＸの要素Ｂの要素名が一致するか否かを判定する。一致しない場合、ステップＳ２０６に戻る。この処理により、入力データ４１に含まれる要素Ａと、テンプレートデータＸに含まれる要素Ｂが異なる要素であり、入力データ４１の入力形式はテンプレートデータに一致しないことが分かる。更に、ステップＳ２０６以降の処理で、入力データ４１の要素Ａと要素名が一致するテンプレートデータＸの要素Ｂが、子要素及び属性においても一致するか否かを検討する。
【００６８】
ステップＳ２０８において、要素Ａと要素Ｂの属性名が一致する場合、ステップＳ２０９に進み、入力データ４１の要素Ａに属性があるか否かを判定する。属性がある場合は、ステップＳ２１１に進み、要素Ａの属性と要素Ｂの属性が一致するかを検討する。一方、属性がない場合は、ステップＳ２５１に進む。更に、ステップＳ２５１以降の処理で、要素Ａと要素Ｂの子要素が一致するかを検討する。
【００６９】
次に要素Ａと要素Ｂの属性が一致するかを検討する。具体的には、ステップＳ２０９において要素Ａに属性がある場合、ステップＳ２１１において、要素Ａの属性を取得し属性ａとする。また、ステップＳ２１２において、テンプレートデータＸの要素Ｂに次の属性があるか否かを判定する。属性がない場合は、ステップＳ２０１に進む。この処理により、入力データＡに含まれる要素Ａの属性と、テンプレートデータＸに含まれる要素Ｂの属性が異なるので、入力データ４１の入力形式はテンプレートデータに一致しないことが分かる。一方、要素Ｂにも属性がある場合、ステップＳ２１３において要素Ｂの次の属性を取得し、要素ｂとする。ステップＳ２１４において、要素Ａの属性ａと要素Ｂの属性ｂの属性名が一致するか否かを判断する。一致する場合は、要素Aの次の属性と要素Bの属性とを比較するため、ステップＳ２１５において、ステップＳ２１３で取得された要素Ｂの属性ｂの取得を解除し、要素Ｂのポインタを先頭に進ませ、ステップＳ２０９に進む。ここで更に、入力データ４１の要素Ａの次の属性が、テンプレートデータに含まれているか否かを検討する。一方、ステップＳ２１４において属性ａと属性ｂの属性名が一致しない場合、要素Ｂの次の属性について、属性ａと属性名が一致するか検討するため、ステップＳ２１２に進む。
【００７０】
要素Ａと要素Ｂの子要素が一致するかを検討する。ステップＳ２０９において要素Ａに次の属性がない場合、具体的には、要素Ａの全ての属性の属性値について、要素Ｂの属性の属性値と一致すると判定された場合、ステップＳ２５１に進む。ステップＳ２５１において、要素Ａに子要素があるか判定する。子要素がない場合、ステップＳ２１０に進み、テンプレートデータＸのポインタを先頭に進ませ、ステップＳ２０３において、入力データ４１の次の要素について処理する。一方、要素Ａに子要素がある場合、ステップＳ２５２において、要素Ａから子要素を取得し、子要素ｍとする。ステップＳ２５３において、要素Ｂに子要素があるか判定する。子要素がない場合、つまり、入力データ４１の入力形式とテンプレートデータＸの入力形式が異なる場合、ステップＳ２０１に進み、次のテンプレートデータについて、入力データ４１の入力形式と一致するかを検討する。一方、要素Ｂに子要素がある場合、ステップＳ２５４において、要素Ｂから子要素を取得し、子要素ｎとする。
【００７１】
次にステップＳ２５５において、子要素ｍと子要素ｎの要素名が一致するか判定する。一致しない場合、後述するステップＳ２７３の処理に進む。一方、一致する場合、ステップＳ２５６において、子要素ｍに次の属性があるか判定する。次の属性がない場合、後述するステップＳ２７１に進む。一方、次の属性がある場合、ステップＳ２５７において、子要素ｍの次の属性を取得し、属性ｅとする。
【００７２】
ステップＳ２５８において、子要素ｎに次の要素があるか判定する。次の要素がない場合、ステップＳ２０１に進み、次のテンプレートデータについて、入力データ４１の入力形式と一致するかを検討する。一方、次の属性がある場合、ステップＳ２５９において、子要素ｎの次の属性を取得し、属性ｆとする。
【００７３】
ステップＳ２６０において、ステップＳ２５７で取得した属性ｅと、ステップＳ２５９で取得した属性ｆの属性名が一致するか判定する。一致しない場合、ステップＳ２５８に進み、子要素ｎに次の属性があるか判定する。一致する場合、ステップＳ２６１において、子要素ｎのポインタを先頭に進ませ、ステップＳ２５６に進む。
【００７４】
ステップＳ２５６において、子要素ｍに次の属性がないと判定される場合、ステップＳ２７１において、子要素ｍに次の要素があるか否かを検討する。次の要素がない場合、ステップＳ２１０に進み、テンプレートデータＸのポインタを先頭に進ませ、ステップＳ２０３において、入力データ４１の次の要素について処理する。次の要素がある場合、ステップＳ２７２において、要素Ａの次の子要素として子要素ｍの次の要素を取得し、要素Ｃとする。ステップＳ２７３において、子要素ｎに次の要素があるか否かを検討する。次の要素がない場合、つまり、入力データ４１の入力形式とテンプレートデータＸの入力形式が異なる場合、ステップＳ２０１に進み、次のテンプレートデータについて、入力データ４１の入力形式と一致するかを検討する。一方、子要素ｎに次の要素がある場合、ステップＳ２７４において、子要素ｎから次の要素を取得し、要素Dとする。
【００７５】
次に、ステップＳ２７５において、要素Ｃと要素Ｄの要素名が一致するかを判定する。要素名が一致しない場合、ステップＳ２７３において、子要素ｎの次の要素について、要素Ｃと要素名が一致するかを判定する。要素名が一致する場合、ステップＳ２７６に進み、要素Ｃの属性と要素Ｄの属性が一致するかを検討する。
【００７６】
ステップＳ２７６において、要素Ｃに次の属性があるかを判定する。次の属性がない場合、ステップＳ２７７において、子要素ｎのポインタを先頭に進ませ、子要素ｍの次の要素と子要素ｎの要素とを比較する。一方、要素Ｃに次の要素がある場合、ステップＳ２７８において、要素Ｃの次の属性を取得し、属性ｃとする。ステップＳ２７９において要素Ｄに次の属性があるか否かを判定する。次の属性がない場合、ステップＳ２０１に進み、入力データ４１の入力形式とテンプレートデータＸの入力形式が異なる場合、ステップＳ２０１に進み、次のテンプレートデータについて、入力データ４１の入力形式と一致するかを検討する。次の属性がある場合、ステップＳ２８０において、要素Ｄの次の属性を取得し属性ｄとする。ステップＳ２８１において、要素Ｃの属性ｃと要素Ｄの属性ｄの属性名が一致するかを検討する。一致しない場合、ステップＳ２７９に進み、要素Ｄの次の属性について要素Ｃの属性ｃと属性名が一致するかを検討する。ステップＳ２８１において属性ｃと属性ｄの属性名が一致する場合、ステップＳ２８２において要素Ｄのポインタを先頭に戻し、要素Ｃの次の属性について、属性Ｄの属性と一致するかを検討する。
【００７７】
この様に、入力形式識別手段１０によって、入力データ４１の全ての要素及び各要素の全ての属性が含まれるテンプレートデータが抽出され、この抽出されたテンプレートデータの記述形式から、入力形式データ６１が作成され、ＲＡＭ１０３に記憶される。
【００７８】
（第１の変換手段）
第１の変換手段２０は、入力データ４１から、中間テンプレートデータ４２に基づいて中間データ４３を出力する。第１の変換手段２０は、第１の欠落情報抽出手段２１と、第１の欠落情報加工手段２２と、第１の不足情報識別手段２３と、第１の補填候補作成手段２４と、第１の不足情報加工手段２５と、第１の単純変換手段２６を備える。
【００７９】
図９を参照して、本発明の最良の実施の形態に係る第１の変換手段２０の処理の概略を説明する。図９の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ３０１において、ソースデータである入力データ４１を記憶装置１０７から読み出す。更に、ステップＳ３０２において、ターゲットテンプレートデータである中間テンプレートデータ４２を記憶装置１０７から読み出す。
【００８０】
次に、ステップＳ３０３において第１の欠落情報抽出手段２１による欠落情報抽出処理が実行され、ステップＳ３０４において第１の欠落情報加工手段２２による欠落情報加工処理が実行される。第１の欠落情報抽出手段２１及び第１の欠落情報加工手段２２については、後に詳述する。欠落情報抽出処理及び欠落情報加工処理が終了すると、ステップＳ３０５において、ソースデータの要素について、処理対象を先頭に戻す。
【００８１】
次に、ステップＳ３０６において第１の不足情報識別手段２３による不足情報識別処理が実行され、ステップＳ３０７において、第１の補填候補作成手段２４による補填候補作成処理が実行され、ステップＳ３０８において第１の不足情報加工手段２５による不足情報加工処理が実行される。
【００８２】
第１の不足情報識別手段２３、第１の補填候補作成手段２４及び第１の不足情報加工手段２５については、後に詳述する。
【００８３】
不足情報識別処理、補填候補作成処理及び不足情報加工処理が終了すると、ステップＳ３０９において、第１の単純変換手段２６による単純変換処理が実行される。第１の単純変換手段２６については、後に詳述する。
【００８４】
（第１の欠落情報抽出手段及び第１の欠落情報加工手段）
次に、第１の欠落情報抽出手段２１及び第１の欠落情報加工手段２２を説明する。
【００８５】
第１の欠落情報抽出手段２１は、記憶装置１０７から中間テンプレートデータ４２を読み出すとともに、入力データ４１に含まれ中間テンプレートデータ４２に含まれない要素名を有する要素を欠落情報データ６２として抽出する。第１の欠落情報加工手段２２は、中間テンプレートデータ４２の末尾に、入力データ４１に含まれ中間テンプレートデータ４２に含まれていない要素に入力形式データ６１と対応づく識別子を付与して中間データ４３に挿入する。
【００８６】
第１の欠落情報加工手段２２は、欠落情報を中間データに４３挿入する。
【００８７】
ここで、要素に含まれる属性についても、入力データ４１の要素に含まれ、中間テンプレートデータ４２の要素に含まれない属性も、欠落情報として処理しても良い。その場合、第１の欠落情報抽出手段２１は、入力データ４１から要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を中間テンプレートデータから抽出し、入力データ４１の要素に含まれ中間テンプレートデータ４２の要素に含まれていない属性がある場合、入力データ４１から抽出された要素を欠落情報データ６２として出力する。第１の欠落情報加工手段２２は、欠落情報データ６２の要素名と一致する中間テンプレートデータ４２の要素の末尾に、入力データ４１の要素に含まれ中間テンプレートデータ４２の要素に含まれていない属性に入力形式データ６１と対応づく識別子を付与して中間データ４３に挿入する。具体的には、第１の欠落情報加工手段２２は、名前空間として入力形式データ６１を付与した属性のデータを、欠落情報データ６２の末尾に付加する。ここで、「入力形式データ６１と対応づく識別子」とは、入力形式データ６１そのものであっても良いし、入力形式データ６１を一意に識別可能な識別子であっても良い。
【００８８】
図１０を参照して、入力データ４１及び中間テンプレートデータ４２について説明する。入力データ４１及び中間テンプレートデータ４２には、要素名「UML:Class」の要素を備える。しかし、入力データ４１の要素名「UML:Class」の要素には、「name」、「xmi.id」及び「isSpecification」の各属性名を有するが、中間テンプレートデータ４２の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名のみを有する。従って、入力データ４１の要素名「UML:Class」の要素には含まれ、中間テンプレートデータ４２の要素名「UML:Class」の要素には含まれない属性名「isSpecification」が存在するので、第１の欠落情報抽出手段２１によって、この要素名「UML:Class」の要素は、欠落情報データ６２としてＲＡＭ１０３に出力される。更に、第１の欠落情報加工手段２２によって、入力データ４１に記載された属性に、名前空間として入力データ４１の記述形式が付与された属性「ツール1:isSpecification=“false”」が生成される。
【００８９】
この名前空間が付与された欠落情報は、欠落情報加工手段２２により、中間データ４３に反映される。具体的には、中間データ４３には、要素名「UML:Class」の要素の末尾の属性の後ろに、半角スペースが挿入されるとともに、更に、「ツール1:isSpecification=“false”」との記述が追加される。
【００９０】
次に、図１１及び図１２を参照して、第１の欠落情報抽出手段２１による欠落情報抽出処理を説明する。図１１及び図１２の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ４０１において、ソースデータに次の要素があるか否かが判定される。次の要素がない場合、具体的には、ソースデータの全ての要素について欠落情報抽出処理が実行された場合は、そのまま処理を終了する。
【００９１】
一方、ソースデータに次の要素がある場合、ステップＳ４０２において、ソースデータから次の要素を取得し、要素Ａとする。ここで取得される要素Ａは、図９に示す例の場合、「UML:Class name=”myClass” xmi.id=”S.351.1058.36.1” isSpecification=”false”」である。
【００９２】
更に、ステップＳ４０３において、ターゲットテンプレートデータに次の要素があるか否かが判定される。次の要素がないと判定される場合、ソースデータの要素Ａはターゲットテンプレートデータに含まれないので、ステップＳ４１２において、この要素Ａは欠落情報として抽出され、処理は終了する。一方、ステップＳ４０３において、ターゲットテンプレートデータに次の要素がある場合、ステップＳ４０４において、ターゲットテンプレートデータから次の要素を取得し、要素Ｂとする。ここで取得される要素Ｂは、図９に示す例の場合、「UML:Class name=”” xmi.id=”"」である。
【００９３】
ここで、ステップＳ４０５において、ステップＳ４０２で取得した要素Ａと、ステップＳ４０４で取得した要素Ｂの要素名が一致するか否かが判定される。一致しない場合は、ステップＳ４０３に進み、ターゲットテンプレートデータの次の要素について、要素Ａと同じ要素が含まれるか否かが判定される。
【００９４】
一方、ステップＳ４０６において、要素Ａと要素Ｂの要素名が一致する場合、具体的にはターゲットテンプレートデータに要素Ａと同じ名前の要素が含まれる場合、この要素Ａの属性と、要素Ｂの属性が一致するか否かが検討される。ステップＳ４０６において、要素Ａに次の属性があるか否かが判定される。要素Ａに次の属性がない場合、ステップ４２１に進み、要素Ａの子要素について、要素Ｂの子要素と比較する。一方、ステップＳ４０６において要素Ａに次の属性がある場合、ステップＳ４０７に進む。以下、要素Ａの各属性について、ステップＳ４０７乃至ステップＳ４１１が実行される。具体的には、１回目は「name=”myClass”」、２回目は「xmi.id=”S.351.1058.36.1”」、３回目は「isSpecification=”false”」の各属性について処理され、４回目は、処理するべき属性がないとして、処理を終了する。
【００９５】
ステップＳ４０６において要素Ａに次の属性があると判定された場合、ステップＳ４０７において、要素Ａの次の属性を取得し、属性ａとする。例えば、要素Ａが、「UML:Class name=”myClass” xmi.id=”S.351.1058.36.1” isSpecification=”false”」の要素について１回目に属性が抽出される場合、属性ａは、「name=”myClass”」である。
【００９６】
ステップＳ４０８において、要素Ｂに次の属性があるか否かが判定される。次の属性がない場合、ソースデータの要素Ａの属性ａはターゲットテンプレートデータに含まれないので、ステップＳ４１２において、この要素Ａは欠落情報として抽出され、処理は終了する。要素Ｂに次の属性がある場合、ステップＳ４０９に進む。以下、要素Ｂの各属性について、ステップＳ４０９及びステップＳ４１０の処理が繰り返される。具体的には、１回目は「name=””」、２回目は「xmi.id=””」の各属性について処理され、３回目は、処理するべき属性がないとして、ステップＳ４１２に進む。
【００９７】
ステップＳ４０８において要素Ｂに次の属性があると判定された場合、ステップＳ４０９において、要素Ｂの次の属性を取得し、属性ｂとする。ステップＳ４１０において、属性ａと属性ｂの属性名が一致しない場合、ステップＳ４０８において、要素Ｂの次の属性を検索する。一方、属性ａと属性ｂの属性名が一致する場合、具体的には、要素Ａの属性ａがターゲットテンプレートデータに含まれる場合、ステップＳ４１１において、要素Ｂの属性について処理対象を先頭に戻し、ステップＳ４０６に進む。具体的には、要素Ｂについて、「name=””」及び「xmi.id=””」の各属性について処理が終了したので、「name=””」に戻る。
【００９８】
ステップＳ４０６において、要素Ａに次の属性がないと判定された場合、ステップＳ４２１に進む。ステップＳ４２１において、要素Ａに子要素があるか否かが判定される。要素Ａに子要素がない場合、ステップＳ４０１に戻り、ソースデータの次の要素について処理する。
【００９９】
一方ステップＳ４２１において、要素Ａに子要素があると判定された場合、ステップＳ４２２において、要素Ａから子要素を取得し、子要素ｍとする。更にステップＳ４２３において、要素Ｂに子要素があるか否かが判定される。要素Ｂに子要素がない場合、子要素ｍは欠落情報として抽出され、処理は終了する。要素Ｂに子要素がある場合、ステップＳ４２５において、要素Ｂから子要素を取得し、子要素ｎとする。
【０１００】
次にステップＳ４２６において、子要素ｍと子要素ｎの要素名が一致するか判定する。一致しない場合、後述するステップＳ４３６の処理に進む。一方、一致する場合、ステップＳ４２７において、子要素ｍに次の属性があるか判定する。次の属性がない場合、後述するステップＳ４３３に進む。一方、次の属性がある場合、ステップＳ４２８において、子要素ｍの次の属性を取得し、属性ｅとする。
【０１０１】
ステップＳ４２９において、子要素ｎに次の属性があるか判定する。次の属性がない場合、ステップＳ４４７に進み、子要素ｍを欠落情報として抽出し、処理を終了する。一方、次の属性がある場合、ステップＳ４３０において、子要素ｎの次の属性を取得し、属性ｆとする。
【０１０２】
ステップＳ４３１において、ステップＳ４２８で取得した属性ｅと、ステップＳ４３０で取得した属性ｆの属性名が一致するか判定する。一致しない場合、ステップＳ４２９に進み、子要素ｎに次の属性があるか判定する。一致する場合、ステップＳ４３２において、子要素ｎのポインタを先頭に進ませ、ステップＳ４２７に進む。
【０１０３】
ステップＳ４２７において、子要素ｍに次の属性がないと判定される場合、ステップＳ４３３に進む。ステップＳ４３３において子要素ｍに次の要素があると判定された場合、ステップＳ４３５において、子要素ｍから次の要素を取得し、要素Ｃとする。また、ステップＳ４３６において、子要素ｎに次の要素があるか否かが判定される。次の要素がないと判定された場合、要素Ｃは欠落情報として抽出され、この欠落情報に関する処理は終了し、この欠落情報について、欠落情報加工処理を実行する。次の要素がある場合、ステップＳ４３７において、子要素ｎから次の要素を取得し要素Ｄとする。
【０１０４】
更にステップＳ４３８において、要素Ｃの要素名と要素Ｄの要素名が一致するか否かが判定される。一致しない場合、ステップＳ４３６に戻り、要素Ｃの要素名と子要素ｎの次の要素の要素名とが比較される。ステップＳ４３８において、要素Ｃの要素名と要素Ｄの要素名が一致すると判定された場合、要素Ｃ及び要素Ｄの属性が一致するかが判定される。
【０１０５】
ステップＳ４３９において、要素Ｃに次の属性があるか否かが判定される。次の属性がない場合、或いは、要素Ｃの全ての属性について処理が終了した場合、ステップＳ４４０において、子要素ｎの処理対象を先頭に戻してステップＳ４３３に進み、子要素ｍの次の要素と子要素ｎの先頭の要素とを比較する。一方、ステップＳ４３９において、要素Ｃに次の属性があると判定された場合、ステップＳ４４１において、要素Ｃの次の属性を取得し、属性ｃとする。ステップＳ４４２において要素Ｄに次の属性があるか否かが判定される。次の属性がない場合、ステップＳ４４３において、要素Ｃは欠落情報として抽出される。ステップＳ４４２において要素Ｄに次の要素があると判定された場合、ステップＳ４４４において、要素Ｄの次の属性を取得し属性ｄとする。
【０１０６】
ステップＳ４４５において、属性ｃと属性ｄの属性名が一致するか否かが判定される。属性名が一致しない場合、ステップＳ４４２に進み、属性ｃの属性名と要素Ｄの次の属性の属性名とが比較される。一方、ステップＳ４４５において、属性ｃと属性ｄの属性名が一致したと判定される場合、ステップＳ４４６において要素Ｄの処理対象を先頭に戻し、ステップＳ４３９において、要素Ｃの次の属性と要素Ｄの属性とが比較される。
【０１０７】
この様に図１１及び図１２に示す処理により、入力データ４１に含まれ、中間テンプレートデータ４２に含まれない要素が抽出され、欠落情報として出力される。更に、要素に含まれる属性についても、入力データ４１に含まれ、中間テンプレートデータ４２に含まれない属性を含む要素が抽出され、欠落情報として出力される。
【０１０８】
図１１及び図１２に示す処理では、１件の欠落情報について欠落情報抽出処理と欠落情報加工処理を連続して実行する場合を想定して説明した。従って、欠落情報の数だけ、欠落情報抽出処理と欠落情報加工処理を繰り返す。変形例としては、欠落情報抽出処理で全ての欠落情報を抽出してから、欠落情報加工処理で抽出された全ての欠落情報を欠落情報加工処理で処理しても良い。
【０１０９】
ここで図１３及び図１４を参照して、第１の欠落情報加工手段２２による欠落情報加工処理を説明する。図１３及び図１４の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ４５１において、欠落情報データ６２から要素を取得し、要素Ａとする。ステップＳ４５２において、ターゲットテンプレートデータに次の要素があるか否かが判定される。次の要素がない場合、具体的には、ターゲットテンプレートデータの全ての要素について、要素Ａと比較された場合、そのまま処理を終了する。
【０１１０】
一方、ターゲットテンプレートデータに次の要素がある場合、ステップＳ４５３において、ターゲットテンプレートデータから次の要素を取得し、要素Ｂとする。ステップＳ４５４において、ステップＳ４５１で取得した要素Ａと、ステップＳ４５３で取得した要素Ｂとの要素名が一致するか否かが判定される。要素Ａと要素Ｂの要素名が一致する場合、ステップＳ４５５に進み、この要素の位置を欠落情報データの挿入場所として、ステップＳ４５６乃至ステップＳ４６２の処理が実施される。
【０１１１】
ステップＳ４５６において、要素Ａに次の属性があるか否かが判定される。次の属性がないと判定される場合、具体的には、要素Ａの全ての属性について要素Ｂに反映されている場合、そのまま処理を終了する。
【０１１２】
一方、ステップＳ４５６において要素Ａに次の属性があると判定された場合、ステップＳ４５７において、要素Ａの次の属性を取得し、属性ａとする。更に、ステップＳ４５８において要素Ｂに次の属性があるか否かが判定される。次の属性がある場合、ステップＳ４５９において、要素Ｂの次の属性を取得し属性ｂとする。更に、ステップＳ４６０において、ステップＳ４５７で取得した属性ａとステップＳ４５９で取得した属性ｂの属性名が一致するか否かが判定される。一致しない場合、属性ａと要素Ｂの次の属性とを比較するため、ステップＳ４５８に進む。
【０１１３】
一方、ステップＳ４６０において属性ａと属性ｂの属性名が一致すると判定される場合、ステップＳ４６１において、要素Ｂの属性の先頭にポインタを移動させ、ステップＳ４５６に進む。
【０１１４】
ステップＳ４５８において、次の属性がないと判定される場合、具体的には要素Ａの属性ａは、要素Ｂには含まれない場合、ステップＳ４６２に進む。ステップＳ４６２においては属性ａを含む要素Ａが欠落情報であるので、要素Ｂの最後に、属性の区切り文字であるスペースを挿入するとともに、ソースデータの記述形式データ、具体的には入力データ４１の入力形式データ６１に対応づく識別子が名前空間として付与された属性ａの情報を挿入して、ターゲットデータに反映する。
【０１１５】
一方、ステップＳ４５４において要素Ａと要素Ｂの要素名が一致しない場合、この要素Ｂの位置に欠落情報である要素Ａを挿入するのは適切でないと判明する。その場合、ステップＳ４７１に進み、子要素について検討する。
【０１１６】
ステップＳ４７１において、要素Ｂに子要素があるか判定する。子要素がない場合、ステップＳ４５２に進みターゲットテンプレートデータの次の要素について、要素Ａと比較する。子要素がある場合、ステップＳ４７２において、要素Ｂから子要素を取得し子要素ｎとする。
【０１１７】
ステップＳ４７３において、要素Ａと子要素ｎの要素名が一致するか判定する。一致しない場合、ステップＳ４８２に進む。一方、一致する場合、ステップＳ４７４に進み、現在ターゲットテンプレートにおいてポイントが示している位置を欠落情報の挿入場所とする。ステップＳ４７５において、要素Ａに次の属性があるか判定する。次の属性がない場合、ステップＳ４８２に進み、後述の処理をする。一方次の属性がある場合、ステップＳ４７６において、要素Ａの次の属性を取得し、属性ｅとする。
【０１１８】
ステップＳ４７７において、要素Ｂに次の属性があるか判定する。次の属性がない場合、ステップＳ４７８に進み、属性ｅを欠落情報として出力し、要素Ａの末尾に名前空間をつけて挿入する。一方、次の属性がある場合、ステップＳ４７９において、要素Ｂの次の属性を取得し、属性ｆとする。
【０１１９】
ステップＳ４８０において、ステップＳ４７６で取得した属性ｅと、ステップＳ４７９で取得した属性ｆの属性名が一致するか判定する。一致しない場合、ステップＳ４７７において要素Ｂに次の属性があるか判定し、ステップＳ４７９において要素Ｂの次の属性を取得し属性ｆとする。一方、一致する場合、ステップＳ４８１において、要素Ｂのポインタを要素Ｂの先頭に進ませ、ステップＳ４７５に進む。
【０１２０】
ステップＳ４７５において、要素Ａに次の属性がないと判定されるなどの場合、ステップＳ４８２に進む。ステップＳ４８２において、子要素ｎに次の要素があるか判定する。次の要素がない場合、ステップＳ４５２に進みターゲットテンプレートデータの次の要素について、要素Ａと比較する。次の要素がある場合、ステップＳ４８３において、子要素ｎから次の要素を取得し、要素Ｄとする。
【０１２１】
次に、ステップＳ４８４において、要素Ａと要素Ｄの要素名が一致するか判定する。一致しない場合、ステップＳ４８２に進み、要素Ａと子要素ｎの次の要素とが比較される。ステップＳ４８４において、要素名が一致する場合、ステップＳ４８５に進み、この要素の位置を欠落情報データの挿入場所として、ステップＳ４８６乃至ステップＳ４８７の処理が実施される。
【０１２２】
ステップＳ４８６において、要素Ａに次の属性があるか否かが判定される。次の属性がないと判定される場合、具体的には、要素Ａの全ての属性について要素Ｄに反映されている場合、そのまま処理を終了する。
【０１２３】
一方、ステップＳ４８６において要素Ａに次の属性があると判定された場合、ステップＳ４８７において、要素Ａの次の属性を取得し、属性ｃとする。更に、ステップＳ４８８において要素Ｄに次の属性があるか否かが判定される。
【０１２４】
ステップＳ４８８において、要素Ｄに次の属性がない場合、ステップＳ４８９において、属性ｃを含む要素Ａが欠落情報であるので、要素Ａの最後に、属性の区切り文字であるスペースを挿入するとともに、ソースデータの記述形式、具体的には入力データ４１の入力形式データ６１と対応づく識別子が名前空間として付与された属性ｃの情報を挿入して、ターゲットデータに反映する。一方、ステップＳ４８８において、要素Ｄに次の属性がある場合、ステップＳ４９０において、要素Ｄの次の属性を取得し、属性ｄとする。
【０１２５】
一方、ステップＳ４９１において属性ｃと属性ｄの属性名が一致すると判定される場合、ステップＳ４９２において、要素Ｄの属性の先頭にポインタを移動させ、ステップＳ４８６に進む。
【０１２６】
この様に図１３及び図１４に示す処理により、入力データ４１に含まれ、中間テンプレートデータ４２に含まれない要素が抽出され、欠落情報として中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。更に、要素に含まれる属性についても、入力データ４１に含まれ、中間テンプレートデータ４２に含まれない属性を含む要素が抽出され、欠落情報として中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。
【０１２７】
（第１の不足情報識別手段、第１の補填候補作成手段及び第１の不足情報加工手段）
次に、第１の不足情報識別手段２３、第１の補填候補作成手段２４及び第１の不足情報加工手段２５を説明する。
【０１２８】
第１の不足情報識別手段２３は、中間テンプレートデータ４２に含まれ入力データ４１に含まれない要素名を有する要素を不足情報データ５３として抽出する。
【０１２９】
第１の補填情報作成手段２４は、補填候補データ６４を作成する手段である。中間テンプレートデータ４２において、必ず値が関連づけられる属性に、デフォルト値が関連づけられている場合、第１の補填候補作成手段２４は、中間テンプレートデータ４２で関連づけられたデフォルト値を補填候補データ６４として出力する。また、第１の補填候補作成手段２４は、ユーザの操作によって入力装置から入力された値を、補填候補データ６４として出力しても良い。
【０１３０】
第１の不足情報加工手段２５は、不足情報を補填候補データ６４とともに中間データ４３に挿入する。
【０１３１】
ここで、要素に含まれる属性についても、入力データ４１の要素に含まれ、中間テンプレートデータ４２の要素に含まれない属性も、欠落情報として処理しても良い。その場合、第１の不足情報識別手段２３は、入力データ４１から要素を抽出し、抽出された要素の要素名と同じ要素名を持つ要素を中間テンプレートデータ４２から抽出し、中間テンプレートデータ４２の要素に含まれ入力データ４１の要素に含まれていない属性がある場合、入力データ４１から抽出された要素を不足情報データ６３として出力する。第１の不足情報加工手段２５は、中間テンプレートデータ４２の要素に含まれ入力データ４１の要素に含まれていない属性に、補填候補データを設定して中間データ４３に挿入する。
【０１３２】
ここで、補填候補データ６４は、中間テンプレートデータ４２で関連づけられたデフォルト値であっても良い。この場合、中間テンプレートデータ４２には、必ず値が関連づけられる属性に、デフォルト値が関連づけられていることが好ましい。また、補填候補データ６４は、ユーザの操作によって入力装置から入力された値であっても良い。
【０１３３】
図１５を参照して、入力データ４１及び中間テンプレートデータ４２について説明する。入力データ４１及び中間テンプレートデータ４２には、要素名「UML:Class」の要素を備える。しかし、入力データ４１の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有するが、中間テンプレートデータ４２の要素名「UML:Class」の要素には、「name」、「xmi.id」及び「isSpecification」の各属性名を有する。従って、入力データ４１の要素名「UML:Class」の要素には含まれず、中間テンプレートデータ４２の要素名「UML:Class」の要素には含まれる属性名「isSpecification」が存在するので、第１の不足情報識別手段２３によって、この要素名「UML:Class」の要素は、不足情報データ６３としてＲＡＭ１０３に出力される。
【０１３４】
この不足情報は、補填候補作成手段２４によりこの属性名の属性値としてデフォルト値が与えられ、中間データ４３に反映される。具体的には、中間データ４３には、要素名「UML:Class」の要素の末尾の属性の後ろに、更に、「ツール1:isSpecification=“false”」との記述が追加される。
【０１３５】
次に、図１６及び図１７を参照して、第１の不足情報識別手段２３による不足情報識別処理を説明する。図１６及び図１７の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ５０１において、ターゲットテンプレートデータに次の要素があるか否かが判定される。次の要素がないと判定される場合、即ち、全ての要素について処理が終了した場合、そのまま不足情報識別処理を終了する。一方、ターゲットテンプレートデータに次の要素があると判定される場合、ステップＳ５０２において、不足情報データ６３から次の要素を取得し、要素Ａとする。
【０１３６】
更に、ステップＳ５０３において、ソースデータに次の要素があるか否かが判定される。次の要素がないと判定される場合、ターゲットテンプレートデータの要素Ａはソースデータに含まれないので、ステップＳ５０９において、この要素Ａは不足情報として抽出され、処理は終了する。一方、ステップＳ５０３において、ソースデータに次の要素がある場合、ステップＳ５０４において、ソースデータから次の要素を取得し、要素Ｂとする。
【０１３７】
ここで、ステップＳ５０５において、ステップＳ５０２で取得した要素Ａと、ステップＳ５０４で取得した要素Ｂの要素名が一致するか否かが判定される。一致しない場合は、ステップＳ５０３に進み、ソースデータの次の要素について、要素Ａと同じ要素が含まれるか否かが判定される。
【０１３８】
一方、ステップＳ５０５において、要素Ａと要素Ｂの要素名が一致する場合、具体的にはソースデータに要素Ａと同じ名前の要素が含まれる場合、この要素Ａの属性と、要素Ｂの属性が一致するか否かが検討される。ステップＳ５０６において、要素Ａに次の属性があるか否かが判定される。要素Ａに次の属性がない場合、ステップ５２１に進み、要素Ａの子要素について、要素Ｂの子要素と比較する。一方、ステップＳ５０６において要素Ａに次の属性がある場合、ステップＳ５０７に進む。以下、要素Ａの各属性について、ステップＳ５０８乃至ステップＳ５１２が実行される。
【０１３９】
ステップＳ５０６において要素Ａに次の要素があると判定された場合、ステップＳ５０７において、要素Ａの次の属性を取得し、属性ａとする。
【０１４０】
ステップＳ５０８において、要素Ｂに次の属性があるか否かが判定される。次の属性がない場合、ターゲットテンプレートデータの要素Ａはソースデータに含まれないので、ステップＳ５０９において、この要素Ａは不足情報として抽出され、処理は終了する。要素Ｂに次の属性がある場合、ステップＳ５１０に進む。以下、要素Ｂの各属性について、ステップＳ５１０及びステップＳ５１１の処理が繰り返される。
【０１４１】
ステップＳ５０８において要素Ｂに次の属性があると判定された場合、ステップＳ５１０において、要素Ｂの次の属性を取得し、属性ｂとする。ステップＳ５１１において、属性ａと属性ｂの属性名が一致しない場合、ステップＳ５０８において、要素Ｂの次の属性を検索する。一方、属性ａと属性ｂの属性名が一致する場合、具体的には、要素Ａの属性ａがソースデータに含まれる場合、ステップＳ５１２において、要素Ｂの属性について処理対象を先頭に戻し、ステップＳ５０６に進む。
【０１４２】
ステップＳ５０６において、要素Ａに次の属性がないと判定された場合、ステップＳ５２１に進む。ステップＳ５２１において、要素Ａに子要素があるか否かが判定される。要素Ａに子要素がない場合、ステップＳ５４６において、ソースデータについて処理を先頭に戻す。
【０１４３】
一方ステップＳ５２１において、要素Ａに子要素があると判定された場合、ステップＳ５２２において、要素Ａから子要素を取得し、子要素ｍとする。更にステップＳ５２３において、要素Ｂに子要素があるか否かが判定される。要素Ｂに子要素がない場合、ステップＳ５２４において、子要素ｍは不足情報として抽出され、処理は終了する。要素Ｂに子要素がある場合、ステップＳ５２５において、要素Ｂから子要素を取得し、子要素ｎとする。
【０１４４】
次に、ステップＳ５２６において、子要素ｍと子要素ｎの属性名が一致するか判定する。一致しない場合、後述するステップＳ５３５に進む。一方、一致する場合、ステップＳ５２７において、子要素ｍに次の属性があるか判定する。次の属性がない場合、後述するステップＳ５３３に進む。一方、次の属性がある場合、ステップＳ５２８において、子要素ｍの次の属性を取得し、属性ｅとする。ステップＳ５２９において、子要素ｎに次の属性があるか判定する。次の属性がない場合、ステップＳ５３６に進む。次の属性がある場合、ステップＳ５３０において、子要素ｎの次の属性を取得し属性ｆとする。
【０１４５】
ステップＳ５３１において、ステップＳ５２８で取得した属性ｅと、ステップＳ５３０で取得した属性ｆの属性名が一致するか判定する。一致しない場合、ステップＳ５２９に進み、子要素ｎに次の属性があるか判定する。一方一致する場合、ステップＳ５３２において、要素ｎのポインタを先頭に進ませ、ステップＳ５２７に進む。
【０１４６】
ステップＳ５２７において、子要素ｍに次の属性がないと判定される場合、ステップＳ５３３に進む。
【０１４７】
次に、ステップＳ５３３において、子要素ｍに次の要素があるか否かを判定する。次の要素がない場合、そのまま処理を終了する。
【０１４８】
ステップＳ５３３において子要素ｍに次の要素があると判定された場合、ステップＳ５３４において、子要素ｍから次の要素を取得し、要素Ｃとする。また、ステップＳ５３５において、子要素ｎに次の要素があるか否かが判定される。次の要素がないと判定された場合、ステップＳ５３６において、要素Ｄは不足情報として抽出され、この不足情報に関する処理は終了し、この不足情報について、補填候補作成処理及び不足情報加工処理を実行する。次の要素がある場合、ステップＳ５３７において、子要素ｎから次の要素を取得し要素Ｄとする。
【０１４９】
更にステップＳ５３８において、要素Ｃの要素名と要素Ｄの要素名が一致するか否かが判定される。一致しない場合、ステップＳ５３５に戻り、要素Ｃの要素名と子要素ｎの次の要素の要素名とが比較される。ステップＳ５３８において、要素Ｃの要素名と要素Ｄの要素名が一致すると判定された場合、要素Ｃ及び要素Ｄの属性が一致するかが判定される。
【０１５０】
ステップＳ５３９において、要素Ｃに次の属性があるか否かが判定される。次の属性がない場合、或いは、要素Ｃの全ての属性について処理が終了した場合、ステップＳ５４０において、子要素ｎの処理対象を先頭に戻して、ステップＳ５３３において、子要素ｍの次の要素と子要素ｎの先頭の要素とを比較する。一方、ステップＳ５３９において、要素Ｃに次の属性があると判定された場合、ステップＳ５４１において、要素Ｃの次の属性を取得し、属性ｃとする。ステップＳ５４２において要素Ｄに次の属性があるか否かが判定される。次の属性がない場合、要素Ｃは不足情報として抽出される。ステップＳ５４２において要素Ｄに次の要素があると判定された場合、ステップＳ５４３において、要素Ｄの次の属性を取得し属性ｄとする。
【０１５１】
ステップＳ５４４において、属性ｃと属性ｄの属性名が一致するか否かが判定される。属性名が一致しない場合、ステップＳ５４２に進み、属性ｃの属性名と要素Ｄの次の属性の属性名とが比較される。一方、ステップＳ５４４において、属性ｃと属性ｄの属性名が一致したと判定される場合、ステップＳ５４５において要素Ｄの処理対象を先頭に戻し、ステップＳ５３９において、要素Ｃの次の属性と要素Ｄの属性とが比較される。
【０１５２】
この様に図１６及び図１７に示す処理により、中間テンプレートデータ４２に含まれ、入力データ４１に含まれない要素が抽出され、不足情報として出力される。更に、要素に含まれる属性についても、中間テンプレートデータ４２に含まれ、入力データ４１に含まれない属性を含む要素が抽出され、不足情報として出力される。
【０１５３】
図１６及び図１７に示す処理では、１件の不足情報について不足情報識別処理、補填候補作成処理及び不足情報加工処理を連続して実行する場合を想定して説明した。従って、不足情報の数だけ、不足情報識別処理、補填候補作成処理及び不足情報加工処理を繰り返す。変形例としては、不足情報識別処理で全ての不足情報を抽出してから、補填候補作成処理で補填候補を作成し、不足情報識別処理で抽出された全ての不足情報を不足情報加工処理で処理しても良い。
【０１５４】
ここで図１８を参照して、第１の不足情報加工手段２５による不足情報加工処理を説明する。図１８の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ５５１において、不足情報データ６３から要素を取得し、要素Ａとする。次に、ステップＳ５５２において、図１６のステップＳ５０３乃至図１７のステップ５４５を実行し、そのとき処理対象となっている要素Ｂが不足情報を挿入するべき位置を得る。更に、ステップＳ５５３において、要素Ｂの最後に、属性の区切り文字であるスペースを挿入するとともに、図１６の入力形式データと対応づく識別子をつけた属性ａの情報を挿入し、図１７の入力データと対応づく識別子をつけた属性ｃの情報を挿入して、中間データ４３に反映する。
【０１５５】
この様に図１８に示す処理により、中間テンプレートデータ４２に含まれ、入力データ４１に含まれない要素が抽出され、不足情報として中間テンプレートデータ４２の所定の位置に記述された中間データ４２が出力される。更に、要素に含まれる属性についても、中間テンプレートデータ４２に含まれ、入力データ４１に含まれない属性を含む要素が抽出され、不足情報として中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。
【０１５６】
（第１の単純変換）
第１の単純変換手段２６は、入力データ４１と中間テンプレートデータ４２とに含まれる要素名を有する要素を抽出し変換して、変換された要素を中間データ４３に出力する。このとき、要素に含まれる属性及び子要素についても同様に変換される。
【０１５７】
図１９を参照して、入力データ４１及び中間テンプレートデータ４２について説明する。入力データ４１及び中間テンプレートデータ４２には、要素名「UML:Class」の要素を備える。入力データ４１の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有し、中間テンプレートデータ４２の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有する。従って、入力データ４１の要素名「UML:Class」の要素は、そのままの形で中間データ４３に出力される。
【０１５８】
図２０を参照して、第１の単純変換手段２６による単純変換処理を説明する。図２０の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ６０１において、ソースデータから要素を取り出す。ステップＳ６０２において、ターゲットテンプレートデータから、ステップＳ６０１において取り出された要素に対応する場所を探す。この場所を探すときの具体的な処理は、欠落情報抽出手段２１による欠落情報抽出処理などと同様である。
【０１５９】
ステップＳ６０３において、ステップＳ６０２において探された場所に、ステップＳ６０１でソースデータから取り出された要素を挿入する。
【０１６０】
この様に図２０に示す処理により、入力データ４１及び中間テンプレートデータ４２に含まれる要素が、中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。更に、要素に含まれる属性についても、中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。
【０１６１】
以上、図６乃至図２０を参照して説明した第１の変換手段２０の処理により、入力データ４１は、中間データ４３に変換される。このとき、入力データ４１に含まれ中間テンプレートデータ４２に含まれない要素及び要素の属性は欠落情報として中間データ４３に反映される。また、中間テンプレートデータ４２に含まれ入力データ４１に含まれない要素及び要素の属性は不足情報として中間データ４３に反映される。
【０１６２】
（第２の変換手段）
第２の変換手段３０は、中間データ４３から、出力テンプレートデータ４４に基づいて出力データ４５を出力する。第２の変換手段３０は、第２の欠落情報抽出手段３１と、第２の欠落情報加工手段３２と、第２の不足情報識別手段３３と、第２の補填候補作成手段３４と、第２の不足情報加工手段３５と、第２の単純変換手段３６を備える。
【０１６３】
図９を参照して、本発明の最良の実施の形態に係る第２の変換手段３０の処理の概略を説明する。第２の変換手段３０の処理は、図９を参照して説明した第１の変換手段２０の処理と同様である。但し、第２の変換手段３０について図９の例においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。
【０１６４】
（第２の欠落情報抽出手段及び第２の欠落情報加工手段）
次に、第２の欠落情報抽出手段３１及び第２の欠落情報加工手段３２を説明する。
【０１６５】
第２の欠落情報抽出手段３１は、記憶装置から１０７出力テンプレートデータ４４を読み出すとともに、中間データ４３に含まれ出力テンプレートデータ４４に含まれない要素名を有する要素を欠落情報データ６５として抽出して、ＲＡＭ１０３に記憶する。
【０１６６】
第２の欠落情報加工手段３２は、欠落情報データ６５を出力データ４５に挿入する。第２の欠落情報加工手段３２は、欠落情報データ６５の要素名と一致する出力テンプレートデータ４４に、中間データ４３に含まれ出力テンプレートデータ４４に含まれていない要素について、出力データ４５の出力形式が入力データ４１の入力形式が一致する場合、要素に付与された入力形式データ６１を削除して出力データ４５に挿入する。具体的には、第２の欠落情報加工手段３２は、名前空間として付与された入力形式データ６１を削除する。一方、第２の欠落情報加工手段３２は、出力データ４５の出力形式が入力データ４１の入力形式が一致しない場合、要素をそのまま出力データ４５に挿入する。
【０１６７】
ここで、要素に含まれる属性についても、中間データ４３の要素に含まれ、出力テンプレートデータ４４の要素に含まれない属性も、欠落情報として処理しても良い。その場合、第２の欠落情報抽出手段３１は、中間データ４３から要素を抽出し、抽出された要素の要素名が出力テンプレートデータ４４に含まれている要素を抽出し、中間データ４３の要素に含まれ出力テンプレートデータ４４の要素に含まれていない属性がある場合、中間データ４３から抽出された要素を欠落情報データ６５として出力する。第２の欠落情報加工手段３２は、欠落情報データ６５の要素名と一致する出力テンプレートデータ４４の要素の末尾に、中間データ４３の要素に含まれ出力テンプレートデータ４４の要素に含まれていない属性について、出力データ４５の出力形式と入力データ４１の入力形式が一致する場合、属性に付与された入力形式データ６１と対応づく識別子を削除して出力データ４５に挿入する。具体的には、第２の欠落情報加工手段３２は、名前空間として付与された入力形式データ６１を削除する。一方、第２の欠落情報加工手段３２は、出力データ４５の出力形式と入力データ４１の入力形式が一致しない場合、属性をそのまま出力データ４５に挿入する。
【０１６８】
図２１を参照して、中間データ４３及び出力テンプレートデータ４４について説明する。中間データ４３及び出力テンプレートデータ４４には、要素名「UML:Class」の要素を備える。しかし、中間データ４３の要素名「UML:Class」の要素には、「name」、「xmi.id」及び「ツール１:isSpecification」の各属性名を有するが、出力テンプレートデータ４４の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名のみを有する。ここで、「ツール１」とは、入力データ４１の入力形式データ６１である。従って、中間データ４１の要素名「UML:Class」の要素には含まれ、出力テンプレートデータ４４の要素名「UML:Class」の要素には含まれない属性名「ツール１:isSpecification」が存在するので、第２の欠落情報抽出手段３１によって、この要素名「UML:Class」の要素は、欠落情報データ６５としてＲＡＭ１０３に出力される。更に、第２の欠落情報加工手段３２によって、入力データ４１の入力形式データ６１である「ツール１」が削除された属性「isSpecification=“false”」が生成される。第２の欠落情報加工手段３２は、この属性「isSpecification=“false”」を出力データ４５に反映する。具体的には、中間データ４３には、要素名「UML:Class」の要素の末尾の属性の後ろに、半角スペースが挿入されるとともに、更に、「isSpecification=“false”」との記述が追加される。
【０１６９】
第２の欠落情報抽出手段３１は、図１１及び図１２を参照して説明した処理と同様の処理である。但し、第２の欠落情報抽出手段３１においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。図１１及び図１２に示す処理と同様の処理により、中間データ４３に含まれ、出力テンプレートデータ４４に含まれない要素が抽出され、欠落情報として出力される。更に、要素に含まれる属性についても、中間データ４３に含まれ、出力テンプレートデータ４４に含まれない属性を含む要素が抽出され、欠落情報として出力される。
【０１７０】
図２２及び図２３を参照して、第２の欠落情報加工手段３２による欠落情報加工処理を説明する。
【０１７１】
図２２は、入力データ４１の記述形式と出力データ４２の記述形式が異なる場合の処理を説明している。図２２の例においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である。
【０１７２】
まず、ステップＳ７０１において、欠落情報データ６５から要素を取得し、要素Ａとする。ステップＳ７０２において、ターゲットテンプレートデータに次の要素があるか否かが判定される。次の要素がない場合、具体的には、ターゲットテンプレートデータの全ての要素について、要素Ａと比較された場合、そのまま処理を終了する。
【０１７３】
一方、ターゲットテンプレートデータに次の要素がある場合、ステップＳ７０３において、ターゲットテンプレートデータから次の要素を取得し、要素Ｂとする。ステップＳ７０４において、ステップＳ７０１で取得した要素Ａと、ステップＳ７０３で取得した要素Ｂとの要素名が一致するか否かが判定される。ステップＳ７０４において要素Ａと要素Ｂの要素名が一致しない場合、この要素Ｂの位置に欠落情報である要素Ａを挿入するのは適切でないと判明する。その場合、ステップＳ７０２に進み、ターゲットテンプレートデータの次の要素について検討する。
【０１７４】
一方、要素Ａと要素Ｂの要素名が一致する場合、ステップＳ７０５に進み、要素Ｂから子要素を取得し、子要素を取得し子要素ｍとする。ステップＳ７０６において、子要素ｍの次の要素を取得し要素Ｃとする。ステップＳ７０７において、要素Ｃの要素名が、タグ付き値であるか否か、具体的には、「UML:TaggedValue」であるかが判定される。ここで、「TaggedValue」とは、タグ付き値と呼ばれ、コメントや覚え書きの用に、設計モデルにおける付加情報の表現に使用される仕組みである。タグ付き値でない場合、この要素Ｃには欠落情報を挿入する場所ではないので、ステップＳ７０６に戻る。一方、タグ付き値である場合、ステップＳ７０８においてこの要素Ｃの位置を欠落情報挿入場所とする。
【０１７５】
ステップＳ７０９において、要素Ａに次の属性があるか否かが判定される。次の属性がある場合、ステップＳ７１０において、要素Ａの次の属性を取得し属性ａとする。一方、要素Ａに次の属性がなければ、この欠落情報に関する処理は終了し、この欠落情報について欠落情報加工処理を実行する。ステップＳ７１１において、要素Ｂに次の属性があるか否かが判定される。次の属性がある場合、ステップＳ７１３において、要素Ｂの次の属性を取得し属性ｂとする。一方、要素Ｂに次の属性がなければ、ステップＳ７１２に進み、属性ａが欠落情報であると判定される。更に要素Ｃに要素Ａの属性を加工して挿入する。具体的には、isSpecification=falseは、<UML:TaggedValue tag=“isSpecification” value=“false”  modelElement=“S.351.1058.36.1” />となる。
【０１７６】
一方、ステップＳ７１１において要素Ｂに次の属性があると判定される場合、ステップＳ７１３に進み、要素Ｂの次の属性を取得し属性ｂとする。ステップＳ７１４において、属性ａと属性ｂの属性名が一致するか判定され、一致しない場合は、ステップＳ７１１に進み、属性ａと要素Ｂの次の属性とが検討される。一方、ステップＳ７１４において属性ａと属性ｂの属性名が一致すると判定された場合、この属性ａは欠落情報ではないと判定される。ステップＳ７１５において、要素Ｂについて処理対象を要素Ｂの属性の先頭に戻し、要素Ａの次の属性と要素Ｂの属性とが検討される。
【０１７７】
図２２の処理により、入力データ４１と出力データ４５を変換する際、一度中間データ４３に変換してから入力データから出力データ４５を変換するので、欠落情報が反映された出力データ４５を得ることができる。
【０１７８】
図２２に示す処理では、１件の欠落情報について欠落情報抽出処理及び欠落情報加工処理を連続して実行する場合を想定して説明した。従って、欠落情報の数だけ、欠落情報抽出処理及び欠落情報加工処理を繰り返す。変形例としては、欠落情報抽出処理で全ての欠落情報を抽出してから、欠落情報抽出処理で抽出された全ての欠落情報を欠落情報加工処理で処理しても良い。
【０１７９】
図２３は、入力データ４１の記述形式と出力データ４２の記述形式が同じ場合の処理を説明している。図２３の例においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である。  
まず、ステップＳ７５１において、欠落情報データ６５から要素を取得し、要素Ａとする。ステップＳ７５２において、ターゲットテンプレートデータに次の要素があるか否かが判定される。次の要素がない場合、具体的には、ターゲットテンプレートデータの全ての要素について、要素Ａと比較された場合、そのまま処理を終了する。
【０１８０】
一方、ターゲットテンプレートデータに次の要素がある場合、ステップＳ７５３において、ターゲットテンプレートデータから次の要素を取得し、要素Ｂとする。ステップＳ７５４において、ステップＳ７５１で取得した要素Ａと、ステップＳ７５３で取得した要素Ｂとの要素名が一致するか否かが判定される。ステップＳ７５４において要素Ａと要素Ｂの要素名が一致しない場合、この要素Ｂの位置に欠落情報である要素Ａを挿入するのは適切でないと判明する。その場合、ステップＳ７５５に進み、図１４のステップＳ４７１乃至ステップＳ４８２について実行し、子要素について検討する。
【０１８１】
一方、要素Ａと要素Ｂの要素名が一致する場合、ステップＳ７５６に進み、この要素の位置を欠落情報データの挿入場所として、ステップＳ７５６乃至ステップＳ７６４の処理が実施される。
【０１８２】
ステップＳ７５７において、要素Ａに次の属性があるか否かが判定される。次の属性がないと判定される場合、具体的には、要素Ａの全ての属性について要素Ｂに反映されている場合、そのまま処理を終了する。一方、ステップＳ７５７において要素Ａに次の属性があると判定された場合、ステップＳ７５８において、要素Ａの次の属性を取得し、属性ａとする。
【０１８３】
ステップＳ７５９において要素Ｂに次の属性があるか否かが判定される。次の属性がある場合、ステップＳ７６０において、要素Ｂの次の属性を取得し属性ｂとする。更に、ステップＳ７６１において、ステップＳ７５８で取得した属性ａとステップＳ７６０で取得した属性ｂの属性名が一致するか否かが判定される。ステップＳ７６１において属性ａと属性ｂの属性名が一致すると判定される場合、ステップＳ７６２において、要素Ｂの属性の先頭にポインタを移動させ、ステップＳ７５７に進む。ステップＳ７５７において、次の属性がないと判定される場合、具体的には要素Ａの属性ａは、要素Ｂには含まれない場合、処理を終了する。
【０１８４】
一方、ステップＳ７５９において要素Ｂに次の属性がない場合、ステップＳ７５７に進む。
【０１８５】
ステップＳ７６１において、ステップＳ７５８で取得した属性ａとステップＳ７６０で取得した属性ｂの属性名が一致しない場合、ステップＳ７６３において、属性ａの属性名から名前空間を取った属性名と、属性ｂの属性名が一致するかが検討される。一致しない場合、ステップＳ７５７に進む。一方、一致する場合、ステップＳ７６４において、属性ａが欠落情報であると判断される。従って、属性ｂの属性値に、属性ａの属性値を挿入して、ターゲットデータに挿入する。
【０１８６】
図２３の処理により、入力データ４１と出力データ４５の記述形式が同じであっても、一度中間データ４３に変換してから入力データから出力データ４５を変換するので、より汎用性の高い出力データ４５を得ることができる。
【０１８７】
図２２及び図２３を参照して説明した第２の欠落情報加工手段３２の処理により、欠落情報データ６５に含まれる要素であって、中間データ４３に含まれ出力テンプレートデータ４４に含まれない要素が、欠落情報として出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。更に、要素に含まれる属性についても、中間データ４３に含まれ、出力テンプレートデータ４４に含まれない属性を含む要素が抽出され、欠落情報として出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。
【０１８８】
（第２の不足情報識別手段、第２の補填候補作成手段及び第２の不足情報加工手段）
次に、第２の不足情報識別手段３３、第２の補填候補作成手段３４及び第２の不足情報加工手段３５を説明する。
【０１８９】
第２の不足情報識別手段３３は、出力テンプレートデータに含まれ中間データに含まれない要素名を有する要素を不足情報として抽出する。
【０１９０】
第２の不足情報識別手段３３は、出力テンプレートデータ４４に含まれ中間データ４３に含まれない要素名を有する要素を不足情報データ６５として抽出して、ＲＡＭ１０３に記憶する。
【０１９１】
第２の補填情報作成手段３４は、補填候補データ６７を作成する手段である。出力テンプレートデータ４４において、必ず値が関連づけられる属性に、デフォルト値が関連づけられている場合、第２の補填候補作成手段３４は、出力テンプレートデータ４４で関連づけられたデフォルト値を補填候補データ６７として出力する。また、第２の補填候補作成手段３４は、ユーザの操作によって入力装置から入力された値を、補填候補データ６７として出力しても良い。
【０１９２】
第２の不足情報加工手段３３は、不足情報データ６６を出力データ４５に挿入する。
【０１９３】
ここで、要素に含まれる属性についても、中間データ４３の要素に含まれ、出力テンプレートデータ４４の要素に含まれない属性も、不足情報として処理しても良い。その場合、第２の不足情報識別手段３３は、中間データ４３から要素を抽出し、抽出された要素の要素名が出力テンプレートデータ４４に含まれている要素を抽出し、出力テンプレートデータ４４の要素に含まれ中間データ４３の要素に含まれていない属性がある場合、中間データ４３から抽出された要素を不足情報データ６６として出力する。第２の不足情報加工手段３５は、不足情報データ６６の要素のうちで出力テンプレートデータ４４の要素に含まれ中間データ４３の要素に含まれていない属性に、補填候補データを設定して出力データ４５に挿入する。
【０１９４】
ここで、補填候補データ６７は、出力テンプレートデータ４４で関連づけられたデフォルト値であっても良い。この場合、出力テンプレートデータ４４には、必ず値が関連づけられる属性に、デフォルト値が関連づけられていることが好ましい。また、補填候補データ６７は、ユーザの操作によって入力装置から入力された値であっても良い。
【０１９５】
図２４を参照して、中間データ４３及び出力テンプレートデータ４４について説明する。中間データ４３及び出力テンプレートデータ４４には、要素名「UML:Class」の要素を備える。しかし、中間データ４３の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有するが、出力テンプレートデータ４４の要素名「UML:Class」の要素には、「name」、「xmi.id」及び「isSpecification」の各属性名を有する。従って、中間データ４３の要素名「UML:Class」の要素には含まれず、出力テンプレートデータ４４の要素名「UML:Class」の要素には含まれる属性名「isSpecification」が存在するので、第２の不足情報識別手段３３によって、この要素名「UML:Class」の要素は、不足情報データ６６としてＲＡＭ１０３に出力される。
【０１９６】
この不足情報は、補填候補作成手段２４によりこの属性名の属性値としてデフォルト値が与えられ、中間データ４３に反映される。具体的には、中間データ４３には、要素名「UML:Class」の要素の末尾の属性の後ろに、更に、「ツール1:isSpecification=“false”」との記述が追加される。
【０１９７】
第２の不足情報識別手段３３は、図１６及び図１７を参照して説明した処理と同様の処理である。但し、第２の不足情報識別手段３３においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。図１６及び図１７に示す処理と同様の処理により、出力テンプレートデータ４４に含まれ、中間データ４３に含まれない要素が抽出され、不足情報として出力される。更に、要素に含まれる属性についても、出力テンプレートデータ４４に含まれ、中間データ４３に含まれない属性を含む要素が抽出され、不足情報として出力される。
【０１９８】
第２の不足情報加工手段３５は、図１８を参照して説明した処理と同様の処理である。但し、第２の不足情報加工手段３５においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。図１８に示す処理と同様の処理により、不足情報識別手段３３によって抽出された要素であって、出力テンプレートデータ４４に含まれ中間データ４３に含まれない要素が抽出され、不足情報として出力テンプレートデータ４４の所定の位置に記述された出力データ４４が出力される。更に、要素に含まれる属性についても、出力テンプレートデータ４４に含まれ、中間データ４３に含まれない属性を含む要素が抽出され、不足情報として出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。
【０１９９】
（第２の単純変換）
第２の単純変換手段３６は、中間データ４３と出力テンプレートデータ４４とに含まれる要素名を有する要素を抽出し変換して、変換された要素を出力データ４５に出力する。
【０２００】
図２５を参照して、中間データ４３及び出力テンプレートデータ４４について説明する。中間データ４３及び出力テンプレートデータ４４には、要素名「UML:Class」の要素を備える。中間データ４３の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有し、出力テンプレートデータ４４の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名を有する。従って、中間データ４３の要素名「UML:Class」の要素は、そのままの形で出力データ４５に出力される。
【０２０１】
第２の単純変換手段３６は、図２０を参照して説明した処理と同様の処理である。但し、第２の単純変換手段３６においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。図２０に示す処理と同様の処理により、中間データ４３及び出力テンプレートデータ４４に含まれる要素が、出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。更に、要素に含まれる属性についても、出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。
【０２０２】
以上で説明した第２の変換手段３０の処理により、中間データ４１は、出力データ４５に変換される。このとき、中間データ４３に含まれ出力テンプレートデータ４４に含まれない要素及び要素の属性は欠落情報として出力データ４５に反映される。また、出力テンプレートデータ４４に含まれ中間データ４３に含まれない要素及び要素の属性は不足情報として出力データ４５に反映される。
【０２０３】
この様な本発明の最良の実施の形態に係る変換装置１によると、入力データを中間テンプレートデータに従って中間データに変換し、中間データから出力データに変換する。また、データの変換時に、データの欠落や不足に対応することができる。
【０２０４】
例えば、出力データの記述形式には含まれない欠落情報データでも、入力データの記述形式を識別する文言を添えて、中間データで、入力データの要素及び属性を保持することができる。具体的には、図２６で示す中間データにおいて、「ツール:isSpecification="false"」と記載している。ここでは、入力データと対応づく記述形式「ツール１」を名前空間として記載し、入力データにのみ含まれる属性名及び属性値「isSpecification="false"」を保持している。従って将来に「isSpecification」の属性名が有効な記述形式に出力する場合でも、図２６に示した中間データから容易に生成することができる。具体的には、図２７に示すように、出力データに属性「isSpecification="false"」を含ませることができる。また、図２６に示すように名前空間を利用して属性名及び属性値を記載して中間データとして保持していても、入力データの記述形式としては別の情報として扱われるので、問題ない。
【０２０５】
従って、ツールによってＸＭＩの記述形式が異なっても、本発明の最良の実施の形態に係る変換装置１によると、ツールによる差違を吸収し、汎用性の高い出力データを出力することができる。
【０２０６】
更に、従来は、ツールのバージョンアップや新たなツールの追加によって、ツール毎及びバージョン毎に変換装置が必要になったが、本発明の最良の実施の形態に係る変換装置１は、容易に実装することができる。具体的には、本発明の最良の実施の形態に係る変換装置１によれば、バージョンアップしたツールや新たに追加されたツールに、バージョンアップしたツールや新たなに追加されたツールのテンプレートデータを追加するとともに、中間テンプレートデータのみを適応させることによって、入力データを、バージョンアップしたツールや新たに追加されたツールに適用可能な出力データに変換することが可能となる。
【０２０７】
［第１の変形例］
次に、図２８を参照して、本発明の最良の実施の形態の第１の変形例に係る変換装置１を説明する。本発明の最良の実施の形態の第１の変形例に係る変換装置１は、図１に示した本発明の最良の実施の形態に係る変換装置１に比べて、記憶装置１０７に保持データ４６を備えている点が異なる。保存データ４６は、第１の変換手段２０の第１の欠落情報抽出手段２１によって出力された欠落情報データ６２に基づいて、第１の欠落情報加工手段２２によって生成されるデータである。
【０２０８】
第１の欠落情報加工手段２２は、欠落情報データを識別する識別子を出力し、中間データ４３の欠落情報データ６２を挿入する位置に識別子を挿入する。更に、欠落情報加工手段２２は、識別子、入力形式データ及び欠落情報データの情報を関連づけて、保持データ４６として記憶装置１０７に記憶する。
【０２０９】
図２９を参照して、第１の欠落情報抽出手段２１によって、入力データ４１から中間データ４２及び保持データ４６を生成するデータ例を説明する。ここで、第１の欠落情報抽出手段２１は、図１０に示す中間テンプレートデータ４２に従って、中間データを出力する。
【０２１０】
図２９に示す入力データ４１及び図１０に示す中間テンプレートデータ４２には、要素名「UML:Class」の要素を備える。しかし、入力データ４１の要素名「UML:Class」の要素には、「name」、「xmi.id」及び「isSpecification」の各属性名を有するが、中間テンプレートデータ４２の要素名「UML:Class」の要素には、「name」及び「xmi.id」の各属性名のみを有する。従って、入力データ４１の要素名「UML:Class」の要素には含まれ、中間テンプレートデータ４２の要素名「UML:Class」の要素には含まれない属性名「isSpecification」が存在するので、第１の欠落情報抽出手段２１によって、この要素名「UML:Class」の要素は、欠落情報データ６２としてＲＡＭ１０３に出力される。
【０２１１】
更に、第１の欠落情報加工手段２２は、この欠落情報データ６２を識別する識別子「insertId1」を採番し、中間データ４３の欠落情報データ６２が挿入されるべき位置に、コメントとして識別子「insertId1」を挿入する。ここでは、「<!--insertId1-->」と表示される。一方、第１の欠落情報加工手段２２は、識別子としてキー(Key)項目に「insertId1」を設定し、入力形式データとしてツール(Tool)項目に「ツール１」を設定し、欠落情報データとしてバリュー（Value）項目に「isSpecification=false」を設定した保持データ４６を生成し、記憶装置１０７に記憶する。保持データ４６には、入力データ４１で記載されていた形式を記載する項目（Original）を備えても良い。
【０２１２】
図３０を参照して、第２の欠落情報抽出手段３１によって、中間データ４２及び保持データ４６から出力データ４５を生成するデータ例を説明する。
【０２１３】
中間データ４３には、コメント行「<!--insertId1-->」から、この位置に挿入されるべき保持データの識別子を抽出する。一方、保持データ４６は、識別子「insertId1」に関連づけられたデータである。このとき、中間データ４３のコメント行が挿入されている位置には、保持データのOriginal項目に設定された値が挿入されても良い。また、保持データ４６を挿入する際に、保持データ４６は、記述形式に適合した記載形式になるように適宜加工されても良い。
【０２１４】
図３１及び図３２を参照して、第２の欠落情報加工手段３２による欠落情報加工処理を説明する。
【０２１５】
図３１は、入力データ４１の記述形式と出力データ４２の記述形式が異なる場合の処理を説明している。
【０２１６】
まず、ステップＳ１１０１において、中間データ４３から次の要素を取得し、要素Ｄとする。ステップＳ１１０２において、要素Ｄがコメント行であるか否かが判定され、要素Ｄがコメント行である場合、ステップＳ１１０３において、要素Ｄからコメントを取得し、コメントＰとする。コメントＰでは、図３０で示す例では、「insertId1」である。ステップＳ１１０４において、コメントＰをキーとして、保持データ４６から欠落情報を取得する。更に、ステップＳ１１０５において、要素Ｄの次の要素を取得し、要素Ａとする。更に、ステップＳ１１０５において、図２２のステップＳ７０２乃至ステップＳ７０８を実行する。これにより、欠落情報の挿入場所を探す。
【０２１７】
ステップＳ１１０７において、図２２の要素Ｃに図２２の欠落情報ａの値をタグ付き値として挿入する。具体的には、要素Ａが、「UML:Class name=”myClass” xmi.id=”S.351.1058.36.1"」、欠落情報aが「Key=”insertId1",Tool=”ツール1", Value=”isSpecification=false”, Original=”<UML:Class name=”myClass” xmi.id=”S.351.1058.36.1">」 である場合について説明する。ここで、出力テンプレートデータで、「tag=“”  value=“”  modelElement=””」と記載されている場合、「tag=“”」 の””へ、Valueの値の= より前の文字列「isSpecification」をあてはめる。「value=“” 」の”” へValueの値の=より後ろの文字列「false」 をあてはめる。「modelElement=””」 の””に要素Ａのxmi.id の文字列「S.351.1058.36.1」をあてはめる。
【０２１８】
一方、ステップＳ１１０２において、要素Ｄがコメント行でない場合、要素Ｄの子要素にコメント行があるか否かを判定する。具体的には、ステップＳ１１０８において、要素Ｄに子要素があるか否かが判定される。子要素がない場合、ステップＳ１１０１に戻り、中間データ４３から次の要素を取得して、取得した要素についてコメント行であるか否かが判定される。
【０２１９】
ステップＳ１１０８において、要素Ｄに子要素がある場合、ステップＳ１１０９において、要素Ｄから子要素を取得し、子要素ｍとする。次に、ステップＳ１１１０において、子要素ｍがコメント行であるか否かが判定される。コメント行でない場合、ステップＳ１１１２に進む。コメント行である場合、ステップＳ１１１１において、子要素ｍからコメントを取得し、コメントＰとし、ステップＳ１１０４に進む。
【０２２０】
ステップＳ１１０８において、次の子要素がない場合、ステップＳ１１０１に進む。ステップＳ１１１０において、子要素ｍがコメント行であるか否かが判定される。コメント行であると判定される場合、ステップＳ１１１１において子要素ｍからコメントを取得し、コメントＰとしてステップＳ１１０４に進む。一方、ステップＳ１１１０において、子要素ｍがコメント行でない場合、ステップＳ１１１２において子要素ｍに次の要素がない場合、ステップＳ１１０１に戻り、中間データ４３から次の要素を取得して、取得した要素についてコメント行であるか否かが判定される。
【０２２１】
ステップＳ１１１２において子要素ｍに次の要素がある場合、ステップＳ１１１３において子要素ｍから次の要素を取得し要素Ｅとする。ステップＳ１１１４において要素Ｅがコメント行であるか否かが判定される。コメント行でない場合、ステップＳ１１１２において、子要素ｍの次の要素についてコメント行であるか否かが判定される。
【０２２２】
ステップＳ１１１４において要素Ｅがコメント行であると判定された場合、ステップＳ１１１５において、要素Ｅからコメントを取得し、コメントＰとし、ステップＳ１１０４乃至ステップＳ１１０７の処理を続ける。
【０２２３】
図３２は、入力データ４１の記述形式と出力データ４２の記述形式が同じ場合の処理を説明している。
【０２２４】
図３２に示す処理は、図３１に示す処理と同様であるが、挿入するべき欠落情報が異なる。入力データ４１と出力データ４２の記述形式が同じ場合、第２の欠落情報加工処理手段３２は、欠落情報データを挿入する際は、元々入力データ４１に記載されていた値、具体的には保持データ４６の「Original」カラムに記憶された値を挿入する。
【０２２５】
この様に、本発明の最良の実施の形態の第１の変形例に係る変換装置によれば、欠落情報を保持データ４６として中間データ４３の外部に記憶する。従って、中間データ４３の内部に欠落情報を保持する場合と比べて、欠落情報データに対するコメントや元々のデータなど、より大きなデータを管理することができる。
【０２２６】
また、保持データ４６は、データベース形式で保存されても良いし、ファイル形式で保存されても良い。保持データ４６としての機能を満たす限り、どのような形式で保存されても良い。
【０２２７】
［第２の変形例］
次に、図３３を参照して、本発明の最良の実施の形態の第２の変形例に係る変換装置１を説明する。本発明の最良の実施の形態の第２の変形例に係る変換装置１は、図１に示した本発明の最良の実施の形態のに係る変換装置１に比べて、記憶装置１０７に対応データ４７を備えている点が異なる。
【０２２８】
対応データ４７は、図３４に示すように、中間テンプレートデータに記載された各要素名及び属性名について、各記述形式のテンプレートデータに適応した各要素名及び属性名が対応づけられたデータである。入力データ４１から中間データ４３に変換する際は、入力データ４１の要素名及び属性名を、対応データ４７に基づいて、中間テンプレートデータ４２に適応した要素名及び属性名に変換して中間データ４３を出力する。中間データ４３から出力データ４５に変換する際は、中間データ４３の要素名及び属性名を、対応データ４７に基づいて、出力テンプレートデータ４４に適応した要素名及び属性名に変換して出力データ４５を出力する。
【０２２９】
例えば、ツール１の記述形式で記載された入力データ４１に、要素名「Class」の要素に属性名「name」の属性ａがあるとする。この場合、第１の変換手段２０の単純変換手段２６は、入力データ４１から中間データ４３に変換する際に、この属性ａについて属性名を「_name」に設定して出力する。更に第２の変換手段３０の単純変換手段３６は、中間データ４３からツール２の記述形式で記載された出力データ４５に変換する際に、この属性ａについて属性名を「name」に設定して出力する。
【０２３０】
図３５及び図３６を参照して、第１の単純変換手段２６による単純変換処理を説明する。図３５及び図３６の例においては、ソースデータが入力データ４１、ターゲットデータが中間データ４３、ターゲットテンプレートデータが中間テンプレートデータ４２である。  
まず、ステップＳ２１０１において、ソースデータに次の要素があるか否か検討される。次の要素がない場合、即ちソースデータの全ての要素について処理した場合、そのまま処理を終了する。
【０２３１】
ステップＳ２１０１においてソースデータに次の要素がある場合、ステップＳ２１０２において、ソースデータから次の要素を取得し、要素Ａとする。ステップＳ２１０３において、対応データ４７を参照して、要素Ａの要素名と対応するターゲットテンプレートデータの要素名を取得し、取得した要素名を要素Ａに設定した要素を要素Ａ’とする。ステップＳ２１０４において、ターゲットテンプレートデータから次の要素を取得し、要素Ｂとする。ステップＳ２１０５において、要素Ａ’と要素Ｂの要素名が一致するか否か判定する。一致しない場合、ステップＳ２１０４に戻り、ターゲットテンプレートデータの次の要素と要素Ａ’を比較する。
【０２３２】
ステップＳ２１０５において、要素Ａ’と要素Ｂの要素名が一致する場合、ステップＳ２１０６に進み、要素Ａに次の属性があるか否かを判定する。要素Ａ’に次の属性がある場合、ステップＳ２１０７において要素Ａ’の次の属性を取得し属性ａとする。更にステップＳ２１０８において、対応データ４７を参照して、属性ａの属性名と対応するターゲットテンプレートデータの属性名を取得し、取得した属性名を属性ａに設定した属性を属性ａ’とする。ステップＳ２１０９において、要素Ｂの次の属性を取得し、属性ｂとする。ステップＳ２１１０において、属性ａ’と属性ｂの属性名が一致するか否か判定する。一致しない場合、ステップＳ２１０９に戻り、要素Ｂの次の属性と属性ａ’を比較する。
【０２３３】
一方、ステップＳ２１１０において、属性ａ’の属性名と属性ｂの属性名が一致する場合、変換の対象となる属性なので、属性ｂの属性値に、属性ａの属性値をあてはめてターゲットデータに出力する。更に、ステップＳ２１０６に戻り、要素Ａの次の属性について、変換の対象となる属性を探索する。
【０２３４】
ステップＳ２１０６において、要素Ａに次の属性がないと判定された場合、ステップＳ２１５１に進み、要素Ａの子要素について検討する。ステップＳ２１５１において、要素Ａに子要素があるか判定する。子要素がない場合、ステップＳ２１０１に戻りソースデータの次の要素について検討する。
【０２３５】
ステップＳ２１５１において子要素がある場合、ステップＳ２１５２において要素Ａから子要素を取得し子要素ｍとする。ステップＳ２１５３において、要素Ｂから子要素を取得し子要素ｎとする。ステップＳ２１５４において、子要素ｍに次の要素があるか判定する。次の要素がない場合、ステップＳ２１０１に戻りソースデータの次の要素について検討する。
【０２３６】
ステップＳ２１５４において、ステップＳ２１５２で取得した子要素ｍと、ステップＳ２１５３で取得した子要素ｎの要素名が一致するか判定する。一致しない場合、ステップＳ２１６１に進み後述の処理をする。一方、一致する場合、ステップＳ２１５５において、子要素ｍに次の属性があるか判定する。次の属性がない場合、ステップＳ２１６１に進み後述の処理をする。一方、次の属性がある場合、ステップＳ２１５６において、子要素ｍの次の属性を取得し、属性ｅとする。
【０２３７】
ステップＳ２１５７において、子要素ｎに次の属性があるか判定する。次の属性がない場合、ステップＳ２１６１に進む。一方、子要素ｎに次の属性がある場合、ステップＳ２１５８において、子要素ｎの次の属性を取得し、属性ｆとする。ステップＳ２１５９において、ステップＳ２１５６で取得した属性ｅと、ステップＳ２１５８で取得した属性ｆの属性名が一致するか判定する。一致しない場合、ステップＳ２１５７に進む。一方、一致する場合、ステップＳ２１６０に進み、子要素ｎの先頭に処理対象を戻し、ステップＳ２１５５に進む。
【０２３８】
ステップＳ２１５４において子要素、と子要素ｎの要素名が一致しないと判定された場合、ステップＳ２１５５において子要素ｍに次の属性がないと判定された場合及びステップＳ２１５７において子要素ｎに次の属性がないと判定された場合、ステップＳ２１６１において、子要素ｍに次の要素があるか判定する。ステップＳ２１６１において次の要素があると判定された場合、ステップＳ２１６２において子要素ｍから次の要素を取得し、要素Ｃとする。ステップＳ２１６３において、対応データ４７を参照して、要素Ｃの要素名と対応するターゲットテンプレートデータの要素名を取得し、取得した要素名を要素Ｃに設定した要素を要素Ｃ’とする。ステップＳ２１６４において、要素ｎに次の要素があるか否かを判定する。次の要素がないと判定された場合、ステップＳ２１６１に進む。一方次の要素があると判定された場合、ステップＳ２１６５において、子要素ｎから次の要素を取得し、要素Ｄとする。ステップＳ２１６６において、要素Ｃ’と要素Ｄの要素名が一致するか判定する。要素名が一致しない場合、ステップＳ２１６４に戻り、要素ｎに次の要素があるか否かを判定する。
【０２３９】
ステップＳ２１６６において、要素Ｃ’と要素Ｄの要素名が一致する場合、ステップＳ２１６７に進む。ステップＳ２１６７において、要素Ｃ’に次の属性があるか判定する。次の属性がない場合、ステップＳ２１６８に進み、処理対象を子要素ｎの先頭に戻し、ステップＳ２１６１に進み、子要素ｎと子要素ｍの次の要素とを比較する。
【０２４０】
ステップＳ２１６７において、要素Ｃ’に次の属性があると判定された場合、ステップＳ２１６９において要素Ｃ’の次の属性を取得し属性ｃとする。ステップＳ２１７０において、対応データ４７を参照して、属性ｃの属性名と対応するターゲットテンプレートデータの属性名を取得し、取得した属性名を属性ｃ’とする。次に、ステップＳ２１７１において、要素Ｄに次の要素があるか否か判定する。次の要素がないと判定された場合、ステップＳ２１７２において、処理対象を要素Ｄの先頭に戻し、ステップＳ２１６７に進む。ステップＳ２１７１において、要素Ｄに次の要素があると判定された場合、ステップＳ２１７３において、要素Ｄの次の属性を取得し、属性ｄとする。ステップＳ２１７４において、属性ｃ’と属性ｄの属性名が一致するか否か判定する。一致しない場合、ステップＳ２１７３に戻り、要素Ｄの次の属性と属性ｃ’を比較する。
【０２４１】
一方、ステップＳ２１７４において、属性ｃ’の属性名と属性ｄの属性名が一致する場合、変換の対象となる属性なので、ステップＳ２１７５において、属性ｄの属性値に、属性ｃの属性値をあてはめてターゲットデータに出力する。更に、ステップＳ２１６７に戻り、要素Ｃの次の属性について、変換の対象となる属性を探索する。
【０２４２】
この様に図３５及び図３６に示す処理により、入力データ４１及び中間テンプレートデータ４２に含まれる要素が、対応データ４７の要素名に基づいて中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。更に、要素に含まれる属性についても、対応データ４７の属性名に基づいて中間テンプレートデータ４２の所定の位置に記述された中間データ４３が出力される。
【０２４３】
第２の単純変換手段３６は、図３５及び図３６を参照して説明した処理と同様の処理である。但し、第２の単純変換手段３６においては、ソースデータが中間データ４３、ターゲットデータが出力データ４５、ターゲットテンプレートデータが出力テンプレートデータ４４である点が異なる。図３５及び図３６に示す処理と同様の処理により、中間データ４３及び出力テンプレートデータ４４に含まれる要素が、対応データ４７の要素名に基づいて出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。更に、要素に含まれる属性についても、対応データ４７の属性名に基づいて出力テンプレートデータ４４の所定の位置に記述された出力データ４５が出力される。
【０２４４】
この様に、本発明の最良の実施の形態の第１の変形例に係る変換装置によれば、各記述形式に適合した名称でモデルデータを記述することができる。また、対応データ４７を使用することにより、名称が異なっても実体が同じ場合にその差違を吸収することができるので、より汎用性の高いモデルデータを出力することができる。
【０２４５】
［第３の変形例］
本発明の最良の実施の形態に係る変換装置１の中間データを利用することによって、入力形式、出力形式のバリエーションが増えたときの対応が容易になる。具体的には、入力データから中間データへの変換機能と、中間データから出力データへの変換機能の組み合わせで、トランスレータの拡張をすることができる。ここで、中間テンプレートデータを作成する際、各記述形式に適応したテンプレートデータを比較し、共通の要素、属性及び子要素を元に、中間テンプレートデータを生成することができる。
【０２４６】
例えば、記述形式Ａと記述形式Ｂの変換が扱えるトランスレータについて、記述形式Ｃにも対応させる場合を考える。従来では、トランスレータに、記述形式Ａから記述形式Ｂ、記述形式Ｂから記述形式Ｃ、記述形式Ｃから記述形式Ａ、記述形式Ｃから記述形式Ｂの４つの変換機能が必要になった。
【０２４７】
しかし本発明の最良の実施の形態に係る変換装置１を用いることにより、容易に実現できる。まず、記述形式Ｃのテンプレートデータを作成する。次に、記述形式Ｃのテンプレートデータに基づいて中間テンプレートを更新する。これにより、トランスレータは、記述形式Ａ、記述形式Ｂ又は記述形式Ｃのモデルデータは、中間テンプレートデータに従って中間データに変換することができる。更にトランスレータは、中間データから、出力テンプレートデータに従って、記述形式Ａ、記述形式Ｂ又は記述形式Ｃのモデルデータに変換することができる。
【０２４８】
このように本発明の最良の実施の形態に係る変換装置１を用いることにより、効率の良い変換を行うことができる。また、中間テンプレートデータを作成するプログラムを生成することにより、中間テンプレートを自動生成することができる。記述形式の追加、変更及び削除があっても最新の中間テンプレートデータを効率よく生成することができる。
【０２４９】
又、新たに追加された記述形式のモデルデータと、中間データの差違を即時に明らかにすることができる。更に、この差違の対応を漏れなく検討することができる。
【０２５０】
（その他の実施の形態）
上記のように、本発明の最良の実施の形態とその第１の変形例及び第２の変形例によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【０２５１】
例えば、本発明の最良の実施の形態に記載した変換装置は、図１に示すように一つのハードウェア上に構成されても良いし、その機能や処理数に応じて複数のハードウェア上に構成されても良い。また、既存の情報システム上に実現されても良い。
【０２５２】
また、本発明の最良の実施の形態においては，ＸＭＩで記載されたモデルデータを変換する変換装置について記載したが、複数の要素を含むデータであればモデルデータには限られない。例えば、変換装置は、ＨＴＭＬで記載された文書データを変換しても良い。このとき要素は、題名”<title>”、見出し”<h1>”、表”<table>”、フォント”<font>”などである。また、要素を特徴付ける属性としては、”size=”1””が挙げられる。”size”は、フォント”<font>”の要素について、フォントの大きさを決める属性名である。
【０２５３】
図９において、先に欠落情報の処理をして、その後に不足情報の処理をしているが、先に不足情報の処理をして、その後に欠落情報の処理をしても良い。又、欠落情報抽出手段で欠落情報を抽出してから、欠落情報加工手段により加工しているが、欠落情報を抽出しながら加工しても良い。同様に、不足情報識別手段で不足情報を識別してから不足情報加工手段により加工しているが、不足情報を識別しながら加工しても良い。この様に、本発明の最良の実施の形態において示した処理順序以外で処理されても良い。
【０２５４】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【０２５５】
【図１】本発明の最良の実施の形態に係る変換装置の機能ブロック図である。
【図２】本発明の最良の実施の形態に係る変換装置のハードウェア構成図である。
【図３】本発明の最良の実施の形態に係る変換装置の処理の概略を説明するフローチャートである。
【図４】本発明の最良の実施の形態に係る変換装置が処理する欠落情報及び不足情報を説明する図である。
【図５】本発明の最良の実施の形態に係る変換装置が処理する入力データの一例を説明する図である。
【図６】本発明の最良の実施の形態に係る変換装置の入力形式識別手段が処理するデータの一例を説明する図である。
【図７】本発明の最良の実施の形態に係る変換装置の入力形式識別手段による処理を説明するフローチャートである。（その１）
【図８】本発明の最良の実施の形態に係る変換装置の入力形式識別手段による処理を説明するフローチャートである。（その２）
【図９】本発明の最良の実施の形態に係る変換装置の変換処理の概略を説明するフローチャートである。
【図１０】本発明の最良の実施の形態に係る変換装置の第１の欠落情報抽出手段及び第１の欠落情報加工手段のデータ処理の一例を説明する図である。
【図１１】本発明の最良の実施の形態に係る変換装置の第１の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートである。（その１）
【図１２】本発明の最良の実施の形態に係る変換装置の第１の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートである。（その２）
【図１３】本発明の最良の実施の形態に係る変換装置の第１の欠落情報加工手段による欠落情報抽出処理を説明するフローチャートである。（その１）
【図１４】本発明の最良の実施の形態に係る変換装置の第１の欠落情報加工手段による欠落情報抽出処理を説明するフローチャートである。（その２）
【図１５】本発明の最良の実施の形態に係る変換装置の第１の不足情報識別手段、第２の補填候補作成手段及び第１の不足情報加工手段のデータ処理の一例を説明する図である。
【図１６】本発明の最良の実施の形態に係る変換装置の第１の不足情報識別手段による不足情報識別処理を説明するフローチャートである。（その１）
【図１７】本発明の最良の実施の形態に係る変換装置の第１の不足情報識別手段による不足情報識別処理を説明するフローチャートである。（その２）
【図１８】本発明の最良の実施の形態に係る変換装置の第１の不足情報加工手段による不足情報加工処理を説明するフローチャートである。
【図１９】本発明の最良の実施の形態に係る変換装置の第１の単純変換手段のデータ処理の一例を説明する図である。
【図２０】本発明の最良の実施の形態に係る変換装置の単純変換手段による単純変換処理を説明するフローチャートである。
【図２１】本発明の最良の実施の形態に係る変換装置の第２の欠落情報抽出手段及び第２の欠落情報加工手段のデータ処理の一例を説明する図である。
【図２２】本発明の最良の実施の形態に係る変換装置の第２の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートであって、入力データと出力データとが異なる記述形式で記載されている場合のフローチャートである。
【図２３】本発明の最良の実施の形態に係る変換装置の第２の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートであって、入力データと出力データとが同じ記述形式で記載されている場合のフローチャートである。
【図２４】本発明の最良の実施の形態に係る変換装置の第２の不足情報識別手段、第２の補填候補作成手段及び第２の不足情報加工手段のデータ処理の一例を説明する図である。
【図２５】本発明の最良の実施の形態に係る変換装置の第２の単純変換手段のデータ処理の一例を説明する図である。
【図２６】本発明の最良の実施の形態に係る変換装置が出力するデータの一例である。
【図２７】本発明の最良の実施の形態に係る変換装置が、図２６に示したデータについて出力するデータの一例である。
【図２８】本発明の最良の実施の形態の第１の変形例に係る変換装置の機能ブロック図である。
【図２９】本発明の最良の実施の形態の第１の変形例に係る変換装置の第１の欠落情報加工手段のデータ処理の一例を説明する図である。
【図３０】本発明の最良の実施の形態の第１の変形例に係る変換装置の第２の欠落情報加工手段のデータ処理の一例を説明する図である。
【図３１】本発明の最良の実施の形態の第１の変形例に係る変換装置の第２の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートであって、入力データと出力データとが異なる記述形式で記載されている場合のフローチャートである。
【図３２】本発明の最良の実施の形態の第１の変形例に係る変換装置の第２の欠落情報抽出手段による欠落情報抽出処理を説明するフローチャートであって、入力データと出力データとが同じ記述形式で記載されている場合のフローチャートである。
【図３３】本発明の最良の実施の形態の第２の変形例に係る変換装置の機能ブロック図である。
【図３４】本発明の最良の実施の形態の第２の変形例に係る変換装置の対応データのデータ構造とデータの一例を説明する図である。
【図３５】本発明の最良の実施の形態の第２の変形例に係る変換装置の第１の単純変換手段による単純変換処理を説明するフローチャートである。（その１）
【図３６】本発明の最良の実施の形態の第２の変形例に係る変換装置の第１の単純変換手段による単純変換処理を説明するフローチャートである。（その２）
【符号の説明】
【０２５６】
１…変換装置
１０…入力形式識別手段
２０、３０…変換手段
２１、３１…欠落情報抽出手段
２２、３２…欠落情報加工手段
２３、３３…不足情報識別手段
２４、３４…補填候補作成手段
２５、３５…不足情報加工手段
２６、３６…単純変換手段
４１…入力データ
４２…中間テンプレートデータ
４３…中間データ
４４…出力テンプレートデータ
４５…出力データ
４６…保持データ
４７…対応データ
５１…テンプレートマスタデータ
５２ａ、５２ｂ、５２ｃ…テンプレートデータ
６１…入力形式データ
６２、６５…欠落情報データ
６３、６６…不足情報データ
６４、６７…補填候補データ
１０１…中央処理制御装置
１０２…ＲＯＭ
１０３…ＲＡＭ
１０４…入力装置
１０５…表示装置
１０６…通信制御装置
１０７、８ａ…記憶装置
１０８…リムーバブルディスク
１０９…入出力インタフェース
１１０…バス
【図１】
2008210040.tif 000003
【図２】
2008210040.tif 000004
【図３】
2008210040.tif 000005
【図４】
2008210040.tif 000006
【図５】
2008210040.tif 000007
【図６】
2008210040.tif 000008
【図７】
2008210040.tif 000009
【図８】
2008210040.tif 000010
【図９】
2008210040.tif 000011
【図１０】
2008210040.tif 000012
【図１１】
2008210040.tif 000013
【図１２】
2008210040.tif 000014
【図１３】
2008210040.tif 000015
【図１４】
2008210040.tif 000016
【図１５】
2008210040.tif 000017
【図１６】
2008210040.tif 000018
【図１７】
2008210040.tif 000019
【図１８】
2008210040.tif 000020
【図１９】
2008210040.tif 000021
【図２０】
2008210040.tif 000022
【図２１】
2008210040.tif 000023
【図２２】
2008210040.tif 000024
【図２３】
2008210040.tif 000025
【図２４】
2008210040.tif 000026
【図２５】
2008210040.tif 000027
【図２６】
2008210040.tif 000028
【図２７】
2008210040.tif 000029
【図２８】
2008210040.tif 000030
【図２９】
2008210040.tif 000031
【図３０】
2008210040.tif 000032
【図３１】
2008210040.tif 000033
【図３２】
2008210040.tif 000034
【図３３】
2008210040.tif 000035
【図３４】
2008210040.tif 000036
【図３５】
2008210040.tif 000037
【図３６】
2008210040.tif 000038