JP4606862B2 - データ変換装置 - Google Patents

データ変換装置 Download PDF

Info

Publication number
JP4606862B2
JP4606862B2 JP2004354459A JP2004354459A JP4606862B2 JP 4606862 B2 JP4606862 B2 JP 4606862B2 JP 2004354459 A JP2004354459 A JP 2004354459A JP 2004354459 A JP2004354459 A JP 2004354459A JP 4606862 B2 JP4606862 B2 JP 4606862B2
Authority
JP
Japan
Prior art keywords
conversion
data
structure pattern
processing
unit
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
JP2004354459A
Other languages
English (en)
Other versions
JP2006163820A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004354459A priority Critical patent/JP4606862B2/ja
Publication of JP2006163820A publication Critical patent/JP2006163820A/ja
Application granted granted Critical
Publication of JP4606862B2 publication Critical patent/JP4606862B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Description

この発明は、構造化文書のデータ変換装置に関するものである。
情報システムの発展に伴い、各種情報システムが持つデータを、企業間や企業内組織間で交換したり、共有したりすることへの要求が高まっている。このような要求を満たすために用いられるデータの標準フォーマットの1つとして、W3C(World Wide Web Consortium)によって制定されているXML(eXtensible Markup Language)が近年盛んに利用されるようになってきた。XMLは、データを構造化してテキストファイルとして表現するもので、送り手側のシステムはシステム内部でのデータ構造を持つデータをXML文書に変換して送信し、受け手側のシステムでは受信したXML文書をシステム内部のデータ構造に変換して利用する。
XML文書に対する一般的なデータ操作API(Application Programming Interface)として、DOM(Document Object Model)やSAX(Simple API for XML)がある。DOMは、読み込んだXML文書全体を木構造(DOM木)に変換してメモリ上に展開する。これにより、データへのランダムアクセスが可能となり、複雑な処理を行うデータ操作プログラムを作成しやすいという利点がある。しかし、DOMは処理が低速でメモリ使用量も大きいという欠点がある。
これに対し、SAXは、XML文書を先頭から順に読み込み、XML文書中に現れるタグやテキストに対して逐次的に処理を行うもので、処理が高速でメモリ使用量が少ないという利点がある。しかし、逐次処理のため、データへのランダムアクセスができず、複雑な処理を行うデータ操作プログラムを作成しにくいという欠点がある。
また、これらの標準的なAPIを用いた構造化文書のデータ変換処理の高速化及びメモリ使用量の削減を目的とした技術も提案されている。
例えば、特許文献1に記載された従来の構造化文書変換方法では、変換対象の構造化文書を、予めデータ処理の対象となるキー要素と、データ処理の対象にならない非キー要素に分け、非キー要素の内容をCSV(Comma Separated Value)形式で1つの要素にまとめた構造化文書にしておく。
特開2003−203067号公報(図1、第5頁〜第18頁)
しかし、XML文書の読み込みにDOMやSAXなどの標準的なAPIを用いる限り、読み込み処理の速度がそれらのAPIで制限され、それ以上の処理速度向上は実現できない。ここで、読み込み処理の速度が制限される理由として、1)標準APIのオーバースペック、2)DOMのデータアクセス性能、3)SAXの逐次性、があげられる。
1)について説明する。DOMやSAXのような標準APIは、XMLの仕様上想定される全ての入力を扱えるようにするため、多くの内部変数や処理関数を持っている。また、DOMの読み込み処理では、後段でのデータアクセスのために、インデックス生成などの処理を行うのが一般的である。しかしながら、個々の変換対象データや変換処理プログラムから見ると、標準APIの機能全てが必要となることは稀である。そのため、不必要な情報まで内部データとして保持することになり、オーバースペックとなることが多い。すなわち、汎用化を実現する代わりに、必ずしも各々の対象データやデータ変換プログラムにとって最適なデータ構造とはなっておらず、メモリ効率や速度性能が犠牲になっているという問題がある。
次に2)について説明する。DOMを介したデータアクセスは、基本的に木構造に対する探索となる。すなわち、末端要素に保持されたデータを得るためには、例えば、深さ優先探索によってXMLの最も外側の要素に対応するルートから、目的とする末端要素に対応する葉が見つかるまで検索する必要がある。このような処理を行うと、一般的にメモリ使用量が増大し処理時間がかかるという問題がある。
次に3)について説明する。SAXは逐次的な処理を行うAPIであり、データ操作プログラムには入力データ全体の構造は提供されず、その時点で処理対象となっているXMLのタグに関する情報しか提供されない。従って、例えば、同じタグが繰り返し出現する反復構造を持つXML文書を扱う場合には、XML文書の構造を管理するための処理をその都度記述する必要が生じ、プログラム作成のコストがかかるという問題がある。
この発明は上記のような課題を解決するためになされたもので、データへの直接アクセスを可能とし、かつ、メモリ使用量の削減と高速なデータ変換処理を実現できるデータ変換装置を得ることを目的とする。
この発明に係るデータ変換装置は、変換前データの構造を基本構造パタンの組み合わせとして表現した構造パタンと、変換前データのタグの親子関係を表すタグ構造と、変換前データの要素が反復することを示す反復情報とを含む変換前データ構造パタン指定を記憶する変換前データ構造パタン指定記憶部と、変換前データ構造パタン指定に基づいて、変換前データの末端要素データ値を格納するデータ格納用配列の次元数を、変換前データ構造パタン指定に含まれる構造パタンの組み合わせ数に等しい次元に決定し、変換前データ構造パタン指定に含まれるタグ構造に基づいて作成された末端要素と配列要素名との対応テーブルを用いて、末端要素のデータ値をデータ格納用配列に格納する読み込み処理実行部と、変換前データを異なるデータ構造に変換するための変換規則を記述した変換命令を記憶する変換命令記憶部と、変換前データ構造パタン指定に基づいて決定された次元を有するデータ格納用配列に格納された変換前データの末端要素のデータ値を変換命令に記載された形式に対して代入することにより作成したデータを、変換後データとして出力する変換処理実行部を備えたものである。

この発明によれば、変換前データの構造を基本構造パタンの組み合わせで表現し、その構造パタンに従って末端要素データ値をデータ格納用配列に格納するようにしたので、変換処理において、末端要素が保持するデータ値に直接アクセスできると共に、メモリ使用量の削減と高速なデータ変換を実現できるデータ変換装置を得ることができる。
以下、この発明の実施の様々な形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1によるデータ変換装置100の構成を示すブロック図である。図に示すように、データ変換装置100は、変換前データ構造パタン指定記憶部101、読み込み処理生成部(読み込み処理実行部)102、変換命令記憶部103、変換処理生成部(変換処理実行部)104、読み込み処理実行部105、変換処理実行部106を備えている。読み込み処理生成部102、変換処理生成部104、読み込み処理実行部105及び変換処理実行部106は、データ変換装置100のプロセッサを、該プロセッサの動作を制御するプログラムのモジュールに従って便宜的に分割したものである。
変換前データ構造パタン指定記憶部101及び変換命令記憶部103は、データ変換装置100のメモリ、あるいはデータ変換装置100と接続された外部の記憶装置等に含まれる。
次に動作について説明する。
図2は、実施の形態1による変換前XMLデータの例(DATA1)を示す図である。また、図3は、実施の形態1による、図2に示す変換前XMLデータの変換後データ(DATA2)を示す図である。以下、DATA1をDATA2に変換する場合を例に取り説明する。
まず、変換前データ構造パタン指定記憶部101に記憶される変換前データ構造パタン指定について説明する。
変換前データ構造パタン指定は、変換前データの構造パタンとタグ構造を記述したものである。
タグ構造は、変換前データのタグの親子関係を表すものである。
構造パタンは、変換前データの構造を基本構造パタンの組み合わせとして表現したものである。基本構造パタンとしては、系列型(Sequence型、以後S型と称す。)及び反復型(Repetition型、以後R型と称す。)の2つをあげることができる。
図4は、S型の構造パタンを持つXMLデータの一例を示す図である。図に示すように、<日付>の子要素が、<年>要素、<月>要素、<日>要素という異なる要素の系列となっている。
また、図5は、R型の構造パタンを持つXMLデータの一例を示す図であり、図に示すように、<登録者>の子要素は、<氏名>要素という同一の要素が繰り返す構造となっている。
任意のXMLデータをS型とR型の組み合わせのみで表現することはできないが、実用上多く用いられている帳票などのXMLデータは、一般的にこれらの組み合わせによって表現可能である。例えば、多くの電子商取引の実用システムで用いられているXMLデータの規格として、(財)日本情報処理開発協会 電子商取引推進センターによって策定されたCII標準ベースXML/EDIマッピング規則がある。図6は、この規則に準拠したXMLデータの例を示す図である。図に示すように、このXMLデータの例では、最上位のタグ<CII−MSG>の子要素としては<JPMGRP>のみが存在する。すなわち、これは系列が1つのS型で表現できる。<JPMGRP>の子要素としては<JPMGH>と<JPTRM>の2つが存在し、系列が2つのS型で表現することができる。<JPMGH>の子要素は<JPC03>、<JPC04>などの系列であり、これもS型で表現することができる。<JPC03>、<JPC04>などは子要素を持たない末端要素である。<JPTRM>の子要素は<JP27001>、<JP27002>、<JPM>などの系列であり、S型である。このうち<JPM>要素は、反復する<JPMR>要素を持つ。従って、<JPM>はR型である。<JPMR>は、<JP27104>、<JP27105>、<JP27106>という系列を子要素に持つS型である。 以上より、このXMLデータは、S型とR型の組み合わせのみで表現することができ、SSRS型という構造パタンを持つ。
ここで、図2に示す変換前データDATA1の構造パタンについて説明する。<DATA1>要素の子要素は,<月>、<日>、<予約>の系列なのでS型で表現される。<予約>要素の子要素は<人名>要素の反復となっておりR型である。さらに、<人名>要素の子要素は<姓>要素と<名>要素の系列でありS型である。従って、DATA1はSRS型という構造パタンとなる。
図7は、DATA1の変換前データ構造パタン指定をXMLで記述した例を示す図である。図に示すように、<Input>タグのpattern属性により、変換前データ構造パタンがSRS型であることが示されている。また、repeat属性で<人名>要素が反復することを示している。
<Input>要素の内容としては、変換前データのタグ構造が記述されている。ここで、<月/>、<日/>、<姓/>、<名/>のような空要素として記述された要素が変換前データで実際のデータ値を持つ末端要素となる。なお、図7はXMLによる記述例であるが、同等の情報をCSVなど他のフォーマットで記述してもよい。
次に、データ格納のための配列について説明する。S型及びR型の基本構造パタンにおいては、その末端要素の構造は、要素の値を要素出現順序に並べた一次元配列に対応付けることができる。例えば、図4に示すS型構造パタンのXMLデータの例には、図8に示す一次元配列data[i]を対応付けることができる。ここで、配列の添え字iはS型構造パタン中の各要素と一対一に対応し、先頭要素の添え字を1とすれば、要素の出現順序と同じ値となる。R型構造パタンについても同様に、一次元配列に対応付けることができる。
S型とR型の組み合わせで表現される構造パタンの場合について説明する。例えば、図3に示すDATA2は、RS型の構造パタンを持つXMLデータであるが、DATA2の末端要素の値に対しては、図9に示す2次元配列data[i][j]を対応付けることができる。配列の第1の添え字iは、R型構造パタンで第i番目に出現した要素に対応し、配列の第2の添え字jは、R型構造パタンの第i番目の要素における、S型構造パタンの第j番目の要素に対応する。S型およびR型のN個の組み合わせまで拡張した場合、その末端要素の値は、N次元配列に対応付けて表現することが可能である。従って、データ格納用の配列としてはS型とR型の組み合わせ数に等しい次元を持つ多次元配列を用いることができる。
変換前データの構造が固定長、すなわち各基本構造パタン内部の系列数や繰り返し数が固定であれば、多次元配列は添え字の対応テーブルを用いて一次元配列で実装することも可能である。また、可変部分はリスト構造、固定部分には一次元配列など、多次元配列を効率よく実装する公知の方法を適用することができる。
次に、図2に示す変換前データと、図7に示す変換前データ構造パタン指定が入力された場合の、読み込み処理生成部102の動作について説明する。
読み込み処理生成部102は、変換前データを読み込んで、末端要素のデータ値をデータ格納用の配列に格納する処理のプログラムを生成する。以下、そのプログラムの処理内容を説明する。
前述したように、S型およびR型の組み合わせで表現される構造パタンに対して、一般にN次元配列をデータ格納用の配列として用いることができる。図7に示す変換前データ構造パタン指定が入力されると、変換前データ構造パタンはSRS型と指定されているので、読み込み処理生成部102は、データ格納用に3次元配列data[x][y][z]を用いる。配列の大きさについては、予め定められた上限値を用いてもよいし、実際にデータの読み込みに必要な大きさを確保しながら決定してもよい。
まず変換前データ構造パタンで指定された変換前データのタグ構造に基づいて、末端要素と配列要素名の対応テーブルを作成する。このとき、末端要素は、最上位のタグ(以後ルートタグと称す。)から末端要素に至るまでの全ての要素名を含むパスにより表現する。たとえば、図2において、ルートタグは<DATA1>であり、末端要素<月/>に対するパスは/DATA1/月、末端要素<姓/>に対するパスは/DATA1/予約/人名/姓となる。
図10は、末端要素と配列要素名の対応テーブルの作成処理のフローチャートである。
まず、変数を初期化する(ステップST1)。初期化される変数は、3次元配列data[x][y][z]の次元を表すd、パスを保持するためのpath、3次元配列data[x][y][z]の各次元の添え字を保持するためのindex[i](i=1,2,3)である。これらに、初期値として、dに0、pathに空文字列、index[i]に1を設定する。
次に、変換前データのタグを1つ読み込む(ステップST2)。図7に示す変換前データ構造パタン指定が入力された場合、変換前データのタグ構造の最初のタグは<DATA1>であるため、まず<DATA1>が読み込まれる。読み込み処理生成部102は、読み込んだタグの種類に応じた処理を行う(ステップST3)。<DATA1>は開始タグなので、ステップST4に進み、変数pathの末尾にタグ名(この場合、文字列”/DATA1”)を追加する。変数pathの初期値は空文字列なので、変数pathは”/DATA1”に更新される。
次に、読み込み処理生成部102は、当該タグが反復するタグかどうかを判定する(ステップST5)。<DATA1>は反復するタグではないので、ステップST7に進み、dの値を1増やして1に更新した後に、次のタグの読み込みを行うためステップST2に戻る。
次に読み込まれるタグ<月/>は空要素タグであるため、ステップST11に進み、変数pathの末尾にタグ名”/月”を追加し、変数pathを”/DATA1/月”とする。さらに、配列data[index[1]][index[2]][index[3]]を追加する。ここでは、index[1]、index[2]、index[3]は全て1なので、data[index[1]][index[2]][index[3]]はdata[1][1][1]となる。従って、path”/DATA1/月”と配列要素名data[1][1][1]の対を対応テーブルに追加する。
次に、index[d]の値が数値であるか否かを判定する(ステップST12)。index[1]の値は1であり数値なので、これを1増やして2とし(ステップST13)、次のタグの読み込みを行うためステップST2に戻る。
次に読み込まれるタグ<日/>は空要素タグであり、読み込み処理生成部102は前述のタグ<月/>の場合と同様に動作する。すなわち、path”/DATA1/日”と配列要素名data[2][1][1]の対を対応テーブルに追加する。また、index[1]の値を1増やして3に更新し、次のタグの読み込みを行うためステップST2に戻る。
次に読み込まれるタグ<予約>は開始タグであるため、まずpathが”/DATA1/予約”に更新される。また、<予約>は反復するタグではないので、dの値を1増やして2とした後に、ステップST2に戻る。
次に読み込まれるタグ<人名>は開始タグであり、まずpathが”/DATA1/予約/人名”に更新される。次に、<人名>は反復するタグであるため、index[2]の値を文字”i”とする(ステップST6)。最後にdの値を1増やして3とした後に、ステップST2に戻る。
次に読み込まれるタグ<姓/>は空要素タグであり、path”/DATA1/予約/人名/姓”と配列要素名data[3][i][1]の対が対応テーブルに追加される。また、index[3]の値を1増やして2に更新する。次のタグ<名/>についても同様に、path”/DATA1/予約/人名/名”と配列要素名data[3][i][2]の対を対応テーブルに追加する。
次に読み込まれるタグ</人名>は終了タグなので、ステップST8に進み、pathの値から末尾のタグ名とスラッシュを取り除き、”/DATA1/予約”に更新する。また、index[3]の値を1減らして1に更新する(ステップST9)。また、dの値を1減らして2に更新する(ステップST10)。その後ステップST2に戻る。
次に読み込まれるタグ</予約>は終了タグなので、同様にpathを”/DATA1”に更新し、index[2]の値を1減らし、dを1に更新する。
次のタグ</DATA1>も終了タグであり、同様にpathを””(空文字列)、dを0に更新する。読み込み処理生成部102は、次に読み込めるタグが存在しないため処理を完了する。以上の動作により、対応テーブルが生成される。図11は、上述の処理によって生成された末端要素のパスと配列要素名との対応テーブルを示す図である。
次に、読み込んだ変換前データの末端要素の値をデータ格納用配列に代入する処理を行う。図12に、この処理のフローチャートを示す。
まず、変数を初期化する(ステップST121)。初期化される変数は、パスを保持するためのpathであり、空文字列が設定される。
次に、変換前データのタグあるいは要素の内容(データ値)を1つ読み込む(ステップST122)。
次に、読み込んだタグあるいはデータ値の種類に応じた処理を行う(ステップST123)。開始タグを読み込んだ場合にはpathの末尾に”/タグ名”を追加し(ステップST124)、ステップST122に戻って次のタグ或いはデータ値を読み込む。終了タグを読み込んだ場合には、pathの末尾から”タグ名”と”/”を取り除く(ステップST125)。データ値を読み込んだ場合には、その要素のpathに対応する配列要素名を対応テーブルから取得し(ステップST126)、対応する配列要素にデータ値を代入する(ステップST128)。対応テーブルに対応する配列要素名が存在しない場合には、ステップST122に戻る。
以上の処理により、変換前データの末端要素の値がデータ格納用配列に代入される。
読み込み処理生成部102は、上述したような変換前データを読み込んで末端要素のデータ値をデータ格納用の配列に格納する処理のプログラムを生成する。なお、対応テーブルの内容以外は定型的かつ静的なものなので、処理プログラムをあらかじめテンプレート化して保持しておいてもよい。
次に、変換命令記憶部103に記憶された変換命令について説明する。図13は、図2に示す変換前データを図3に示す変換後データに変換するための変換命令を示す図である。図に示すように、<Output>要素の内容として、変換後データのタグ構造が記述される。末端要素の値については、変換前データに対するパスで指定される。例えば、<日付>要素の値として、変換前データの<月>要素と<日>要素の値を用いることを、path/DATA1/月と/DATA1/日によって指定している。また、<Output>タグのrepeat属性により、<予約項目>要素が反復することを示している。なお、図13はXMLによる記述例であるが、同等の情報をCSVなど他のフォーマットで記述してもよい。
次に、図2に示す変換前データと、図7に示す変換前データ構造パタン指定と、図13に示す変換命令が入力された場合の、変換処理生成部104の動作について説明する。
変換処理生成部104は、データ格納用の配列を読み込んで変換後データを生成する処理のプログラムを生成する。以下、その変換処理プログラムの処理内容を説明する。
まず、変換前データ構造パタン指定記憶部101から変換前データ構造パタンが与えられると、読み込み処理生成部102と同様に、図10に示す処理により、図11に示す変換前データの末端要素のパスと配列要素名との対応テーブルを作成する。
次に、変換命令記憶部103から変換命令を読み込み、末端要素の値を表す変換前データに対するパス以外の部分を単に文字列として出力し、変換前データに対するパスの部分は、対応テーブルを参照して配列要素名に置き換え、変数参照により値を出力する。
図14は、変換処理生成部104によって生成されたプログラムの一部の例を示す図である。なお、図14はJava(登録商標)による記述であるがC++など他のプログラミング言語を用いてもよい。
読み込み処理生成部102及び変換処理生成部104において生成される読み込み処理プログラムと変換処理プログラムは、例えば関数ライブラリとして予め作成しておいてもよい。
読み込み処理実行部105は、読み込み処理関数を呼び出すことにより、変換前データの読み込みを行う。また、変換処理実行部106は、変換処理関数を呼び出すことにより、変換前データの変換を実行する。例えば、前述のように生成された読み込み処理プログラムを読み込み処理実行部105が実行することにより、図2に示す変換前データが配列data[x][y][z]に格納される。
図15は、読み込み処理実行部105において読み込み処理プログラムを実行した後の配列要素それぞれの値を示す図である。
次に、図13に示す変換処理プログラムを変換処理実行部106が実行することにより、図3に示す変換後データが生成される。
以上のように、実施の形態1によれば、読み込み処理生成部102が変換前データ構造パタン指定に基づいて、変換前データをデータ格納用配列に格納する処理のプログラムを生成し、変換処理生成部104が、変換命令と変換前データ構造パタンに基づいて変換後データを生成する処理のプログラムを生成するようにした。これにより、変換対象データや変換処理にとって最適なデータ構造を用いて末端要素が保持するデータ値を直接アクセスする変換処理を実現でき、さらに、読み込み処理及び変換処理のプログラムを自動で作成できる。また、変換処理実行時には配列要素へのデータの代入と配列要素への参照によって変換処理が行えるため、DOMを使用した場合のように、DOM木の記憶領域やDOM木へのアクセスが必要なく、メモリ使用量を削減して高速にデータ変換を行うことができるという効果が得られる。
実施の形態2.
図16は、実施の形態2によるデータ変換装置200の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。
実施の形態2では、データ変換装置200は、変換前データ構造パタン指定記憶部101を備えず、構造パタン判別部201を備えている。
次に動作について説明する。
構造パタン判別部201は、変換前データを解析して変換前データ構造パタン指定を生成する。以下、図2に示す変換前データから図7に示す変換前データ構造パタン指定を生成する動作の一例として、DOMを用いた方法について説明する。
DOMのAPIを用いることにより、図2の変換前データから図17に示す木構造(DOM木)を得ることができる。この処理はXercesなど公知のDOM木生成プログラム(DOMパーサ)によって実現されるので説明を省略する。図17中、角の丸い四角で示した木の節点はXML文書の要素に対応しており、要素ノードと呼ぶ。一方、四角で示した木の節点は末端要素の値に対応しており、文字列ノードと呼ぶ。また、DOM木の根にあたるノード(ここでは「DATA1」要素)をルートノードと呼ぶ。
図18は、構造パタン判別部201による構造パタン解析処理のフローチャートである。
まず、構造パタン判別部201は、ルートノード「DATA1」を引数として処理を呼び出す(ステップST181)。引数として与えられたノード「DATA1」は、図17に示すように、子ノードに要素ノードを持つ(ステップST182、ステップST183)。また、全ての子ノードのタグ名が異なるため(ステップST184)、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST185)。そして、子ノードに対する処理の戻り値をリストとし、その先頭に記号”S”を追加したリストを戻り値とする(ステップST186)。
引数ノードが「月」での呼び出しの場合、子ノードに要素ノードはない(ステップST182)。従って、記号”S”を戻り値として返す(ステップST190)。引数ノードが「日」の場合も同様で、記号”S”を戻り値として返す。
一方、引数ノードが「予約」の場合、子ノードは要素ノードを2つ持つが(ステップST182、ステップST183)、タグ名が同一である(ステップST184)。従って、1つの子ノードのみを引数として再帰的に処理を呼び出す(ステップST187)。そして、子ノードに対する戻り値をリストとし、その先頭に記号”R”を追加したリストを戻り値として返す(ステップST188)。
引数ノードが「人名」での呼び出しの場合、子ノードに要素ノードを持ち(ステップST182、ステップST183)、全てタグ名が異なる(ステップST184)。従って、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST185)。引数ノードが「姓」での呼び出しの場合は、子ノードに要素ノードはない(ステップST182、ステップST183)。従って、記号”S”を戻り値として返す(ステップST190)。引数ノードが「名」の場合も同様である。
以上の処理により、ルートノードを引数として処理を呼び出した結果、図19に示す、記号SとRからなるリストが得られる。S型は異なるタグ名の系列なので、S型が入れ子になって連続していても全体として1つのS型とみなすことができる。従って、図19に示すリストに対して、全ての括弧を取り去る平坦化を行い、連続する記号Sを1つのSに縮退させることで、図2に示す変換前データの構造パタンSRSが得られる。
次に、変換前データのタグ構造を解析する処理の一例として、前述の例と同じく、図17に示すDOM木を用いた方法について説明する。
図20は、構造パタン判別部201によるタグ構造解析処理のフローチャートである。
まず、構造パタン判別部201は、ルートノード「DATA1」を引数として処理を呼び出す(ステップST201)。引数で与えられたノード「DATA1」は子ノードに要素ノードを持つ(ステップST202、ステップST203)。また、全ての子ノードのタグ名が異なるため(ステップST204)、それぞれの子ノードを引数として再帰的に当処理を呼び出す(ステップST205)。子ノードに対する処理の戻り値を連結した文字列を生成し(ステップST206)、その先頭に文字列”<DATA1>”を、末尾に文字列”</DATA1>”追加して戻り値とする(ステップST207)。
引数ノードが「月」での呼び出しの場合、子ノードに要素ノードはない。従って、文字列”<月/>”を戻り値として返す(ステップST211)。引数ノードが「日」の場合も同様で文字列”<日/>”を戻り値として返す。
一方、引数ノードが「予約」での呼び出しの場合、子ノードは要素ノードを2つ持つが(ステップST202、ステップST203)、タグ名が同一である(ステップST204)。従って、1つの子ノードのみを引数として再帰的に処理を呼び出す(ステップST208)。子ノードに対する戻り値の先頭に”<予約>”を末尾に”</予約>”を追加した文字列を戻り値とする(ステップST209)。また、「予約」が繰り返し要素であることを記録しておく。
引数ノードが「人名」での呼び出しの場合、子ノードに要素ノードを持ち、全てタグ名が異なる。従って、それぞれの子ノードを引数として再帰的に処理を呼び出す(ステップST205)。子ノードに対する戻り値の先頭に”<人名>”を末尾に”</人名>”を追加した文字列を戻り値とする(ステップST207)。引数ノードが「姓」での呼び出しの場合は、子ノードに要素ノードはない。従って、文字列”<姓/>”を戻り値として返す(ステップST211)。引数ノードが「名」の場合も同様である。
以上の処理により、ルートノードを引数として図20の処理を呼び出した結果として、図21に示す文字列が得られる。
構造パタン判別部201は、構造パタン解析処理とタグ構造解析処理の結果から、図7に示す変換前データ構造パタン指定を生成する。なお、実施の形態2では、構造パタン解析処理及びタグ構造解析処理に、DOMを用いたが、SAXなど他のAPIを用いて行ってもよい。
データ変換装置200は、構造パタン判別部201によって生成された変換前データ構造パタン指定を用いて、変換前データの読み込み処理及び変換処理を行う。読み込み処理及び変換処理については、実施の形態1と同様なので説明を省略する。
以上のように、実施の形態2によれば、構造パタン判別部201が変換前データを解析して変換前データ構造パタン指定を自動的に生成するようにしたので、人手により変換前データを解析して構造パタン指定を生成する必要がなくなるという効果が得られる。
実施の形態3.
図22は、実施の形態3によるデータ変換装置300の構成を示すブロック図である。図1または図16と同一の符号は同一の構成要素を表している。実施の形態3では、データ変換装置300は、変換前データスキーマ記憶部301を備えている。
次に、動作について説明する。
変換前データスキーマ記憶部301には、変換前データの構造を規定するためのスキーマ記述が記憶されている。図23は、図2に示す変換前データに対するスキーマ記述の例を示す図である。このスキーマ記述はDTD(Document Type Definition)と呼ばれるもので、標準化団体であるW3C(World Wide Web Consortium)によって規定されており、XML文書のスキーマ記述として最も一般的に用いられているものである。
図中、「<!ELEMENT DATA1 (月,日,予約)>」のように、「<!ELEMENT」で始まり「>」で終わる記述は要素型宣言と呼ばれる。「DATA1」の部分を要素名、「(月,日,予約)」の部分を内容モデルと呼ぶ。内容モデルにより、要素「DATA1」が「月」「日」「予約」の3つの子要素を持つこと、すなわちタグの入れ子構造が規定されている。「人名」の後ろに指定された「*」は、「人名」要素が任意の回数出現することを意味する。要素「月」「日」「姓」「名」の内容は「(#PCDATA)」によって文字列であることが規定されている。すなわち、これらは子要素を持たない末端要素である。また、開始行の「<!DOCTYPE DATA1」により、開始要素が「DATA1」であることが規定されている。
構造パタン判別部201は、変換前データスキーマ記憶部301内の変換前データのスキーマ記述を参照し、変換前データ構造パタン指定を生成する。
以下、図23に示すスキーマ記述に基づいて、図7の変換前データ構造パタン指定を生成する例について説明する。処理は大きく分けて、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する工程と、得られたDOM木を解析して変換前データ構造パタン指定を生成する工程に分けられる。
図24は、前者の処理のフローチャートである。また、後者の処理は実施の形態2と同様であるため説明を省略する。なお、図24に示す例は、DTDの内容モデルに対する処理のみで、それ以外の内容モデルに対する処理を含んでいない。しかし、それらを追加することは容易であり、また図23のスキーマ記述から図7の変換前データ構造パタン指定の生成処理の説明を主眼とするため、必要な処理のみについて述べる。
まず、構造パタン判別部201は、スキーマ記述により開始要素が「DATA1」であることがわかるので、タグ名「DATA1」を持つノードを生成してルートノードとする。そして、ルートノードを引数として図24に示すDOM木生成処理を呼び出す(ステップST241)。
次に、引数で与えられたノードのタグ名は「DATA1」であるので、対応する要素型宣言をスキーマ記述から参照し、内容モデルとして「(月,日,予約)」を取得する(ステップST242)。
次に、内容モデルの「月」に対して処理を行う。「月」は要素であるので、タグ名が「月」であるノードを新たに生成してルートノードの子ノードとして登録する(ステップST243〜ステップST245)。次に、新たに生成したノードを引数として図24の処理を再帰的に呼び出す(ステップST246)。
タグ名「月」を持つノードを引数として処理を呼び出した場合、スキーマ記述中の「月」に対する要素型宣言より、要素「月」の内容モデルとして「(#PCDATA)」が取得される。これは要素ではなく文字列であるため、ステップST245〜246の処理は行わない(ステップST244)。
次に、内容モデルの「日」についても新たにノードを生成して再帰的に図24の処理を呼び出す。ノード「日」に対する呼び出し処理はノード「月」と同様である。
次に、内容モデルの「予約」に対して新たにノードを生成してルートノードの子ノードとして登録し、生成したノードを引数として図24の処理を再帰的に呼び出す。
タグ名「予約」を持つノードを引数として処理を呼び出した場合には、スキーマ記述中の「予約」に対する要素型宣言より、要素「予約」の内容モデルとして「(人名*)」が得られる。「人名」は要素なので、新たにノードを生成してノード「予約」の子ノードとして登録し、生成したノードを引数として図24の処理を再帰的に呼び出す。以下、同様に再帰的に処理を繰り返すことにより、最終的に図25に示すDOM木が得られる。DOM木が得られたら、図18及び図20に示す実施の形態2と同様の処理により、図7の変換前データ構造パタン指定を生成する。
なお、以上の説明ではスキーマ記述としてDTDを用いた例を説明したが、W3Cが規定するXMLスキーマなど他のスキーマ記述方法を用いてもよい。
データ変換装置300は、構造パタン判別部201によって生成された変換前データ構造パタン指定を用いて、変換前データの読み込み処理及び変換処理を行う。読み込み処理及び変換処理については、実施の形態1と同様なので説明を省略する。
以上のように実施の形態3によれば、変換前データスキーマ記憶部301に記憶されたスキーマ記述から、構造パタン判別部201が変換前データ構造パタン指定を自動的に生成するようにしたので、人手によりスキーマ記述を解析して構造パタン指定を生成する必要がないという効果が得られる。また、実際の変換前データのサンプルが無く、スキーマ記述のみが与えられている場合でも、読み込み処理および変換処理が生成できるという効果がある。
実施の形態4.
図26は、実施の形態4によるデータ変換装置400の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。実施の形態4では、データ変換装置400は、変換命令生成部401、変換後データスキーマ記憶部402、末端要素変換命令記憶部403を備えている。
次に、動作について説明する。
末端要素変換命令記憶部403には、末端要素変換命令が記憶されている。末端要素変換命令は、変換後データの末端要素のタグ名と、末端要素の値として用いる変換前データを指し示すパスの対応表である。図27は、末端要素変換命令の一例を示す図である。例えば、変換後データの末端要素「日付」には、変換前データに対するパス「/DATA1/月」および「/DATA1/日」によって指定される値を用いることを意味する。
変換後データスキーマ記憶部402には、変換後データの構造情報を表すスキーマが記憶される。図28は、実施の形態3で説明したDTDで変換後データのスキーマを記述した例を示す図である。
変換命令生成部401は、末端要素変換命令と変換後データスキーマに基づいて変換命令を生成する。変換命令生成部401の処理は、変換処理生成部104による変換処理生成に先だって行うものであるため、例えばDOMを用いて実現すればよい。基本的な処理の流れは、DTDからDOM木を生成し、開始要素に対応するDOM木の根(ルートノード)から、深さ優先で木をなぞりながら要素名を出力して図13に示すような変換命令を生成する。
以下、図29を用いて、図27に示す末端要素変換命令と、図28に示す変換後データのスキーマを例にとり説明する。まず、開始要素「DATA2」に対するDOM木のノードを生成する(図29”DATA2”)。これがルートノードとなる。次に、要素「DATA2」に対する要素型宣言を参照すると、子要素は「予約項目」であるため、図に示すように、「予約項目」に対するDOM木のノードをルートノードの子ノードとして生成する。また、「予約項目」は繰り返し要素と指定されているので、ルートノードのrepeat属性の値として要素名「予約項目」を記録しておく。同様に、「予約項目」の子ノードとして、「日付」および「氏名」に対するノードを生成する。「日付」要素は子要素を持たない末端要素である。図27の末端要素変換命令から、「日付」要素に対する変換前データに対するパスは「/DATA1/月 /DATA1/日」であるため、この文字列を値として持つノードを生成して「日付」要素に対するノードの子ノードとして登録する。「氏名」要素に対しても同様に処理を行い、最終的に図29に示すDOM木が得られる。
変換命令生成部401は、生成されたDOM木をXML文字列に変換する。具体的な変換処理としては、前述したように、ルートノードから深さ優先で木を辿りながら各ノードに保持された要素名や末端要素の値を順次出力すればよい。あるいは、W3C規定のDOMの標準APIであるDOM Level3 Load and Saveに規定されている、DOM木をXML文字列として書き出すLSSerializerインタフェースを実装した処理系を用いてもよい。いずれの方法でも、DOM木を等価なXML文字列に変換する公知の処理が存在するので、それを用いればよい。なお、以上の説明ではスキーマ記述としてDTDを用いた例を説明したが、W3Cが規定するXMLスキーマなど他のスキーマ記述方法を用いてもよい。
変換処理生成部104は、変換命令生成部401によって生成された変換命令を用いて変換処理プログラムを生成する。変換処理プログラムの内容と読み込み処理については、実施の形態1と同様なので説明を省略する。また、変換前データ構造パタン指定は、実施の形態2あるいは実施の形態3と同様に構造パタン判別部201によって生成するようにしてもよい。
以上のように、実施の形態4によれば、末端要素変換命令記憶部403に末端要素変換命令を記憶し、変換後データスキーマ記憶部402に変換後データの構造情報スキーマを記述しておき、変換命令生成部401が末端要素変換命令と変換後データスキーマに基づいて変換命令を生成するようにしたので、変換後データの構造がスキーマで与えられている場合に、末端要素の対応関係だけを規定することで変換処理が行え、スキーマから具体的な変換命令を人手により作成する必要がないという効果がある。
また、スキーマを変更することで、末端要素の対応関係は保ったまま、変換後データの構造を任意に変更できるという効果が得られる。
実施の形態5.
図30は、実施の形態5によるデータ変換装置500の構成を示すブロック図である。図1と同一の符号は同一の構成要素を表している。
実施の形態5では、データ変換装置500は、処理選択部501、処理記憶部502、処理生成起動部503、構造パタン・変換命令記憶部504を備えている。
次に、動作について説明する。
構造パタン・変換命令記憶部504には、実施の形態1による変換前データ構造パタン指定記憶部101が記憶している変換前データ構造パタン指定と、変換命令記憶部103が記憶している変換命令の組(以後、読み込み・変換指定と称す。)が複数記憶されている。図31にその一例を示す。読み込み・変換指定は、要素<TRANS>の子要素<RULE>に変換前データ構造パタン指定と変換命令の組が記述されている。図31に示す読み込み・変換指定には、<RULE>要素が2つ含まれており、1つ目の<RULE>要素は図7に示す変換前データ構造パタン指定と図13に示す変換命令の組が記述されている。
処理生成起動部503は、構造パタン・変換命令記憶部504から読み込み・変換指定を読み出し、読み込み・変換指定中の変換前データ構造パタン指定を読み込み処理生成部102へ供給し、変換命令を変換処理生成部104へ供給する。
読み込み処理生成部102は、実施の形態1と同様の動作で読み込み処理プログラムを生成し、生成した読み込み処理プログラムを処理生成起動部503へ返す。
また、変換処理生成部104も実施の形態1と同様の動作で変換処理プログラムを生成し、生成した変換処理プログラムを処理生成起動部503へ返す。
処理生成起動部503は、読み込み処理プログラムと変換処理プログラムの組を、読み込み・変換指定に付与して処理記憶部502に出力する。
この時、図31に示す読み込み・変換指定中の一番目の<RULE>要素に含まれる変換前データ構造パタン指定に対する読み込み処理プログラムがparser1という名前のファイルに格納され、変換命令に対する変換処理プログラムがtranslator1という名前のファイルに格納されたとする。また、図31の二番目の<RULE>要素に含まれる変換前データ構造パタン指定に対する読み込み処理プログラムがparser2という名前のファイルに格納され、変換命令に対する変換処理プログラムがtranslator2という名前のファイルに格納されたとする。この場合、処理生成起動部503は、図32に示すように、<RULE>要素のparser属性およびtranslator属性で、生成された処理プログラムが格納されたファイル名を指定して処理記憶部502に出力する。
処理記憶部502は、処理生成起動部503によってファイル名が追加された読み込み・変換指定と、読み込み処理プログラム及び変換処理プログラムのファイルを記憶する。
処理選択部501は、変換前データの変換処理を行う際、入力された変換前データ構造パタン指定に対応する処理プログラムを処理記憶部502より取得する。例えば、図7に示す変換前データ構造パタン指定が入力された場合、図32に示す読み込み・変換指定から、読み込み処理プログラムはparser1、変換処理プログラムはtranslator1というファイルとして保持されていることが分かる。従って、処理選択部501は、これらのファイルに格納された処理プログラムを読み込み処理実行部105及び変換処理実行部106へ供給する。
なお、処理選択部501に入力される変換前データ構造パタン指定は、実施の形態1のように変換前データ構造パタン指定記憶部101から供給してもよいし、実施の形態2あるいは実施の形態3と同様に構造パタン判別部201によって生成するようにしてもよい。
以上のように、実施の形態5によれば、構造パタン・変換命令記憶部504が、変換前データの構造パタン及びタグ構造と変換命令を組にして保持し、処理生成起動部503が読み込み処理生成部102と変換処理生成部104により生成された読み込み処理プログラムと変換処理プログラムを組にして出力し、処理記憶部502が読み込み処理プログラムと変換処理プログラムの組を記憶し、処理選択部501が変換前データ構造パタン指定に対応した読み込み処理プログラムと変換処理プログラムを選択するようにしたので、予め複数の読み込み・変換指定を用意しておくことにより、異なる構造パタンを持つ変換前データに対して、変換前データに応じた処理を動的に選択して変換処理を実行することができる。
この発明の実施の形態1による、データ変換装置の構成を示すブロック図である。 この発明の実施の形態1による、変換前XMLデータの例を示す図である。 この発明の実施の形態1による、図2に示す変換前XMLデータの変換後データを示す図である。 この発明の実施の形態1による、S型の構造パタンを持つXMLデータの一例を示す図である。 この発明の実施の形態1による、R型の構造パタンを持つXMLデータの一例を示す図である。 この発明の実施の形態1による、この規則に準拠したXMLデータの例を示す図である。 この発明の実施の形態1による、変換前データ構造パタン指定をXMLで記述した例を示す図である。 この発明の実施の形態1による、データ格納配列の例を示す図である。 この発明の実施の形態1による、データ格納配列の例を示す図である。 この発明の実施の形態1による、末端要素と配列要素名との対応テーブルの作成処理のフローチャートである。 この発明の実施の形態1による、末端要素のパスと配列要素名との対応テーブルの例を示す図である。 この発明の実施の形態1による、変換前データの末端要素の値を配列に代入する処理のフローチャートである。 この発明の実施の形態1による、変換命令の例を示す図である。 この発明の実施の形態1による、変換処理生成部によって生成されたプログラムの例を示す図である。 この発明の実施の形態1による、読み込み処理実行部において読み込み処理プログラムを実行した後の配列要素の値の例を示す図である。 この発明の実施の形態2による、データ変換装置の構成を示すブロック図である。 この発明の実施の形態2による、変換前データに基づいて生成されるDOM木の例を示す図である。 この発明の実施の形態2による、構造パタン判別部による構造パタン解析処理のフローチャートである。 この発明の実施の形態2による、構造パタン解析処理によって得られるリストの例を示す図である。 この発明の実施の形態2による、構造パタン判別部によるタグ構造解析処理のフローチャートである。 この発明の実施の形態2による、タグ構造解析処理によって得られるリストの例を示す図である。 この発明の実施の形態3による、データ変換装置の構成を示すブロック図である。 この発明の実施の形態3による、変換前データに対するスキーマ記述の例を示す図である。 この発明の実施の形態3による、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する処理のフローチャートである。 この発明の実施の形態3による、スキーマ記述から変換前データのタグ構造を表すDOM木を生成する処理によって得られたDOM木の例を示す図である。 この発明の実施の形態4による、データ変換装置の構成を示すブロック図である。 この発明の実施の形態4による、末端要素変換命令の一例を示す図である。 この発明の実施の形態4による、DTDで変換後データのスキーマを記述した例を示す図である。 この発明の実施の形態4による変換命令生成処理を説明する図である。 この発明の実施の形態5による、データ変換装置の構成を示すブロック図である。 この発明の実施の形態5による、構造パタン・変換命令記憶部に記憶されている読み込み・変換指定の例を示す図である。 この発明の実施の形態5による、処理プログラムファイル名が属性として記述された読み込み・変換指定の例を示す図である。
符号の説明
100,200,300,400,500 データ変換装置、101 変換前データ構造パタン指定記憶部、102 読み込み処理生成部(読み込み処理実行部)、103 変換命令記憶部、104 変換処理生成部(変換処理実行部)、105 読み込み処理実行部、106 変換処理実行部、201 構造パタン判別部、301 変換前データスキーマ記憶部、401 変換命令生成部、402 変換後データスキーマ記憶部、403 末端要素変換命令記憶部、501 処理選択部、502 処理記憶部、503 処理生成起動部、504 構造パタン・変換命令記憶部。

Claims (5)

  1. 構造化文書を、異なるデータ構造に変換するデータ変換装置であって、
    変換前データの構造を基本構造パタンの組み合わせとして表現した構造パタンと、上記変換前データのタグの親子関係を表すタグ構造と、上記変換前データの要素が反復することを示す反復情報とを含む変換前データ構造パタン指定を記憶する変換前データ構造パタン指定記憶部と、
    上記変換前データ構造パタン指定に基づいて、上記変換前データの末端要素データ値を格納するデータ格納用配列の次元数を、上記変換前データ構造パタン指定に含まれる上記構造パタンの組み合わせ数に等しい次元に決定し、上記変換前データ構造パタン指定に含まれるタグ構造に基づいて作成された上記末端要素と配列要素名との対応テーブルを用いて、上記末端要素のデータ値を上記データ格納用配列に格納する読み込み処理実行部と、
    上記変換前データを上記異なるデータ構造に変換するための変換規則を記述した変換命令を記憶する変換命令記憶部と、
    上記変換前データ構造パタン指定に基づいて決定された次元を有する上記データ格納用配列に格納された上記変換前データの末端要素のデータ値を上記変換命令に記載された形式に対して代入することにより作成したデータを、変換後データとして出力する変換処理実行部を備えたデータ変換装置。
  2. 変換前データを解析し、その変換前データ構造パタン指定を生成する構造パタン判別部を備えたことを特徴とする請求項1記載のデータ変換装置。
  3. 構造パタン判別部は、変換前データのスキーマ情報に基づいて変換前データ構造パタン指定を生成することを特徴とする請求項2記載のデータ変換装置。
  4. 変換前データと変換後データの間での末端要素の対応関係を記憶する末端要素変換命令記憶部と、
    上記変換後データのスキーマ情報を記憶する変換後データスキーマ記憶部と、
    上記末端要素の対応関係と上記変換後データのスキーマ情報に基づいて、変換命令を生成する変換命令生成部を備えたことを特徴とする請求項1から請求項3のうちのいずれか1項記載のデータ変換装置。
  5. 変換前データ構造パタン指定に基づいて、変換前データの末端要素データ値を格納するデータ格納用配列の次元数を決定し、末端要素のデータ値をデータ格納用配列に格納するための、読み込み処理プログラムを生成する読み込み処理生成部と、
    上記変換前データ構造パタン指定に基づいて、上記データ格納用配列に格納された上記変換前データの末端要素のデータ値を変換命令に従って処理し、変換後データとして出力するための、変換処理プログラムを生成する変換処理生成部と、
    上記変換前データ構想パタン指定と上記変換命令の組を複数記憶する構造パタン・変換命令記憶部と、
    上記構造パタン・変換命令記憶部から、上記変換前データ構造パタン指定を取得して上記読み込み処理生成部へ供給し、上記変換命令を取得して上記変換処理生成部へ供給し、上記読み込み処理生成部から取得した読み込み処理プログラムと上記変換処理生成部から取得した変換処理プログラムを、上記構造パタン・変換命令記憶部から取得した変換前データ構造パタン指定と変換命令の組に付加して出力する処理生成起動部と、
    上記処理生成起動部の出力結果を記憶する処理記憶部と、
    上記処理記憶部を参照し、変換処理時に指定された変換前データ構造パタン指定に対応する読み込み処理プログラムと変換処理プログラムを上記処理記憶部から取得し、それぞれ読み込み処理実行部と変換処理実行部に供給する処理選択部を備え、
    上記読み込み処理実行部と上記変換処理実行部は、上記処理選択部から供給された読み込み処理プログラム及び変換処理プログラムを実行することを特徴とする請求項1から請求項3のうちのいずれか1項記載のデータ変換装置。
JP2004354459A 2004-12-07 2004-12-07 データ変換装置 Expired - Fee Related JP4606862B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004354459A JP4606862B2 (ja) 2004-12-07 2004-12-07 データ変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004354459A JP4606862B2 (ja) 2004-12-07 2004-12-07 データ変換装置

Publications (2)

Publication Number Publication Date
JP2006163820A JP2006163820A (ja) 2006-06-22
JP4606862B2 true JP4606862B2 (ja) 2011-01-05

Family

ID=36665772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354459A Expired - Fee Related JP4606862B2 (ja) 2004-12-07 2004-12-07 データ変換装置

Country Status (1)

Country Link
JP (1) JP4606862B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5206675B2 (ja) * 2007-05-28 2013-06-12 日本電気株式会社 構造化文書変換装置
JP2009169707A (ja) * 2008-01-17 2009-07-30 Nec Corp データ変換装置
CN111447268B (zh) * 2020-03-24 2022-11-25 中国建设银行股份有限公司 文件结构转换方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207721A (ja) * 2001-01-11 2002-07-26 Axis Software Kk 階層構造データの二次元データ変換手段
JP2003308235A (ja) * 2002-04-17 2003-10-31 Nippon Telegr & Teleph Corp <Ntt> データ変換方法及び装置、データ変換プログラム及びそのプログラムを記録した記録媒体
JP2004178426A (ja) * 2002-11-28 2004-06-24 Mitsubishi Electric Corp 構造化文書処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207721A (ja) * 2001-01-11 2002-07-26 Axis Software Kk 階層構造データの二次元データ変換手段
JP2003308235A (ja) * 2002-04-17 2003-10-31 Nippon Telegr & Teleph Corp <Ntt> データ変換方法及び装置、データ変換プログラム及びそのプログラムを記録した記録媒体
JP2004178426A (ja) * 2002-11-28 2004-06-24 Mitsubishi Electric Corp 構造化文書処理装置

Also Published As

Publication number Publication date
JP2006163820A (ja) 2006-06-22

Similar Documents

Publication Publication Date Title
JP4755427B2 (ja) データベース・アクセス・システム、データベース・アクセス方法
KR101331532B1 (ko) 데이터베이스로부터 xml 문서를 동적으로 생성하는 방법
US20010014900A1 (en) Method and system for separating content and layout of formatted objects
JP4246186B2 (ja) 構造化文書のデータ展開方法、データ処理方法及び処理システム
EP0349457A2 (en) Dynamic redefinition of a shell structure
US20020143816A1 (en) Method and system for using a generalized execution engine to transform a document written in a markup-based declarative template language into specified output formats
US20110314456A1 (en) System and Method for Mapping Structured Document to Structured Data of Program Language and Program for Executing Its Method
US7120867B2 (en) System and method for conversion of directly-assigned format attributes to styles in a document
US20030097637A1 (en) Schema generation apparatus, data processor, and program for processing in the same data processor
US20020052895A1 (en) Generalizer system and method
JP2005234837A (ja) 構造化文書処理方法、構造化文書処理システム及びそのプログラム
US20060117248A1 (en) Web screen creation method, program and server
CN114503073A (zh) 将用过程编程语言编写的程序自动转换为数据流图及相关系统和方法
WO2011074942A1 (en) System and method of converting data from a multiple table structure into an edoc format
JP4606862B2 (ja) データ変換装置
JP2006065467A (ja) データ抽出定義情報生成装置およびデータ抽出定義情報生成方法
JPWO2005101210A1 (ja) データ解析装置およびデータ解析プログラム
JP2003140960A (ja) Xmlデータのデータ変換方法及びプログラム
JP4410005B2 (ja) 構造化文書の構造変換装置、プログラム
JP2002268882A (ja) Webアプリケーションシステム、及びプログラム
JPH09265431A (ja) ドキュメント編集方法及び装置と、ドキュメント編集装置を含むクライアント装置
JP4786695B2 (ja) 構造化文書の構造変換装置
CN110309455A (zh) Ole矢量图的显示方法、装置及设备
CA2281396A1 (en) Method and apparatus for storing data as liquid information
CN109508183B (zh) 一种存储集群中rest代码生成方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070704

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071012

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

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: 20100928

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: 20101006

R150 Certificate of patent or registration of utility model

Ref document number: 4606862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees