JP2009169707A - データ変換装置 - Google Patents
データ変換装置 Download PDFInfo
- Publication number
- JP2009169707A JP2009169707A JP2008007617A JP2008007617A JP2009169707A JP 2009169707 A JP2009169707 A JP 2009169707A JP 2008007617 A JP2008007617 A JP 2008007617A JP 2008007617 A JP2008007617 A JP 2008007617A JP 2009169707 A JP2009169707 A JP 2009169707A
- Authority
- JP
- Japan
- Prior art keywords
- data
- conversion
- processing instruction
- processing
- information
- 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.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
【解決手段】変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、変換対象データの変換後のデータ構造を定義する変換構造定義情報と、を記憶し、ツリー変換定義情報及び変換構造定義情報に基づいて変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成手段を備え、ツリー変換定義情報は、当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令を含むと共に、変換データ生成手段は、繰返し処理命令の実行に応じて遷移して処理するツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する。
【選択図】図2
Description
変換対象データを所定の構造を有するデータに変換するデータ変換装置であって、
変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、変換対象データの変換後のデータ構造を定義する変換構造定義情報と、を記憶し、
ツリー変換定義情報及び変換構造定義情報に基づいて変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成手段を備え、
ツリー変換定義情報は、当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令を含むと共に、
変換データ生成手段は、繰返し処理命令の実行に応じて遷移して処理するツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する、
という構成を採っている。
変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、変換対象データの変換後のデータ構造を定義する変換構造定義情報と、を記憶したコンピュータに、
ツリー変換定義情報及び変換構造定義情報に基づいて変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成手段を実現するためのプログラムであり、
変換データ生成手段は、ツリー変換定義情報が含む当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令の実行に応じて遷移して処理するツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する、
という構成を採る。
変換対象データを所定の構造を有するデータに変換するデータ変換方法であって、
変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、変換対象データの変換後のデータ構造を定義する変換構造定義情報と、に基づいて、変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成工程を有し、
変換データ生成工程は、ツリー変換定義情報が含む当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令の実行に応じて遷移して処理するツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいてツリー構造データに変換する、
という構成を採る。
本発明の第1の実施形態を、図1乃至図20を参照して説明する。図1乃至図2は、データ変換装置の構成を示すブロック図である。図3乃至図5は、データ変換装置の動作を示すフローチャートである。図6は、出力XMLの一例を示す図であり、図7は、図6のXMLを出力するための従来技術のXSLTにおける定義の例を示す図である。図8は、図6のXMLを出力するための本発明における定義の例を示す図である。図9は、外部装置のデータ構造の一例を示す図であり、図10は、図9のデータ構造を出力XMLに変換した一例を示す図である。図11は、図9のデータ構造を図10のXMLに変換するための本発明における定義を示す図である。また、図12乃至図18は、本発明の動作を具体的に説明するためのタイムチャートである。図19は、図9のデータ構造を図11の定義によりデータ変換した最終結果のDOM木の構造を示す図であり、図20は、最終的に生成された出力XMLを示す図である。
図1に示すように、外部装置3のデータ構造をXMLに変換するデータ変換装置1は、クラスローダ2と、対応表定義5を解析する対応表定義解析部11と、XML構造定義を解析するXML構造定義解析部12と、XML DOM7と、これら処理部を制御する処理制御部10と、を備えている。そして、XML DOM7は、XML変換部13と、この変換部13により生成するDOM木14と、これをコード化するXMLファイル出力部15と、を含む。また、処理制御部10は、プログラム・ポインタ20とスタック21とを含む。
「ポインタP0」:対応表定義の次に実行すべき定義命令が格納されているメモリ上のアドレス
「ポインタP1」:繰返し開始定義の次に実行すべき定義命令が格納されているメモリ上のアドレス
「ポインタP2」:再帰開始定義の次に実行すべき定義命令が格納されているメモリ上のアドレス
「ポインタP3」:DOM木の次にノードまたは、枝を生成(Write)すべきノードが格納されているメモリ上のアドレス
「ポインタP4」:外部装置3のデータ構造30の次にReadすべきフィールドを指すメモリ上のアドレス
「スタックS1」:繰返し定義用スタック
「スタックS2」:再帰定義用スタック
「スタックS3」:DOM木ノード用スタック
「規則1」:「繰返し開始定義」に遭遇した場合、ポインタP1とP4が指すアドレスをスタックS1に格納(push)する。
「規則2」:「再帰呼出し定義」に遭遇し、ポインタP4が子情報を持つ場合、「再帰呼出し定義」のメモリ上のアドレスであるポインタP0の次の定義のアドレスと、ポインタP4が指すアドレスを、スタックS2に格納(push)する。そして、ポインタP0をポインタP2が指すアドレスに設定する。一方、ポインタP4が子情報を持たない場合、ポインタP0に次の定義のアドレスを設定する。
「規則3」:「XPath変更開始定義」に遭遇した場合、ポインタP3が指すアドレスをスタックS3に格納(push)する。
「規則4」:「繰返し終了定義」に遭遇した場合、条件を評価して、繰返さない場合はスタックS1に格納されているデータを取り出して(pop)破棄し、その後にスタックS1に残っている先頭のデータが指す値を、ポインタP1とP4に設定する。なお、繰り返し処理を繰返す場合は、ポインタP0にP1が指すアドレスを設定する。
「規則5」:「再帰終了定義」に遭遇した場合、スタックS2に格納されているデータを取り出し(pop)、このpopした値を、ポインタP0とポインタP4に設定する。なお、スタックS2が空の場合は、ポインタP0に次の定義のアドレスを設定する。
「規則6」:「XPath変更終了定義」に遭遇した場合、スタックS3に格納されているデータを取り出して(pop)破棄し、スタックS3に残っている先頭のデータが指す値をポインタP3に設定する。
なお、参考文献「Data Structures and Algorithms. Aho et al.」にあるようにスタックの操作を再帰的手続きにより簡易的に処理する実現方法も含む。
次に、上記データ変換装置1の動作を、図3乃至図5のフローチャートを参照して説明する。図3は、プログラム・ポインタとスタックを使用して、本実施形態における処理の概略を示したフローチャートであり、図4及び図5は、図3に示した処理の詳細に示したフローチャートである。
1)メソッド実行。メソッド実行定義であるか判定し(ステップS401)、Yesの場合に対応表定義に定義したメソッドを実行する(ステップS402)。メソッドには、クラスローダ2により外部装置3のデータ構造30に接続する処理とフィールド値を取り出す処理を含む。
2)再帰呼出し時の設定。上記規則2の処理と再帰呼出しに相当するDOM木に追加する枝の生成を行う(ステップS405,S406,S407,S408,S409,S410,S7)。
3)DOM木に追加するノードの箇所に要素ノードとテキストノード、または、属性ノードとテキストノードからなる部分木を生成して、上記1)で取得したデータ構造30のフィールド値をテキストノードに設定する(ステップS411、S412,S413)。
1)XML構造定義取得。「$FormatXML定義」に遭遇した場合(ステップS601)、この定義に指定したXML構造定義をコンパイラにより解析し、DOM木を生成する(ステップS602)。これは、出力XMLのDOM木を生成する過程で、XPathにより指定した経路にあるすべてのノード(以降、XPath指定による枝、または、単に枝という)をXML構造定義のDOM木からの複製を取り出して、出力XMLのDOM木に追加することに使用する。
2)要素出現回数属性名定義。「$NodeOccurs定義」に遭遇した場合(ステップS611)、この定義に指定した英数字の名称をXML構造定義に指定する要素出現回数の属性名とする(ステップS612)。
3)外部装置接続手続き。「$Create定義」に遭遇した場合、クラスローダ2により外部装置3のデータベース30に接続する(ステップS622)。これによりデータ構造30のフィールド値へのアクセスを可能にする。
4)XPath変更定義。「$ChXPath定義」と「$/ChXPath定義」について処理を行う。「$ChXPath定義」に遭遇した場合(ステップS631)、上記規則3の処理とXPathに該当する枝をプログラム・ポインタP3が指すノードに生成する処理を行う(ステップS632、S633)。「$/ChXPath定義」に遭遇した場合(ステップS641)、上記規則6の処理を行う(ステップS642)。
5)繰返し定義。「繰返し開始定義」と「繰返し終了定義」について処理を行う。「繰返し開始定義」に遭遇した場合(ステップS651)、上記規則1の処理とプログラム・ポインタP1の設定を行う(ステップS652)。繰返し終了定義に遭遇した場合(ステップS661)、規則4の処理行い、繰返し定義内の定義を繰返し処理する場合は、プログラム・ポインタP4を次に読み出すべき(Readすべき)フィールド値を指すメモリ上のアドレスに移動する(ステップS662,S663,S664。なお、繰返すか否かの判定は、プログラム・ポインタP4が指すアドレスの次にReadすべきアドレスが存在するか否かで行う。存在する場合はプログラム・ポインタP1が指すアドレスをポインタP0に設定する準備を行う。存在しない場合は、繰返し終了定義の次の定義のアドレスをP0に設定する。
6)再帰定義。「再帰開始定義」と「再帰終了定義」について処理を行う。「再帰開始定義」に遭遇した場合(ステップS671)、プログラム・ポインタP2に再帰開始定義の次の定義のアドレスを設定する(ステップS672)。「再帰終了定義」に遭遇した場合(ステップS681)、上記規則5の処理を行う(ステップS682,S683,S684)。
(1)DOM木のノード経路で複数のノードを持つノードの分岐点に対してXPath変更定義をする(アドレスa1とa19、a4とa16、a8とa11)
(2)Occurs属性により出現個数が複数のノードに対して繰返し定義をする(a3とa17、a7とa12)。
(3)再帰であるノードに対して再帰定義をする(a2とa18とa14)。
(4)値を持つノードに対して対応定義をする(a5、a9、a10)。
(5)定義の見易さのために空行を入れる(a6、a13、a15)。
以上の手順により図11(c)の対応表定義が得られる。なお、ノードの定義箇所を比較すると、図11(b)と(c)は構造が似ている。
(1)X始:XPath開始定義
(2)X終:XPath終了定義
(3)繰開:繰返し開始定義
(4)繰終:繰返し終了定義
(5)再開:再帰開始定義
(6)再終:再帰終了定義
(7)再呼:再帰呼出し定義
(8)対応:対応定義
さらに、項目「XPath」は、$ChXPath定義により指定したXPathの項目「値設定」は、プログラム・ポインタP3が指すノードに生成するノードとそのノードに設定する値を示す。
初期設定を表す。なお、プログラム・ポインタP4は、$Create定義により外部装置3に接続済みで、かつ、データ構造30のフィールド値への初期設定のアドレスとしてfc01を指しているものとする。
対応表定義5からアドレスa1をプログラム・ポインタP0に設定する。すると、コマンド定義(図3のステップS5)のXPath変更開始定義であるから(図5のステップS631)、対応表定義に「X始」を設定する。そして、XPathに、現在の「/R/C」を設定、かつ、出力XML DOM木にノードRとCを生成する(図5のステップS632)。よって、ポインタP3に「trc」を設定する。さらに、ポインタP3が指すアドレス「trc」をスタックS3にpushする(図5のステップS633)。なお、pushする値は集合の記法に習って{}で括って示す。
アドレスを次のアドレスa2に移動し、ポインタP0に設定する(図3のステップS7)。このとき、再帰開始定義であるから(図5のステップS671)、対応表定義に「再始」を設定する。そして、ポインタP2を、ポインタP0が指す次のアドレスa3に設定する(ステップS672)。
アドレスを次のアドレスa3に移動し、ポインタP0に設定する(図3のステップS7)。このとき、繰返し開始定義であるから(図5のステップS651)、対応表定義に「繰始」を設定する。そして、ポインタP1をポインタP0が指す次のアドレスa4に設定し、ポインタP1とポインタP4が指すアドレスをスタックS1にpushする(図5のステップS652)。
アドレスを次のアドレスa4に移動し、ポインタP0に設定する(図3のステップS7)。以下は、t=1の場合と同様となる。つまり、XPathに「/R/C/P」を設定し、DOM木のポインタP3が指すノードCに、ノードPを生成する。そして、生成したノードPのアドレスを指す「tp」をポインタP3に設定し、スタックS3に{tp}をpushする。
アドレスを次のアドレスa5に移動し、ポインタP0に設定する(図3のステップS7)。このとき、「対応定義」であるから、対応表定義に「対応」を設定する。そして、対応定義の左側から枝IDを、右側からデータ構造30のフィールド値取得のためのメソッドgetIDを得る。この定義はコンテキスト単位の場合(図3のステップS3)と判定する。すると、対応定義の右側の定義のメソッドgetIDを実行することにより、ポインタP4が指すアドレスfc01の値「01」を得る(図4のステップS401,S402)。そして、対応定義の左側の定義の枝IDを生成し、枝の末端のノードIDに値「01」を設定する(図4のステップS411,S412)。なお、t=6以降の処理については、図15に示すが、その説明については省略する。
繰返し開始定義であるから(図5のステップS651)、対応表定義に「繰始」を設定する。そして、ポインタP1をポインタP0が指す次のアドレスa8に設定し、ポインタP1とポインタP4が指すアドレスを、スタックS1にpushする(図5のステップS652)。これにより、スタックS1は、{a4,fc11}から{a8,fc11}に変化する(変化の仕方を矢印(→)で表す)。つまり、{a4,fc11}の上に、{a8,fc11}が最新のアドレスとして蓄積された状態となる。なお、ポインタP2,P3,P4、スタックS2,S3、及び、XPathの設定は、t=15までの設定状態を示す。
アドレスを次のアドレスa8に移動し、ポインタP0に設定する(図3のステップS7)。XPathに「/R/C/P/P/PI」を設定する。このとき、DOM木のポインタP3が指すノードPにノードPIを生成し、生成したノードPIのアドレスを指す「tpi2」をポインタP3に設定する。そして、スタックS3に{tpi2}をpushする。
アドレスを次のアドレスa9に移動し、ポインタP0に設定する(図3のステップS7)。ここでは、上記(t=5)の場合と同様の処理となる。具体的には、対応定義の右側の定義のメソッドgetNoの実行、ポインタP4が指すアドレスfpi3+0の値「006」を得る(図4のステップS401、S402)。そして、対応定義の左側の定義のNOを生成し、ノードNOに値「006」を設定する(ステップS411,S412)。
アドレスを次のアドレスa10に移動し、ポインタP0に設定する(図3のステップS7)。ここでも上記(t=5)の場合と同様の処理となる。具体的には、DOM木のtpi3+0が指すノードPIにノードPAを生成し、値CPUを設定する(図4のステップS401,S402,S411,S412)。
アドレスを次のアドレスa11に移動し、ポインタP0に設定する(図3のステップS7)。ここでは、XPath変更終了定義であるから(図5のステップS641)、対応表定義に「X終」を設定する。そして、スタックS3から最新のデータをpopして破棄し(ステップS642)、スタックS3内に残ったデータの先頭が指すアドレスをポインタP3に設定する。つまり、PI(tpi2)よりも階層が上のノードP(tp2)に移動する。
アドレスを次のアドレスa12に移動し、ポインタP0に設定する(図3のステップS7)。繰返し終了定義であるから(図5のステップS661)、対応表定義に「繰終」を設定する。このとき、フィールド値に繰返し処理を行うデータが存在するため、繰返し定義内を繰返す判定で、繰返しあり「繰あり」を設定する(図5のステップS662でYes)。そして、繰返し開始位置であるポインタP1が指すアドレスa8をポインタP0に設定し、ポインタP4を次に読み出すべきアドレスtpi3+1に設定する(図5のステップS663)。
その後、上記(t=17〜21)の場合と同様の処理を繰返す。なお、値設定のNO=006→007→008とPA=CPU→CPU→Memoryは、時刻の変化により値の設定が変わる様子を矢印を使って表している。
アドレスを、t=30のときのアドレスa11の次のアドレスa12に移動し、ポインタP0に設定する(図3のステップS7)。繰返し終了定義であるから(図5のステップS661)、対応表定義に「繰終」を設定する。このとき、繰返すべきフィールド値がないため、繰返し定義内を繰返す判定で、繰返しなし「繰なし」を設定する(図5のステップS662でNo)。そして、スタックS1から最新のデータ{a8,fc11}をpopして破棄し、スタックS1に残った先頭のデータが指すアドレス{a4,fc11}を、それぞれポインタP1とポインタP4に設定する(ステップS664)。つまり、ここでは、ポインタP1にa4を設定し、ポインタP4にfc11を設定する。これにより、繰返し開始定義1による繰り返し処理に戻ることができ、繰返し処理が入り組んだ状態でも適切なアドレスに戻ることができる。
再帰開始定義での設定を示す。具体的な設定は、図12におけるt=2の説明と同じである。つまり、ポインタP2に再帰開始定義の次に実行すべき定義命令が格納されているアドレスa3を格納する。
再帰呼出しの直前の状態を示す。
アドレスを次のアドレスa14に移動し、ポインタP0に設定する(図3のステップS7)。対応定義で、かつ、再帰呼出し定義であるから(図4のステップS405でYes)、対応表定義に「再呼」を設定する。そして、対応定義の左側から枝Pを、右側からデータ構造30のフィールド値取得のためのメソッドgetChildsを得る。この定義はコンテキスト単位の場合(図3のステップS3)と判定する。右側の定義のメソッドgetChildsを実行することにより、ポインタP4が指すアドレスfc01の子情報のアドレスC0を得る(図9参照、図4のステップS401,S402,S405でYes)。すると、判定に子ありを設定し、ポインタP0が指す次の定義のアドレスa16とポインタP4が指すアドレスfc01を、スタックS2にpushする(図4のステップS407)。また、対応定義の左側の定義の枝Pを、ポインタP3が指すアドレスtrcのノードの子に生成する(図4のステップS408)。ポインタP2が指すアドレスa3をポインタP0に設定する準備をする(図4のステップS409)。
続いて、アドレスをa3に移動し、ポインタP0に設定する(図3のステップS7)。そして、上記(t=3)の場合と同様の処理を実行する。
上記a3以降の一連の再帰処理を実行した後に(図16、図17参照)、アドレスa14に移動し、上記(t=12)の場合と同様の処理を行う。但し、ここでは、図4のステップS406の判定が異なり、図9のC1からC11に示すように子情報がないため、No側に進む。そして、ポインタP0に次の定義を設定する準備をする(図4のステップS410)。
アドレスを次のアドレスa16に移動し、ポインタP0に設定する(図3のステップS7)。XPath変更終了定義であるから(図5のステップS641)、対応表定義に「X終」を設定する。そして、スタックS3内の最新のデータ{tp2}をpopして破棄し(図5のステップS642)、スタックS3に残った先頭のデータが指すアドレスtpをポインタP3に設定し、XPathに/R/C/Pを設定する。
アドレスを次のアドレスa17に移動し、ポインタP0に設定する(図3のステップS7)。繰返し終了定義であるから(図5のステップS661)、対応表定義に「繰終」を設定する。ここでは、繰返すフィールド値がないため、繰返し定義内を繰返す判定で繰返しなし「繰なし」を設定する(図5のステップS662でNo)。そして、スタックS1から最新のデータをpopして破棄し、スタックS1に残った先頭のデータが指すアドレスをポインタP1とP4に設定する(図5のステップS664)。つまり、ポインタP1にa4を設定し、ポインタP4にfc01を設定する。
アドレスを次のアドレスa18に移動し、ポインタP0に設定する(図3のステップS7)。再帰終了定義であるから(図5のステップS681)、対応表定義に「再終」を設定する。このとき、スタックS2は空ではないため(図5のステップS682でNo)、スタックS2内のデータをpopし、このpopした値をポインタP0とP4に設定する(図5のステップS683)。つまり、ポインタP0に、再帰終了後の処理命令のアドレスであるa16を設定し、ポインタP4にfc01を設定する。
アドレスを、上述したようにa16に設定する。以降は、上述した(t=33〜t=35)と同様の処理となる(図17参照)。ただし、a18の再帰終了定義の処理で、図5のステップS682の判定はYes側になり、ポインタP0に次の定義のアドレスa19を設定する。なお、全体的なタイムチャートは、図15乃至図18に示す。
次に、本発明の第2の実施形態を、図21を参照して説明する。本実施形態は、上記実施形態1で説明したデータ変換装置1を利用したデータ逆変換装置1’である。これは、XMLファイルを入力とし、対応表定義とXML構造定義を図2のコンパイラにより構文解析してクラスローダにより外部システムのデータ構造の合い対応するフィールド値にXMLファイルの値を設定する装置である。第1の実施例と同様な原理により実現可能である。
次に、本発明の第3の実施形態を、図22を参照して説明する。本実施形態は、既存の外部装置3,3’に、上記第1の実施形態と第2の実施形態を適用して、XMLによりデータを送受信する方法である。この方法は、異なるデータ構造を持つ2つの装置間のデータを第1の実施形態と第2の実施形態による装置をネットワークに接続して実現した相互データ送受信方法である。
2 クラスローダ
3 外部装置
4 データベース(生産装置構成情報)
5 対応表定義
6 XML構造定義
7 XML
DOM
8 出力XMLファイル
10 処理制御部
20 プログラム・ポインタ
21 スタック
11 対応表定義解析部
12 XML構造定義解析部
13 XML変換部
14 XML DOM木
15 XMLファイル出力部
30 外部装置のデータ構造
Claims (20)
- 変換対象データを所定の構造を有するデータに変換するデータ変換装置であって、
前記変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、前記変換対象データの変換後のデータ構造を定義する変換構造定義情報と、を記憶し、
前記ツリー変換定義情報及び前記変換構造定義情報に基づいて前記変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成手段を備え、
前記ツリー変換定義情報は、当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令を含むと共に、
前記変換データ生成手段は、前記繰返し処理命令の実行に応じて遷移して処理する前記ツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する、
ことを特徴とするデータ変換装置。 - 前記変換データ生成手段は、前記繰返し処理命令の実行に応じて、当該繰返し処理命令の実行中及び/あるいは当該繰返し処理命令の実行終了後に遷移して実行する前記遷移先処理命令を特定する前記処理命令特定情報を記憶する、
ことを特徴とする請求項1記載のデータ変換装置。 - 前記繰返し処理命令は、前記ツリー変換定義情報内の特定の処理命令を当該特定の処理命令の処理対象となるデータが前記変換対象データに存在する場合に繰返すループ処理を実行する処理命令を含む、
ことを特徴とする請求項1又は2記載のデータ変換装置。 - 前記変換データ生成手段は、前記ループ処理を開始する処理命令を処理する時に、当該ループ処理の開始点となる処理命令のアドレス情報を前記処理命令特定情報としてループスタック内に順に記憶し、これに基づいて前記ループ処理を行う、
ことを特徴とする請求項3記載のデータ変換装置。 - 前記変換データ生成手段は、前記ループ処理を終了する処理命令を処理する時に、前記ループスタック内の最新の前記アドレス情報を破棄し、次に新しい前記アドレス情報に基づいて前記ループ処理を実行する、
ことを特徴とする請求項4記載のデータ変換装置。 - 前記繰返し処理命令は、処理している前記変換対象データが下位階層のデータを有する場合に、前記ツリー変換定義情報内の特定の処理命令を呼び出して実行する再帰処理を実行する処理命令を含む、
ことを特徴とする請求項1,2,3,4又は5記載のデータ変換装置。 - 前記変換データ生成手段は、前記再帰処理を呼び出す処理命令を処理する時に、その次に実行する処理命令のアドレス情報を再帰スタック内に前記処理命令特定情報として記憶し、前記再帰処理が終了したときに前記再帰スタックに記憶されている前記アドレス情報にて特定される処理命令から処理を続ける、
ことを特徴とする請求項6記載のデータ変換装置。 - 前記変換データ生成手段は、前記再帰処理を呼び出す処理命令によって呼び出されて実行される前記再帰処理を開始する処理命令を処理する時に、当該再帰処理の開始点となる処理命令のアドレス情報を前記処理命令特定情報として再帰ポインタに記憶し、前記再帰処理を呼び出す処理命令の実行時に、処理している前記変換対象データが下位階層となる子情報を持つ場合に、前記再帰ポインタに記憶されている前記アドレス情報に基づいて前記再帰処理を実行する、
ことを特徴とする請求項7記載のデータ変換装置。 - 前記ツリー変換定義情報は、前記ツリー構造の分岐点を変更する分岐点変更処理を開始/終了する処理命令を含み、
前記変換データ生成手段は、前記分岐点変更処理を開始する処理命令を処理する時に、変更後の分岐点を特定する分岐点情報を分岐スタック内に記憶し、この分岐スタック内の分岐点情報に応じて前記ツリー構造データに変換する、
ことを特徴とする請求項1,2,3,4,5,6,7又は8記載のデータ変換装置。 - 前記変換データ生成手段は、前記分岐点変更処理を終了する処理命令を処理する時に、前記分岐スタック内に蓄積された最新の前記分岐点情報を破棄して、次に新しい前記分岐点情報を用いて前記ツリー構造データに変換する、
ことを特徴とする請求項9記載のデータ変換装置。 - 変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、前記変換対象データの変換後のデータ構造を定義する変換構造定義情報と、を記憶したコンピュータに、
前記ツリー変換定義情報及び前記変換構造定義情報に基づいて前記変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成手段を実現するためのプログラムであり、
前記変換データ生成手段は、前記ツリー変換定義情報が含む当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令の実行に応じて遷移して処理する前記ツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する、
ことを特徴とするプログラム。 - 前記変換データ生成手段は、前記繰返し処理命令の実行に応じて、当該繰返し処理命令の実行中及び/あるいは当該繰返し処理命令の実行終了後に遷移して実行する前記遷移先処理命令を特定する前記処理命令特定情報を記憶する、
ことを特徴とする請求項11記載のプログラム。 - 前記繰返し処理命令は、前記ツリー変換定義情報内の特定の処理命令を当該特定の処理命令の処理対象となるデータが前記変換対象データに存在する場合に繰返すループ処理を実行する処理命令を含み、
前記変換データ生成手段は、前記ループ処理を開始する処理命令を処理する時に、当該ループ処理の開始点となる処理命令のアドレス情報を前記処理命令特定情報としてループスタック内に順に記憶し、これに基づいて前記ループ処理を行う、
ことを特徴とする請求項11又は12記載のプログラム。 - 前記繰返し処理命令は、処理している前記変換対象データが下位階層のデータを有する場合に、前記ツリー変換定義情報内の特定の処理命令を呼び出して実行する再帰処理を実行する処理命令を含み、
前記変換データ生成手段は、前記再帰処理を呼び出す処理命令を処理する時に、その次に実行する処理命令のアドレス情報を前記処理命令特定情報として再帰スタック内に記憶し、前記再帰処理が終了したときに前記再帰スタックに記憶されている前記アドレス情報にて特定される処理命令から処理を続ける、
ことを特徴とする請求項11,12又は13記載のプログラム。 - 前記ツリー変換定義情報は、前記ツリー構造の分岐点を変更する分岐点変更処理を開始/終了する処理命令を含み、
前記変換データ生成手段は、前記分岐点変更処理を開始する処理命令を処理する時に、変更後の分岐点を特定する分岐点情報を分岐スタック内に記憶し、この分岐スタック内の分岐点情報に応じて前記ツリー構造データに変換する、
ことを特徴とする請求項11,12,13又は14記載のプログラム。 - 変換対象データを所定の構造を有するデータに変換するデータ変換方法であって、
前記変換対象データをツリー構造データに変換する複数の処理命令を含むツリー変換定義情報と、前記変換対象データの変換後のデータ構造を定義する変換構造定義情報と、に基づいて、前記変換対象データをツリー構造データに変換すると共に、所定のデータ構造に変換する変換データ生成工程を有し、
前記変換データ生成工程は、前記ツリー変換定義情報が含む当該ツリー変換定義情報内の特定の処理命令を繰返して実行する繰返し処理命令の実行に応じて遷移して処理する前記ツリー変換定義情報内における遷移先処理命令を特定する処理命令特定情報を記憶して、当該記憶した処理命令特定情報に基づいて前記ツリー構造データに変換する、
ことを特徴とするデータ変換方法。 - 前記変換データ生成工程は、前記繰返し処理命令の実行に応じて、前記繰返し処理命令の実行中及び/あるいは前記繰返し処理命令の実行終了後に遷移して実行する前記遷移先処理命令を特定する前記処理命令特定情報を記憶する、
ことを特徴とする請求項16記載のデータ変換方法。 - 前記繰返し処理命令は、前記ツリー変換定義情報内の特定の処理命令を当該特定の処理命令の処理対象となるデータが前記変換対象データに存在する場合に繰返すループ処理を実行する処理命令を含み、
前記変換データ生成工程は、前記ループ処理を開始する処理命令を処理する時に、当該ループ処理の開始点となる処理命令のアドレス情報を前記処理命令特定情報としてループスタック内に順に記憶し、これに基づいて前記ループ処理を行う、
ことを特徴とする請求項16又は17記載のデータ変換方法。 - 前記繰返し処理命令は、処理している前記変換対象データが下位階層のデータを有する場合に、前記ツリー変換定義情報内の特定の処理命令を呼び出して実行する再帰処理を実行する処理命令を含み、
前記変換データ生成工程は、前記再帰処理を呼び出す処理命令を処理する時に、その次に実行する処理命令のアドレス情報を前記処理命令特定情報として再帰スタック内に記憶し、前記再帰処理が終了したときに前記再帰スタックに記憶されている前記アドレス情報にて特定される処理命令から処理を続ける、
ことを特徴とする請求項16,17又は18記載のデータ変換方法。 - 前記ツリー変換定義情報は、前記ツリー構造の分岐点を変更する分岐点変更処理を開始/終了する処理命令を含み、
前記変換データ生成工程は、前記分岐点変更処理を開始する処理命令を処理する時に、変更後の分岐点を特定する分岐点情報を分岐スタック内に記憶し、この分岐スタック内の分岐点情報に応じて前記ツリー構造データに変換する、
ことを特徴とする請求項16,17,18又は19記載のデータ変換方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008007617A JP2009169707A (ja) | 2008-01-17 | 2008-01-17 | データ変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008007617A JP2009169707A (ja) | 2008-01-17 | 2008-01-17 | データ変換装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009169707A true JP2009169707A (ja) | 2009-07-30 |
Family
ID=40970793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008007617A Pending JP2009169707A (ja) | 2008-01-17 | 2008-01-17 | データ変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009169707A (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163820A (ja) * | 2004-12-07 | 2006-06-22 | Mitsubishi Electric Corp | データ変換装置 |
-
2008
- 2008-01-17 JP JP2008007617A patent/JP2009169707A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163820A (ja) * | 2004-12-07 | 2006-06-22 | Mitsubishi Electric Corp | データ変換装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318628B2 (en) | System and method for creation of templates | |
US7508985B2 (en) | Pattern-matching system | |
US6859810B2 (en) | Declarative specification and engine for non-isomorphic data mapping | |
US10296657B2 (en) | Accessing objects in a service registry and repository | |
US8286132B2 (en) | Comparing and merging structured documents syntactically and semantically | |
JP5121146B2 (ja) | 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法 | |
US7409636B2 (en) | Lightweight application program interface (API) for extensible markup language (XML) | |
JP4246186B2 (ja) | 構造化文書のデータ展開方法、データ処理方法及び処理システム | |
US20120159312A1 (en) | Representation of an interactive document as a graph of entities | |
US8181105B2 (en) | Apparatus, method, and program that performs syntax parsing on a structured document in the form of electronic data | |
US8918710B2 (en) | Reducing programming complexity in applications interfacing with parsers for data elements represented according to a markup language | |
JP2003067185A (ja) | アプリケーション編集装置、データ処理方法及びプログラム | |
JP5011311B2 (ja) | Xml文書をメモリにロードする方法及びメカニズム | |
AU2005225140A1 (en) | File formats, methods, and computer program products for representing documents | |
JP2005234837A (ja) | 構造化文書処理方法、構造化文書処理システム及びそのプログラム | |
EP1231547B1 (en) | System and method for mapping structured documents to structured data of program language and program for executing its method | |
US7584284B2 (en) | Path-token-based web service caching method | |
CN110795920A (zh) | 一种文档生成方法及设备 | |
JP2009169707A (ja) | データ変換装置 | |
US20080208876A1 (en) | Method of and System for Providing Random Access to a Document | |
US20070153342A1 (en) | Display and editing of documents described by schemas | |
JP5338487B2 (ja) | 構文解析装置、構文解析方法、及びプログラム | |
EP1852787A1 (en) | Progressive retrieval of data | |
JP5696280B1 (ja) | 用語統一システム及び用語統一プログラム、並びに用語統一方法 | |
JP2006163820A (ja) | データ変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100618 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120308 |
|
RD07 | Notification of extinguishment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7427 Effective date: 20120712 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121030 |