(57)【要約】【課題】視点の違いがもたらすＸＭＬ表現の違いを、要素名、属性、要素内容の用法の交替により容易に補正可能とする。【解決手段】変換法データベース１０には、複数の変換法定義ファイル１２が格納されている。変換エンジン３０は、この複数の変換法定義ファイル１２の中から、ユーザによって指定されたＸＭＬデータをユーザの指定する表現形式のＸＭＬデータに変換するための変換法定義ファイル１２を選択する。変換エンジン３０は、選択された変換法定義ファイル１２に基づいて、ユーザによって指定されたＸＭＬデータに含まれている要素のうち、当該ファイル１２に含まれている変換対象指定情報の指定する要素を対象に、当該ファイル１２に含まれている変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する。【選択図】      図１
2006018449.tif 000002
【特許請求の範囲】
【請求項１】
構造化データの表現形式を変換する構造化データ変換装置において、
変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択する変換法定義ファイル選択手段と、
前記変換法定義ファイル選択手段によって選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている前記変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する変換操作手段と
を具備することを特徴とする構造化データ変換装置。
【請求項２】
前記変換法定義ファイルに含まれている前記変換操作指定情報は、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含み、
前記変換操作手段は、前記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写する複写手段を含む
ことを特徴とする請求項１記載の構造化データ変換装置。
【請求項３】
前記変換操作手段は、前記変換操作指定情報に含まれている前記フィールド指定の列のうちの最初と最後が同一のフィールドを指定している場合、ローテーション操作が指定されていると判定する判定手段を更に含み、
前記複写手段は、前記ローテーション操作が指定されていると前記判定手段によって判定された場合、前記フィールド指定の列のうちの最後のフィールド指定で指定されたフィールドの旧値を、前記フィールド指定の列のうちの２番目のフィールド指定で指定されたフィールドの新値として設定する
ことを特徴とする請求項２記載の構造化データ変換装置。
【請求項４】
前記変換操作手段は、前記ローテーション操作が指定されていないと前記判定手段によって判定され、且つ前記フィールド指定の列のうちの先頭で属性が指定された場合、構造化データ変換中にある前記変換対象指定情報によって指定された要素から、当該属性を除去する属性除去手段を更に含むことを特徴とする請求項３記載の構造化データ変換装置。
【請求項５】
前記変換操作手段は、前記ローテーション操作が指定されていないと前記判定手段によって判定され、且つ前記フィールド指定の列のうちの先頭で要素内容が指定された場合、構造化データ変換中にある前記変換対象指定情報によって指定された要素を空要素とする空要素化手段を備えることを特徴とする請求項３記載の構造化データ変換装置。
【請求項６】
前記変換操作指定情報で定義可能なフィールド指定として、要素名を指定する第１のフィールド指定、要素内容を指定する第２のフィールド指定、及び指定の属性名を持つ属性の値を指定する第３のフィールド指定の少なくとも３種が用意されており、
前記複写手段は、
先行するフィールド指定に後続するフィールド指定が前記第１のフィールド指定の場合、要素名として、先行するフィールド指定で指定されたフィールドの値を設定し、
先行するフィールド指定に後続するフィールド指定が前記第２のフィールド指定の場合、要素内容として、先行するフィールド指定で指定されたフィールドの値を設定し、
先行するフィールド指定に後続するフィールド指定が前記第３のフィールド指定の場合、当該第３のフィールド指定で指定された属性名を持つ属性の値として、先行するフィールド指定で指定されたフィールドの値を設定する
ことを特徴とする請求項２記載の構造化データ変換装置。
【請求項７】
前記変換操作指定情報で定義可能なフィールド指定として、前記第１乃至第３のフィールド指定に加えて、前記フィールド指定の列の先頭にのみ使用可能な、定数を指定する第４のフィールド指定が用意されており、
前記複写手段は、
先行するフィールド指定が前記第４のフィールド指定の場合、当該第４のフィールド指定に後続するフィールド指定で指定されたフィールドの値として、当該第４のフィールド指定で指定された定数を設定する
ことを特徴とする請求項６記載の構造化データ変換装置。
【請求項８】
前記変換法データベースは、変換対象となる構造化データの表現形式を特定する入力形式名と変換後の構造化データの表現形式を特定する出力形式名との対と、当該入力形式名及び出力形式名の対で特定される表現形式の変換に用いられる変換法定義ファイルのファイル名とを対応付けて格納した変換法インデックスファイルを格納しており、
前記構造化データ変換装置は、
入力形式名及び出力形式名の対の一覧を表示することによりユーザに所望の入力形式名及び出力形式名の対を選択させるユーザインタフェースと、
前記一覧から選択された入力形式名及び出力形式名の対に対応付けられているファイル名を前記変換法インデックスファイルから検索する検索手段とを更に具備し、
前記変換法定義ファイル選択手段は、前記検索手段によって検索されたファイル名の変換法定義ファイルを前記データベースから選択する
ことを特徴とする請求項１記載の構造化データ変換装置。
【請求項９】
構造化データの表現形式を変換する構造化データ変換方法において、
変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択するステップと、
選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている前記変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行するステップ
を具備することを特徴とする構造化データ変換方法。
【請求項１０】
前記変換法定義ファイルに含まれている前記変換操作指定情報は、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含み、
前記変換操作を実行するステップは、前記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写するステップを含む
ことを特徴とする請求項９記載の構造化データ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化データ（構造化文書）の表現形式を変換する構造化データ変換装置及び変換方法に関し、特に構造化データ（構造化文書）の一種である半構造化データ（半構造化文書）であるＸＭＬデータ（ＸＭＬ文書）の表現形式を変換するのに好適な構造化データ変換装置及び方法に関する。
【背景技術】
【０００２】
ＸＭＬ(Extensible Markup Language)の普及に伴い、その参照、変換加工、蓄積などを目的とした各種のソフトウェア（アプリケーションソフトウェア）が頒布されている。
【０００３】
ＸＭＬを用いて記述されたデータ（ＸＭＬ文書）は、論理的に、階層を持った木構造を表現する。上述のソフトウェアの中にはＸＭＬデータ、即ち、ＸＭＬ文書ないし、その部分木の内容を図形化してユーザに提示し、その理解や操作を容易にするＧＵＩ(Graphical User Interface)を備えたものも多い。その典型的な例の１つがＸＭＬ変換支援ツールである。このツールは、例えば、ＸＳＬＴ(XSL Transformations, XSL:Extensible Stylesheet Language)を利用したＸＭＬ変換のために（例えば、非特許文献１参照）、その変換法の定義(ＸＳＬＴスタイルシート)生成を支援する。このようなＸＭＬ変換支援ツールの一般的なユーザインタフェースでは、変換前と変換後のＸＭＬ構造を図形化して対比させ、両構造の間の対応関係をユーザに入力させる。
【０００４】
従来、この種の、ＸＭＬを図形化するソフトウェアは、対象となるＸＭＬデータを構文に基づいて解析し、その構成要素を配置する。つまり、ルート要素に始まるＸＭＬの要素の入れ子構造を、そのまま木構造として表現する。ここでは、子の要素を含まない要素が葉となる。また、属性を持つ要素については、その属性も葉の一種として表現可能である。
【非特許文献１】XSL Transformations (XSLT) Version 1.0，[online]，平成１１年１１月１６日，World Wide Web Consortium (W3C)，[平成１６年６月２１日検索]，インターネット<URL: http://www.w3.org/TR/1999/REC-xslt-19991116>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記したように従来技術においては、ＸＭＬデータを図形化するには、当該ＸＭＬデータの構文解析を行い、その解析結果に基づいてそのまま当該ＸＭＬデータを図形化するのが一般的である。しかし、この従来技術におけるＸＭＬデータの図形化では。同一の対象を表現するＸＭＬデータであっても、ＸＭＬ表現の設計過程での視点の置き方によって、違った見え方をしてしまう。つまり従来技術においては、同一の対象を表現するＸＭＬデータであっても、全く違って図形化されるという問題（以下、問題１と称する）がある。また従来技術においては、視点の違いによるＸＭＬ表現の差異が、同じ視点から作られたＸＭＬデータ全域に及ぶ。このため従来技術においては、ＸＭＬデータの図形化の操作を支援するツールの操作性を損なうという問題（以下、問題２と称する）もある。
【０００６】
以下、これらの問題１及び２について詳細に説明する。
【０００７】
（問題１）
ＸＭＬデータの図形化は、当該ＸＭＬデータが表現する情報を、ユーザに理解しやすく提示するのが目的である。しかし、ＸＭＬデータの構文のみに基づく図形化では、用途により適切な情報提示が行えない場合がある。例えば、対象データをＸＭＬデータで表現するのに、データ名称を要素名として表現する場合と、データの構造上の種別を要素名として表現する場合とでは、両ＸＭＬデータを構文のみに基づいて図形化すると、両者間の対応関係が分かりにくくなる。その理由は、ある対象データを表現するＸＭＬの表記法を設計する際に、対象をデータ名称主体に捉えるか、或いはデータの構造種別主体に捉えるかという視点の差異が、図形化によって顕著となることによる。図９に具体例を示す。この図９は、ＸＭＬ表現の対象データＸと、当該対象データＸを表現する３種類のＸＭＬデータＡ乃至Ｃとを示す。この対象データＸを表現するＸＭＬデータとして、ＸＭＬデータＡ乃至Ｃのいずれを用いることも可能である。これ以外にも、更に他の多くの表現があり得る。
【０００８】
このように、同じ表現対象に対して多様な表現が生じる大きな理由は、ＸＭＬが本質的に備えている自由度にある。一般に、ＸＭＬの構成要素は、
・要素名    ：概念分類
・属性      ：属性、またはメタ情報
・要素内容  ：最も特徴的な値
・下位入れ子：部分構造
のように用いられる。ＸＭＬは、これらの要素の具体的な対応付けについてアプリケーション（アプリケーションソフトウェア）毎に定義可能なことを特徴とする。一方で、人間の持つ概念は複雑な情報構造を持ち、ＸＭＬのように単純な木構造で表現しようとすれば、きわめて大まかな近似にしかなり得ない。そのため、ＸＭＬ設計者は、図９の例のように、各々の対象理解と用途とに基づき、つまり視点に基づき、最適と考えるＸＭＬ表現形式を決定する。
【０００９】
例えば、ＸＭＬデータ変換支援ツールで、２つの異なる対象を表したＸＭＬ間の変換法を定義するものとする。このとき、これらのＸＭＬ表現間の違いが、表現されている対象本来の違いに由来するものならば、両者間の変換はツールの目的そのものであるから問題にはならない。しかし、実際のＸＭＬ表現には、上記の例のように、対象をＸＭＬ化する段階での設計者による視点の差異が合成され、変換法の定義を不必要に困難に、或いは非効率的にしている。
【００１０】
（問題２）
視点の違いによるＸＭＬ表現の違いはＸＭＬデータの全領域に及ぶ。このため、ＸＭＬデータ操作ツールのユーザは、同型の読み替えを何度も繰り返さなければならない。この読み替えは単一のＸＭＬデータ処理にとどまらず、同じ視点から作られた全てのＸＭＬデータについて必要になる。
【００１１】
一般にソフトウェアツールには、人間を機械的操作の反復から解放し、煩雑さと非効率性を解消することが求められる。この、ツールの根本的な目的に対し、問題２は致命的である。
【００１２】
もし、例えば、図９に示された表現の異なる３種類のＸＭＬデータＡ乃至Ｃが、いずれもデータＸを表すというように、ＸＭＬの表層的な構文ではなく、その意味を理解した上でこれに基づき図形化できるならば、表現法の差異を除去することは可能である。しかし実際には、ＸＭＬのデータ表現に埋め込まれた意味を自動的に解析するのは困難である。
【００１３】
本発明は上記事情を考慮してなされたものでその目的は、視点の違いがもたらす表現形式の違いを、要素名、属性及び要素内容の用法の交替により容易に補正できる構造化データ変換装置及び方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の１つの観点によれば、構造化データの表現形式を変換する構造化データ変換装置が提供される。この構造化データ変換装置は、変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択する変換法定義ファイル選択手段と、この選択手段によって選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する変換操作手段とを備えることを特徴とする。
【００１５】
上記の構成の構造化データ変換装置においては、ユーザによって指定された構造化データに含まれている要素のうち、変換法定義ファイル選択手段によって選択された変換法定義ファイル中の変換対象指定情報の指定する要素を対象に、当該変換法定義ファイル中の変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作が変換操作手段によって実行される。
【００１６】
このように、上記の構成の構造化データ変換装置によれば、設計者の視点に依存した表現の補正のためのデータ変換が、ユーザによって指定された構造化データに含まれている要素のうち、変換対象指定情報によって指定された要素毎に、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作によって実行される。この変換操作により、変換対象指定情報によって指定された要素毎に、変換操作指定情報によって指定された要素名、属性及び要素内容の用法交替が行われ、構造化データの表現形式が構造化データ変換に適用された変換法定義ファイルに固有の別の表現形式に変換される。
【００１７】
ここで、上記変換法定義ファイル中の変換操作指定情報に、当該変換法定義ファイルに含まれている変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含ませる一方、上記変換操作手段に、上記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写する複写手段を含ませると良い。このようにすると、設計者の視点に依存した表現の補正のためのデータ変換を、指定要素毎のフィールド指定の列を用いた、当該指定要素の要素名、属性及び要素内容の用法交替の指定だけで容易に定義できる。この指定要素毎のフィールド指定の列を含む変換法定義ファイルは、対応する表現形式で作成された全ての構造化データ、つまり同じ視点で作成された構造化データの同種の変換に適用できる。
【発明の効果】
【００１８】
本発明によれば、視点の違いがもたらす表現形式の違いを、予め定められた要素毎に、要素名、属性及び要素内容の用法の交替により容易に補正できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を、構造化データの代表であるＸＭＬデータの表現形式を変換するＸＭＬデータ変換装置に適用した一実施形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るＸＭＬデータ変換装置の構成を示すブロック図である。ＸＭＬデータ変換装置は、変換法データベース１０と、ＸＭＬデータベース２０と、ＸＭＬデータ変換エンジン３０と、メモリ４０と、入力装置５０と、出力装置６０とを備えている。
【００２０】
変換法データベース１０は、変換法インデックスファイル１１と複数の変換法定義ファイル１２とを格納する。変換法インデックスファイル１１は、変換法のインデックスを格納したファイルである。変換法定義ファイル１２は、ＸＭＬデータの変換法を定義したファイルである。
【００２１】
図２は、変換法インデックスファイル１１のデータ構造を示す。変換法インデックスファイル１１は、インデックス情報として、入力形式名１１１、出力形式名１１２及び変換法定義ファイル１２のファイル名１１３の組を複数組格納する。この変換法インデックスファイル１１を、入力形式名及び出力形式名の対をキーとして参照することで、、その入力形式名及び出力形式名の対に固有の変換法を定義した変換法定義ファイル１２のファイル名を得ることができる。ここで、入力形式名及び出力形式名は、それぞれ対応する表現形式を特定するための情報であり、例えば対応する表現形式のＸＭＬを扱うアプリケーションの識別名である。
【００２２】
図３は変換法定義ファイル１２のデータ構造を示す。この変換法定義ファイル１２は、入力形式名１２１、出力形式名１２２、及び少なくとも１つの変換対象/変換操作指定情報１２３を含む。変換対象/変換操作指定情報１２３は、図３に示すように、変換対象指定情報１２３ａと、少なくとも１つの変換操作指定情報１２３ｂとを含む。
【００２３】
変換対象指定情報１２３ａは、ＸＭＬデータの変換対象を指定する。ここでは変換対象指定情報１２３ａは、Ｗ３Ｃ（World Wide Web Consortium）の勧告となっているＸＰａｔｈ(XML Path Language)に準じた記述により変換対象の要素を指定する。変換操作指定情報１２３ｂはフィールド指定（フィールド指定情報）のリストを含む。フィールド指定は、次の４種
・“定数”：引用符で囲まれた定数値
・name    ：要素名
・content ：要素内容
・@属性名 ：その名前を持つ属性の値
のいずれかとする。
【００２４】
再び図１を参照すると、ＸＭＬデータベース２０は、複数のＸＭＬデータファイル（ＸＭＬ文書）２１を格納する。このＸＭＬデータベース２０に格納されている複数のＸＭＬデータファイル２１の中からユーザの操作によって指定されたＸＭＬデータファイル２１が、ＸＭＬデータ変換の対象となる。
【００２５】
変換法データベース１０及びＸＭＬデータベース２０は、ハードディスクドライブに代表される外部記憶装置（図示せず）に保存されているものとする。なお、変換法データベース１０及びＸＭＬデータベース２０をＸＭＬデータ変換装置から独立させて、例えばネットワークを介して当該ＸＭＬデータ変換装置内の変換エンジン３０からアクセス可能な構成とすることも可能である。この場合、変換法データベース１０及びＸＭＬデータベース２０を、複数のＸＭＬデータ変換装置で共有することも可能である。
【００２６】
ＸＭＬデータ変換エンジン３０は、ユーザの操作によって指定されたＸＭＬデータファイルを、ユーザ操作によって指定された入力形式名及び出力形式名の対に固有の変換法定義ファイル１２に定義された変換法に従って変換する。変換エンジン３０は、ユーザインタフェース３１を含む。ユーザインタフェース３１は、ユーザが変換エンジン３０を利用するためのインタフェースをなす。変換エンジン３０は、計算機にインストールされた特定のソフトウェアプログラムを当該計算機が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体（フロッピー（登録商標）ディスクに代表される磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等）に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード（頒布）されても構わない。
【００２７】
メモリ４０は、記憶領域４１乃至４５を含む。記憶領域４１は、変換エンジン３０によって変換法データベース１０から読み取られた変換法インデックスファイル１１を一時記憶するための変換法インデックスファイル領域である。記憶領域４２は、変換エンジン３０によって変換法データベース１０から読み取られた変換法定義ファイル１２を記憶するための変換法定義ファイル領域である。記憶領域４３は、ユーザ操作によって指定された、変換対象となるＸＭＬデータファイル２１のファイル名を記憶するためのＸＭＬデータファイル名領域である。記憶領域４４は、ユーザ操作によって指定されたファイル名のＸＭＬデータファイル２１を記憶するためのＸＭＬデータファイル領域である。記憶領域４５は、変換エンジン３０のための作業領域である。
【００２８】
入力装置５０は、ユーザ操作により、ＸＭＬデータ変換に用いられる変換法定義ファイル１２を特定するための入力形式名及び出力形式名、ＸＭＬデータ変換の対象となるＸＭＬデータファイル２１のファイル名等を入力するのに用いられる。入力装置５０は、例えばキーボードまたはマウスである。出力装置６０は例えばディスプレイ装置であり、ユーザに対するファイル名の入力要求、入力形式名及び出力形式名の対の一覧等を表示するのに用いられる。
【００２９】
さて本実施形態では、変換法データベース１０に格納されている変換法定義ファイル１２は、例えばユーザによって作成されるものとする。この変換法定義ファイル１２に格納されている変換対象/変換操作指定情報１２３中の変換対象指定情報１２３ａ及び変換操作指定情報１２３ｂの意味と制約は、次の通りである。
【００３０】
＜意味＞
・変換対象指定情報１２３ａは、あるＸＭＬ要素が変換の対象となるか否かを判定するＸＰａｔｈ表記である。  
・各変換操作指定情報１２３ｂ中に列挙されたフィールド指定は、先行するフィールドの旧値を後に続くフィールドの新しい値として設定することを表す。３つ以上のフィールド指定を列挙し、値を順送りにすることも可能である。  
・変換操作指定情報１２３ｂに含まれているフィールド指定の列のうちの先頭と末尾に同じフィールドが指定された場合、その変換操作は、循環した値の順送り（ローテーション）を形成する。  
・定数は引用符で囲まれた値そのものを値とする。  
・要素内容contentに、ある値を設定するとは、その値を要素の新しい要素内容とすることを表す。  
・要素名nameに、ある値を設定するとは、その値を要素の新しい要素名とすることを表す。  
・属性への値の設定は、その属性値の上書き、または属性の新設を表す。
【００３１】
＜制約＞
・定数の指定は、操作指定の先頭にのみ使用できる。  
・ローテーション操作の場合を除き、変換操作指定情報１２３ｂの先頭が属性名である場合、その属性は変換後のＸＭＬから失われる。  
・ローテーション操作の場合を除き、変換操作指定情報１２３ｂの先頭がcontentである場合、その要素は、変換後は空要素となる。  
・ローテーション操作の場合を除き、変換操作指定情報１２３ｂの先頭にnameを使用することはできない。その理由は、要素は、必ずタグの先頭に要素名を持つためである。  
・name、content及び同じ属性名は、ローテーション操作の先頭と末尾に指定される場合を除き、１つの変換法定義を通して２度以上、重複して用いることはできない。
【００３２】
次に、本実施形態の動作の全体の流れについて、図４のフローチャートを参照して説明する。まず、ＸＭＬデータ変換エンジン３０は起動されると、変換の対象となるＸＭＬデータファイルのファイル名の入力をユーザに要求するためのファイル名入力要求画面を、ユーザインタフェース３１により出力装置（ディスプレイ装置）６０に表示させる（ステップＳ１）。この状態で変換エンジン３０は、ユーザが入力装置５０を用いて所望のＸＭＬデータファイル２１のファイル名を入力する操作を行ったことを検出すると（ステップＳ２）、入力されたファイル名をメモリ４０のＸＭＬデータファイル名領域４３に格納する（ステップＳ３）。
【００３３】
次に変換エンジン３０は、入力されたファイル名、即ちユーザ指定のファイル名のＸＭＬデータファイル２１を、ＸＭＬデータベース２０からメモリ４０のＸＭＬデータファイル領域４４に読み込む（ステップＳ４）。また変換エンジン３０は、変換法インデックスファイル１１を、変換法データベース１０からメモリ４０の変換法インデックスファイル領域４１に読み込む（ステップＳ５）。
【００３４】
変換エンジン３０は、変換法インデックスファイル領域４１に読み込まれた変換法インデックスファイル１１に従って、入力形式名１１１及び出力形式名１１２の対の一覧を生成し、その一覧をユーザインタフェース３１により出力装置（ディスプレイ装置）６０に表示させる（ステップＳ６）。前記したように、変換法インデックスファイル１１に格納されている入力形式名１１１及び出力形式名１１２には、対応する形式のＸＭＬを扱うアプリケーションの識別名が用いられる。ユーザは、上記入力要求画面に従って自身が選択したＸＭＬデータファイル（第１の視点で作成されたＸＭＬデータファイル）を扱うことが可能な第１のアプリケーションの識別名と、目的とする形式のＸＭＬデータファイル（第２の視点で作成されたＸＭＬデータファイル）を扱うことが可能な第２のアプリケーションの識別名とを特定する。そしてユーザは入力装置５０を操作して、特定した第１及び第２のアプリケーションの識別名の対に一致する入力形式名１１１及び出力形式名１１２を上記の一覧から選択する。
【００３５】
変換エンジン３０は、ユーザの操作によって任意の入力形式名１１１及び出力形式名１１２の対が選択されると（ステップＳ７）、検索手段として機能する。これにより変換エンジン３０は、選択された入力形式名１１１及び出力形式名１１２の対をキーとして、領域４１に読み込まれている変換法インデックスファイル１１を参照することにより、その対に固有の変換法定義ファイル１２のファイル名を検索する（ステップＳ８）。すると変換エンジン３０は、変換法定義ファイル選択手段として機能し、検索されたファイル名の変換法定義ファイル１２を変換法データベース１０から選択して、メモリ４０の変換法定義ファイル領域４２に読み込む（ステップＳ９）。このとき変換エンジン３０は、変換法データベース１０から読み込まれた変換法定義ファイル１２の定義内容が上述した制約事項を満たすかを検査し、不適合があればユーザインタフェース３１を介してユーザにエラーを通知する。なお、変換法定義ファイル１２が新規に変換法データベース１０に格納さされる場合に、このような検査を行うことも可能である。この場合、検査の回数を減らすことができる。
【００３６】
変換エンジン３０は、選択された変換法定義ファイル１２を領域４２に読み込むと、変換操作手段として機能する。これにより変換エンジン３０は、領域４２に読み込まれた変換法定義ファイル１２に従って、領域４４に読み込まれたＸＭＬデータファイル２１のデータ（ＸＭＬデータ）に含まれている要素のうち、変換されるべき要素を判別し、その変換されるべき要素に対し、当該変換法定義ファイル１２に含まれている変換操作指定に基づく変換操作を行う（ステップＳ１０）。この変換操作では、後述するように、変換されるべき要素の要素名、属性及び要素内容（content）の間で、値のシフト（更にはローテーション）が行われる。変換エンジン３０によるＸＭＬデータ変換結果は、ユーザインタフェース３１によって出力装置（ディスプレイ装置）６０に表示される（ステップＳ１１）。
【００３７】
次に、変換エンジン３０による上記ステップＳ１０（ＸＭＬデータ変換処理）の詳細な手順について、図５及び図６を参照して説明する。まず変換エンジン３０は、領域４４に読み込まれたＸＭＬデータファイル２１のデータ、即ち変換の対象となるＸＭＬデータから、最初の要素を選択する（ステップＳ２１）。次に変換エンジン３０は、領域４２に読み込まれた変換法定義ファイル１２から、最初の変換対象/変換操作指定情報１２３を選択する（ステップＳ２２）。
【００３８】
変換エンジン３０は、選択された変換対象/変換操作指定情報１２３中の変換対象指定情報１２３ａを参照し、選択された要素が、当該変換対象指定情報１２３ａによって指定されている変換対象要素であるかを判定する（ステップＳ２３）。もし、選択された要素が変換対象要素でないならば、変換エンジン３０は、変換法定義ファイル１２内に未処理の変換対象/変換操作指定情報１２３が含まれているかを判定する（ステップＳ２４）。
【００３９】
もし、変換法定義ファイル１２内に未処理の変換対象/変換操作指定情報１２３が含まれているならば、変換エンジン３０は当該ファイル１２から次の変換対象/変換操作指定情報１２３を選択して（ステップＳ２５）、上記ステップＳ２３の判定処理に戻る。一方、変換法定義ファイル１２内に未処理の変換対象/変換操作指定情報１２３が含まれていないならば、変換エンジン３０は変換対象のＸＭＬデータに未処理の要素が含まれているかを判定する（ステップＳ２６）。
【００４０】
もし、変換対象のＸＭＬデータに未処理の要素が含まれていないならば、変換エンジン３０はＸＭＬデータ変換処理を終了する。一方、変換対象のＸＭＬデータに未処理の要素が含まれているならば、変換エンジン３０は、変換対象のＸＭＬデータから次の要素を選択する（ステップＳ２７）。そして変換エンジン３０は、上記ステップＳ２２に戻って、変換法定義ファイル１２から再び最初の変換対象/変換操作指定情報１２３を選択する。
【００４１】
これに対し、ステップＳ２１またはＳ２７で選択された要素が変換対象として指定されている場合（ステップＳ２３）、変換エンジン３０はステップＳ２８に進む。このステップＳ２８において、変換エンジン３０は、現在選択されている変換対象/変換操作指定情報１２３から最初の変換操作指定情報１２３ｂを選択する。すると、変換エンジン３０は判定手段（ローテーション操作判定手段）として機能し、選択された変換操作指定情報１２３ｂに基づいて、変換操作としてローテーション操作が指定されているかを判定する（ステップＳ２９）。前記したように、ローテーション操作が指定されているかは、変換操作指定情報１２３ｂに含まれているフィールド指定の列のうちの先頭（最初）と末尾（最後）で同一のフィールドが指定されているかによって判定可能である。
【００４２】
もし、ローテーション操作が指定されているならば、変換エンジン３０は、変換操作指定情報１２３ｂのの最後のフィールド指定で指定されたフィールドの値を作業領域４５に一時保存（退避）し（ステップＳ３０）、しかる後にステップＳ３１に進む。一方、ローテーション操作が指定されていないならば、変換エンジン３０はステップＳ３０をスキップしてステップＳ３１に進む。
【００４３】
ステップＳ３１において、変換エンジン３０は、変換操作指定情報１２３ｂ内の最後のフィールド指定を、Ｆｃとして設定する。Ｆｃは、現在処理中の（つまりカレントな）フィールド指定を示す。次に変換エンジン３０は、変換操作指定情報１２３ｂ内のＦｃに先行するフィールド指定をＦａとして設定する（ステップＳ３２）。すると変換エンジン３０は複写手段（値のシフト手段）として機能して、Ｆｃで指定されるフィールドの値に、Ｆａで指定されるフィールドの値を複写する（ステップＳ３３）。即ち変換エンジン３０は、Ｆａで指定されるフィールドの値を、Ｆｃで指定される後続のフィールドの値にシフトする。このようにして、先行するフィールドの旧値が後に続くフィールドの新しい値として設定される。
【００４４】
次に変換エンジン３０は、Ｆａが変換操作指定情報１２３ｂ内の先頭のフィールド指定であるかを判定する（ステップＳ３４）。もし、Ｆａが先頭のフィールド指定でないならば、変換エンジン３０は現在のＦａを新たなＦｃとして設定して（ステップＳ３５）、ステップＳ３２に戻る。このステップＳ３２において、変換エンジン３０は、変換操作指定情報１２３ｂ内の、新たに設定されたＦｃに先行するフィールド指定をＦａとして設定する。そして変換エンジン３０は、上記したように、Ｆｃで指定されるフィールドの値に、Ｆａで指定されるフィールドの値を複写する（ステップＳ３３）。
【００４５】
このように、ステップＳ３２乃至３５が繰り返された結果、Ｆａが変換操作指定情報１２３ｂ内の先頭のフィールド指定となったものとする（ステップＳ３４）。この場合、変換エンジン３０は、ローテーション操作が指定されているならば（ステップＳ３６）、Ｆｃで指定されるフィールドの値に、先のステップＳ３０で作業領域４５に保存された値を設定する（ステップＳ３７）。これにより、変換操作指定情報１２３ｂ内の２番目のフィールド指定で指定されたフィールドの値（新値）として、変換操作指定情報１２３ｂ内の最後の指定で指定されたフィールドの値（旧値）が設定される。つまり、変換対象指定情報１２３ａで指定された要素について、変換操作指定情報１２３ｂで指定された当該要素の要素名、属性及び要素内容の間での値のローテーションが実現される。一方、ローテーション操作が指定されていないならば（ステップＳ３６）、変換エンジン３０は、Ｆａの示すフィールド指定（ここでは、先頭のフィールド指定）に応じた以下の処理を行う。即ち変換エンジン３０は、先頭のフィールド指定により属性値が指定されているならば（ステップＳ３８）、属性除去手段として機能して、現在の要素からその属性を取り除く（ステップＳ３９）。また変換エンジン３０は、先頭のフィールド指定によりcontentが指定されているならば（ステップＳ３８）、空要素化手段として機能して、現在の要素を空要素とする（ステップＳ４０）。
【００４６】
変換エンジン３０は、ステップＳ３７、Ｓ３９またはＳ４０を実行すると、変換対象/変換操作指定情報１２３中に、現在の要素に関して、未処理の変換操作指定情報１２３ｂが含まれているかを判定する（ステップＳ４１）。もし、未処理の変換操作指定情報１２３ｂが含まれているならば、変換エンジン３０は、変換対象/変換操作指定情報１２３から次の変換操作指定情報１２３ｂを選択する（ステップＳ４２）。そして変換エンジン３０は、上記ステップＳ２９の判定処理に戻る。一方、未処理の変換操作指定情報１２３ｂが含まれていないならば、変換エンジン３０は変換法定義ファイル１２に未処理の変換対象/変換操作指定情報１２３が含まれているかを判定する（ステップＳ４３）。もし、未処理の変換対象/変換操作指定情報１２３が含まれているならば、変換エンジン３０は上記ステップＳ２５に戻って、変換法定義ファイル１２から次の変換対象/変換操作指定情報１２３を選択する。一方、未処理の変換対象/変換操作指定情報１２３が含まれていないならば、変換エンジン３０はステップＳ２７に戻って、変換対象のＸＭＬデータに未処理の要素が含まれているかを判定する。もし、未処理の要素が含まれていないならば、変換エンジン３０はＸＭＬデータ変換処理を終了する。
【００４７】
次に、上述の変換エンジン３０によるＸＭＬデータ変換処理の具体例について、上記図４乃至図６のフローチャート値に加えて、図７及び図８を参照して説明する。  
図７において、同図（ａ）は、変換対象となるＸＭＬデータの１つの要素（要素名が「拡張機器」の要素）の例を示し、同図（ｂ）は同図（ａ）の要素に対するＸＭＬデータ変換後の要素（要素名が「カード型ディスク」の要素）の例を示す。図７（ａ）及び（ｂ）に示す異なる表現形式の要素を含むＸＭＬデータの処理に適合するアプリケーション（アプリケーションソフトウェア）が、それぞれアプリケーションＡＰ１及びＡＰ２であるものとする。
【００４８】
図８は、このＸＭＬデータ変換に用いられる変換法定義ファイル１２内の変換対象/変換操作指定情報１２３の一例を示す。なお、図８中において記号＃から始まる文字列は、その左に記載されている変換対象指定情報１２３ａまたはフィールド指定に関する説明（注釈）を表す。
【００４９】
図８に示す変換対象/変換操作指定情報１２３は、変換対象となる要素の要素名として「拡張機器」を指定する変換対象指定情報１２３ａと、２つの変換操作指定情報１２３ｂとを含む。１番目の変換操作指定情報１２３ｂは、「シフト」を示す変換操作指定９１と、３つのフィールド指定９２１乃至９２３とを含む。フィールド指定９２１は、@属性名として@名称を持つことにより、属性「名称」の属性値を指定する。フィールド指定９２２は、name、つまり要素名を指定する。変換操作指定９１により「シフト」が指定されている場合、フィールド指定９２２により、要素名を、先行するフィールド指定９２１で指定される属性「名称」の属性値とすることが指定される。フィールド指定９２３は、@属性名として@分類を持つことにより、属性「分類」の属性値を指定する。変換操作指定９１により「シフト」が指定されている場合、フィールド指定９２３により、属性「分類の」の属性値を、先行するフィールド指定９２２で指定される旧要素名とすることが指定される。
【００５０】
次に、２番目（最後）の変換操作指定情報１２３ｂは、シフトを示す変換操作指定９３と、２つのフィールド指定９４１乃至９４２とを含む。フィールド指定９４１は、@属性名として@重量を持つことにより、属性「重量」の属性値を指定する。フィールド指定９４２は、content、つまり要素内容を指定する。変換操作指定９３により「シフト」が指定されている場合、フィールド指定９４２により、要素内容を、先行するフィールド指定９４１で指定される属性「重量」の属性値とすることが指定される。
【００５１】
今、図７（ａ）に示す表現形式の要素を含むＸＭＬデータをアプリケーションＡＰ２によって処理したいものとする。この場合、ユーザは、入力形式名及び出力形式名の対の一覧が表示されると（ステップＳ６）、その一覧から、ＡＰ１及びＡＰ２の識別名の対に一致する入力形式名及び出力形式名の対を選択する。すると変換エンジン３０は、ＡＰ１及びＡＰ２の対に固有のファイル名の変換法定義ファイル１２を変換法データベース１０から選択する（ステップＳ８）。この変換法定義ファイル１２は、図８に示す変換対象/変換操作指定情報１２３を含んでいる。変換エンジン３０は、この変換対象/変換操作指定情報１２３に従って、図７（ａ）に示す要素を含むＸＭＬデータのデータ変換処理を次のように実行する。
【００５２】
まず、変換対象となるＸＭＬデータから図７（ａ）に示す要素「拡張機器」が選択されたものとする（ステップＳ２１またはＳ２７）。また、要素「拡張機器」を変換対象として指定する変換対象指定情報１２３ａを含む、図８に示す変換対象/変換操作指定情報１２３が選択されたものとする（ステップＳ２２またはＳ２５）。この変換対象/変換操作指定情報１２３が持つ２つの変換操作指定情報１２３ｂは、いずれもローテーション操作を指定していない。このことは、２つの変換操作指定情報１２３ｂの各々の先頭と末尾でいずれも同一のフィールドが指定されていないことから判定できる。
【００５３】
ローテーション操作が指定されていない場合、まず、先頭の変換操作指定情報１２３ｂに含まれているフィールド指定９２１乃至９２３のうちの、最後のフィールド指定９２３（＝@分類）と当該フィールド指定９２３に先行するフィールド指定９２２（＝name）とに基づき（ステップＳ３１，Ｓ３２）、属性「分類」の値（属性値）が、選択された要素名（旧要素名）"拡張機器"に設定される（ステップＳ３３）。
【００５４】
次に、フィールド指定９２１乃至９２３のうちの、２番目のフィールド指定９２２（＝name）と当該フィールド指定９２２に先行する先頭のフィールド指定９２１（＝@名称）とに基づき（ステップＳ３５，Ｓ３２）、変換後の要素の要素名が、属性「名称」の値である「カード型ディスク」（図７（ａ）参照）に設定される（ステップＳ３３）。
【００５５】
次に、先頭のフィールド指定９２１は@名称であり、その名前「名称」を持つ属性の属性値を指定していることから（ステップＳ３８）、現在の要素から、その属性「名称」が取り除かれる（ステップＳ３９）。つまり、属性「名称」は失われる。この段階で、図７（ａ）に示す要素は、次の要素（現在の要素）
<カード型ディスク 分類="拡張機器" 形式="DK123EC" 重量="35" 容量="16"/>
に変換されている。
【００５６】
次に、図８に示す変換対象/変換操作指定情報１２３から２番目（最後）の変換操作指定情報１２３ｂが選択される（ステップＳ４１，Ｓ４２）。前記したように、この２番目（最後）の変換操作指定情報１２３ｂもローテーション操作を指定していない。この場合、２番目（最後）の変換対象/変換操作指定情報１２３に含まれているフィールド指定９４１及び９４２に基づき、即ち最後のフィールド指定９４２（＝content）と当該フィールド指定９４２に先行するフィールド指定９４１（＝@重量）とに基づき（ステップＳ３１，Ｓ３２）、要素内容が、属性「重量」の値（"35"）に設定される（ステップＳ３３）。この要素内容の設定時には、当該要素内容の直後に終了タグ</要素名>、つまり</カード型ディスク>が追加設定される。
【００５７】
次に、先頭のフィールド指定９４１は@重量であり、その名前「重量」を持つ属性の属性値を指定していることから（ステップＳ３８）、現在の要素から、その属性「重量」が取り除かれる（ステップＳ３９）。これにより、図７（ａ）に示す要素は、表現形式の異なる図７（ｂ）に示す要素に変換される。同様の変換処理により、図７（ａ）に示す要素を含む、アプリケーションＡＰ１に適合する表現形式のＸＭＬデータは、アプリケーションＡＰ２に適合する表現形式のＸＭＬデータに変換される。つまり本実施形態においては、アプリケーションＡＰ１では処理できるものの、アプリケーションＡＰ２では処理できない表現形式のＸＭＬデータを、アプリケーションＡＰ２で処理できる表現形式のＸＭＬデータに変換することが可能となる。この逆のＸＭＬデータ変換も可能である。これにより、図７（ａ）及び（ｂ）のいずれの表現形式のＸＭＬデータも、一方のＸＭＬデータを図１のＸＭＬデータ変換装置によって他方の表現形式のＸＭＬデータに変換することで、ユーザの望む視点に沿った図形化が可能となる。ここで、図８に示した変換対象/変換操作指定情報１２３により定義された変換法は、図７（ａ）と同一の視点から作られた全てのＸＭＬデータに適用できる。
【００５８】
図８の例では、定数を指定するフィールド指定は用いられていない。もし、フィールド指定の列の先頭に定数を指定するフィールド指定が用いられている場合、後続のフィールド指定で指定されるフィールドの値には、この定数が設定される。
【００５９】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００６０】
【図１】図１は本発明の一実施形態に係るＸＭＬデータ（構造化データ）変換装置の構成を示すブロック図。
【図２】図１中の変換法インデックスファイル１１のデータ構造を示す図。
【図３】図１中の変換法定義ファイル１２のデータ構造示す図。
【図４】同実施形態の動作の全体の流れを示すフローチャート。
【図５】図４中のステップＳ１０（ＸＭＬデータ変換処理）の詳細な手順を示すフローチャートの一部を示す図。
【図６】図４中のステップＳ１０（ＸＭＬデータ変換処理）の詳細な手順を示すフローチャートの残りを示す図。
【図７】変換対象となるＸＭＬデータの１つの要素の例を、変換後の要素の例と対応付けて示す図。
【図８】図７に示すＸＭＬデータ変換に用いられる変換対象/変換操作指定情報１２３の一例を示す図。
【図９】同一の対象をＸＭＬデータで表現する場合に、ＸＭＬデータ設計者の視点の相違によって異なる表現形式のＸＭＬデータが作成されることを示す図。
【符号の説明】
【００６１】
１０…変換法データベース、１１…変換法インデックスファイル、１２…変換法定義ファイル、２０…ＸＭＬデータベース、２１…ＸＭＬデータファイル、３０…変換エンジン、３１…ユーザインタフェース、４０…メモリ、４１…変換法インデックスファイル領域、４２…変換法定義ファイル領域、４３…ＸＭＬデータファイル名領域、４４…ＸＭＬデータファイル領域、４５…作業領域、５０…入力装置、６０…出力装置、１２３…変換対象/変換操作指定情報、１２３ａ…変換対象指定情報、１２３ｂ…変換操作指定情報１２３ｂ。
【図１】
2006018449.tif 000003
【図２】
2006018449.tif 000004
【図３】
2006018449.tif 000005
【図４】
2006018449.tif 000006
【図５】
2006018449.tif 000007
【図６】
2006018449.tif 000008
【図７】
2006018449.tif 000009
【図８】
2006018449.tif 000010
【図９】
2006018449.tif 000011