(57)【要約】【課題】  ほとんど全ての要素が変換処理対象であったり、構造化文書の要素が反復する場合や構造化文書の要素に属性が加わる場合であっても、高速に文書変換することができる構造化文書変換装置を提供する。【解決手段】  変換後の構造化文書における全てのタグと変換対象の構造化文書における末端タグとの対応関係を示すテンプレート情報及び変換対象の構造化文書における要素名をキーとして変換後の構造化文書の対応する要素名を検索するための検索テーブル情報に基づいて変換後の構造化文書における全てのタグ、変換対象の構造化文書における末端タグ及びその要素の値を、変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成し、この逆引き表情報に基づいて変換後の構造化文書におけるタグ配置順で変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成する。【選択図】        図１
2006011549.tif 000002
【特許請求の範囲】
【請求項１】
変換対象の構造化文書とこれに施すべき文書構造変換を行った構造化文書との間での末端タグの対応関係を示す対応定義情報及び上記変換後の構造化文書の文書構造を示すスキーマを入力し、これらの情報に基づいて上記変換後の構造化文書における全てのタグと上記変換対象の構造化文書における末端タグとの対応関係を示すテンプレート情報及び上記変換対象の構造化文書における要素名をキーとして上記変換後の構造化文書の対応する要素名を検索するための検索テーブル情報を生成する情報生成部と、
上記テンプレート情報に基づいて、上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ及びその要素の値を、上記変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成するプログラム生成部と、
上記プログラム生成部が生成した逐次解析プログラムに従って、上記テンプレート情報及び上記検索テーブル情報を用いて変換対象の構造化文書を文書先頭のタグから逐次解析し、当該構造化文書に応じた逆引き表情報を生成する文書解析部と、
上記逆引き表情報に基づいて、上記変換後の構造化文書におけるタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成する文書変換部と
を備えた構造化文書変換装置。
【請求項２】
情報生成部は、入力した変換後の構造化文書のスキーマに文書構造中に繰り返し出現する反復要素が記述されていると、上記変換後の構造化文書における上記要素の反復仕様をも規定したテンプレート情報及び検索テーブル情報を生成し、
プログラム生成部は、上記テンプレート情報に基づいて、上記変換後の構造化文書における上記反復要素の繰り返し分を付加したタグ配置順で、上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ及びその要素の値をそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成し、
文書変換部は、文書解析部が生成した上記逆引き表情報に基づいて、上記変換後の構造化文書における上記反復要素の繰り返し分を付加したタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成することを特徴とする請求項１記載の構造化文書変換装置。
【請求項３】
情報生成部は、入力した対応定義情報に変換対象の構造化文書又はこれに施すべき文書構造変換を行った構造化文書におけるタグの属性が記述されていると、上記変換後の構造化文書における上記タグの属性をも規定したテンプレート情報及び検索テーブル情報を生成し、
プログラム生成部は、上記テンプレート情報に基づいて、上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ、その要素の値及びタグの属性を、上記変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成し、
文書変換部は、文書解析部が生成した上記逆引き表情報に基づいて、上記変換後の構造化文書におけるタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値及び属性の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成することを特徴とする請求項１記載の構造化文書変換装置。
【請求項４】
構造化文書における要素間の計算処理を定義した計算定義情報を入力し、この情報を参照して要素間の計算処理を行って逆引き表情報における要素内容を更新する要素間計算部を備えたことを特徴とする請求項１記載の構造化文書変換装置。
【請求項５】
構造化文書における反復要素の計算処理を定義した計算定義情報を入力し、この情報を参照して要素間の計算処理を行って逆引き表情報における要素内容を更新する反復要素計算部を備えたことを特徴とする請求項２記載の構造化文書変換装置。
【請求項６】
情報生成部は、入力した対応定義情報に、変換後の構造化文書における要素の値をＣＳＶ形式で出力する際の出力順を規定する出力カラム番号が記述されていると、上記変換後の構造化文書における上記出力カラム番号をも規定したテンプレート情報及び検索テーブル情報を生成し、
プログラム生成部は、上記テンプレート情報に基づいて、上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ、その要素の値及び出力カラム番号を、上記変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成し、
文書変換部は、文書解析部が生成した上記逆引き表情報に基づいて、上記変換後の構造化文書におけるタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値及び属性の値を当てはめることにより当該変換対象の構造化文書に対応した変換後の構造化文書を生成し、当該変換後の構造化文書を上記出力カラム番号順に要素の値をソートしてＣＳＶ形式で出力することを特徴とする請求項１記載の構造化文書変換装置。
【請求項７】
情報生成部は、入力した対応定義情報に、変換後の構造化文書における要素の値をパンチデータ形式で出力する際の出力順を規定する出力桁位置が記述されていると、上記変換後の構造化文書における上記出力カラム番号をも規定したテンプレート情報及び検索テーブル情報を生成し、
プログラム生成部は、上記テンプレート情報に基づいて、上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ、その要素の値及び出力桁位置を、上記変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成し、
文書変換部は、文書解析部が生成した上記逆引き表情報に基づいて、上記変換後の構造化文書におけるタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値及び属性の値を当てはめることにより当該変換対象の構造化文書に対応した変換後の構造化文書を生成し、当該変換後の構造化文書を上記出力桁位置順に要素の値をソートしてパンチデータ形式で出力することを特徴とする請求項１記載の構造化文書変換装置。
【請求項８】
変換対象の構造化文書とこれに施すべき文書構造変換を行った構造化文書との間での末端タグの対応関係を示す対応定義情報、及び上記変換後の構造化文書の文書構造を示すスキーマを入力し、これらに基づいて上記変換後の構造化文書における全てのタグと上記変換対象の構造化文書における末端タグとの対応関係を示すテンプレート情報及び上記変換対象の構造化文書における要素名をキーとして上記変換後の構造化文書の対応する要素名を検索するための検索テーブル情報を生成する情報生成部、
上記テンプレート情報に基づいて上記変換後の構造化文書における全てのタグ、上記変換対象の構造化文書における末端タグ及びその要素の値を、上記変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成するプログラム生成部、
上記プログラム生成部が生成した逐次解析プログラムに従って、上記テンプレート情報及び上記検索テーブル情報を用いて変換対象の構造化文書を文書先頭のタグから逐次解析し、当該構造化文書に応じた逆引き表情報を生成し上記記憶部に格納する文書解析部、
上記逆引き表情報に基づいて上記変換後の構造化文書におけるタグ配置順で上記変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成する文書変換部
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＸＭＬ（eXtensible Markup Language）等の構造化文書を構成する要素の変換前後の対応関係に基づいて逐次解析処理で高速に変換することができる構造化文書変換装置及びこれをコンピュータに実現させるプログラムに関するものである。
【背景技術】
【０００２】
電子商取引（ＥＣ；Electronic Commerce)、ＣＡＬＳ（Commerce At Light Speed)、知識経営（ＫＭ；Knowledge Management）、設備情報管理等の進展に伴って、これらの分野の情報システムが管理する構造化文書を、企業間や企業内組織間で交換／共有したいという要求が高まっている。
【０００３】
この要求に応える構造化文書の標準フォーマットとして、ＩＳＯ（International Standard Organization)規格８８７９のＳＧＭＬ（Standard Generalized Markup Language）やＷ３Ｃ（World Wide Web Consortium)が制定するＸＭＬ（eXtensible Markup Language）がある。
【０００４】
ところで、代表的な構造化文書であるＸＭＬ文書に対するデータ操作ＡＰＩ（Application Programming Interface)には、ＤＯＭ（Document Object Model)及びＳＡＸ（Simple API for XML）がある。
【０００５】
ＤＯＭは、ＸＭＬ文書の解析結果を木構造（ＤＯＭ木）としてメモリ上に展開する。このため、データへのランダムアクセスが可能で、データ操作プログラムを組みやすいという利点がある。しかしながら、その一方で処理が低速であり、メモリの使用量が大きいという欠点がある。
【０００６】
ＳＡＸは、ＸＭＬ文書を先頭から読み込み、ＸＭＬ文書中のタグやテキストが出現したときに予め定義された処理を行うもので、高速且つメモリ使用量が少ないという利点がある。しかしながら、時系列に処理を行うためデータへのランダムアクセスができず、複雑な処理をプログラムで記述しにくいという欠点がある。
【０００７】
これら各データ操作ＡＰＩにおける欠点を解消するため、従来からＤＯＭのＡＰＩを利用し、且つ構造化文書に対する処理の高速化及びメモリ使用量の削減を目的とした構造化文書の変換技術が提案されている。例えば、特許文献１に開示される変換技術は、入力したＸＭＬ等の構造化文書を、その文書中で変換処理の対象としない要素についての内容をＣＳＶ（Comma Separated Value)形式で一つの要素にまとめた構造化文書に事前変換するものである。これにより、構造化文書に対する操作に必要となるリソースを軽減することができ、変換速度向上とメモリ消費量の削減の双方を実現することができる。
【０００８】
【特許文献１】特開２００３−２０３０６７号公報（図１、第５頁−第１８頁）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の構造化文書変換では、特許文献１のように変換処理の対象としない要素をリソース削減の対象要素として抽出し、これらを一つの要素にまとめたＸＭＬ文書に事前変換することで変換速度の向上を図っている。このため、例えば入力した構造化文書を構成するほとんど全ての要素を変換処理対象とする場合、リソース削減の対象要素がほとんどなくなり、変換速度の向上が望めず、性能向上を図ることができないという課題があった。
【００１０】
この発明は、上記課題を解決するためになされたもので、構造化文書の変換前後でランダムアクセスが必要なデータ処理部分を事前に計算して逐次解析により変換処理を実行することにより、ほとんど全ての要素が変換処理対象であったり、構造化文書の要素が反復する場合や構造化文書の要素に属性が加わる場合であっても、高速に文書変換することができる構造化文書変換装置及びこれをコンピュータに実現させるプログラムを得るものである。
【００１１】
また、この発明は、逐次解析処理での変換を高速化することに加え、構造化文書の要素間や構造化文書の反復要素についての計算を可能とし、また構造化文書のみでなく、必要に応じてＣＳＶ形式やパンチデータ形式の文書も出力することができる構造化文書変換装置及びこれをコンピュータに実現させるプログラムを得るものである。
【課題を解決するための手段】
【００１２】
この発明に係る構造化文書変換装置は、変換対象の構造化文書とこれに施すべき文書構造変換を行った構造化文書との間での末端タグの対応関係を示す対応定義情報及び変換後の構造化文書の文書構造を示すスキーマに基づいて、変換後の構造化文書における全てのタグと変換対象の構造化文書における末端タグとの対応関係を示すテンプレート情報及び変換対象の構造化文書における要素名をキーとして変換後の構造化文書の対応する要素名を検索するための検索テーブル情報を生成する情報生成部と、テンプレート情報に基づいて変換後の構造化文書における全てのタグ、変換対象の構造化文書における末端タグ及びその要素の値を、変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成するプログラム生成部と、プログラム生成部が生成した逐次解析プログラムに従って、テンプレート情報及び検索テーブル情報を用いて変換対象の構造化文書を文書先頭のタグから逐次解析し、当該構造化文書に応じた逆引き表情報を生成する文書解析部と、逆引き表情報に基づいて変換後の構造化文書におけるタグ配置順で変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成する文書変換部とを備えるものである。
【発明の効果】
【００１３】
この発明によれば、変換対象の構造化文書とこれに施すべき文書構造変換を行った構造化文書との間での末端タグの対応関係を示す対応定義情報及び変換後の構造化文書の文書構造を示すスキーマを入力し、これらの情報に基づいて変換後の構造化文書における全てのタグと変換対象の構造化文書における末端タグとの対応関係を示すテンプレート情報及び変換対象の構造化文書における要素名をキーとして変換後の構造化文書の対応する要素名を検索するための検索テーブル情報を生成する情報生成部と、テンプレート情報に基づいて変換後の構造化文書における全てのタグ、変換対象の構造化文書における末端タグ及びその要素の値を、変換後の構造化文書におけるタグ配置順にそれぞれ対応付けた逆引き表情報を生成するための逐次解析プログラムを生成するプログラム生成部と、プログラム生成部が生成した逐次解析プログラムに従って、テンプレート情報及び検索テーブル情報を用いて変換対象の構造化文書を文書先頭のタグから逐次解析し、当該構造化文書に応じた逆引き表情報を生成する文書解析部と、逆引き表情報に基づいて変換後の構造化文書におけるタグ配置順で変換対象の構造化文書の対応するタグの要素の値を当てはめることにより、当該変換対象の構造化文書に対応した変換後の構造化文書を生成する文書変換部とを備えるので、ほとんど全ての要素が変換処理対象であるような構造化文書についての文書構造変換においても、逐次解析による高速な処理を実現することができるという効果がある。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
図１は、この発明の実施の形態１による構造化文書変換装置の構成を示すブロック図である。本実施の形態では、構造化文書としてＸＭＬを用いたものを例にして説明する。図に示すように、本実施の形態１による構造化文書変換装置の構成を大別すると、構造化文書変換前処理部１０１及び構造化文書変換実行部１０２の二つの構成要素からなる。これら構造化文書変換前処理部１０１及び構造化文書変換実行部１０２は、例えば汎用コンピュータなどを用いて本発明に従う構造化文書変換プログラムを実行させることで具現化できる。
【００１５】
もう少し詳細に説明すると、本発明に従う構造化文書変換プログラムを、コンピュータに読み込ませて、その動作を制御することにより、コンピュータ上に図１に示す構造化文書変換前処理部１０１及び構造化文書変換実行部１０２を実現することができる。また、出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０、逐次構造化文書解析プログラム１１１及び出力パス逆引き表１１３は、上記コンピュータの記憶装置上に構成される。
【００１６】
なお、以下の説明において、本発明の構造化文書変換装置を具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００１７】
構造化文書変換前処理部１０１では、ＸＭＬデータへのランダムアクセスが必要な処理部分、つまり変換後のＸＭＬ文書の要素にランダムに対応する変換前のＸＭＬ文書の要素にアクセスする処理部分が事前計算される。一般的に、変換後の構造化文書の要素は、変換前の構造化文書の先頭要素から順番に対応しておらず、ランダムな順序で対応する。
【００１８】
そこで、本発明では、これらランダムな順序で対応する要素間の処理をその順序通りに処理するのではなく、変換前後の構造化文書について文書先頭の要素から順に対応関係を事前に計算することで、文書先頭の要素から順にアクセスして変換後の構造化文書の要素の値をセットする、いわゆる逐次処理を可能としている。この事前計算を実行するのが、構造化文書変換前処理部１０１である。
【００１９】
その構成を簡単に説明すると、構造化文書変換前処理部１０１は、出力パス逆引き関係生成部（情報生成部）１０３及び逐次構造化文書解析プログラム生成部（プログラム生成部）１０４から構成される。出力パス逆引き関係生成部１０３では、入出力対応定義（対応定義情報）１０７と出力ＸＭＬ文書スキーマ（スキーマ）１０８とに基づいて、出力パス逆引き表テンプレート（テンプレート情報）１０９及び出力パス検索ハッシュテーブル（検索テーブル情報）１１０を生成する。一方、逐次構造化文書解析プログラム生成部１０４は、出力パス逆引き表テンプレート１０９を用いて逐次構造化文書解析プログラム（逐次解析プログラム）１１１を生成する。
【００２０】
入出力対応定義１０７とは、構造化文書の変換前後の末端タグの対応関係を定義する電子化された情報であり、例えば変換前の構造化文書である入力ＸＭＬ文書と変換後の構造化文書である出力ＸＭＬ文書との末端タグの対応関係が記述される。出力ＸＭＬ文書スキーマ１０８は、出力ＸＭＬ文書の文書構造が定義されており、例えばＤＴＤ（Document Type Definition）を用いて作成される。なお、ＸＭＬ  Ｓｃｈｅｍａなどの構造化文書の文書構造を記述する他のスキーマを用いて構成してもよい。
【００２１】
出力パス逆引き表テンプレート１０９は、変換後の構造化文書を構成する全てのタグの配置順と、変換後のタグ配置順に沿って変換前後の末端タグの対応関係を示したテンプレート情報である。例えば、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換し、出力ＸＭＬ文書を構成する全てのタグをその配置順に表としてまとめたものに、入出力対応定義１０７を用いて出力ＸＭＬ文書の各出力要素名に対応する入力要素名を記入することにより構成される。
【００２２】
出力パス検索ハッシュテーブル１１０は、入力ＸＭＬ文書の要素名をキーとして当該要素名に対応する出力要素を出力パス逆引き表１１３から検索するためのハッシュテーブルである。逐次構造化文書解析プログラム生成部１０４により生成される逐次構造化文書解析プログラム１１１は、入力ＸＭＬ文書を逐次解析するためのプログラムであり、例えばＳＡＸ  ＡＰＩを利用するＸＭＬ変換プログラムが挙げられる。
【００２３】
構造化文書変換実行部１０２は、逐次構造化文書解析部（文書解析部）１０５と出力構造化文書生成部（文書変換部）１０６から構成される。逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１に従って動作し、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を用いて変換前の構造化文書である入力ＸＭＬ文書１１２に基づいて出力パス逆引き表（逆引き表情報）１１３を生成する。
【００２４】
出力パス逆引き表１１３とは、変換後の構造化文書における要素の配置順から変換前の構造化文書の対応する要素を特定するためのテーブル情報であって、例えば出力ＸＭＬ文書の全てのタグ（出力要素）、入力ＸＭＬ文書の末端タグ（末端入力要素）及びその要素の値（要素内容）がそれぞれ対応付けて記入される。出力構造化文書生成部１０６は、出力パス逆引き表１１３を用いて入力ＸＭＬ文書１１２を変換処理し、変換後の構造化文書である出力ＸＭＬ文書１１４を生成する。
【００２５】
次に動作について説明する。
図２は、図１中の構造化文書変換前処理部の動作を示すフローチャートであり、この図に沿って構造化文書変換前処理部１０１の動作について説明する。先ず、出力パス逆引き関係生成部１０３は、入出力対応定義１０７を読み込む（ステップＳＴ２０１）。入出力対応定義１０７には、図３に示すように、例えば入力ＸＭＬ文書と出力ＸＭＬ文書との末端タグの対応関係が記述される。ここで、末端タグとは、ＸＭＬの木構造で子を持たないタグである。
【００２６】
図３に示す入出力対応定義１０７の例では、入力ＸＭＬ文書中の末端タグ＜Ａ．Ｂ＞、＜Ａ．Ｃ＞、＜Ｄ＞の文字列部分「Ａ．Ｂ」、「Ａ．Ｃ」、「Ｄ」が記述されており、これに対応する出力ＸＭＬ文書中の末端タグ＜ａ．ｂ＞、＜ａ．ｃ＞、＜ｄ＞の文字列部分である「ａ．ｂ」、「ａ．ｃ」、「ｄ」が記述されている。
【００２７】
続いて、出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８を読み込む（ステップＳＴ２０２）。出力ＸＭＬ文書スキーマ１０８には、出力ＸＭＬ文書の文書構造として、文書中に現れてもよい要素や、要素に関連付けることができる属性、どの要素が他の要素の子要素か、子要素が現れてもよい順序、子要素の数などの出力文書に関する構造情報が定義されている。図４は、出力ＸＭＬ文書スキーマ１０８の例である。
【００２８】
このあと、出力パス逆引き関係生成部１０３は、入出力対応定義１０７及び出力ＸＭＬ文書スキーマ１０８による情報を用いて、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を生成する（ステップＳＴ２０３）。図５は、図２中のステップＳＴ２０３における処理の詳細な流れを示すフローチャートであり、この図に沿って詳細に説明する。
【００２９】
先ず、出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換してその全てのタグを出力ＸＭＬ文書中の配置順で表に記入する（ステップＳＴ５０１）。つまり、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換することで、出力ＸＭＬ文書の全てのタグ及びその配置順が特定される。これにより、当該文書中の配置順で各タグが記入された表データを作成することができる。
【００３０】
続いて、出力パス逆引き関係生成部１０３は、入出力対応定義１０７を用いて、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書の末端タグの要素名を、ステップＳＴ５０１で作成した表データに記入する（ステップＳＴ５０２）。これにより、出力ＸＭＬ文書（変換後の構造化文書）の全てのタグを各配置順で記入したデータに対して、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書（変換対象の構造化文書）の末端タグの要素名が記入された表データが作成される。この表データが出力パス逆引き表テンプレート１０９に相当する。
【００３１】
図６は、図３に示した入出力対応定義１０７及び図４中の出力ＸＭＬ文書スキーマ１０８を用いて出力パス逆引き関係生成部１０３が作成した出力パス逆引き表テンプレートを示す図である。図６の例では、図４に示す出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換して得られる出力ＸＭＬ文書の全てのタグ＜ｒｏｏｔ＞、＜ｄ＞、＜／ｄ＞、＜ａ＞、＜ａ．ｃ＞、＜／ａ．ｃ＞、＜ａ．ｂ＞、＜／ａ．ｂ＞、＜／ａ＞、＜／ｒｏｏｔ＞がその配置順に記入される。
【００３２】
また、図３に示す入出力対応定義１０７によって出力ＸＭＬ文書中の末端タグ＜ｄ＞、＜ａ．ｃ＞、＜ａ．ｂ＞に対応する入力ＸＭＬ文書の末端タグの要素名Ｄ、Ａ．Ｃ、Ａ．Ｂが記入される。このような出力パス逆引き表テンプレート１０９を作成することにより、出力ＸＭＬ文書におけるタグの配置順で、入力ＸＭＬ文書と出力ＸＭＬ文書との間における末端タグの対応関係が特定される。
【００３３】
出力パス逆引き関係生成部１０３は、上述のようにして作成した出力パス逆引き表テンプレート１０９を、本実施の形態１による装置を具現化するコンピュータの記憶装置に出力し記憶する（ステップＳＴ５０３）。なお、この記憶装置としては、逐次構造化文書解析プログラム生成部１０４及び逐次構造化文書解析部１０５から、出力パス逆引き表テンプレート１０９が読み出し可能なメモリ領域を有していればよい。
【００３４】
次に、出力パス逆引き関係生成部１０３は、入力ＸＭＬ文書における末端タグ内に記述された要素の名前（入力要素名）と、出力ＸＭＬ文書スキーマ１０８による情報とを用いて、出力パス検索ハッシュテーブル１１０を作成する（ステップＳＴ５０４）。出力パス検索ハッシュテーブル１１０とは、入力ＸＭＬ文書の入力要素名をキーとし、これに対応する出力要素名の出力パス逆引き表テンプレート１０９での位置がエントリとして関連付けて登録された電子化されたテーブル情報である。
【００３５】
この出力パス検索ハッシュテーブル１１０も、出力パス逆引き関係生成部１０３から、逐次構造化文書解析部１０５により読み込み可能なメモリ領域に出力され記憶される。これにより、ステップＳＴ２０３の処理が終了する。
【００３６】
図２のフローチャートに戻ると、逐次構造化文書解析プログラム生成部１０４は、上記記憶装置のメモリ領域から出力パス逆引き表テンプレート１０９を読み出し、当該出力パス逆引き表テンプレート１０９を用いて逐次構造化文書解析プログラム１１１を生成する（ステップＳＴ２０４）。逐次構造化文書解析プログラム１１１には、出力パス逆引き表テンプレート１０９を用いて入力ＸＭＬ文書と出力ＸＭＬ文書との間における末端タグの対応関係を認識し、入力ＸＭＬ文書先頭の要素から順に対応する出力ＸＭＬ文書の要素を特定するための出力パス逆引き表１１３を作成する処理が規定される。
【００３７】
図７は、逐次構造化文書解析プログラム１１１による処理の枠組みを示す図であり、例えばＳＡＸ  ＡＰＩを用いて実現した解析プログラムの各処理ルーチンに対応したハンドラの記述である。図において、メソッドＴｒａｎｓＨａｎｄｌｅｒはコンストラクタであって、解析処理の初期化を行うメソッドである。その内容としては、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３にコピーする処理と、出力パス検索ハッシュテーブル１１０を読み込む処理とが記述される。
【００３８】
メソッドｓｔａｒｔＥｌｅｍｅｎｔは要素の開始時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅに要素名を代入する処理が記述される。メソッドｅｎｄＥｌｅｍｅｎｔは要素の終了時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅにｎｕｌｌを代入する処理が記述される。メソッドｃｈａｒａｃｔｅｒｓは文字データが出現したときに実行されるメソッドであり、出力パス逆引き表１１３を生成する処理が記述される。
【００３９】
逐次構造化文書解析プログラム生成部１０４は、出力パス逆引き表テンプレート１０９の内容を読み込んで、図７で示すような処理を実行させる逐次構造化文書解析プログラム１１１を生成すると、逐次構造化文書解析部１０５から読み出し可能なメモリ領域に出力し記憶させる。これにより、図２に示す一連の事前処理が終了する。
【００４０】
図８は、図７に示した逐次構造化文書解析プログラム１１１のメソッドｃｈａｒａｃｔｅｒｓに記述される、出力パス逆引き表１１３を生成する処理のアルゴリズムを示すフローチャートである。先ず、図７の変数ｅｌｅｍＮａｍｅを参照することにより入力要素名を取り出す（ステップＳＴ８０１）。続いて、入力要素名をキーにして出力パス検索ハッシュテーブル１１０を引くことにより、出力パス逆引き表１１３における出力要素の位置を求める（ステップＳＴ８０２）。次に、ステップＳＴ８０２で求めた出力パス逆引き表１１３の出力要素の位置の欄に入力要素の値をセットする（ステップＳＴ８０３）。これらの処理は、逐次構造化文書解析プログラム１１１を実行する逐次構造化文書解析部１０５によってなされる。
【００４１】
次に、構造化文書変換実行部１０２の動作について説明する。
図９は、図１中の構造化文書変換実行部の動作を示すフローチャートであり、この図に沿って説明する。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ９０１）。逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１（図７に示したＳＡＸ  ＡＰＩプログラム）に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ９０２）、入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ９０３）。
【００４２】
ここで、出力パス逆引き表１１３の生成処理について詳細に説明する。
先ず、逐次構造化文書解析部１０５は、初期化処理として図７に示したメソッドＴｒａｎｓＨａｎｄｌｅｒにより、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３の対応する欄に対応するメモリ領域にコピーすると共に、出力パス検索ハッシュテーブル１１０を読み込む。
【００４３】
次に、逐次構造化文書解析部１０５は、メソッドｓｔａｒｔＥｌｅｍｅｎｔ及びメソッドｅｎｄＥｌｅｍｅｎｔにより、入力ＸＭＬ文書１１２の先頭に配置された要素から読み込み、入力ＸＭＬ文書１１２中の要素が出現するたびにその要素名を変数ｅｌｅｍＮａｍｅに格納する。また、文字列データが出現するたびに、メソッドｃｈａｒａｃｔｅｒｓにより図８に示すようなフローで、変数ｅｌｅｍＮａｍｅを参照して得た入力要素名をキーとして出力パス検索ハッシュテーブル１１０を検索し、この入力要素名に対応する出力要素名の出力パス逆引き表１１３における位置を求め、この出力要素名の欄に文字列データを格納する。このようにして、図６に示す出力パス逆引き表テンプレート１０９に対して、図１０に示す入力ＸＭＬ文書１１２を入力したときに生成される出力パス逆引き表１１３を図１１に示す。
【００４４】
図１１に示す出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、開始タグ＜Ｄ＞と終了タグ＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入されている。また、開始タグ＜Ａ．Ｃ＞と終了タグ＜／Ａ．Ｃ＞に挟まれる文字列である「２」が、入力要素名Ａ．Ｃに対応する末端タグ＜ａ．ｃ＞で規定される要素の値（要素内容）として出力パス逆引き表１１３に記入されている。さらに、開始タグ＜Ａ．Ｂ＞と終了タグ＜／Ａ．Ｂ＞に挟まれる文字列である「１」が、入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞で規定される要素の値として出力パス逆引き表１１３に記入されている。
【００４５】
次に、ステップＳＴ９０４において、出力構造化文書生成部１０６は、逐次構造化文書解析部１０５により生成された出力パス逆引き表１１３から出力ＸＭＬ文書１１４を生成する。この出力ＸＭＬ文書１１４の生成処理としては、出力パス逆引き表１１３の先頭（一番上の行）から出力要素の欄に記載されているタグに入力要素の値の欄に記載されている値を順に当てはめていくだけでよい。
【００４６】
図１１に示した出力パス逆引き表１１３であれば、その一番上の行から出力要素のタグを記入し、出力要素のタグに対応する入力要素の値があれば、それを順に当てはめることで、図１２に示すような出力ＸＭＬ文書１１４を生成することができる。このようにして生成された出力ＸＭＬ文書１１４は、出力構造化文書生成部１０６より変換結果として出力される（ステップＳＴ９０５）。
【００４７】
以上のように、この実施の形態１によれば、入力ＸＭＬ文書１１２と出力ＸＭＬ文書１１４の要素の対応定義を用いてＸＭＬデータへのランダムアクセスが必要な要素を逐次解析に適した形態の出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を予め求めておき、ＳＡＸ  ＡＰＩなどの逐次解析を利用したＸＭＬ変換プログラムに従って出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を用いて構造化文書の変換を実行するので、変換実行時に逐次解析による高速な変換速度を得ることができる。
【００４８】
実施の形態２．
この実施の形態２は、上記実施の形態１で示した処理に加え、構造化文書中に反復する要素が存在する場合の処理を規定した構成を開示するものである。
【００４９】
実施の形態２による構造化文書変換装置の基本的な構成は、上記実施の形態１の図１で示したものと同様である。上記実施の形態１と異なる箇所として、構造化文書変換前処理部１０１が、構造化文書中に反復する要素が存在する場合、これに応じて出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を生成する。
【００５０】
次に動作について説明する。
先ず、構造化文書変換前処理部１０１は、図２に示すフローチャートに従って、ステップＳＴ２０１で、図３で示した入出力対応定義１０７を読み込み、続いて図１３に示す反復する要素を含む出力ＸＭＬ文書の出力ＸＭＬ文書スキーマ１０８を読み込む（ステップＳＴ２０２）。このあと、構造化文書変換前処理部１０１は、図３に示した入出力対応定義１０７及び図１３に示す出力ＸＭＬ文書スキーマ１０８を用いて、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を生成する（ステップＳＴ２０３）。
【００５１】
図１４は、実施の形態２による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートであり、本実施の形態に合わせて図２中のステップＳＴ２０３での処理を詳細に示したものである。先ず、ステップＳＴ１４０１において、実施の形態２による出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換してその全てのタグを出力ＸＭＬ文書中の配置順で並べる表データを作成する。このとき、出力ＸＭＬ文書中の要素の繰り返し種別が見出されると、出力パス逆引き関係生成部１０３は、上記表に対して各タグに対応する繰り返し種別を記入するための繰り返し欄を設ける。
【００５２】
例えば、図１３に示す出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換することで、出力ＸＭＬ文書の全てのタグ＜ｒｏｏｔ＞、＜ｄ＞、＜／ｄ＞、＜ａ＞、＜ａ．ｃ＞、＜／ａ．ｃ＞、＜ａ．ｂ＞、＜／ａ．ｂ＞、＜／ａ＞、＜／ｒｏｏｔ＞の出力ＸＭＬ文書中における配置順などが特定され、この配置順で各タグが上記表に記入される。このとき、図１３に示すような「ａ．ｃ」に関する要素が繰り返し出現することを示す、後述する繰り返し種別「＊」が見出されると、出力パス逆引き関係生成部１０３は、上記実施の形態１と同様に全てのタグを出力ＸＭＬ文書中の配置順でそれぞれ記入すると共に、上記表に対してタグの繰り返し種別を記入するための繰り返し欄を設ける。
【００５３】
ここで、出力ＸＭＬ文書スキーマ１０８で要素の出現回数が可変に設定である場合、出力パス逆引き関係生成部１０３は、その繰り返し数を１としてＸＭＬ文書形式に変換して出力ＸＭＬ文書中の配置順で上記表に記入する。
【００５４】
次に、出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書中のタグに対応して設定される繰り返し種別を上記表の繰り返し欄に記入する（ステップＳＴ１４０２）。図１３の例では、「ａ．ｃ」に対する繰り返し種別「＊」が繰り返し欄に記入される。なお、繰り返し種別としては、ＤＴＤの記述方法に従うものとする。例えば、「＊」は、要素が０回以上現れることを示している。また、無指定は、要素が必ず１回現れることを示しており、「＋」は、要素が１回以上現れることを示している。「？」は、要素が０回または１回現れるものとする。
【００５５】
続いて、出力パス逆引き関係生成部１０３は、入出力対応定義１０７を用いて、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書の末端タグの要素名を、ステップＳＴ１４０１で作成した表データに記入する（ステップＳＴ１４０３）。これにより、出力ＸＭＬ文書（変換後の構造化文書）の全てのタグを各配置順で記入したデータに対して、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書（変換前の構造化文書）の末端タグの要素名が記入された表データが作成される。この表データが出力パス逆引き表テンプレート１０９となる。
【００５６】
図１５は、入出力対応定義１０７及び図１３の出力ＸＭＬ文書スキーマ１０８に基づいて作成された出力パス逆引き表テンプレート１０９を示す図である。図に示すように、本実施の形態２による出力パス逆引き表テンプレート１０９は、出力ＸＭＬ文書中の配置順で出力ＸＭＬ文書のタグがそれぞれ記入された出力要素欄、出力要素欄に記載されたタグに対応する繰り返し種別を記入するための繰り返し欄、及び出力要素欄のタグに対応する入力ＸＭＬ文書の末端タグが記載された末端入力要素欄からなる。また、出力ＸＭＬ文書の＜ａ．ｃ＞タグに対応する繰り返し欄には、繰り返し種別として「＊」が記載されている。
【００５７】
次に、出力パス逆引き関係生成部１０３は、上述のようにして作成した出力パス逆引き表テンプレート１０９を、本実施の形態２による装置を具現化するコンピュータの記憶装置に出力し記憶する（ステップＳＴ１４０４）。なお、この記憶装置としては、逐次構造化文書解析プログラム生成部１０４及び逐次構造化文書解析部１０５から、出力パス逆引き表テンプレート１０９が読み出し可能なメモリ領域を有していればよい。
【００５８】
このあと、出力パス逆引き関係生成部１０３は、入力ＸＭＬ文書における末端タグ内に記述された要素の名前（入力要素名）と、出力ＸＭＬ文書スキーマ１０８による情報とを用いて、出力パス検索ハッシュテーブル１１０を作成する（ステップＳＴ１４０５）。出力パス検索ハッシュテーブル１１０とは、入力ＸＭＬ文書の入力要素名をキーとし、これに対応する出力要素名の出力パス逆引き表テンプレート１０９での位置がエントリとして関連付けて登録された電子化されたテーブル情報である。この出力パス検索ハッシュテーブル１１０も、出力パス逆引き関係生成部１０３から、逐次構造化文書解析部１０５により読み込み可能なメモリ領域に出力され記憶される。これにより、ステップＳＴ２０３の処理が終了する。
【００５９】
次に、図２のステップＳＴ２０４に沿って、逐次構造化文書解析プログラム生成部１０４が、逐次構造化文書解析プログラム１１１を生成する。この逐次構造化文書解析プログラム１１１の枠組みは、上記実施の形態１で示した図７と同様に、メソッドＴｒａｎｓＨａｎｄｌｅｒ、メソッドｓｔａｒｔＥｌｅｍｅｎｔ及びメソッドｅｎｄＥｌｅｍｅｎｔの処理が記述される。メソッドＴｒａｎｓＨａｎｄｌｅｒはコンストラクタであって、解析処理の初期化を行うメソッドである。その内容としては、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３にコピーする処理と、出力パス検索ハッシュテーブル１１０を読み込む処理とが記述される。
【００６０】
メソッドｓｔａｒｔＥｌｅｍｅｎｔは要素の開始時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅに要素名を代入する処理が記述される。メソッドｅｎｄＥｌｅｍｅｎｔは要素の終了時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅにｎｕｌｌを代入する処理が記述される。メソッドｃｈａｒａｃｔｅｒｓは文字データが出現したときに実行されるメソッドであり、出力パス逆引き表１１３を生成する処理が記述される。
【００６１】
図１６は、実施の形態２におけるメソッドｃｈａｒａｃｔｅｒｓに記述されるアルゴリズムに従った処理のフローチャートであり、上記実施の形態１で説明した図８の処理に対応している。先ず、変数ｅｌｅｍＮａｍｅを参照することにより入力要素名を取り出す（ステップＳＴ１６０１）。続いて、入力要素名をキーにして出力パス検索ハッシュテーブル１１０を引くことにより、出力パス逆引き表１１３における出力要素の位置を求める（ステップＳＴ１６０２）。
【００６２】
次に、入力要素の値を格納するスペース、即ちある出力要素に対応する入力要素の値（末端入力要素の文字列データ）を記入するための欄が出力パス逆引き表１１３にあるか否かを判定する（ステップＳＴ１６０３）。なお、初期状態の出力パス逆引き表１１３には、各入力要素に対して１つの欄が設けられている。つまり、ある出力要素に対して、その繰り返し種別を記入する繰り返し欄、対応する末端入力要素の要素名を記入するための末端入力要素欄及びその値を記入するための入力要素の値欄からなる記入欄が規定されたメモリ領域が割り当てられている。
【００６３】
このとき、入力要素が２回以上繰り返される場合、要素の値を格納するスペースがないと判定され、出力パス逆引き表１１３に対して上記記入欄を追加する（ステップＳＴ１６０４）。このあと、ステップＳＴ１６０４で追加した出力パス逆引き表１１３の欄に、入力要素の値をセットする（ステップＳＴ１６０５）。
【００６４】
一方、ステップＳＴ１６０３で入力要素の繰り返しがなく、入力要素の値を格納するスペースがあると判定されると、そのまま出力パス逆引き表１１３の該当する記入欄に入力要素の値をセットする（ステップＳＴ１６０５）。
【００６５】
逐次構造化文書解析プログラム生成部１０４は、出力パス逆引き表テンプレート１０９の内容を読み込んで、以上のステップＳＴ１６０１〜１６０５までの処理を行う逐次構造化文書解析プログラム１１１を生成すると、逐次構造化文書解析部１０５から読み出し可能なメモリ領域に出力し記憶させる。これにより、ステップＳＴ２０４が終了する。
【００６６】
なお、構造化文書変換実行部１０２による動作は、上記実施の形態１と同様、図９のフローチャートに従う。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ９０１）。逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１（上述したＳＡＸ  ＡＰＩプログラム）に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ９０２）、入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ９０３）。
【００６７】
出力パス逆引き表１１３の生成処理について詳細に説明すると、逐次構造化文書解析部１０５は、初期化処理としてメソッドＴｒａｎｓＨａｎｄｌｅｒにより、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３の対応する欄に対応するメモリ領域にコピーすると共に、出力パス検索ハッシュテーブル１１０を読み込む。
【００６８】
次に、逐次構造化文書解析部１０５は、メソッドｓｔａｒｔＥｌｅｍｅｎｔ及びメソッドｅｎｄＥｌｅｍｅｎｔにより、入力ＸＭＬ文書１１２の先頭に配置された要素から読み込み、入力ＸＭＬ文書１１２中の要素が出現するたびにその要素名を変数ｅｌｅｍＮａｍｅに格納する。また、文字列データが出現するたびに、メソッドｃｈａｒａｃｔｅｒｓにより図１６に示すフローに従って、変数ｅｌｅｍＮａｍｅを参照して得た入力要素名をキーとして出力パス検索ハッシュテーブル１１０を検索して、当該入力要素名に対応する出力要素名の出力パス逆引き表１１３における位置を求め、当該出力要素名の欄に文字列データを格納する。
【００６９】
このとき、逐次構造化文書解析部１０５は、入力要素が繰り返し出現するか否か、つまり入力要素の値（文字列データ）を格納するスペースが出力パス逆引き表１１３にあるか否かを判定する。このとき、入力要素が２回以上繰り返される場合、入力要素の値（文字列データ）を格納するスペースがないと判定され、出力パス逆引き表１１３に対して上記記入欄を追加する。このようにして、実施の形態２による出力パス逆引き表１１３が生成される。
【００７０】
次に、ステップＳＴ９０４において、出力構造化文書生成部１０６は、逐次構造化文書解析部１０５により生成された出力パス逆引き表１１３から出力ＸＭＬ文書１１４を生成する。この出力ＸＭＬ文書１１４の生成処理としては、出力パス逆引き表１１３の先頭（一番上の行）から出力要素の欄に記載されているタグに入力要素の値の欄に記載されている値を順に当てはめていくだけでよい。
【００７１】
このようにして、図１５に示す出力パス逆引き表テンプレート１０９に対して、図１７に示す入力ＸＭＬ文書１１２を入力したときに生成される出力パス逆引き表１１３を図１８に示す。図１８の出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、開始タグ＜Ｄ＞と終了タグ＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入されている。
【００７２】
特に、入力要素名Ａ．Ｃに対応する末端タグ＜ａ．ｃ＞について、繰り返し種別「＊」が設定されており、繰り返しの出現により３行分の記入欄が出力パス逆引き表１１３に構成されている。それぞれの入力要素の値欄には、対応する文字列データ「２」、「３」、「４」が記入されている。さらに、開始タグ＜Ａ．Ｂ＞と終了タグ＜／Ａ．Ｂ＞に挟まれる文字列である「１」が、入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞で規定される要素の値として出力パス逆引き表１１３に記入されている。
【００７３】
図１８に示した出力パス逆引き表１１３であれば、その一番上の行から出力要素のタグを記入し、出力要素のタグに対応する入力要素の値があれば、それを順に当てはめることで、図１９に示すような出力ＸＭＬ文書１１４を生成することができる。このようにして生成された出力ＸＭＬ文書１１４は、出力構造化文書生成部１０６より変換結果として出力される（ステップＳＴ９０５）。
【００７４】
以上のように、実施の形態２では、ＸＭＬ文書中の要素が反復する場合でも、変換前のＸＭＬ文書と変換後のＸＭＬ文書の要素の対応定義から、ＸＭＬデータへのランダムアクセスが必要な処理部分を、構造化文書変換前処理部１０１によって予め処理しておき、ＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【００７５】
実施の形態３．
この実施の形態３は、上記実施の形態１で示した処理に加え、構造化文書中の要素に付加的な情報を付け加えるための属性が加えられていた場合の処理を規定した構成を開示するものである。
【００７６】
実施の形態３による構造化文書変換装置の基本的な構成は、上記実施の形態１の図１で示したものと同様である。上記実施の形態１と異なる箇所として、構造化文書変換前処理部１０１が、構造化文書中の要素に属性が加えられていた場合、これに応じて出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を生成する。
【００７７】
図２０は、属性が付加された要素を含む入出力対応定義の一例を示す図である。図中の出力ＸＭＬ欄の「ａ．ｂ＠ａ．ｄ」は、要素名がａ．ｂの出力要素に属性名ａ．ｄの属性情報が付加されていることを示している。図２１は、出力ＸＭＬ文書中の要素に属性が定義された出力ＸＭＬ文書スキーマの一例を示す図である。
【００７８】
この出力ＸＭＬ文書スキーマ１０８中の＜！ＡＴＴＬＩＳＴ  ａ．ｂ  ａ．ｄ  ＣＤＡＴＡ＃ＲＥＱＵＩＲＥＤ＞が、要素名ａ．ｂの出力要素が属性名ａ．ｄを有することを示している。また、文字データを表す「ＣＤＡＴＡ」が属性「ａ．ｄ」の型であり、この属性「ａ．ｄ」は、「＃ＲＥＱＵＩＲＥＤ」により属性値を省略することができないことが定義されている。以降では、これら入出力対応定義１０７及び出力ＸＭＬ文書スキーマ１０８により出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を生成する場合を例に説明する。
【００７９】
次に動作について説明する。
先ず、構造化文書変換前処理部１０１は、図２に示すフローチャートに従って、ステップＳＴ２０１で、図２０で示した入出力対応定義１０７を読み込み、続いて図２１に示す出力ＸＭＬ文書の要素に属性が定義された出力ＸＭＬ文書スキーマ１０８を読み込む（ステップＳＴ２０２）。このあと、構造化文書変換前処理部１０１は、図２０に示した入出力対応定義１０７及び図２１に示す出力ＸＭＬ文書スキーマ１０８を用いて、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を生成する（ステップＳＴ２０３）。
【００８０】
図２２は、実施の形態３による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートであり、本実施の形態に合わせて図２中のステップＳＴ２０３での処理を詳細に示したものである。
【００８１】
先ず、ステップＳＴ２２０１において、実施の形態３による出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換してその全てのタグを出力ＸＭＬ文書中の配置順で並べた表データを作成する。例えば、図２１に示す出力ＸＭＬ文書スキーマ１０８では、これをＸＭＬ文書形式に変換することで、出力ＸＭＬ文書の全てのタグの配置順が特定され、この配置順で各タグが上記表に記入される。このとき、属性が付加された要素についても他のタグと同様に出力ＸＭＬ文書中の配置順で記入される。
【００８２】
次に、出力パス逆引き関係生成部１０３は、入出力対応定義１０７に記述されている出力要素名・属性名に対応する末端入力要素の入力要素名・属性名を上記表に記入する（ステップＳＴ２２０２）。図２０の例では、出力要素名・属性名「ａ．ｂ＠ａ．ｄ」に対応する入力要素名である「Ａ．Ｄ」が記入される。これにより、出力ＸＭＬ文書（変換後の構造化文書）の全てのタグを各配置順で記入したデータに対して、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書（変換前の構造化文書）の末端タグの要素名・属性名が記入された表データが作成される。この表データが出力パス逆引き表テンプレート１０９となる。
【００８３】
図２３は、上述のようにして、図２２の出力ＸＭＬ文書スキーマ１０８に基づいて作成された出力パス逆引き表テンプレート１０９を示す図である。図において、出力要素欄に記載された＜ａ．ｂ  ａ．ｄ＝＞が出力要素名・属性名であり、「ａ．ｄ＝」の部分が属性名を表している。
【００８４】
次に、出力パス逆引き関係生成部１０３は、上述のようにして作成した出力パス逆引き表テンプレート１０９を、本実施の形態３による装置を具現化するコンピュータの記憶装置に出力し記憶する（ステップＳＴ２２０３）。なお、この記憶装置としては、逐次構造化文書解析プログラム生成部１０４及び逐次構造化文書解析部１０５から、出力パス逆引き表テンプレート１０９が読み出し可能なメモリ領域を有していればよい。
【００８５】
このあと、出力パス逆引き関係生成部１０３は、入力ＸＭＬ文書における末端タグ内に記述された要素・属性の名前（入力要素名・属性名）と、出力ＸＭＬ文書スキーマ１０８による情報とを用いて、出力パス検索ハッシュテーブル１１０を作成する（ステップＳＴ２２０４）。
【００８６】
本実施の形態３による出力パス検索ハッシュテーブル１１０とは、入力ＸＭＬ文書の入力要素名及びその属性名をキーとし、これに対応する出力要素名の出力パス逆引き表テンプレート１０９での位置がエントリとして関連付けて登録された電子化されたテーブル情報である。この出力パス検索ハッシュテーブル１１０も、出力パス逆引き関係生成部１０３から、逐次構造化文書解析部１０５により読み込み可能なメモリ領域に出力され記憶される。これにより、ステップＳＴ２０３の処理が終了する。
【００８７】
次に、ステップＳＴ２０４において、逐次構造化文書解析プログラム生成部１０４が、逐次構造化文書解析プログラム１１１を生成する。図２４は、本実施の形態３による逐次構造化文書解析プログラム生成部１０４が生成する逐次構造化文書解析プログラム１１１の処理の枠組みを示す図であり、例えばＳＡＸ  ＡＰＩを用いて実現した解析プログラムのハンドラの記述である。図において、メソッドＴｒａｎｓＨａｎｄｌｅｒはコンストラクタであって、解析処理の初期化を行うメソッドである。その内容としては、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３にコピーする処理と、出力パス検索ハッシュテーブル１１０を読み込む処理とが記述される。
【００８８】
メソッドｓｔａｒｔＥｌｅｍｅｎｔは要素の開始時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅに要素名を代入する処理が記述される。メソッドｅｎｄＥｌｅｍｅｎｔは要素の終了時に実行されるメソッドであり、変数ｅｌｅｍＮａｍｅにｎｕｌｌを代入する処理が記述される。メソッドｃｈａｒａｃｔｅｒｓは文字データが出現したときに実行されるメソッドであり、出力パス逆引き表１１３を生成する処理が記述される。
【００８９】
また、メソッドｓｔａｒｔＥｌｅｍｅｎｔでは、変数ｅｌｅｍＮａｍｅに要素名を代入する処理に加え、属性名と属性値のペアを取り出し、出力パス逆引き表１１３に属性値をセットする処理が記述される。
【００９０】
逐次構造化文書解析プログラム生成部１０４は、出力パス逆引き表テンプレート１０９の内容を読み込んで、図２４で示すような処理を実行させる逐次構造化文書解析プログラム１１１を生成すると、逐次構造化文書解析部１０５から読み出し可能なメモリ領域に出力し記憶させる。これにより、図２に示す一連の事前処理が終了する。
【００９１】
なお、構造化文書変換実行部１０２による動作は、上記実施の形態１と同様、図９のフローチャートに従う。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ９０１）。逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１（上述したＳＡＸ  ＡＰＩプログラム）に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ９０２）、入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ９０３）。
【００９２】
出力パス逆引き表１１３の生成処理について詳細に説明すると、逐次構造化文書解析部１０５は、初期化処理としてメソッドＴｒａｎｓＨａｎｄｌｅｒにより、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３の対応する欄に対応するメモリ領域にコピーすると共に、出力パス検索ハッシュテーブル１１０を読み込む。
【００９３】
次に、逐次構造化文書解析部１０５は、メソッドｓｔａｒｔＥｌｅｍｅｎｔ及びメソッドｅｎｄＥｌｅｍｅｎｔにより、入力ＸＭＬ文書１１２の先頭に配置された要素から読み込み、入力ＸＭＬ文書１１２中の要素が出現するたびにその要素名を変数ｅｌｅｍＮａｍｅに格納する。このとき、メソッドｓｔａｒｔＥｌｅｍｅｎｔにより、入力ＸＭＬ文書１１２から要素に付加された属性の属性名とその属性値のペアも取り出され、出力パス逆引き表１１３の対応する欄に属性値がセットされる。
【００９４】
また、文字列データが出現するたびに、メソッドｃｈａｒａｃｔｅｒｓにより、変数ｅｌｅｍＮａｍｅを参照して得た入力要素名をキーとして出力パス検索ハッシュテーブル１１０を検索して、当該入力要素名に対応する出力要素名の出力パス逆引き表１１３における位置を求め、当該出力要素名の欄に文字列データを格納する。このようにして、実施の形態３による出力パス逆引き表１１３が生成される。
【００９５】
次に、ステップＳＴ９０４において、出力構造化文書生成部１０６は、逐次構造化文書解析部１０５により生成された出力パス逆引き表１１３から出力ＸＭＬ文書１１４を生成する。この出力ＸＭＬ文書１１４の生成処理としては、出力パス逆引き表１１３の先頭（一番上の行）から出力要素の欄に記載されているタグに入力要素の値の欄に記載されている値を順に当てはめていくだけでよい。
【００９６】
このようにして、図２３に示す出力パス逆引き表テンプレート１０９に対して、図２５に示す入力ＸＭＬ文書１１２を入力したときに生成される出力パス逆引き表１１３を図２６に示す。図２６に示す出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、開始タグ＜Ｄ＞と終了タグ＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入されており、開始タグ＜Ａ．Ｃ＞と終了タグ＜／Ａ．Ｃ＞に挟まれる文字列である「２」が、出力ＸＭＬ文書１１４の末端タグ＜ａ．ｃ＞についての要素内容として出力パス逆引き表１１３に記入されている。
【００９７】
入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞については、その入力要素の値欄に、対応する文字列データ「１」が記入されている。また、特に入力要素名Ａ．Ｄに対応する属性が付加された末端タグ＜ａ．ｂ  ａ．ｄ＝＞については、その入力要素の値欄に、対応する文字列データ「３」が記入されている。
【００９８】
図２６に示した出力パス逆引き表１１３であれば、その一番上の行から出力要素のタグを記入し、出力要素のタグに対応する入力要素の値があれば、それを順に当てはめることで、図２７に示すような出力ＸＭＬ文書１１４を生成することができる。図示の例では、＜ａ．ｂ＞と＜／ａ．ｂ＞に挟まれる文字列「１」が、属性名「ａ．ｄ」の属性値が「３」であることを示すタグ＜ａ．ｂ  ａ．ｄ＝”３”＞と＜／ａ．ｂ＞に挟まれる文字列として変換される。このようにして生成された出力ＸＭＬ文書１１４は、出力構造化文書生成部１０６より変換結果として出力される（ステップＳＴ９０５）。
【００９９】
以上のように、実施の形態３では、ＸＭＬ文書の要素に属性が加わる場合でも、変換前のＸＭＬ文書と、変換後のＸＭＬ文書の要素の対応定義から、ＸＭＬデータへのランダムアクセスが必要な処理部分を、構造化文書変換前処理部１０１によって予め処理してＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【０１００】
実施の形態４．
図２８は、この発明の実施の形態４による構造化文書変換装置の構成を示すブロック図である。本実施の形態による構造化文書変換実行部１０２は、上記実施の形態１による構成に加え、構造化文書要素間計算定義（計算定義情報）２８０１に記述されている計算式に従って出力パス逆引き表１１３を更新する構造化文書要素間計算部（要素間計算部）２８０２を備える。また、構造化文書要素間計算定義２８０１は、出力ＸＭＬ文書１１４の要素名をパラメータとして要素の値を求めるための計算式が記述されている。なお、図１に示した構成要素と同一若しくはそれに相当するものについては、同一符号を付して重複する説明を省略する。
【０１０１】
次に動作について説明する。
なお、構造化文書変換前処理部１０１による動作は、上記実施の形態１と同様である。
図２９は、実施の形態４による構造化文書変換実行部の動作を示すフローチャートである。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ２９０１）。
【０１０２】
逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ２９０２）、上記実施の形態１と同様な処理により入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ２９０３）。続いて、構造化文書要素間計算部２８０２は、構造化文書要素間計算定義２８０１に従い、出力パス逆引き表１１３を更新する（ステップＳＴ２９０４）。
【０１０３】
次に、構造化文書要素間計算部２８０２による出力パス逆引き表１１３の更新処理を詳細に説明する。図３０は、出力パス逆引き表１１３の更新処理に利用される構造化文書要素間計算定義２８０１に記述された計算式の一例を示す図である。図示の計算式は、「要素名がｄである要素の内容は、要素名がａ．ｂである要素の内容と要素名がａ．ｃである要素の内容との和に等しい」ことを表している。つまり、構造化文書要素間計算定義２８０１に記述される計算式は、そのパラメータとして要素名が用いられ、その値として当該要素に対応する要素の値が設定される。
【０１０４】
ここで、逐次構造化文書解析部１０５が、構造化文書変換前処理部１０１によって図３に示す入出力対応定義１０７と図４に示す出力ＸＭＬ文書スキーマ１０８を用いて生成された、出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込んで、図３１に示す入力ＸＭＬ文書１１２から図３２に示すような出力パス逆引き表１１３を生成する。この出力パス逆引き表１１３の内容を、構造化文書要素間計算部２８０２が、図３０に示す計算式で更新する。
【０１０５】
具体的に説明すると、図３２に示す出力パス逆引き表１１３では、出力要素のタグ＜ａ．ｃ＞に対応する末端入力要素名Ａ．Ｃについての入力要素の値として「２」がセットされており、出力要素のタグ＜ａ．ｂ＞に対応する末端入力要素名Ａ．Ｂについての入力要素の値として「１」がセットされている。また、出力要素のタグ＜ｄ＞に対応する末端入力要素名Ｄについての入力要素の値はセットされていない。
【０１０６】
構造化文書要素間計算部２８０２は、この出力パス逆引き表１１３を入力すると、構造化文書要素間計算定義２８０１における図３０に示した計算式でその内容の更新を実行する。つまり、図３０に示した計算式「ｄ＝ａ．ｂ＋ａ．ｃ」により、要素名ｄのタグ＜ｄ＞に対応する入力要素の値が、要素名ａ．ｂのタグ＜ａ．ｂ＞に対応する入力要素の値「１」と要素名ａ．ｃのタグ＜ａ．ｃ＞に対応する入力要素の値「２」との和である「３」として求められ、この算出結果がセットされる。
【０１０７】
これにより、図３２に示す出力パス逆引き表１１３が、図３０に示した計算式で要素名ｄのタグ＜ｄ＞に対応する入力要素の値が「３」に更新される。この結果として得られた出力パス逆引き表１１３を図３３に示す。
【０１０８】
上述のようにして出力パス逆引き表１１３が更新されると、出力構造化文書生成部１０６は、この出力パス逆引き表１１３を利用して出力ＸＭＬ文書１１４を生成する。この出力ＸＭＬ文書１１４の生成処理としては、出力パス逆引き表１１３の先頭（一番上の行）から出力要素の欄に記載されているタグに入力要素の値の欄に記載されている値を順に当てはめていくだけでよい。
【０１０９】
図３３に示した更新された出力パス逆引き表１１３を利用して生成された出力ＸＭＬ文書１１４を図３４に示す。図示の例では、タグ＜ｄ＞と＜／ｄ＞に挟まれた文字列として更新内容である「３」が設定されている。
【０１１０】
以上のように、実施の形態４では、ＸＭＬ文書の要素名をパラメータとして要素の値を求めるための計算式を定義した構造化文書要素間計算定義２８０１を備え、この構造化文書要素間計算定義２８０１に定義された計算式に従って、構造化文書要素間計算部２８０２が、出力パス逆引き表１１３における要素の値を更新するので、要素の値同士の計算結果を出力ＸＭＬ文書の要素に格納して出力することができる。
【０１１１】
また、上記実施の形態１と同様に、構造化文書変換前処理部１０１により、変換前のＸＭＬ文書と変換後のＸＭＬ文書の要素の対応定義からＸＭＬデータへのランダムアクセスが必要な処理部分を予め処理しておき、ＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【０１１２】
実施の形態５．
図３５は、この発明の実施の形態５による構造化文書変換装置の構成を示すブロック図である。本実施の形態による構造化文書変換実行部１０２は、上記実施の形態１による構成に加え、構造化文書反復要素計算定義（計算定義情報）３５０１に記述されている計算式に従って出力パス逆引き表１１３を更新する構造化文書反復要素計算部（反復要素計算部）３５０２を備える。また、構造化文書反復要素計算定義３５０１は、出力ＸＭＬ文書１１４の反復要素の要素名をパラメータとして要素の値を求めるための計算式が記述されている。なお、図１に示した構成要素と同一若しくはそれに相当するものについては、同一符号を付して重複する説明を省略する
【０１１３】
次に動作について説明する。
なお、構造化文書変換前処理部１０１による動作は、上記実施の形態２と同様である。
図３６は、実施の形態５による構造化文書変換実行部の動作を示すフローチャートである。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ３６０１）。
【０１１４】
逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ３６０２）、上記実施の形態２と同様な処理により入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ３６０３）。続いて、構造化文書反復要素計算部３５０２は、構造化文書反復要素計算定義３５０１に従い、出力パス逆引き表１１３を更新する（ステップＳＴ３６０４）。
【０１１５】
次に、構造化文書反復要素計算部３５０２による出力パス逆引き表１１３の更新処理を詳細に説明する。図３７は、出力パス逆引き表１１３の更新処理に利用される構造化文書反復要素計算定義３５０１に記述された計算式の一例を示す図である。図示の計算式は、「要素名がａ．ｃである反復要素の３番目の内容は、１番目の内容と２番目の内容の和に等しい」ことを表している。つまり、構造化文書要素間計算定義２８０１に記述される計算式は、要素名の他にＸＭＬ文書中での反復して出現する回数を規定したパラメータが用いられ、このパラメータには当該要素のその回数での要素の値が設定される。
【０１１６】
ここで、逐次構造化文書解析部１０５が、構造化文書変換前処理部１０１によって図３に示す入出力対応定義１０７と図１３に示す出力ＸＭＬ文書スキーマ１０８を用いて生成された、出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込んで、図３８に示す入力ＸＭＬ文書１１２から図３９に示すような出力パス逆引き表１１３を生成する。この出力パス逆引き表１１３の内容を、構造化文書反復要素計算部３５０２が図３７に示す計算式で更新する。
【０１１７】
具体的に説明すると、図３９の出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、タグ＜Ｄ＞と＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入されている。また、入力要素名Ａ．Ｃに対応する末端タグ＜ａ．ｃ＞について、繰り返し種別「＊」が設定されており、繰り返しの出現により３行分の記入欄が出力パス逆引き表１１３に構成されている。
【０１１８】
出力要素＜ａ．ｃ＞及び入力要素名Ａ．Ｃに関する各入力要素の値欄には、配置順に文字列データ「２」、「３」が記入されており、３番目の入力要素の値欄は未記入である。さらに、タグ＜Ａ．Ｂ＞と＜／Ａ．Ｂ＞に挟まれる文字列である「１」が、入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞で規定される要素の値として記入されている。
【０１１９】
構造化文書反復要素計算部３５０２は、この出力パス逆引き表１１３を入力すると、構造化文書反復要素計算定義３５０１における図３７に示した計算式でその内容の更新を実行する。つまり、図３７に示した計算式「ａ．ｃ［３］＝ａ．ｃ［１］＋ａ．ｃ［２］」により、出力パス逆引き表１１３における出力要素＜ａ．ｃ＞の３番目に対応する入力要素の値が、１番目に対応する入力要素の値「２」と、２番目に対応する入力要素の値「３」との和である「５」として求められ、この算出結果が３番目の出力要素＜ａ．ｃ＞に対応する入力要素の値欄にセットされる。
【０１２０】
これにより、図３９に示す出力パス逆引き表１１３が、図３７に示した計算式で３番目の出力要素＜ａ．ｃ＞に対応する入力要素の値が「５」に更新される。この結果として得られた出力パス逆引き表１１３を図４０に示す。
【０１２１】
上述のようにして出力パス逆引き表１１３が更新されると、出力構造化文書生成部１０６は、この出力パス逆引き表１１３を利用して出力ＸＭＬ文書１１４を生成する。この出力ＸＭＬ文書１１４の生成処理としては、出力パス逆引き表１１３の先頭（一番上の行）から出力要素の欄に記載されているタグに入力要素の値の欄に記載されている値を順に当てはめていくだけでよい。
【０１２２】
図４０に示した更新された出力パス逆引き表１１３を利用して生成された出力ＸＭＬ文書１１４を図４１に示す。図示の例では、３番目のタグ＜ａ．ｃ＞と＜／ａ．ｃ＞に挟まれた文字列として更新内容である「５」が設定されている。
【０１２３】
以上のように、実施の形態５では、ＸＭＬ文書の反復要素の計算式を定義することにより、計算結果を出力ＸＭＬ文書の要素に格納して出力することができる。ＸＭＬ文書の要素名及びその反復回数をパラメータとして要素の値を求めるための計算式を定義した構造化文書反復要素計算定義３５０１を備え、この構造化文書反復要素計算定義３５０１に定義された計算式に従って、構造化文書反復要素計算部３５０２が、出力パス逆引き表１１３における要素の値を更新するので、文書中の反復要素を用いた計算結果を出力ＸＭＬ文書の要素に格納して出力することができる。
【０１２４】
また、上記実施の形態１と同様に、構造化文書変換前処理部１０１により、変換前のＸＭＬ文書と変換後のＸＭＬ文書の要素の対応定義からＸＭＬデータへのランダムアクセスが必要な処理部分を予め処理しておき、ＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【０１２５】
実施の形態６．
この実施の形態６は、上記実施の形態１で示した処理に加え、変換後の構造化文書をＣＳＶ（Comma Separated Value）形式で出力する構成を開示するものである。
【０１２６】
実施の形態６による構造化文書変換装置の基本的な構成は、上記実施の形態１の図１で示したものと同様である。上記実施の形態１と異なる箇所として、構造化文書変換前処理部１０１が、出力ＸＭＬ文書をＣＳＶ形式に変換する出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を生成する。
【０１２７】
図４２は、実施の形態６における入出力対応定義１０７を示す図である。この入出力対応定義１０７では、上記実施の形態１における入力ＸＭＬの欄と出力ＸＭＬの欄に加え、出力カラム番号の欄が設けられている。この出力カラム番号に設定される値は、ＣＳＶ形式でコンマで区切りながら入力要素の値を並べて記述するにあたり、その記述される順番を示している。
【０１２８】
次に動作について説明する。
先ず、構造化文書変換前処理部１０１は、図２に示すフローチャートに従って、ステップＳＴ２０１で、図４２で示した入出力対応定義１０７を読み込み、続いて図４に示す出力ＸＭＬ文書の出力ＸＭＬ文書スキーマ１０８を読み込む（ステップＳＴ２０２）。このあと、構造化文書変換前処理部１０１は、図４２に示した入出力対応定義１０７及び図４に示す出力ＸＭＬ文書スキーマ１０８を用いて、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を生成する（ステップＳＴ２０３）。
【０１２９】
図４３は、実施の形態６による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートであり、本実施の形態に合わせて図２中のステップＳＴ２０３での処理を詳細に示したものである。先ず、ステップＳＴ４３０１において、実施の形態６による出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換してその全てのタグを出力ＸＭＬ文書中の配置順で並べる表データを作成する。このとき、入出力対応定義１０７に出力カラム番号が見出されると、出力パス逆引き関係生成部１０３は、上記表に対して各タグに対応する出力カラム番号を記入するための出力カラム番号欄を設ける。
【０１３０】
次に、出力パス逆引き関係生成部１０３は、入出力対応定義１０７を用いて、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書の末端タグの要素名を、ステップＳＴ４３０１で作成した表データに記入する（ステップＳＴ４３０２）。
【０１３１】
続いて、出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書中のタグに対応して設定される出力カラム番号の値を上記表の出力カラム番号欄に記入する（ステップＳＴ４３０３）。図４２の例では、「ａ．ｂ」、「ａ．ｃ」、「ｄ」にそれぞれ対応する出力カラム番号３、２、１が出力カラム番号欄に記入される。
【０１３２】
これにより、出力ＸＭＬ文書（変換後の構造化文書）の全てのタグを各配置順で記入したデータに対して、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書（変換前の構造化文書）の末端タグの要素名が記入され、またその出力要素に対応する出力カラム番号が記入された表データが作成される。この表データが、本実施の形態６による出力パス逆引き表テンプレート１０９となる。
【０１３３】
図４４は、図４２に示す入出力対応定義１０７と図４の出力ＸＭＬ文書スキーマ１０８に基づいて作成された出力パス逆引き表テンプレート１０９を示す図である。図のように、本実施の形態６による出力パス逆引き表テンプレート１０９は、出力ＸＭＬ文書中の配置順で出力ＸＭＬ文書のタグがそれぞれ記入された出力要素欄、出力要素欄のタグに対応する入力ＸＭＬ文書の末端タグが記載された末端入力要素欄、及び出力要素欄に記載されたタグに対応する出力カラム番号を記入するための出力カラム番号欄からなる。
【０１３４】
次に、出力パス逆引き関係生成部１０３は、上述のようにして作成した出力パス逆引き表テンプレート１０９を、本実施の形態６による装置を具現化するコンピュータの記憶装置に出力し記憶する（ステップＳＴ４３０４）。なお、この記憶装置としては、逐次構造化文書解析プログラム生成部１０４及び逐次構造化文書解析部１０５から、出力パス逆引き表テンプレート１０９が読み出し可能なメモリ領域を有していればよい。
【０１３５】
このあと、出力パス逆引き関係生成部１０３は、入力ＸＭＬ文書における末端タグ内に記述された要素の名前（入力要素名）と、出力ＸＭＬ文書スキーマ１０８による情報とを用いて、出力パス検索ハッシュテーブル１１０を作成する（ステップＳＴ４３０５）。
【０１３６】
ここで作成される出力パス検索ハッシュテーブル１１０は、入力要素名及び出力カラム番号の値をキーとし、これに対応する出力要素名の出力パス逆引き表テンプレート１０９での位置がエントリとして関連付けて登録された電子化されたテーブル情報である。この出力パス検索ハッシュテーブル１１０も、出力パス逆引き関係生成部１０３から、逐次構造化文書解析部１０５により読み込み可能なメモリ領域に出力され記憶される。これにより、ステップＳＴ２０３の処理が終了する。
【０１３７】
ステップＳＴ２０４において、逐次構造化文書解析プログラム生成部１０４は、上記記憶装置のメモリ領域から出力パス逆引き表テンプレート１０９を読み出し、当該出力パス逆引き表テンプレート１０９を用いて逐次構造化文書解析プログラム１１１を生成する。逐次構造化文書解析プログラム１１１には、出力パス逆引き表テンプレート１０９を用いて入力ＸＭＬ文書と出力ＸＭＬ文書との間における末端タグの対応関係を認識し、入力ＸＭＬ文書先頭の要素から順に対応する出力ＸＭＬ文書の要素を特定するための出力パス逆引き表１１３を作成する処理が規定される。
【０１３８】
次に、構造化文書変換実行部１０２の動作について説明する。
図４５は、実施の形態６による構造化文書変換実行部１０２の動作を示すフローチャートであり、この図に沿って説明する。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ４５０１）。次に、逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１（上述のようにして作成されたＳＡＸ  ＡＰＩプログラム）に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ４５０２）、入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ４５０３）。
【０１３９】
ここで、出力パス逆引き表１１３の生成処理について詳細に説明する。
先ず、逐次構造化文書解析部１０５は、初期化処理として、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３の対応する欄に対応するメモリ領域にコピーすると共に、出力パス検索ハッシュテーブル１１０を読み込む。
【０１４０】
次に、逐次構造化文書解析部１０５は、入力ＸＭＬ文書１１２の先頭に配置された要素から読み込み、入力ＸＭＬ文書１１２中の要素が出現するたびにその要素名及び出力カラム番号の値を変数ｅｌｅｍＮａｍｅに格納する。また、文字列データが出現するたびに、変数ｅｌｅｍＮａｍｅを参照して得た入力要素名及び出力カラム番号の値をキーとして出力パス検索ハッシュテーブル１１０を検索し、これらに対応する出力要素名の出力パス逆引き表１１３における位置を求め、この出力要素名の欄に文字列データを格納する。
【０１４１】
このようにして、図４４に示す出力パス逆引き表テンプレート１０９に対して、図１０に示す入力ＸＭＬ文書１１２を入力したときに生成される出力パス逆引き表１１３を図４６に示す。図４６に示す出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、タグ＜Ｄ＞と＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入される。この要素内容についての出力カラム番号「１」が出力カラム番号欄に記入される。また、タグ＜Ａ．Ｃ＞と＜／Ａ．Ｃ＞に挟まれる文字列である「２」が、入力要素名Ａ．Ｃに対応する末端タグ＜ａ．ｃ＞で規定される要素の値（要素内容）として出力パス逆引き表１１３に記入される。この要素内容についての出力カラム番号「２」が出力カラム番号欄に記入される。さらに、タグ＜Ａ．Ｂ＞と＜／Ａ．Ｂ＞に挟まれる文字列である「１」が、入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞で規定される要素の値として出力パス逆引き表１１３に記入される。この要素内容についての出力カラム番号「３」が出力カラム番号欄に記入される。
【０１４２】
図４２に示す入出力対応定義１０７と図４に示す出力ＸＭＬ文書スキーマ１０８から生成された出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０、及び逐次構造化文書解析プログラム１１１を読み込み、図１０に示す入力ＸＭＬ文書１１２から、逐次構造化文書解析部１０５によって生成された出力パス逆引き表１１３を、図４６に示す。
【０１４３】
次に、出力構造化文書生成部１０６は、逐次構造化文書解析部１０５により生成された出力パス逆引き表１１３を出力カラム番号でソートする（ステップＳＴ４５０４）。このあと、出力構造化文書生成部１０６は、ソート済みの出力パス逆引き表１１３の先頭（出力カラム番号の一番若い）出力要素から順に対応する入力要素の値をコンマで区切って逐次出力する出力ＣＳＶ文書を作成し変換結果として出力する（ステップＳＴ４５０５）。このＣＳＶ形式の出力ファイルを、図４７に示す。
【０１４４】
以上のように、実施の形態６では、入出力対応定義１０７に出力ＣＳＶ文書における出力カラム番号を記述し、出力カラム番号で要素をソート可能な出力パス逆引き表１１３を設けたので、ＸＭＬ形式の文書のみでなく、必要に応じてＣＳＶ形式の文書も出力することができる。
【０１４５】
また、上記実施の形態１と同様に、構造化文書変換前処理部１０１により、変換前のＸＭＬ文書と変換後のＸＭＬ文書の要素の対応定義からＸＭＬデータへのランダムアクセスが必要な処理部分を予め処理しておき、ＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【０１４６】
実施の形態７．
この実施の形態７は、上記実施の形態１で示した処理に加え、変換後の構造化文書をパンチデータ形式で出力する構成を開示するものである。ここで、パンチデータ形式の文書とは、要素を出力する位置を、先頭位置からの桁数で指定する文書形式である。なお、本実施の形態では、要素と要素の間に区切り記号を用いなくともよいものとする。また、要素の文字列長が、指定された長さより短いときは空白文字を埋めることとする。
【０１４７】
実施の形態７による構造化文書変換装置の基本的な構成は、上記実施の形態１の図１で示したものと同様である。上記実施の形態１と異なる箇所として、構造化文書変換前処理部１０１が、出力ＸＭＬ文書をパンチデータ形式に変換するための出力パス逆引き表テンプレート１０９及び出力パス逆引き表１１３を生成する。
【０１４８】
図４８は、実施の形態７における入出力対応定義１０７を示す図である。この入出力対応定義１０７では、上記実施の形態１における入力ＸＭＬの欄と出力ＸＭＬの欄に加え、パンチデータ形式で記載する要素の値の出力桁位置を記入する出力桁位置欄が設けられている。
【０１４９】
次に動作について説明する。
先ず、構造化文書変換前処理部１０１は、図２に示すフローチャートに従って、ステップＳＴ２０１で、図４８で示した入出力対応定義１０７を読み込み、続いて図４に示す出力ＸＭＬ文書の出力ＸＭＬ文書スキーマ１０８を読み込む（ステップＳＴ２０２）。このあと、構造化文書変換前処理部１０１は、図４８に示した入出力対応定義１０７及び図４に示す出力ＸＭＬ文書スキーマ１０８を用いて、出力パス逆引き表テンプレート１０９及び出力パス検索ハッシュテーブル１１０を生成する（ステップＳＴ２０３）。
【０１５０】
図４９は、実施の形態７による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートであり、本実施の形態に合わせて図２中のステップＳＴ２０３での処理を詳細に示したものである。先ず、ステップＳＴ４９０１において、実施の形態７による出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書スキーマ１０８をＸＭＬ文書形式に変換してその全てのタグを出力ＸＭＬ文書中の配置順で並べる表データを作成する。このとき、入出力対応定義１０７にパンチデータ形式での出力桁位置情報が見出されると、出力パス逆引き関係生成部１０３は、上記表に対して各タグに対応する出力桁位置を記入するための出力桁位置欄を設ける。
【０１５１】
次に、出力パス逆引き関係生成部１０３は、入出力対応定義１０７を用いて、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書の末端タグの要素名を、ステップＳＴ４９０１で作成した表データに記入する（ステップＳＴ４９０２）。
【０１５２】
続いて、出力パス逆引き関係生成部１０３は、出力ＸＭＬ文書中のタグに対応して設定される出力桁位置を上記表の出力桁位置欄に記入する（ステップＳＴ４９０３）。図４８の例では、「ａ．ｂ」、「ａ．ｃ」、「ｄ」にそれぞれ対応する出力桁位置５、３、１が出力桁位置欄に記入される。
【０１５３】
これにより、出力ＸＭＬ文書（変換後の構造化文書）の全てのタグを各配置順で記入したデータに対して、出力ＸＭＬ文書の末端タグに対応する入力ＸＭＬ文書（変換前の構造化文書）の末端タグの要素名が記入され、またその出力要素に対応する出力桁位置が記入された表データが作成される。この表データが、本実施の形態７による出力パス逆引き表テンプレート１０９となる。
【０１５４】
図５０は、図４８に示す入出力対応定義１０７と図４の出力ＸＭＬ文書スキーマ１０８に基づいて作成された出力パス逆引き表テンプレート１０９を示す図である。図のように、本実施の形態７による出力パス逆引き表テンプレート１０９は、出力ＸＭＬ文書中の配置順で出力ＸＭＬ文書のタグがそれぞれ記入された出力要素欄、出力要素欄のタグに対応する入力ＸＭＬ文書の末端タグが記載された末端入力要素欄、及び出力要素欄に記載されたタグに対応する出力桁位置を記入するための出力桁位置欄からなる。
【０１５５】
次に、出力パス逆引き関係生成部１０３は、上述のようにして作成した出力パス逆引き表テンプレート１０９を、本実施の形態７による装置を具現化するコンピュータの記憶装置に出力し記憶する（ステップＳＴ４９０４）。なお、この記憶装置としては、逐次構造化文書解析プログラム生成部１０４及び逐次構造化文書解析部１０５から、出力パス逆引き表テンプレート１０９が読み出し可能なメモリ領域を有していればよい。
【０１５６】
このあと、出力パス逆引き関係生成部１０３は、入力ＸＭＬ文書における末端タグ内に記述された要素の名前（入力要素名）と、出力ＸＭＬ文書スキーマ１０８による情報とを用いて、出力パス検索ハッシュテーブル１１０を作成する（ステップＳＴ４９０５）。
【０１５７】
ここで作成される出力パス検索ハッシュテーブル１１０は、入力要素名及び出力桁位置をキーとし、これに対応する出力要素名の出力パス逆引き表テンプレート１０９での位置がエントリとして関連付けて登録された電子化されたテーブル情報である。この出力パス検索ハッシュテーブル１１０も、出力パス逆引き関係生成部１０３から、逐次構造化文書解析部１０５により読み込み可能なメモリ領域に出力され記憶される。これにより、ステップＳＴ２０３の処理が終了する。
【０１５８】
ステップＳＴ２０４において、逐次構造化文書解析プログラム生成部１０４は、上記記憶装置のメモリ領域から出力パス逆引き表テンプレート１０９を読み出し、当該出力パス逆引き表テンプレート１０９を用いて逐次構造化文書解析プログラム１１１を生成する。逐次構造化文書解析プログラム１１１には、出力パス逆引き表テンプレート１０９を用いて入力ＸＭＬ文書と出力ＸＭＬ文書との間における末端タグの対応関係を認識し、入力ＸＭＬ文書先頭の要素から順に対応する出力ＸＭＬ文書の要素を特定するための出力パス逆引き表１１３を作成する処理が規定される。
【０１５９】
次に、構造化文書変換実行部１０２の動作について説明する。
図５１は、実施の形態７による構造化文書変換実行部１０２の動作を示すフローチャートであり、この図に沿って説明する。先ず、逐次構造化文書解析部１０５は、構造化文書変換前処理部１０１が生成した出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０及び逐次構造化文書解析プログラム１１１を読み込む（ステップＳＴ５１０１）。
【０１６０】
次に、逐次構造化文書解析部１０５は、逐次構造化文書解析プログラム１１１（上述のようにして作成されたＳＡＸ  ＡＰＩプログラム）に従って、構造変換対象の入力ＸＭＬ文書１１２を読み込み（ステップＳＴ５１０２）、入力ＸＭＬ文書１１２の構造を解析して出力パス逆引き表１１３を生成する（ステップＳＴ５１０３）。
【０１６１】
ここで、出力パス逆引き表１１３の生成処理について詳細に説明する。
先ず、逐次構造化文書解析部１０５は、初期化処理として、出力パス逆引き表テンプレート１０９の内容を出力パス逆引き表１１３の対応する欄に対応するメモリ領域にコピーすると共に、出力パス検索ハッシュテーブル１１０を読み込む。
【０１６２】
次に、逐次構造化文書解析部１０５は、入力ＸＭＬ文書１１２の先頭に配置された要素から読み込み、入力ＸＭＬ文書１１２中の要素が出現するたびにその要素名及び出力桁位置を変数ｅｌｅｍＮａｍｅに格納する。また、文字列データが出現するたびに、変数ｅｌｅｍＮａｍｅを参照して得た入力要素名及び出力桁位置をキーとして出力パス検索ハッシュテーブル１１０を検索し、これらに対応する出力要素名の出力パス逆引き表１１３における位置を求め、この出力要素名の欄に文字列データを格納する。
【０１６３】
このようにして、図５０に示す出力パス逆引き表テンプレート１０９に対して、図１０に示す入力ＸＭＬ文書１１２を入力したときに生成される出力パス逆引き表１１３を図５２に示す。図５２に示す出力パス逆引き表１１３では、入力ＸＭＬ文書１１２における、タグ＜Ｄ＞と＜／Ｄ＞に挟まれる文字列である「３」が、出力ＸＭＬ文書１１４の末端タグ＜ｄ＞についての要素内容として出力パス逆引き表１１３に記入される。この要素内容についての出力桁位置「１」が出力桁位置欄に記入される。
【０１６４】
また、タグ＜Ａ．Ｃ＞と＜／Ａ．Ｃ＞に挟まれる文字列である「２」が、入力要素名Ａ．Ｃに対応する末端タグ＜ａ．ｃ＞で規定される要素の値（要素内容）として出力パス逆引き表１１３に記入される。この要素内容についての出力桁位置「３」が出力桁位置欄に記入される。さらに、タグ＜Ａ．Ｂ＞と＜／Ａ．Ｂ＞に挟まれる文字列である「１」が、入力要素名Ａ．Ｂに対応する末端タグ＜ａ．ｂ＞で規定される要素の値として出力パス逆引き表１１３に記入される。この要素内容についての出力桁位置「５」が出力桁位置欄に記入される。
【０１６５】
図４８に示す入出力対応定義１０７と図４に示す出力ＸＭＬ文書スキーマ１０８から生成された出力パス逆引き表テンプレート１０９、出力パス検索ハッシュテーブル１１０、及び逐次構造化文書解析プログラム１１１を読み込み、図１０に示す入力ＸＭＬ文書１１２から、逐次構造化文書解析部１０５によって生成された出力パス逆引き表１１３を、図５２に示す。
【０１６６】
次に、出力構造化文書生成部１０６は、逐次構造化文書解析部１０５により生成された出力パス逆引き表１１３を出力カラム番号でソートする（ステップＳＴ５１０４）。このあと、出力構造化文書生成部１０６は、ソート済みの出力パス逆引き表１１３の先頭（出力桁位置の値が一番若い）出力要素から順に対応する入力要素の値をコンマで区切って逐次出力するパンチデータ形式の文書を作成し変換結果として出力する（ステップＳＴ５１０５）。このパンチデータ形式の出力ファイルを、図５３に示す。
【０１６７】
以上のように、実施の形態７では、入出力対応定義１０７にパンチデータ形式文書における出力桁位置を記述し、出力桁位置で要素をソート可能な出力パス逆引き表１１３を設けたので、入出力対応定義１０７に出力の桁位置を記述しておくことにより、ＸＭＬ形式の文書のみでなく、必要に応じてパンチデータ形式の文書も出力することができる。
【０１６８】
また、上記実施の形態１と同様に、構造化文書変換前処理部１０１により、変換前のＸＭＬ文書と変換後のＸＭＬ文書の要素の対応定義からＸＭＬデータへのランダムアクセスが必要な処理部分を予め処理しておき、ＳＡＸ  ＡＰＩを利用したＸＭＬ変換プログラムを自動生成するので、ＳＡＸ  ＡＰＩによる構造化文書の高速な変換処理を実行することができる。
【図面の簡単な説明】
【０１６９】
【図１】この発明の実施の形態１による構造化文書変換装置の構成を示すブロック図である。
【図２】実施の形態１における構造化文書変換前処理部の動作を示すフローチャートである。
【図３】実施の形態１における入出力対応定義の一例を示した図である。
【図４】出力ＸＭＬ文書スキーマの一例を示した図である。
【図５】図４中のステップＳＴ２０３における処理の詳細な流れを示すフローチャートである。
【図６】実施の形態１における出力パス逆引き表テンプレートの一例を示す図である。
【図７】実施の形態１における逐次構造化文書解析プログラムによる処理の枠組みを示した図である。
【図８】メソッドｃｈａｒａｃｔｅｒｓに記述される処理のアルゴリズムである。
【図９】図１中の構造化文書変換実行部の動作を示すフローチャートである。
【図１０】実施の形態１における入力ＸＭＬ文書の一例を示す図である。
【図１１】実施の形態１における出力パス逆引き表の一例を示す図である。
【図１２】実施の形態１における出力ＸＭＬ文書の一例を示す図である。
【図１３】実施の形態２における出力ＸＭＬ文書スキーマの一例を示す図である。
【図１４】実施の形態２による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートである。
【図１５】実施の形態２における出力パス逆引き表テンプレートの一例を示す図である。
【図１６】実施の形態２におけるメソッドｃｈａｒａｃｔｅｒｓに記述されるアルゴリズムに従った処理のフローチャートである。
【図１７】実施の形態２における入力ＸＭＬ文書の一例を示す図である。
【図１８】実施の形態２における出力パス逆引き表の一例を示す図である。
【図１９】実施の形態２における出力ＸＭＬ文書の一例を示す図である。
【図２０】実施の形態３における入出力対応定義の一例を示す図である。
【図２１】実施の形態３における出力ＸＭＬ文書スキーマの一例を示す図である。
【図２２】実施の形態３による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートである。
【図２３】実施の形態３における出力パス逆引き表テンプレートの一例を示す図である。
【図２４】実施の形態３による逐次構造化文書解析プログラムの処理の枠組みを示す図である。
【図２５】実施の形態３における入力ＸＭＬ文書の一例を示す図である。
【図２６】実施の形態３における出力パス逆引き表の一例を示す図である。
【図２７】実施の形態３における出力ＸＭＬ文書の一例を示す図である。
【図２８】この発明の実施の形態４による構造化文書変換装置の構成を示すブロック図である。
【図２９】実施の形態４による構造化文書変換実行部の動作を示すフローチャートである。
【図３０】実施の形態４における構造化文書要素間計算定義に記述された計算式の一例を示す図である。
【図３１】実施の形態４における入力ＸＭＬ文書の一例を示す図である。
【図３２】実施の形態４における出力パス逆引き表の一例を示す図である。
【図３３】実施の形態４における更新された出力パス逆引き表を示す図である。
【図３４】実施の形態４における出力ＸＭＬ文書の一例を示す図である。
【図３５】この発明の実施の形態５による構造化文書変換装置の構成を示すブロック図である。
【図３６】実施の形態５による構造化文書変換実行部の動作を示すフローチャートである。
【図３７】実施の形態５における構造化文書反復要素計算定義に記述した計算式の一例を示す図である。
【図３８】実施の形態５における入力ＸＭＬ文書の一例を示す図である。
【図３９】実施の形態５における出力パス逆引き表の一例を示す図である。
【図４０】実施の形態５における更新された出力パス逆引き表を示す図である。
【図４１】実施の形態５における出力ＸＭＬ文書の一例を示す図である。
【図４２】実施の形態６における入出力対応定義の一例を示す図である。
【図４３】実施の形態６による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートである。
【図４４】実施の形態６における出力パス逆引き表テンプレートの一例を示す図である。
【図４５】実施の形態６による構造化文書変換実行部の動作を示すフローチャートである。
【図４６】実施の形態６における出力パス逆引き表の一例を示す図である。
【図４７】実施の形態６における出力ＣＳＶ形式文書の一例を示す図である。
【図４８】実施の形態７における入出力対応定義の一例を示す図である。
【図４９】実施の形態７による出力パス逆引き表テンプレート及び出力パス検索ハッシュテーブルの生成処理を示すフローチャートである。
【図５０】実施の形態７における出力パス逆引き表テンプレートの一例を示す図である。
【図５１】実施の形態７による構造化文書変換実行部の動作を示すフローチャートである。
【図５２】実施の形態７における出力パス逆引き表の一例を示す図である。
【図５３】実施の形態７におけるパンチデータ形式文書の一例を示す図である。
【符号の説明】
【０１７０】
１０１  構造化文書変換前処理部、１０２  構造化文書変換実行部、１０３  出力パス逆引き関係生成部（情報生成部）、１０４  逐次構造化文書解析プログラム生成部（プログラム生成部）、１０５  逐次構造化文書解析部（文書解析部）、１０６  出力構造化文書生成部（文書変換部）、１０７  入出力対応定義（対応定義情報）、１０８  出力ＸＭＬ文書スキーマ（スキーマ）、１０９  出力パス逆引き表テンプレート（テンプレート情報）、１１０  出力パス検索ハッシュテーブル（検索テーブル情報）、１１１  逐次構造化文書解析プログラム（逐次解析プログラム）、１１２  入力ＸＭＬ文書（変換対象の構造化文書）、１１３  出力パス逆引き表（逆引き表情報）、１１４  出力ＸＭＬ文書（変換後の構造化文書）、２８０１  構造化文書要素間計算定義（計算定義情報）、２８０２  構造化文書要素間計算部（要素間計算部）、３５０１  構造化文書反復要素計算定義（計算定義情報）、３５０２  構造化文書反復要素計算部（反復要素計算部）。
【図１】
2006011549.tif 000003
【図２】
2006011549.tif 000004
【図３】
2006011549.tif 000005
【図４】
2006011549.tif 000006
【図５】
2006011549.tif 000007
【図６】
2006011549.tif 000008
【図７】
2006011549.tif 000009
【図８】
2006011549.tif 000010
【図９】
2006011549.tif 000011
【図１０】
2006011549.tif 000012
【図１１】
2006011549.tif 000013
【図１２】
2006011549.tif 000014
【図１３】
2006011549.tif 000015
【図１４】
2006011549.tif 000016
【図１５】
2006011549.tif 000017
【図１６】
2006011549.tif 000018
【図１７】
2006011549.tif 000019
【図１８】
2006011549.tif 000020
【図１９】
2006011549.tif 000021
【図２０】
2006011549.tif 000022
【図２１】
2006011549.tif 000023
【図２２】
2006011549.tif 000024
【図２３】
2006011549.tif 000025
【図２４】
2006011549.tif 000026
【図２５】
2006011549.tif 000027
【図２６】
2006011549.tif 000028
【図２７】
2006011549.tif 000029
【図２８】
2006011549.tif 000030
【図２９】
2006011549.tif 000031
【図３０】
2006011549.tif 000032
【図３１】
2006011549.tif 000033
【図３２】
2006011549.tif 000034
【図３３】
2006011549.tif 000035
【図３４】
2006011549.tif 000036
【図３５】
2006011549.tif 000037
【図３６】
2006011549.tif 000038
【図３７】
2006011549.tif 000039
【図３８】
2006011549.tif 000040
【図３９】
2006011549.tif 000041
【図４０】
2006011549.tif 000042
【図４１】
2006011549.tif 000043
【図４２】
2006011549.tif 000044
【図４３】
2006011549.tif 000045
【図４４】
2006011549.tif 000046
【図４５】
2006011549.tif 000047
【図４６】
2006011549.tif 000048
【図４７】
2006011549.tif 000049
【図４８】
2006011549.tif 000050
【図４９】
2006011549.tif 000051
【図５０】
2006011549.tif 000052
【図５１】
2006011549.tif 000053
【図５２】
2006011549.tif 000054
【図５３】
2006011549.tif 000055