JP4220439B2 - 構造化データ変換装置及び方法 - Google Patents

構造化データ変換装置及び方法 Download PDF

Info

Publication number
JP4220439B2
JP4220439B2 JP2004194092A JP2004194092A JP4220439B2 JP 4220439 B2 JP4220439 B2 JP 4220439B2 JP 2004194092 A JP2004194092 A JP 2004194092A JP 2004194092 A JP2004194092 A JP 2004194092A JP 4220439 B2 JP4220439 B2 JP 4220439B2
Authority
JP
Japan
Prior art keywords
conversion
field
specified
conversion method
method definition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004194092A
Other languages
English (en)
Other versions
JP2006018449A (ja
Inventor
茂 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2004194092A priority Critical patent/JP4220439B2/ja
Publication of JP2006018449A publication Critical patent/JP2006018449A/ja
Application granted granted Critical
Publication of JP4220439B2 publication Critical patent/JP4220439B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、構造化データ(構造化文書)の表現形式を変換する構造化データ変換装置及び変換方法に関し、特に構造化データ(構造化文書)の一種である半構造化データ(半構造化文書)であるXMLデータ(XML文書)の表現形式を変換するのに好適な構造化データ変換装置及び方法に関する。
XML(Extensible Markup Language)の普及に伴い、その参照、変換加工、蓄積などを目的とした各種のソフトウェア(アプリケーションソフトウェア)が頒布されている。
XMLを用いて記述されたデータ(XML文書)は、論理的に、階層を持った木構造を表現する。上述のソフトウェアの中にはXMLデータ、即ち、XML文書ないし、その部分木の内容を図形化してユーザに提示し、その理解や操作を容易にするGUI(Graphical User Interface)を備えたものも多い。その典型的な例の1つがXML変換支援ツールである。このツールは、例えば、XSLT(XSL Transformations, XSL:Extensible Stylesheet Language)を利用したXML変換のために(例えば、非特許文献1参照)、その変換法の定義(XSLTスタイルシート)生成を支援する。このようなXML変換支援ツールの一般的なユーザインタフェースでは、変換前と変換後のXML構造を図形化して対比させ、両構造の間の対応関係をユーザに入力させる。
従来、この種の、XMLを図形化するソフトウェアは、対象となるXMLデータを構文に基づいて解析し、その構成要素を配置する。つまり、ルート要素に始まるXMLの要素の入れ子構造を、そのまま木構造として表現する。ここでは、子の要素を含まない要素が葉となる。また、属性を持つ要素については、その属性も葉の一種として表現可能である。
XSL Transformations (XSLT) Version 1.0,[online],平成11年11月16日,World Wide Web Consortium (W3C),[平成16年6月21日検索],インターネット<URL: http://www.w3.org/TR/1999/REC-xslt-19991116>
上記したように従来技術においては、XMLデータを図形化するには、当該XMLデータの構文解析を行い、その解析結果に基づいてそのまま当該XMLデータを図形化するのが一般的である。しかし、この従来技術におけるXMLデータの図形化では。同一の対象を表現するXMLデータであっても、XML表現の設計過程での視点の置き方によって、違った見え方をしてしまう。つまり従来技術においては、同一の対象を表現するXMLデータであっても、全く違って図形化されるという問題(以下、問題1と称する)がある。また従来技術においては、視点の違いによるXML表現の差異が、同じ視点から作られたXMLデータ全域に及ぶ。このため従来技術においては、XMLデータの図形化の操作を支援するツールの操作性を損なうという問題(以下、問題2と称する)もある。
以下、これらの問題1及び2について詳細に説明する。
(問題1)
XMLデータの図形化は、当該XMLデータが表現する情報を、ユーザに理解しやすく提示するのが目的である。しかし、XMLデータの構文のみに基づく図形化では、用途により適切な情報提示が行えない場合がある。例えば、対象データをXMLデータで表現するのに、データ名称を要素名として表現する場合と、データの構造上の種別を要素名として表現する場合とでは、両XMLデータを構文のみに基づいて図形化すると、両者間の対応関係が分かりにくくなる。その理由は、ある対象データを表現するXMLの表記法を設計する際に、対象をデータ名称主体に捉えるか、或いはデータの構造種別主体に捉えるかという視点の差異が、図形化によって顕著となることによる。図9に具体例を示す。この図9は、XML表現の対象データXと、当該対象データXを表現する3種類のXMLデータA乃至Cとを示す。この対象データXを表現するXMLデータとして、XMLデータA乃至Cのいずれを用いることも可能である。これ以外にも、更に他の多くの表現があり得る。
このように、同じ表現対象に対して多様な表現が生じる大きな理由は、XMLが本質的に備えている自由度にある。一般に、XMLの構成要素は、
・要素名 :概念分類
・属性 :属性、またはメタ情報
・要素内容 :最も特徴的な値
・下位入れ子:部分構造
のように用いられる。XMLは、これらの要素の具体的な対応付けについてアプリケーション(アプリケーションソフトウェア)毎に定義可能なことを特徴とする。一方で、人間の持つ概念は複雑な情報構造を持ち、XMLのように単純な木構造で表現しようとすれば、きわめて大まかな近似にしかなり得ない。そのため、XML設計者は、図9の例のように、各々の対象理解と用途とに基づき、つまり視点に基づき、最適と考えるXML表現形式を決定する。
例えば、XMLデータ変換支援ツールで、2つの異なる対象を表したXML間の変換法を定義するものとする。このとき、これらのXML表現間の違いが、表現されている対象本来の違いに由来するものならば、両者間の変換はツールの目的そのものであるから問題にはならない。しかし、実際のXML表現には、上記の例のように、対象をXML化する段階での設計者による視点の差異が合成され、変換法の定義を不必要に困難に、或いは非効率的にしている。
(問題2)
視点の違いによるXML表現の違いはXMLデータの全領域に及ぶ。このため、XMLデータ操作ツールのユーザは、同型の読み替えを何度も繰り返さなければならない。この読み替えは単一のXMLデータ処理にとどまらず、同じ視点から作られた全てのXMLデータについて必要になる。
一般にソフトウェアツールには、人間を機械的操作の反復から解放し、煩雑さと非効率性を解消することが求められる。この、ツールの根本的な目的に対し、問題2は致命的である。
もし、例えば、図9に示された表現の異なる3種類のXMLデータA乃至Cが、いずれもデータXを表すというように、XMLの表層的な構文ではなく、その意味を理解した上でこれに基づき図形化できるならば、表現法の差異を除去することは可能である。しかし実際には、XMLのデータ表現に埋め込まれた意味を自動的に解析するのは困難である。
本発明は上記事情を考慮してなされたものでその目的は、視点の違いがもたらす表現形式の違いを、要素名、属性及び要素内容の用法の交替により容易に補正できる構造化データ変換装置及び方法を提供することにある。
本発明の1つの観点によれば、構造化データの表現形式を変換する構造化データ変換装置が提供される。この構造化データ変換装置は、変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択する変換法定義ファイル選択手段と、この選択手段によって選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する変換操作手段とを備えることを特徴とする。
上記の構成の構造化データ変換装置においては、ユーザによって指定された構造化データに含まれている要素のうち、変換法定義ファイル選択手段によって選択された変換法定義ファイル中の変換対象指定情報の指定する要素を対象に、当該変換法定義ファイル中の変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作が変換操作手段によって実行される。
このように、上記の構成の構造化データ変換装置によれば、設計者の視点に依存した表現の補正のためのデータ変換が、ユーザによって指定された構造化データに含まれている要素のうち、変換対象指定情報によって指定された要素毎に、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作によって実行される。この変換操作により、変換対象指定情報によって指定された要素毎に、変換操作指定情報によって指定された要素名、属性及び要素内容の用法交替が行われ、構造化データの表現形式が構造化データ変換に適用された変換法定義ファイルに固有の別の表現形式に変換される。
ここで、上記変換法定義ファイル中の変換操作指定情報に、当該変換法定義ファイルに含まれている変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含ませる一方、上記変換操作手段に、上記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写する複写手段を含ませると良い。このようにすると、設計者の視点に依存した表現の補正のためのデータ変換を、指定要素毎のフィールド指定の列を用いた、当該指定要素の要素名、属性及び要素内容の用法交替の指定だけで容易に定義できる。この指定要素毎のフィールド指定の列を含む変換法定義ファイルは、対応する表現形式で作成された全ての構造化データ、つまり同じ視点で作成された構造化データの同種の変換に適用できる。
本発明によれば、視点の違いがもたらす表現形式の違いを、予め定められた要素毎に、要素名、属性及び要素内容の用法の交替により容易に補正できる。
以下、本発明を、構造化データの代表であるXMLデータの表現形式を変換するXMLデータ変換装置に適用した一実施形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るXMLデータ変換装置の構成を示すブロック図である。XMLデータ変換装置は、変換法データベース10と、XMLデータベース20と、XMLデータ変換エンジン30と、メモリ40と、入力装置50と、出力装置60とを備えている。
変換法データベース10は、変換法インデックスファイル11と複数の変換法定義ファイル12とを格納する。変換法インデックスファイル11は、変換法のインデックスを格納したファイルである。変換法定義ファイル12は、XMLデータの変換法を定義したファイルである。
図2は、変換法インデックスファイル11のデータ構造を示す。変換法インデックスファイル11は、インデックス情報として、入力形式名111、出力形式名112及び変換法定義ファイル12のファイル名113の組を複数組格納する。この変換法インデックスファイル11を、入力形式名及び出力形式名の対をキーとして参照することで、、その入力形式名及び出力形式名の対に固有の変換法を定義した変換法定義ファイル12のファイル名を得ることができる。ここで、入力形式名及び出力形式名は、それぞれ対応する表現形式を特定するための情報であり、例えば対応する表現形式のXMLを扱うアプリケーションの識別名である。
図3は変換法定義ファイル12のデータ構造を示す。この変換法定義ファイル12は、入力形式名121、出力形式名122、及び少なくとも1つの変換対象/変換操作指定情報123を含む。変換対象/変換操作指定情報123は、図3に示すように、変換対象指定情報123aと、少なくとも1つの変換操作指定情報123bとを含む。
変換対象指定情報123aは、XMLデータの変換対象を指定する。ここでは変換対象指定情報123aは、W3C(World Wide Web Consortium)の勧告となっているXPath(XML Path Language)に準じた記述により変換対象の要素を指定する。変換操作指定情報123bはフィールド指定(フィールド指定情報)のリストを含む。フィールド指定は、次の4種
・“定数”:引用符で囲まれた定数値
・name :要素名
・content :要素内容
・@属性名 :その名前を持つ属性の値
のいずれかとする。
再び図1を参照すると、XMLデータベース20は、複数のXMLデータファイル(XML文書)21を格納する。このXMLデータベース20に格納されている複数のXMLデータファイル21の中からユーザの操作によって指定されたXMLデータファイル21が、XMLデータ変換の対象となる。
変換法データベース10及びXMLデータベース20は、ハードディスクドライブに代表される外部記憶装置(図示せず)に保存されているものとする。なお、変換法データベース10及びXMLデータベース20をXMLデータ変換装置から独立させて、例えばネットワークを介して当該XMLデータ変換装置内の変換エンジン30からアクセス可能な構成とすることも可能である。この場合、変換法データベース10及びXMLデータベース20を、複数のXMLデータ変換装置で共有することも可能である。
XMLデータ変換エンジン30は、ユーザの操作によって指定されたXMLデータファイルを、ユーザ操作によって指定された入力形式名及び出力形式名の対に固有の変換法定義ファイル12に定義された変換法に従って変換する。変換エンジン30は、ユーザインタフェース31を含む。ユーザインタフェース31は、ユーザが変換エンジン30を利用するためのインタフェースをなす。変換エンジン30は、計算機にインストールされた特定のソフトウェアプログラムを当該計算機が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体(フロッピー(登録商標)ディスクに代表される磁気ディスク、CD−ROM、DVDに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等)に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。
メモリ40は、記憶領域41乃至45を含む。記憶領域41は、変換エンジン30によって変換法データベース10から読み取られた変換法インデックスファイル11を一時記憶するための変換法インデックスファイル領域である。記憶領域42は、変換エンジン30によって変換法データベース10から読み取られた変換法定義ファイル12を記憶するための変換法定義ファイル領域である。記憶領域43は、ユーザ操作によって指定された、変換対象となるXMLデータファイル21のファイル名を記憶するためのXMLデータファイル名領域である。記憶領域44は、ユーザ操作によって指定されたファイル名のXMLデータファイル21を記憶するためのXMLデータファイル領域である。記憶領域45は、変換エンジン30のための作業領域である。
入力装置50は、ユーザ操作により、XMLデータ変換に用いられる変換法定義ファイル12を特定するための入力形式名及び出力形式名、XMLデータ変換の対象となるXMLデータファイル21のファイル名等を入力するのに用いられる。入力装置50は、例えばキーボードまたはマウスである。出力装置60は例えばディスプレイ装置であり、ユーザに対するファイル名の入力要求、入力形式名及び出力形式名の対の一覧等を表示するのに用いられる。
さて本実施形態では、変換法データベース10に格納されている変換法定義ファイル12は、例えばユーザによって作成されるものとする。この変換法定義ファイル12に格納されている変換対象/変換操作指定情報123中の変換対象指定情報123a及び変換操作指定情報123bの意味と制約は、次の通りである。
<意味>
・変換対象指定情報123aは、あるXML要素が変換の対象となるか否かを判定するXPath表記である。
・各変換操作指定情報123b中に列挙されたフィールド指定は、先行するフィールドの旧値を後に続くフィールドの新しい値として設定することを表す。3つ以上のフィールド指定を列挙し、値を順送りにすることも可能である。
・変換操作指定情報123bに含まれているフィールド指定の列のうちの先頭と末尾に同じフィールドが指定された場合、その変換操作は、循環した値の順送り(ローテーション)を形成する。
・定数は引用符で囲まれた値そのものを値とする。
・要素内容contentに、ある値を設定するとは、その値を要素の新しい要素内容とすることを表す。
・要素名nameに、ある値を設定するとは、その値を要素の新しい要素名とすることを表す。
・属性への値の設定は、その属性値の上書き、または属性の新設を表す。
<制約>
・定数の指定は、操作指定の先頭にのみ使用できる。
・ローテーション操作の場合を除き、変換操作指定情報123bの先頭が属性名である場合、その属性は変換後のXMLから失われる。
・ローテーション操作の場合を除き、変換操作指定情報123bの先頭がcontentである場合、その要素は、変換後は空要素となる。
・ローテーション操作の場合を除き、変換操作指定情報123bの先頭にnameを使用することはできない。その理由は、要素は、必ずタグの先頭に要素名を持つためである。
・name、content及び同じ属性名は、ローテーション操作の先頭と末尾に指定される場合を除き、1つの変換法定義を通して2度以上、重複して用いることはできない。
次に、本実施形態の動作の全体の流れについて、図4のフローチャートを参照して説明する。まず、XMLデータ変換エンジン30は起動されると、変換の対象となるXMLデータファイルのファイル名の入力をユーザに要求するためのファイル名入力要求画面を、ユーザインタフェース31により出力装置(ディスプレイ装置)60に表示させる(ステップS1)。この状態で変換エンジン30は、ユーザが入力装置50を用いて所望のXMLデータファイル21のファイル名を入力する操作を行ったことを検出すると(ステップS2)、入力されたファイル名をメモリ40のXMLデータファイル名領域43に格納する(ステップS3)。
次に変換エンジン30は、入力されたファイル名、即ちユーザ指定のファイル名のXMLデータファイル21を、XMLデータベース20からメモリ40のXMLデータファイル領域44に読み込む(ステップS4)。また変換エンジン30は、変換法インデックスファイル11を、変換法データベース10からメモリ40の変換法インデックスファイル領域41に読み込む(ステップS5)。
変換エンジン30は、変換法インデックスファイル領域41に読み込まれた変換法インデックスファイル11に従って、入力形式名111及び出力形式名112の対の一覧を生成し、その一覧をユーザインタフェース31により出力装置(ディスプレイ装置)60に表示させる(ステップS6)。前記したように、変換法インデックスファイル11に格納されている入力形式名111及び出力形式名112には、対応する形式のXMLを扱うアプリケーションの識別名が用いられる。ユーザは、上記入力要求画面に従って自身が選択したXMLデータファイル(第1の視点で作成されたXMLデータファイル)を扱うことが可能な第1のアプリケーションの識別名と、目的とする形式のXMLデータファイル(第2の視点で作成されたXMLデータファイル)を扱うことが可能な第2のアプリケーションの識別名とを特定する。そしてユーザは入力装置50を操作して、特定した第1及び第2のアプリケーションの識別名の対に一致する入力形式名111及び出力形式名112を上記の一覧から選択する。
変換エンジン30は、ユーザの操作によって任意の入力形式名111及び出力形式名112の対が選択されると(ステップS7)、検索手段として機能する。これにより変換エンジン30は、選択された入力形式名111及び出力形式名112の対をキーとして、領域41に読み込まれている変換法インデックスファイル11を参照することにより、その対に固有の変換法定義ファイル12のファイル名を検索する(ステップS8)。すると変換エンジン30は、変換法定義ファイル選択手段として機能し、検索されたファイル名の変換法定義ファイル12を変換法データベース10から選択して、メモリ40の変換法定義ファイル領域42に読み込む(ステップS9)。このとき変換エンジン30は、変換法データベース10から読み込まれた変換法定義ファイル12の定義内容が上述した制約事項を満たすかを検査し、不適合があればユーザインタフェース31を介してユーザにエラーを通知する。なお、変換法定義ファイル12が新規に変換法データベース10に格納さされる場合に、このような検査を行うことも可能である。この場合、検査の回数を減らすことができる。
変換エンジン30は、選択された変換法定義ファイル12を領域42に読み込むと、変換操作手段として機能する。これにより変換エンジン30は、領域42に読み込まれた変換法定義ファイル12に従って、領域44に読み込まれたXMLデータファイル21のデータ(XMLデータ)に含まれている要素のうち、変換されるべき要素を判別し、その変換されるべき要素に対し、当該変換法定義ファイル12に含まれている変換操作指定に基づく変換操作を行う(ステップS10)。この変換操作では、後述するように、変換されるべき要素の要素名、属性及び要素内容(content)の間で、値のシフト(更にはローテーション)が行われる。変換エンジン30によるXMLデータ変換結果は、ユーザインタフェース31によって出力装置(ディスプレイ装置)60に表示される(ステップS11)。
次に、変換エンジン30による上記ステップS10(XMLデータ変換処理)の詳細な手順について、図5及び図6を参照して説明する。まず変換エンジン30は、領域44に読み込まれたXMLデータファイル21のデータ、即ち変換の対象となるXMLデータから、最初の要素を選択する(ステップS21)。次に変換エンジン30は、領域42に読み込まれた変換法定義ファイル12から、最初の変換対象/変換操作指定情報123を選択する(ステップS22)。
変換エンジン30は、選択された変換対象/変換操作指定情報123中の変換対象指定情報123aを参照し、選択された要素が、当該変換対象指定情報123aによって指定されている変換対象要素であるかを判定する(ステップS23)。もし、選択された要素が変換対象要素でないならば、変換エンジン30は、変換法定義ファイル12内に未処理の変換対象/変換操作指定情報123が含まれているかを判定する(ステップS24)。
もし、変換法定義ファイル12内に未処理の変換対象/変換操作指定情報123が含まれているならば、変換エンジン30は当該ファイル12から次の変換対象/変換操作指定情報123を選択して(ステップS25)、上記ステップS23の判定処理に戻る。一方、変換法定義ファイル12内に未処理の変換対象/変換操作指定情報123が含まれていないならば、変換エンジン30は変換対象のXMLデータに未処理の要素が含まれているかを判定する(ステップS26)。
もし、変換対象のXMLデータに未処理の要素が含まれていないならば、変換エンジン30はXMLデータ変換処理を終了する。一方、変換対象のXMLデータに未処理の要素が含まれているならば、変換エンジン30は、変換対象のXMLデータから次の要素を選択する(ステップS27)。そして変換エンジン30は、上記ステップS22に戻って、変換法定義ファイル12から再び最初の変換対象/変換操作指定情報123を選択する。
これに対し、ステップS21またはS27で選択された要素が変換対象として指定されている場合(ステップS23)、変換エンジン30はステップS28に進む。このステップS28において、変換エンジン30は、現在選択されている変換対象/変換操作指定情報123から最初の変換操作指定情報123bを選択する。すると、変換エンジン30は判定手段(ローテーション操作判定手段)として機能し、選択された変換操作指定情報123bに基づいて、変換操作としてローテーション操作が指定されているかを判定する(ステップS29)。前記したように、ローテーション操作が指定されているかは、変換操作指定情報123bに含まれているフィールド指定の列のうちの先頭(最初)と末尾(最後)で同一のフィールドが指定されているかによって判定可能である。
もし、ローテーション操作が指定されているならば、変換エンジン30は、変換操作指定情報123bのの最後のフィールド指定で指定されたフィールドの値を作業領域45に一時保存(退避)し(ステップS30)、しかる後にステップS31に進む。一方、ローテーション操作が指定されていないならば、変換エンジン30はステップS30をスキップしてステップS31に進む。
ステップS31において、変換エンジン30は、変換操作指定情報123b内の最後のフィールド指定を、Fcとして設定する。Fcは、現在処理中の(つまりカレントな)フィールド指定を示す。次に変換エンジン30は、変換操作指定情報123b内のFcに先行するフィールド指定をFaとして設定する(ステップS32)。すると変換エンジン30は複写手段(値のシフト手段)として機能して、Fcで指定されるフィールドの値に、Faで指定されるフィールドの値を複写する(ステップS33)。即ち変換エンジン30は、Faで指定されるフィールドの値を、Fcで指定される後続のフィールドの値にシフトする。このようにして、先行するフィールドの旧値が後に続くフィールドの新しい値として設定される。
次に変換エンジン30は、Faが変換操作指定情報123b内の先頭のフィールド指定であるかを判定する(ステップS34)。もし、Faが先頭のフィールド指定でないならば、変換エンジン30は現在のFaを新たなFcとして設定して(ステップS35)、ステップS32に戻る。このステップS32において、変換エンジン30は、変換操作指定情報123b内の、新たに設定されたFcに先行するフィールド指定をFaとして設定する。そして変換エンジン30は、上記したように、Fcで指定されるフィールドの値に、Faで指定されるフィールドの値を複写する(ステップS33)。
このように、ステップS32乃至35が繰り返された結果、Faが変換操作指定情報123b内の先頭のフィールド指定となったものとする(ステップS34)。この場合、変換エンジン30は、ローテーション操作が指定されているならば(ステップS36)、Fcで指定されるフィールドの値に、先のステップS30で作業領域45に保存された値を設定する(ステップS37)。これにより、変換操作指定情報123b内の2番目のフィールド指定で指定されたフィールドの値(新値)として、変換操作指定情報123b内の最後の指定で指定されたフィールドの値(旧値)が設定される。つまり、変換対象指定情報123aで指定された要素について、変換操作指定情報123bで指定された当該要素の要素名、属性及び要素内容の間での値のローテーションが実現される。一方、ローテーション操作が指定されていないならば(ステップS36)、変換エンジン30は、Faの示すフィールド指定(ここでは、先頭のフィールド指定)に応じた以下の処理を行う。即ち変換エンジン30は、先頭のフィールド指定により属性値が指定されているならば(ステップS38)、属性除去手段として機能して、現在の要素からその属性を取り除く(ステップS39)。また変換エンジン30は、先頭のフィールド指定によりcontentが指定されているならば(ステップS38)、空要素化手段として機能して、現在の要素を空要素とする(ステップS40)。
変換エンジン30は、ステップS37、S39またはS40を実行すると、変換対象/変換操作指定情報123中に、現在の要素に関して、未処理の変換操作指定情報123bが含まれているかを判定する(ステップS41)。もし、未処理の変換操作指定情報123bが含まれているならば、変換エンジン30は、変換対象/変換操作指定情報123から次の変換操作指定情報123bを選択する(ステップS42)。そして変換エンジン30は、上記ステップS29の判定処理に戻る。一方、未処理の変換操作指定情報123bが含まれていないならば、変換エンジン30は変換法定義ファイル12に未処理の変換対象/変換操作指定情報123が含まれているかを判定する(ステップS43)。もし、未処理の変換対象/変換操作指定情報123が含まれているならば、変換エンジン30は上記ステップS25に戻って、変換法定義ファイル12から次の変換対象/変換操作指定情報123を選択する。一方、未処理の変換対象/変換操作指定情報123が含まれていないならば、変換エンジン30はステップS27に戻って、変換対象のXMLデータに未処理の要素が含まれているかを判定する。もし、未処理の要素が含まれていないならば、変換エンジン30はXMLデータ変換処理を終了する。
次に、上述の変換エンジン30によるXMLデータ変換処理の具体例について、上記図4乃至図6のフローチャート値に加えて、図7及び図8を参照して説明する。
図7において、同図(a)は、変換対象となるXMLデータの1つの要素(要素名が「拡張機器」の要素)の例を示し、同図(b)は同図(a)の要素に対するXMLデータ変換後の要素(要素名が「カード型ディスク」の要素)の例を示す。図7(a)及び(b)に示す異なる表現形式の要素を含むXMLデータの処理に適合するアプリケーション(アプリケーションソフトウェア)が、それぞれアプリケーションAP1及びAP2であるものとする。
図8は、このXMLデータ変換に用いられる変換法定義ファイル12内の変換対象/変換操作指定情報123の一例を示す。なお、図8中において記号#から始まる文字列は、その左に記載されている変換対象指定情報123aまたはフィールド指定に関する説明(注釈)を表す。
図8に示す変換対象/変換操作指定情報123は、変換対象となる要素の要素名として「拡張機器」を指定する変換対象指定情報123aと、2つの変換操作指定情報123bとを含む。1番目の変換操作指定情報123bは、「シフト」を示す変換操作指定91と、3つのフィールド指定921乃至923とを含む。フィールド指定921は、@属性名として@名称を持つことにより、属性「名称」の属性値を指定する。フィールド指定922は、name、つまり要素名を指定する。変換操作指定91により「シフト」が指定されている場合、フィールド指定922により、要素名を、先行するフィールド指定921で指定される属性「名称」の属性値とすることが指定される。フィールド指定923は、@属性名として@分類を持つことにより、属性「分類」の属性値を指定する。変換操作指定91により「シフト」が指定されている場合、フィールド指定923により、属性「分類の」の属性値を、先行するフィールド指定922で指定される旧要素名とすることが指定される。
次に、2番目(最後)の変換操作指定情報123bは、シフトを示す変換操作指定93と、2つのフィールド指定941乃至942とを含む。フィールド指定941は、@属性名として@重量を持つことにより、属性「重量」の属性値を指定する。フィールド指定942は、content、つまり要素内容を指定する。変換操作指定93により「シフト」が指定されている場合、フィールド指定942により、要素内容を、先行するフィールド指定941で指定される属性「重量」の属性値とすることが指定される。
今、図7(a)に示す表現形式の要素を含むXMLデータをアプリケーションAP2によって処理したいものとする。この場合、ユーザは、入力形式名及び出力形式名の対の一覧が表示されると(ステップS6)、その一覧から、AP1及びAP2の識別名の対に一致する入力形式名及び出力形式名の対を選択する。すると変換エンジン30は、AP1及びAP2の対に固有のファイル名の変換法定義ファイル12を変換法データベース10から選択する(ステップS8)。この変換法定義ファイル12は、図8に示す変換対象/変換操作指定情報123を含んでいる。変換エンジン30は、この変換対象/変換操作指定情報123に従って、図7(a)に示す要素を含むXMLデータのデータ変換処理を次のように実行する。
まず、変換対象となるXMLデータから図7(a)に示す要素「拡張機器」が選択されたものとする(ステップS21またはS27)。また、要素「拡張機器」を変換対象として指定する変換対象指定情報123aを含む、図8に示す変換対象/変換操作指定情報123が選択されたものとする(ステップS22またはS25)。この変換対象/変換操作指定情報123が持つ2つの変換操作指定情報123bは、いずれもローテーション操作を指定していない。このことは、2つの変換操作指定情報123bの各々の先頭と末尾でいずれも同一のフィールドが指定されていないことから判定できる。
ローテーション操作が指定されていない場合、まず、先頭の変換操作指定情報123bに含まれているフィールド指定921乃至923のうちの、最後のフィールド指定923(=@分類)と当該フィールド指定923に先行するフィールド指定922(=name)とに基づき(ステップS31,S32)、属性「分類」の値(属性値)が、選択された要素名(旧要素名)"拡張機器"に設定される(ステップS33)。
次に、フィールド指定921乃至923のうちの、2番目のフィールド指定922(=name)と当該フィールド指定922に先行する先頭のフィールド指定921(=@名称)とに基づき(ステップS35,S32)、変換後の要素の要素名が、属性「名称」の値である「カード型ディスク」(図7(a)参照)に設定される(ステップS33)。
次に、先頭のフィールド指定921は@名称であり、その名前「名称」を持つ属性の属性値を指定していることから(ステップS38)、現在の要素から、その属性「名称」が取り除かれる(ステップS39)。つまり、属性「名称」は失われる。この段階で、図7(a)に示す要素は、次の要素(現在の要素)
<カード型ディスク 分類="拡張機器" 形式="DK123EC" 重量="35" 容量="16"/>
に変換されている。
次に、図8に示す変換対象/変換操作指定情報123から2番目(最後)の変換操作指定情報123bが選択される(ステップS41,S42)。前記したように、この2番目(最後)の変換操作指定情報123bもローテーション操作を指定していない。この場合、2番目(最後)の変換対象/変換操作指定情報123に含まれているフィールド指定941及び942に基づき、即ち最後のフィールド指定942(=content)と当該フィールド指定942に先行するフィールド指定941(=@重量)とに基づき(ステップS31,S32)、要素内容が、属性「重量」の値("35")に設定される(ステップS33)。この要素内容の設定時には、当該要素内容の直後に終了タグ</要素名>、つまり</カード型ディスク>が追加設定される。
次に、先頭のフィールド指定941は@重量であり、その名前「重量」を持つ属性の属性値を指定していることから(ステップS38)、現在の要素から、その属性「重量」が取り除かれる(ステップS39)。これにより、図7(a)に示す要素は、表現形式の異なる図7(b)に示す要素に変換される。同様の変換処理により、図7(a)に示す要素を含む、アプリケーションAP1に適合する表現形式のXMLデータは、アプリケーションAP2に適合する表現形式のXMLデータに変換される。つまり本実施形態においては、アプリケーションAP1では処理できるものの、アプリケーションAP2では処理できない表現形式のXMLデータを、アプリケーションAP2で処理できる表現形式のXMLデータに変換することが可能となる。この逆のXMLデータ変換も可能である。これにより、図7(a)及び(b)のいずれの表現形式のXMLデータも、一方のXMLデータを図1のXMLデータ変換装置によって他方の表現形式のXMLデータに変換することで、ユーザの望む視点に沿った図形化が可能となる。ここで、図8に示した変換対象/変換操作指定情報123により定義された変換法は、図7(a)と同一の視点から作られた全てのXMLデータに適用できる。
図8の例では、定数を指定するフィールド指定は用いられていない。もし、フィールド指定の列の先頭に定数を指定するフィールド指定が用いられている場合、後続のフィールド指定で指定されるフィールドの値には、この定数が設定される。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
図1は本発明の一実施形態に係るXMLデータ(構造化データ)変換装置の構成を示すブロック図。 図1中の変換法インデックスファイル11のデータ構造を示す図。 図1中の変換法定義ファイル12のデータ構造示す図。 同実施形態の動作の全体の流れを示すフローチャート。 図4中のステップS10(XMLデータ変換処理)の詳細な手順を示すフローチャートの一部を示す図。 図4中のステップS10(XMLデータ変換処理)の詳細な手順を示すフローチャートの残りを示す図。 変換対象となるXMLデータの1つの要素の例を、変換後の要素の例と対応付けて示す図。 図7に示すXMLデータ変換に用いられる変換対象/変換操作指定情報123の一例を示す図。 同一の対象をXMLデータで表現する場合に、XMLデータ設計者の視点の相違によって異なる表現形式のXMLデータが作成されることを示す図。
符号の説明
10…変換法データベース、11…変換法インデックスファイル、12…変換法定義ファイル、20…XMLデータベース、21…XMLデータファイル、30…変換エンジン、31…ユーザインタフェース、40…メモリ、41…変換法インデックスファイル領域、42…変換法定義ファイル領域、43…XMLデータファイル名領域、44…XMLデータファイル領域、45…作業領域、50…入力装置、60…出力装置、123…変換対象/変換操作指定情報、123a…変換対象指定情報、123b…変換操作指定情報123b。

Claims (5)

  1. 構造化データの表現形式を変換する構造化データ変換装置において、
    変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択する変換法定義ファイル選択手段と、
    前記変換法定義ファイル選択手段によって選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている前記変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する変換操作手段と
    を具備し、
    前記変換法定義ファイルに含まれている前記変換操作指定情報は、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含み、
    前記変換操作手段は、
    前記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写する複写手段と、
    前記変換操作指定情報に含まれている前記フィールド指定の列のうちの最初と最後が同一のフィールドを指定している場合、ローテーション操作が指定されていると判定する判定手段とを含み、
    前記複写手段は、前記ローテーション操作が指定されていると前記判定手段によって判定された場合、前記フィールド指定の列のうちの最後のフィールド指定で指定されたフィールドの旧値を、前記フィールド指定の列のうちの2番目のフィールド指定で指定されたフィールドの新値として設定する
    ことを特徴とする構造化データ変換装置。
  2. 前記変換操作手段は、前記ローテーション操作が指定されていないと前記判定手段によって判定され、且つ前記フィールド指定の列のうちの先頭で属性が指定された場合、構造化データ変換中にある前記変換対象指定情報によって指定された要素から、当該属性を除去する属性除去手段を更に含むことを特徴とする請求項1記載の構造化データ変換装置。
  3. 前記変換操作手段は、前記ローテーション操作が指定されていないと前記判定手段によって判定され、且つ前記フィールド指定の列のうちの先頭で要素内容が指定された場合、構造化データ変換中にある前記変換対象指定情報によって指定された要素を空要素とする空要素化手段を備えることを特徴とする請求項1記載の構造化データ変換装置。
  4. 構造化データの表現形式を変換する構造化データ変換装置において、
    変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択する変換法定義ファイル選択手段と、
    前記変換法定義ファイル選択手段によって選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている前記変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行する変換操作手段と
    を具備し、
    前記変換法定義ファイルに含まれている前記変換操作指定情報は、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含み、
    前記変換操作手段は、前記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写する複写手段を含み
    前記変換操作指定情報で定義可能なフィールド指定として、要素名を指定する第1のフィールド指定、要素内容を指定する第2のフィールド指定、指定の属性名を持つ属性の値を指定する第3のフィールド指定、及び前記フィールド指定の列の先頭にのみ使用可能な、定数を指定する第4のフィールド指定が用意されており、
    前記複写手段は、
    先行するフィールド指定に後続するフィールド指定が前記第1のフィールド指定の場合、要素名として、先行するフィールド指定で指定されたフィールドの値を設定し、
    先行するフィールド指定に後続するフィールド指定が前記第2のフィールド指定の場合、要素内容として、先行するフィールド指定で指定されたフィールドの値を設定し、
    先行するフィールド指定に後続するフィールド指定が前記第3のフィールド指定の場合、当該第3のフィールド指定で指定された属性名を持つ属性の値として、先行するフィールド指定で指定されたフィールドの値を設定し、
    先行するフィールド指定が前記第4のフィールド指定の場合、当該第4のフィールド指定に後続するフィールド指定で指定されたフィールドの値として、当該第4のフィールド指定で指定された定数を設定する
    ことを特徴とする構造化データ変換装置。
  5. 変換法定義ファイル選択手段と、複写手段及び判定手段を含む変換操作手段とを有する構造化データ変換装置に適用される、構造化データの表現形式を変換する構造化データ変換方法において、
    前記変換法定義ファイル選択手段が、変換法データベースに格納されている複数の変換法定義ファイルであって、変換対象となる要素を指定する変換対象指定情報及び当該変換対象指定情報によって指定される要素に関し、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションを定義する変換操作指定情報を含む複数の変換法定義ファイルの中から、ユーザによって指定された構造化データをユーザの指定する表現形式の構造化データに変換するための変換法定義ファイルを選択するステップと、
    前記変換操作手段が、前記選択された変換法定義ファイルに基づいて、ユーザによって指定された構造化データに含まれている要素のうち、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素を対象に、当該変換法定義ファイルに含まれている前記変換操作指定情報に基づいて、当該要素の要素名、属性及び要素内容の間での値のシフトまたはローテーションによる変換操作を実行するステップ
    を具備し、
    前記変換法定義ファイルに含まれている前記変換操作指定情報は、当該変換法定義ファイルに含まれている前記変換対象指定情報の指定する要素に関する、当該要素の要素名、属性及び要素内容をフィールドとして指定するフィールド指定の列を含み、
    前記変換操作を実行するステップは、
    前記変換操作手段の前記複写手段が、前記フィールド指定の列に従い、先行するフィールド指定で指定されたフィールドの旧値を、当該先行するフィールド指定に後続するフィールド指定で指定されたフィールドの新値として複写するステップと、
    前記変換操作手段の前記判定手段が、前記変換操作指定情報に含まれている前記フィールド指定の列のうちの最初と最後が同一のフィールドを指定している場合、ローテーション操作が指定されていると判定するステップと、
    前記ローテーション操作が指定されていると判定された場合、前記変換操作手段の前記複写手段が、前記フィールド指定の列のうちの最後のフィールド指定で指定されたフィールドの旧値を、前記フィールド指定の列のうちの2番目のフィールド指定で指定されたフィールドの新値として設定するステップとを含む
    ことを特徴とする構造化データ変換方法。
JP2004194092A 2004-06-30 2004-06-30 構造化データ変換装置及び方法 Expired - Fee Related JP4220439B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004194092A JP4220439B2 (ja) 2004-06-30 2004-06-30 構造化データ変換装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004194092A JP4220439B2 (ja) 2004-06-30 2004-06-30 構造化データ変換装置及び方法

Publications (2)

Publication Number Publication Date
JP2006018449A JP2006018449A (ja) 2006-01-19
JP4220439B2 true JP4220439B2 (ja) 2009-02-04

Family

ID=35792685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004194092A Expired - Fee Related JP4220439B2 (ja) 2004-06-30 2004-06-30 構造化データ変換装置及び方法

Country Status (1)

Country Link
JP (1) JP4220439B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008041082A (ja) * 2006-07-12 2008-02-21 Hitachi Ltd 処理装置及びプログラム
WO2009139245A1 (ja) 2008-05-13 2009-11-19 日本電気株式会社 Xml処理装置、xml処理方法およびxml処理プログラム

Also Published As

Publication number Publication date
JP2006018449A (ja) 2006-01-19

Similar Documents

Publication Publication Date Title
JP4267336B2 (ja) 構造パターン候補を生成する方法、システムおよびプログラム
US20030237046A1 (en) Transformation stylesheet editor
US5845304A (en) Document processing apparatus
JP2004030582A (ja) 構造化文書編集装置、構造化文書編集方法及びプログラム
JP2008508642A (ja) 新規フラグメント及び新規スキームを用いたマークアップ言語環境において新規文書を生成するための文書処理及び管理方法
JP2009075879A (ja) 画像処理装置と画像処理方法とプログラム
JPWO2006051975A1 (ja) 文書処理装置
JPWO2006046666A1 (ja) 文書処理装置および文書処理方法
JPWO2006051960A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051713A1 (ja) 文書処理装置及び文書処理方法
JP5466357B2 (ja) 電子文書の作成を支援する装置及び方法
JPWO2005098660A1 (ja) 文書処理装置及び文書処理方法
JP4666996B2 (ja) 電子ファイリングシステム、電子ファイリング方法
JPWO2006051959A1 (ja) 文書処理装置及び文書処理方法
JP4373470B2 (ja) 文書変換活用システム
JP4566196B2 (ja) 文書処理方法および装置
JPWO2006051716A1 (ja) 文書処理装置及び文書処理方法
JP4220439B2 (ja) 構造化データ変換装置及び方法
JPWO2006051972A1 (ja) データ処理装置、文書処理装置および文書処理方法
JPWO2006051717A1 (ja) 文書処理装置及び文書処理方法
JP2007183849A (ja) 文書処理装置
JPWO2006051714A1 (ja) 文書処理装置及び文書処理方法
JP5420695B2 (ja) ソフトウェア開発用構造化データファイル作成装置
JPWO2006051868A1 (ja) 文書処理装置及び文書処理方法
JP4719743B2 (ja) グラフ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees