(57)【要約】【課題】従来は、ＸＭＬ文書中で変換処理対象でない内容をＣＳＶ形式でまとめてＸＭＬ文書に事前変換して、リソースを軽減し、変換速度向上とメモリ消費量削減を図るが、リソース削減対象は、変換処理対象でない要素に限られ、殆どの要素が変換処理対象の時は性能向上が得られない。【解決手段】フラット文書形式変換手段が入力構造化文書を入力フラット文書に変換し、フラット文書変換プログラム生成手段が入力構造化文書の構造を記述した入力文書スキーマと、出力の構造化文書の構造を記述した出力文書スキーマと、入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義を入力して、生成出力したフラット文書変換プログラムにより、フラット文書変換プログラム実行手段が入力フラット文書を出力フラット文書に変換し、フラット文書変換プログラム実行手段が出力フラット文書を出力文書に変換する。【選択図】図１
2005310064.tif 000002
【特許請求の範囲】
【請求項１】
入力された構造化文書を、階層構造を持たないフラットな形式の入力フラット文書に変換するフラット文書形式変換手段と、
上記入力構造化文書の構造を記述した入力文書スキーマと、出力の構造化文書の構造を記述した出力文書スキーマと、入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義を入力し、構造化文書をフラットな文書形式に変換した入力フラット文書を、出力フラット文書に変換するフラット文書変換プログラムを生成し出力するフラット文書変換プログラム生成手段と、
上記フラット文書変換プログラムを読み込み、上記フラット文書形式変換手段からの入力フラット文書を出力フラット文書に変換するフラット文書変換プログラム実行手段と、
フラット文書変換プログラム実行手段からの出力フラット文書を出力文書に変換する出力文書形式変換手段とを
備えたことを特徴とする構造化文書変換装置。
【請求項２】
上記出力文書形式変換手段は、出力する文書形式が入力文書と同じ構造化形式の文書である構成にされたことを特徴とする請求項１記載の構造化文書変換装置。
【請求項３】
上記出力文書形式変換手段は、出力する文書形式がＣＳＶ(Comma Separated Value)形式である構成にされたことを特徴とする請求項１記載の構造化文書変換装置。
【請求項４】
上記出力文書形式変換手段は、出力する文書形式がパンチデータ形式である構成にされたことを特徴とする請求項１記載の構造化文書変換装置。
【請求項５】
上記出力文書形式変換手段は、出力する文書形式がＲＤＢ(Relational Data Base)に格納するためのＳＱＬ(Structured Query Language)文である構成にされたことを特徴とする請求項１記載の構造化文書変換装置。
【請求項６】
上記フラット文書変換プログラム実行手段は、上記入力フラット文書が、上記フラット文書変換プログラムと矛盾があるときに、エラーを出力する構成にされたことを特徴とする請求項１乃至５の何れかに記載の構造化文書変換装置。
【請求項７】
上記フラット文書変換プログラム実行手段は、構造化文書の要素間の計算処理を定義した構造化文書要素間計算定義を参照して要素間の計算処理を行う構成にされたことを特徴とする請求項１乃至６の何れかに記載の構造化文書変換装置。
【請求項８】
データを圧縮するフラット文書データ圧縮手段と、圧縮された文書データを元に戻すフラット文書データ還元手段を備え、
上記フラット文書データ圧縮手段は上記フラット文書形式変換手段からの入力フラット文書のデータを圧縮し、
上記フラット文書変換プログラム実行手段は、上記フラット文書変換プログラムを用いて、圧縮された入力フラット文書のデータを圧縮された出力フラット文書のデータに変換し、
上記フラット文書データ還元手段は上記フラット文書変換プログラム実行手段からの圧縮された出力フラット文書のデータを元に戻す構成にされたことを特徴とする請求項１乃至７の何れかに記載の構造化文書変換装置。
【請求項９】
上記フラット文書変換プログラム生成手段は、入力文書スキーマ、中間文書スキーマ、及び上記入力文書スキーマと中間文書スキーマのタグの対応関係を記述した中間入出力対応定義Ａからフラット文書変換プログラムＡを、中間文書スキーマ、出力文書スキーマ、及び上記中間文書スキーマと出力文書スキーマのタグの対応関係を記述した中間入出力対応定義Ｂからフラット文書変換プログラムＢを生成・出力し、
上記フラット文書変換プログラム実行手段は、上記フラット文書変換プログラムＡとフラット文書変換プログラムＢを読み込み、上記入力フラット文書を中間フラット文書に変換し、中間フラット文書を出力フラット文書に変換することを特徴とする請求項１乃至８の何れかに記載の構造化文書変換装置。
【請求項１０】
入力された構造化文書を、階層構造を持たないフラットな形式の入力フラット文書に変換するフラット文書形式変換手順と、
上記入力構造化文書の構造を記述した入力文書スキーマと、出力の構造化文書の構造を記述した出力文書スキーマと、入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義を入力し、構造化文書をフラットな文書形式に変換した入力フラット文書を、出力フラット文書に変換するフラット文書変換プログラムを生成し出力するフラット文書変換プログラム生成手順と、
上記フラット文書変換プログラムを読み込み、上記フラット文書形式変換手順からの入力フラット文書を出力フラット文書に変換するフラット文書変換プログラム実行手順と、
フラット文書変換プログラム実行手順からの出力フラット文書を出力文書に変換する出力文書形式変換手順とを
コンピュータに実行させることを特徴とする構造化文書変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子商取引、知識経営、設備情報管理等の情報システムが管理する構造化文書を、企業間や企業内組織間で交換／共有するために構造化文書のデータ構造や、構造化文書をなす文字列を変換する技術に関する。
【背景技術】
【０００２】
電子商取引（ＥＣ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｍｅｒｃｅ）、ＣＡＬＳ（Ｃｏｍｍｅｒｃｅ  Ａｔ  Ｌｉｇｈｔ  Ｓｐｅｅｄ）、知識経営（ＫＭ：Ｋｎｏｗｌｅｄｇｅ  Ｍａｎａｇｅｍｅｎｔ）、設備情報管理等の進展に伴って、これらの分野の情報システムが管理する構造化文書を、企業間や企業内組織間で交換／共有したいという要求が高まっている。
【０００３】
この要求に応える構造化文書の標準フォーマットとして、ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  Ｏｒｇａｎｉｚａｔｉｏｎ）規格８８７９のＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＷ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）が制定するＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）がある。
【０００４】
ところで、代表的な構造化文書であるＸＭＬ文書に対するデータ操作ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の１つに、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）がある。ＤＯＭは、ＸＭＬ文書の解析結果を木構造（ＤＯＭ木）としてメモリ上に展開するため、データへのランダムアクセスが可能で、データ操作プログラムを組みやすいという利点があるが、処理が低速で、メモリの使用量が大きいという欠点がある。
【０００５】
従来、ＤＯＭのＡＰＩを利用し、かつ、構造化文書に対する処理の高速化とメモリ使用量の削減の実現を目的とした方法が提案されている（例えば、特許文献１参照）。
【０００６】
【特許文献１】特開２００３−２０３０６７号公報（図１、第５頁−第１８頁）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示された方法では、入力ＸＭＬ文書中で変換処理対象としない要素の内容をＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）形式で一つの要素にまとめたＸＭＬ文書に事前変換することにより、構造化文書に対する操作に必要となるリソースを軽減し、変換速度向上とメモリ消費量削減を実現する。リソース削減の対象となる要素は、変換処理対象としない要素に限られるので、ほとんど全ての要素が変換処理対象となる場合には性能向上が得られないという問題点があった。
【０００８】
本発明は、上述のような課題を解決するためになされたもので、構造化文書を、フラットな形式の文書に変換し、フラットな形式の文書を対象に変換処理を行う。また、変換プログラムを変換前の文書と変換後の文書の構造化文書の要素の対応定義から自動生成する。これにより、ＤＯＭ  ＡＰＩを用いず、ほぼ全ての要素が変換処理対象である場合にも、構造化文書の解析が不要で、高速な変換速度を実現する構造化文書変換装置を得ることが可能になる。変換のためのプログラムの生成には構造化文書を用いているので、フラットな文書形式による変換処理の高速性と、構造化文書が特長とするデータの表現力や拡張性の高さを両立したファイル変換方式を実現することができる。
【課題を解決するための手段】
【０００９】
本発明の構造化文書変換装置は
入力された構造化文書を、階層構造を持たないフラットな形式の入力フラット文書に変換するフラット文書形式変換手段と、
上記入力構造化文書の構造を記述した入力文書スキーマと、出力の構造化文書の構造を記述した出力文書スキーマと、入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義を入力し、構造化文書をフラットな文書形式に変換した入力フラット文書を、出力フラット文書に変換するフラット文書変換プログラムを生成し出力するフラット文書変換プログラム生成手段と、
上記フラット文書変換プログラムを読み込み、上記フラット文書形式変換手段からの入力フラット文書を出力フラット文書に変換するフラット文書変換プログラム実行手段と、
フラット文書変換プログラム実行手段からの出力フラット文書を出力文書に変換する出力文書形式変換手段とを備えたものである。
【００１０】
本発明の構造化文書変換プログラムは、
入力された構造化文書を、階層構造を持たないフラットな形式の入力フラット文書に変換するフラット文書形式変換手順と、
上記入力構造化文書の構造を記述した入力文書スキーマと、出力の構造化文書の構造を記述した出力文書スキーマと、入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義を入力し、構造化文書をフラットな文書形式に変換した入力フラット文書を、出力フラット文書に変換するフラット文書変換プログラムを生成し出力するフラット文書変換プログラム生成手順と、
上記フラット文書変換プログラムを読み込み、上記フラット文書形式変換手順からの入力フラット文書を出力フラット文書に変換するフラット文書変換プログラム実行手順と、
フラット文書変換プログラム実行手順からの出力フラット文書を出力文書に変換する出力文書形式変換手順とをコンピュータに実行させるものである。
【発明の効果】
【００１１】
本発明によれば、構造化文書を、フラットな形式の文書に変換し、フラットな形式の文書を対象に変換処理を行う。また、変換プログラムを変換前の文書と変換後の文書の構造化文書の要素の対応定義から自動生成する。これにより、ＤＯＭ  ＡＰＩを用いず、ほぼ全ての要素が変換処理対象である場合にも、構造化文書の解析が不要で、高速な変換速度を実現する構造化文書変換装置を得ることが可能になる。変換のためのプログラムの生成には構造化文書を用いているので、フラットな文書形式による変換処理の高速性と、構造化文書が特長とするデータの表現力や拡張性の高さを両立したファイル変換方式を実現することができる。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図1は、本発明の実施の形態1による構造化文書変換装置の構成を示すブロック図である。本実施の形態では、構造化文書としてＸＭＬを例にして説明を行う。図１において、フラット文書変換プログラム生成手段１０１は、入力文書の文書構造を記述する入力文書スキーマ１０５、出力文書の文書構造を記述する出力文書スキーマ１０６、及び入力スキーマと出力スキーマのタグの対応関係を記述した入出力対応定義１０７を読み込み、フラット文書変換プログラム１０８を生成し出力する。フラット文書形式変換手段１０２は、入力構造化文書１０９を入力フラット文書１１０に変換する。フラット文書変換プログラム実行手段１０３は、フラット文書変換プログラム１０８に記述された処理に従い、入力文書スキーマ１０５と入出力対応定義１０７を参照して、入力フラット文書１１０を出力フラット文書１１１に変換する。出力文書形式変換手段１０４は、出力文書スキーマ１０６を参照して、出力フラット文書１１１を出力文書１１２に変換する。
【００１３】
次に、実施の形態１における構造化文書変換装置の動作について説明する。図２は、フラット文書変換プログラム生成手段１０１の動作を示すフロー図である。図２のステップＳＴ２０１において、フラット文書変換プログラム生成手段１０１は入力文書スキーマ１０５を読み込む。図３は、入力文書スキーマ１０５の例である。実施の形態１では、ＸＭＬの文書スキーマにＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）を用いているが、ＸＭＬ  Ｓｃｈｅｍａ等、文書構造を記述する他のスキーマを用いてもよい。次に、ステップＳＴ２０２において、フラット文書変換プログラム生成手段１０１は出力文書スキーマ１０６を読み込む。図４は出力文書スキーマ１０６の例である。
【００１４】
次に、ステップＳＴ２０３でフラット文書変換プログラム生成手段１０１は入出力対応定義１０７を読み込む。図５は、入出力対応定義の例である。図５に示すとおり、入出力対応定義１０７は、出力ＸＭＬパス、入力ＸＭＬパス、及び反復要素の対応の欄からなる。ＸＭＬ文書の変換において、入力ＸＭＬパスの要素の値は、同じ行に記された出力ＸＭＬパスの要素に代入される。また、反復要素の対応の欄には、反復タグにおいて、反復数が一致する出力ＸＭＬパスと入力ＸＭＬパスの対応を示す。ｎ（パス名）は、パス名の要素の反復数を示す。例えば、図５において、ｎ（ａ／ａ４）＝ｎ（ｓ／ｒ１）は、ａ／ａ４の要素の反復数とｓ／ｒ１の要素の反復数が等しいことを示す。
【００１５】
次にステップＳＴ２０４で、入出力対応定義１０７に記されている対応関係に従い、入力要素から出力要素へ値を代入する代入式を生成する。図６は、ステップＳＴ２０４の処理を詳細化したフロー図である。
【００１６】
図６のステップＳＴ６０１において、ルートタグの対応を処理対象対応タグに設定する。図５の入出力対応定義１０７では、出力タグａと入力タグｓが処理対象対応タグになる。次に、ステップＳＴ６０２において、処理対象対応タグの入力タグが繰り返しタグであるか否かを判定する。図３の入力文書スキーマ１０５の例から、ｓは繰り返しタグではないので、判定はＮとなる。次に、ステップＳＴ６０４において、処理対象タグが末端タグであるか否かを判定する。ａおよびｓは末端タグではないので、判定はＮとなる。
【００１７】
次に、ステップＳＴ６０８において、入力タグの下位タグの１つを処理対象対応タグに設定する。図５の入出力対応定義１０７より、ａ／ａ２とｓ／ｓ２が処理対象対応タグに設定される。次にステップＳＴ６０２に進み、判定はＮになる。次にステップＳＴ６０４に進み、判定はＹとなる。
【００１８】
次に、ステップＳＴ６０５に進み、代入文を設定する。この処理において、入力タグを出力タグに代入する式ａ／ａ２＝ｓ／ｓ２が、代入文として設定される。次にステップＳＴ６０６に進み、入力タグに未処理の兄弟タグがあるか否かを判定する。判定はＹとなり、ステップＳＴ６０７において、未処理の兄弟タグの１つを処理対象対応タグに設定する。図５の入出力対応定義１０７より、ａ／ａ１とｓ／ｓ１が処理対象対応タグに設定される。次に、ステップＳＴ６０２に進み、判定はＮになる。次にステップＳＴ６０４に進み、判定はＹとなる。
【００１９】
次に、ステップＳＴ６０５に進み、代入文を設定する。この処理において、入力タグを出力タグに代入する式ａ／ａ１＝ｓ／ｓ１が、代入文として設定される。次にステップＳＴ６０６に進み、判定はＹとなる。次にステップＳＴ６０７に進み、ａ／ｂ１とｓ／ｒ１が処理対象対応タグに設定される。次にステップＳＴ６０２に進み、ｓ／ｒ１は繰り返しタグであるので、判定はＹとなる。
【００２０】
次に、ステップＳＴ６０３に進み、ループ文を設定する。ループ変数をｉ＿１として、繰り返し数は、ｓ／ｒ１の要素数分となるので、ループ文として、ｆｏｒ（ｉ＿１＝１；ｉ＿１＜＝ｎ（ｓ／ｒ１）；ｉ＿１＋＋）｛｝が設定される。次に、ＳＴ６０４に進むが、ａ／ｂ１とｓ／ｒ１は末端タグではないので、判定はＮとなる。
【００２１】
次に、ステップＳＴ６０８によって、入力タグの下位タグの１つが処理対象対応タグに設定され、ａ／ａ４とｓ／ｒ１／ｓ４が処理対象対応タグに設定される。次にステップＳＴ６０２に進み、判定はＮとなる。次にステップＳＴ６０４に進み、判定はＹとなる。次にステップＳＴ６０５に進み、反復要素の対応を参照し、代入文ａ／ａ４［ｉ＿１］＝ｓ／ｒ１［ｉ＿１］／ｓ４が設定される。次に、ステップＳＴ６０６に進み、判定はＹとなり、ステップＳＴ６０７で、処理対象タグに、ａ／ａ３とｓ／ｒ１／ｓ３が設定される。次に、ステップＳＴ６０２に進み、判定はＮとなる。次にステップＳＴ６０４に進み、判定はＹとなる。次にステップＳＴ６０５に進み、代入文ａ／ａ３［ｉ＿１］＝ｓ／ｒ１［ｉ＿１］／ｓ３が設定される。
【００２２】
次に、ステップＳＴ６０６に進み、判定はＹとなる。次に、ステップＳＴ６０７に進み、処理対象タグにａ／ｂ１／ｂ２とｓ／ｒ１／ｒ２が設定される。次に、ステップＳＴ６０２に進み、判定はＹとなる。次に、ＳＴ６０３に進み、ループ変数をｉ＿２とし、繰り返し数をｎ（ｓ／ｒ１［ｉ＿１］／ｒ２）として、ループ文ｆｏｒ（ｉ＿２＝１；ｉ＿２＜＝ｎ（ｓ／ｒ１［ｉ＿１］／ｒ２）；ｉ＿２＋＋）｛｝を設定する。次に、ステップＳＴ６０４に進み、判定はＮとなる。次に、ステップＳＴ６０８に進み、処理対象対応タグに、ａ／ｂ１／ｂ２／ｂ３とｓ／ｒ１／ｒ２／ｒ３を設定する。
【００２３】
次に、ステップＳＴ６０２に進み、判定はＹとなる。次にステップＳＴ６０３に進み、ループ文ｆｏｒ（ｉ＿３＝１；ｉ＿３＜＝ｎ（ｓ／ｒ１［ｉ＿１］／ｒ２［ｉ＿２］／ｒ３）；ｉ＿３＋＋）｛｝を設定する。次に、ステップＳＴ６０４に進み、判定はＹとなる。次にＳＴ６０５に進み、代入文ａ／ｂ１［ｉ＿１］／ｂ２［ｉ＿２］／ｂ３［ｉ＿３］＝ｓ／ｒ１［ｉ＿１］／ｒ２［ｉ＿２］／ｒ３［ｉ＿３］を設定する。次に、ステップＳＴ６０６に進み、判定はＹとなる。次に、ステップＳＴ６０７に進み、ａ／ｂ１／ｂ２／ａ５とｓ／ｒ１／ｒ２／ｓ５を処理対象対応タグに設定する。次に、ステップＳＴ６０２に進み、判定はＮとなる。次にステップＳＴ６０４に進み、判定はＹとなる。次にステップＳＴ６０５に進み、代入文ａ／ｂ１［ｉ＿１］／ｂ２［ｉ＿２］／ａ５＝ｓ／ｒ１［ｉ＿１］／ｒ２［ｉ＿２］／ｓ５を設定する。
【００２４】
次に、ステップＳＴ６０６に進み、判定はＮとなる。次に、ステップＳＴ６０９に進み、入力タグの親タグであるｓ／ｒ１／ｒ２がルートタグであるか否かを判定する。判定はＮとなり、次にステップＳＴ６１０で親タグを処理対象対応タグに設定する。この結果、ａ／ｂ１／ｂ２とｓ／ｒ１／ｒ２が処理対象対応タグに設定される。
【００２５】
次に、ステップＳＴ６０６に進み、判定はＮとなる。次にステップＳＴ６０９に進み、入力タグの親タグであるｓ／ｒ１がルートタグであるか否かを判定する。判定はＮとなり、次にステップＳＴ６１０で、ａ／ｂ１とｓ／ｒ１を処理対象対応タグに設定する。次に、ＳＴ６０６に進み、判定はＮとなる。次に、ＳＴ６０９に進み、入力タグの親タグであるｓは、ルートタグであるので、判定はＹとなり、処理は終了する。
【００２６】
以上によって、図２のステップＳＴ２０４の処理が終了する。次に、ステップＳＴ２０５に進み、フラット文書変換プログラムを出力する。図７は、この処理によって出力されたフラット文書変換プログラムの例である。
【００２７】
次に、フラット文書形式変換手段１０２の動作について説明する。図８は、フラット文書形式変換手段１０２の動作を示すフロー図である。まず、ＳＴ８０１で入力構造化文書１０９を読み込む。図９に、入力構造化文書１０９の例を示す。次に、ステップＳＴ８０２で、入力構造化文書１０９のパスと値との対応を生成する。次に、ステップＳＴ８０３で、反復要素の繰り返し数をカウントする。次にステップＳＴ８０４で、ＳＴ８０３とＳＴ８０４によって生成された入力フラット文書を出力する。
【００２８】
図１０、１１は、図９の入力構造化文書１０９に対して生成された入力フラット文書１１０である。図１０は、入力フラット文書におけるパスと値の対応を示したパス値定義、図１１は、入力フラット文書における反復要素と反復数の対応を示した反復値定義である。
【００２９】
次に、フラット文書変換プログラム実行手段１０３の動作について説明する。図１２はフラット文書変換プログラム実行手段の動作を示すフロー図である。まず、ステップＳＴ１２０１で、フラット文書変換プログラム１０８を読み込む。例として、図７に示すフラット文書変換プログラムを読み込む。次に、ステップＳＴ１２０２で、入力フラット文書１１０を読み込む。例として、図１０，１１に示す入力フラット文書を読み込む。
【００３０】
次に、ステップＳＴ１２０３で、入力フラット文書１１０の構造に、フラット文書変換プログラム１０８により入力文書スキーマ１０５との矛盾がないかどうかを判定する。例えば、スキーマにないタグが現れた場合や、スキーマで反復しないと定義されたタグが反復した場合は、判定がＮになり、ステップＳＴ１２０８でエラーを出力して終了する。
【００３１】
ステップＳＴ１２０３の判定がＹの場合、ステップＳＴ１２０４に進み、フラット文書変換プログラム中の繰り返し数を設定する。図７のフラット文書変換プログラムでは、ループ文中のｎ（ｓ／ｒ１）、ｎ（ｓ／ｒ［ｉ＿１］／ｒ２）、ｎ（ｓ／ｒ１［ｉ＿１］／ｒ２［ｉ＿２］／ｒ３）に、図１１に示す反復値定義の値を代入する。
【００３２】
次に、ステップＳＴ１２０５で、要素への代入文を実行する。図１０のパス値定義に記された入力パスの値を、図７のフラット文書変換プログラムの代入文に従って、出力パスの値に代入する。
【００３３】
次に、ステップ１２０６で、繰り返し数を設定する。図１１の入力反復要素に対する反復数と、図５の入出力対応定義から、出力パスに対する繰り返し数を出力する。次に、ステップ１２０７で出力フラット文書を出力する。
【００３４】
上記の処理によって生成された出力フラット文書１１１のパス値定義を図１３（ａ）に、反復値定義を図１３（ｂ）に示す。
【００３５】
次に、出力文書形式変換手段１０４の動作について説明する。図１４は、出力文書形式変換手段１０４の動作を示すフロー図である。図１４は、出力文書の形式がＸＭＬである場合の処理である。まず、ＳＴ１４０１で出力フラット文書１１１を読み込む。例として図１３（ａ）、（ｂ）に示す出力フラット文書を読み込む。次に、ステップＳＴ１４０２で、要素の順番を、出力文書スキーマ１０６の順に並べ替える。図１３（ａ）の出力フラット文書のパス値定義を、図４の出力文書スキーマに従って並べ替えると、図１５に示す出力フラット文書のパス値定義になる。
【００３６】
次に、ステップＳＴ１４０３で、ＸＭＬ文書形式に変換する。次に、ステップＳＴ１４０４で、出力文書を出力する。図１６に上記処理によって出力されるＸＭＬ形式の出力文書を示す。
【００３７】
以上のように、本実施の形態によれば、構造化文書を、フラットな形式の文書に変換し、フラットな形式の文書を対象に変換処理を行う。また、変換プログラムを変換前の文書と変換後の文書の構造化文書の要素の対応定義から自動生成する。これにより、ＤＯＭ  ＡＰＩを用いず、ほぼ全ての要素が変換処理対象である場合にも、構造化文書の解析が不要で、高速な変換速度を実現する構造化文書変換装置を得ることが可能になる。変換のためのプログラムの生成には構造化文書を用いているので、フラットな文書形式による変換処理の高速性と、構造化文書が特長とするデータの表現力や拡張性の高さを両立したファイル変換方式を実現することができる。
【００３８】
また、入力文書スキーマと、入力フラット文書との間の矛盾をチェックすることにより、入力文書が正しい構造であるか否かの検証が可能な構造化文書変換装置が実現できる。
【００３９】
図１７は、出力文書の形式がＣＳＶである場合の出力文書形式変換手段１０４の動作を示すフロー図である。ステップＳＴ１７０１、ステップＳＴ１７０２、及びステップＳＴ１７０４の処理は、それぞれ、図１４におけるステップＳＴ１４０１、ステップＳＴ１４０２、及びステップ１４０４の処理と同様である。ステップＳＴ１７０３では、出力フラット文書１１１をＣＳＶ文書形式に変換する。上記処理によって、図１３の出力フラット文書から生成されるＣＳＶ形式の出力文書を、図１８に示す。
【００４０】
以上のように、本実施の形態によれば、変換処理の高速性とデータの表現力や拡張性の高さを両立することに加え、必要に応じてＣＳＶ形式の文書も出力可能となり、ＣＳＶデータを入力とする他システムとの連携が可能になる。
【００４１】
実施の形態２．
図１９は、本発明の実施の形態２による構造化文書変換装置の構成を示すブロック図である。本実施の形態は、出力文書の形式がパンチデータである場合の構造化文書変換装置に関する。パンチデータ形式の文書とは、要素を出力する位置を、固定の桁数で指定する文書形式であり、要素と要素の間には区切り記号を用いなくともよい。また、要素の文字列長が、指定された長さより短いときは、空白文字を埋める。図１９に示す通り、出力文書形式変換手段１０４では、出力文書スキーマ１０６と出力文書桁数定義１９０１を参照して図２２に示すパンチデータ形式の出力文書１１２を出力する。
【００４２】
図２０は、出力文書桁数定義１９０１の例である。出力文書桁数定義１９０１には、ＸＭＬ文書のパスと、値を出力する桁数が記される。図２０の例では、値を全て３桁で出力する。
【００４３】
図２１は、出力文書の形式がパンチデータである場合の出力文書形式変換手段１０４の動作を示すフロー図である。ステップＳＴ２１０１、ステップＳＴ２１０２、及びステップＳＴ２１０４の処理は、それぞれ、図１４におけるステップＳＴ１４０１、ステップＳＴ１４０２、及びステップ１４０４の処理と同様である。ステップＳＴ２１０３では、出力フラット文書１１１をパンチデータ文書形式に変換する。上記処理によって、図２０の出力文書桁数定義に従い、図１３の出力フラット文書から生成されるパンチデータ形式の出力文書を、図２２に示す。
上記以外の構成および動作は図１に示す実施の形態１と同様である。
【００４４】
以上のように、本実施の形態によれば、変換処理の高速性とデータの表現力や拡張性の高さを両立することに加え、必要に応じてパンチデータ形式の文書も出力可能になり、パンチデータを入力とする他システムとの連携が可能になる。
【００４５】
実施の形態３．
図２３は、本発明の実施の形態３による構造化文書変換装置の構成を示すブロック図である。本実施の形態は、出力文書をＲＤＢ(Relational Data Base)に格納するためにその出力文書形式がＳＱＬ(Structured Query Language)文である場合の構造化文書変換装置に関する。
出力フラット文書１１１を出力文書１１２に変換する出力文書形式変換手段１０４は、、出力文書スキーマ１０６とデータベース登録定義２３０１を参照して図２６に示すＳＱＬ文の出力文書１１２を出力する。図２４は、データベース登録定義２３０１の例である。データベース登録定義２３０１には、テーブル名、ＸＭＬ文書のパスと、値の型が記される。
【００４６】
図２５は、出力文書の形式がＲＤＢに格納するためのＳＱＬ文である場合の出力文書形式変換手段１０４の動作を示すフロー図である。ステップＳＴ２５０１、ステップＳＴ２５０２、及びステップＳＴ２５０４の処理は、それぞれ、図１４におけるステップＳＴ１４０１、ステップＳＴ１４０２、及びステップ１４０４の処理と同様である。ステップＳＴ２５０３では、出力フラット文書１１１をＳＱＬ文形式に変換する。ＲＤＢに格納するため、ＣＲＥＡＴＥ文とＩＮＳＥＲＴ文を出力する。上記処理によって、図２４の出力文書型定義に従い、図１３の出力フラット文書から生成されるＳＱＬ文の出力文書を、図２６に示す。
上記以外の構成および動作は図１に示す実施の形態１と同様である。
【００４７】
以上のように、本実施の形態によれば、変換処理の高速性とデータの表現力や拡張性の高さを両立することに加え、必要に応じてＲＤＢに格納するためのＳＱＬ文も出力可能となる。
【００４８】
実施の形態４．
図２７は、本発明の実施の形態４による構造化文書変換装置の構成を示すブロック図である。本実施の形態は、構造化文書の要素間の計算処理を行う構造化文書変換装置に関する。フラット文書変換プログラム実行手段１０３では、入力文書スキーマ１０５、出力文書スキーマ１０６、フラット文書変換プログラム１０８に加え要素間計算定義２７０１を参照する。要素間計算定義２７０１には、出力フラット文書１１１に代入されるＸＭＬ文書の要素間の計算式が記される。図２８は、要素間計算定義２７０１の例である。演算子「．」は、文字列を連結する演算子であり、図２８の式の意味は、ａ／ａ２の値として、ａ／ａ１とａ／ａ２の文字列を連結した文字列を代入することを示す。
【００４９】
図２９は、構造化文書の要素間の計算処理を行う構造化文書変換装置におけるフラット文書変換プログラム実行手段１０３の動作を示すフロー図である。図２９において、ステップＳＴ２９０１、ステップＳＴ２９０２、ステップＳＴ２９０３、ステップＳＴ２９０４、ステップＳＴ２９０５、ステップＳＴ２９０６、ステップＳＴ２９０８、及び、ステップＳＴ２９０９は、それぞれ、図１２におけるステップＳＴ１２０１、ステップＳＴ１２０２、ステップＳＴ１２０３、ステップＳＴ１２０４、ステップＳＴ１２０５、ステップＳＴ１２０６、ステップＳＴ１２０７、及び、ステップＳＴ１２０８と同様である。
【００５０】
ステップＳＴ２９０７では、要素間計算定義２７０１に従い出力フラット文書１１１に代入されるＸＭＬ文書の要素間の計算を実行する。図７のフラット文書変換プログラムに従い、図１１の入力フラット文書を処理すると、ａ／ａ１の値はｃ１、ａ／ａ２の値はｃ２０となる。この値に図２８に示す計算を施すと、ａ／ａ２の値にｃ１ｃ２０が代入される。上記処理によって生成される出力フラット文書を図３０に示す。
上記以外の構成および動作は図１に示す実施の形態１と同様である。
【００５１】
以上のように、本実施の形態によれば、変換処理の高速性とデータの表現力や拡張性の高さを両立することに加え、構造化文書の要素間の計算を行うことが可能となり、単なる要素の代入だけでなく、要素の値の編集を可能としたXML文書変換が実現できる。
【００５２】
実施の形態５．
図３１は、本発明の実施の形態５による構造化文書変換装置の構成を示すブロック図である。本実施の形態は、フラット文書データ圧縮手段３１０１とフラット文書データ還元手段３１０２を備えた構造化文書変換装置に関する。フラット文書データ圧縮手段３１０１では、入力フラット文書データを圧縮する処理を行う。圧縮には、圧縮前のパスの値と圧縮後のパスの値が対応付けられた圧縮値対応表３１０３を生成し、入力フラット文書のパス値定義における値の文字数を短くする。図９の入力構造化文書から生成される入力フラット文書に対して生成される圧縮値対応定義を図３２に示す。また、フラット文書データ圧縮手段３１０１によって圧縮した入力フラット文書を図３３に示す。
フラット文書変換プログラム実行手段１０３は、フラット文書データ圧縮手段３１０１によって圧縮された入力フラット文書データを出力フラット文書データに変換する。
フラット文書データ還元手段３１０２では、圧縮値対応定義３１０３を参照し、出力フラット文書１１１の圧縮されたパスの値を、元の値に戻す処理を行う。
なお、上記以外の構成および動作は図１に示す実施の形態１と同様である。
【００５３】
以上のように、本実施の形態によれば、変換処理の高速性とデータの表現力や拡張性の高さを両立することに加え、構造化文書のデータを圧縮することにより、フラット入力文書を変換処理を行う計算機へ転送する必要がある場合、転送の負荷を軽減ことが可能となる。
【００５４】
実施の形態６．
図３４は、本発明の実施の形態６による構造化文書変換装置の構成を示すブロック図である。本実施の形態は、入力フラット文書１１０を出力フラット文書１１１に変換するために、中間データを利用する構造化文書変換装置に関する。
なお、図１と同様な構成要素には同一符号を付し、説明を省略する。
図３４において、中間文書スキーマ３４０２は、図３に示した入力文書スキーマ１０５や、図４に示した出力文書スキーマ１０６と同様の形式で中間文書の文書構造を記述するファイルである。中間入出力対応定義Ａ３４０１は、図５に示した入出力対応定義１０７と同様の形式で、入力スキーマ１０５と中間文書スキーマ３４０２のタグの対応を記述したファイルである。また中間入出力対応定義Ｂ３４０３も中間入出力対応定義Ａ３４０１と同様に、図５に示した入出力対応定義１０７と同様の形式で、中間文書スキーマ３４０２と出力文書スキーマ１０６のタグの対応を記述したファイルである。
【００５５】
フラット文書変換プログラム生成手段１０１は、入力スキーマ１０５、中間文書スキーマ３４０２、及び中間入出力対応定義Ａ３４０１から、中間フラット文書変換プログラムＡ３４０４を生成する。また、中間文書スキーマ３４０２、出力文書スキーマ１０６、及び中間入出力対応定義Ｂ３４０３から、中間フラット文書変換プログラムＢ３４０５を生成する。その形式は、図７に示したフラット文書変換プログラム１０８と同様である。
中間フラット文書変換プログラムは一般的にはｎ番目の中間文書スキーマ、ｎ＋１番目の中間文書スキーマ、及び上記ｎ番目とｎ＋１番目の中間文書スキーマのタグの対応関係を記述した中間入出力対応定義から、ｎ番目の中間文書スキーマをｎ＋１番目の中間文書スキーマに変換するプログラムである。
また、フラット文書変換プログラム実行手段は、一般的にはフラット文書変換プログラムを読み込み、上記ｎ番目の中間文書スキーマに対応するｎ番目のフラット文書を上記ｎ＋１版目の中間文書スキーマに対応するｎ＋１番目のフラット文書に変換するものである。
【００５６】
フラット文書変換プログラム実行手段１０３は、中間フラット文書変換プログラムＡ３４０４に従い、入力フラット文書１１０を中間フラット文書３４０６に変換する。また、中間フラット文書変換プログラムＢに従い、中間フラット文書３４０６を、出力フラット文書１１１に変換する。中間フラット文書３４０６の形式は、図１０，１１に示した入力フラット文書１１０や、図１３に示した出力フラット文書の形式と同様である。
【００５７】
次に、フラット文書変換プログラム生成手段１０１の動作について説明する。図３５は、ラット文書変換プログラム生成手段１０１の動作を示すフロー図である。ステップＳＴ３５０１で入力文書スキーマ１０５を読み込み、ステップＳＴ３５０２で、中間文書スキーマ３４０２を読み込み、ステップＳＴ３５０３で中間入出力対応定義Ａ３４０１を読み込む。次に、ステップＳＴ３５０４で、中間入出力対応定義Ａ３４０１に記されている対応関係に従い、代入式を生成する。ステップＳＴ３５０４を詳細化した処理は、図６に示したフロー図に示した処理と同様である。次に、ステップＳＴ３５０５で、フラット文書変換プログラムＡ３４０４を出力する。
【００５８】
次に、ステップＳＴ３５０６で出力文書スキーマ１０６を読み込み、ステップＳＴ３５０７で中間入出力対応定義Ｂ３４０３を読み込む。次にステップＳＴ３５０８で、中間入出力対応定義Ｂ３４０３に記されている対応関係に従い、代入式を生成する。ステップＳＴ３５０８を詳細化した処理は、図６に示したフロー図に示した処理と同様である。次に、ステップＳＴ３５０９で、フラット文書変換プログラムＢ３４０５を出力する。
【００５９】
次に、フラット文書変換プログラム実行手段１０３の動作について説明する。図３６は、フラット文書変換プログラム実行手段１０３の動作を示すフロー図である。まず、ステップＳＴ３６０１で、中間フラット文書変換プログラムＡ３４０４を読み込む。次に、ＳＴ３６０２で、入力フラット文書１１０を読み込む。次にステップＳＴ３６０３で、入力フラット文書１１０の構造に、入力文書スキーマ１０５との矛盾がないかどうかを判定する。矛盾がある場合は、判定がＮになり、ステップＳＴ３６１５でエラーを出力して終了する。
【００６０】
ステップＳＴ３６０３の判定がＹの場合、ステップＳＴ３６０４に進み、中間フラット文書変換プログラムＡ３４０４中の繰り返し数を設定する。次に、ステップＳＴ３６０５で、要素への代入文を実行する。次に、ステップ３６０６で、ステップ３６０４において設定された繰り返し数と中間入出力対応定義Ａから、中間フラット文書３４０６の反復値定義に設定すべき繰り返し数を設定する。次に、ステップ３６０７で、上記処理によって生成した中間フラット文書３４０６を出力する。
【００６１】
次に、ステップＳＴ３６０８で、中間フラット文書変換プログラムＢ３４０５を読み込む。次に、ステップＳＴ３６０９で、ステップＳＴ３６０７で出力した中間フラット文書３４０６を読み込む。次にステップＳＴ３６１０で、中間フラット文書３４０６の構造に、中間文書スキーマ３４０２との矛盾がないかどうかを判定する。矛盾がある場合は、判定がＮになり、ステップＳＴ３６１６でエラーを出力して終了する。
【００６２】
ステップＳＴ３６１０の判定がＹの場合、ステップＳＴ３６１１に進み、中間フラット文書変換プログラムＢ３４０５中の繰り返し数を設定する。次に、ステップＳＴ３６１２で、要素への代入文を実行する。次に、ステップ３６１３で、ステップ３６１１において設定された繰り返し数と中間入出力対応定義Ａから、出力フラット文書１１１の反復値定義に設定すべき繰り返し数を設定する。次に、ステップ３６１４で、上記処理によって生成した出力フラット文書１１１を出力する。
【００６３】
以上のように、本実施の形態によれば、複数の変換処理が連結されている場合、フラットな形式の変換の連結によって全体の変換を行うので、それぞれの変換に対してＤＯＭ  ＡＰＩで必要な構造化文書の解析を行う必要がなく、高速な文書の変換を行うことが可能となる。
【産業上の利用可能性】
【００６４】
本発明は、電子商取引、知識経営、設備情報管理等の情報システムに適用することで、企業間や企業内組織間で構造化文書を交換／共有するため構造化文書を変換する際、その処理速度の高速化や使用メモリ量の削減が図れる情報システムを実現できる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態1による構造化文書変換装置の構成を示すブロック図である。
【図２】フラット文書変換プログラム生成手段の動作を示すフロー図である。
【図３】入力文書スキーマの例を示す説明図である。
【図４】出力文書スキーマの例を示す説明図である。
【図５】入出力対応定義の例を示す説明図である。
【図６】代入式の生成処理を詳細化したフロー図である。
【図７】フラット文書変換プログラムの例を示す説明図である。
【図８】フラット文書形式変換手段の動作を示すフロー図である。
【図９】入力構造化文書の例を示す説明図である。
【図１０】生成された入力フラット文書のパス値定義を示す説明図である。
【図１１】生成された入力フラット文書の反復値定義を示す説明図である。
【図１２】フラット文書変換プログラム実行手段の動作を示すフロー図である。
【図１３】出力フラット文書の定義の説明図であり、（ａ）はパス値定義を、（ｂ）は反復値定義を示す図である。
【図１４】出力文書形式変換手段の動作を示すフロー図である。
【図１５】出力フラット文書のパス値定義の説明図である。
【図１６】ＸＭＬ形式の出力文書例を示す説明図である。
【図１７】ＣＳＶ形式出力文書の出力文書形式変換手段の動作を示すフロー図である。
【図１８】ＣＳＶ形式の出力文書例を示す説明図である。
【図１９】本発明の実施の形態２による構造化文書変換装置の構成を示すブロック図である。
【図２０】出力文書桁数定義の例を示す説明図である。
【図２１】パンチデータ形式出力文書時の出力文書形式変換手段の動作を示すフロー図である。
【図２２】パンチデータ形式の出力文書例を示す説明図である。
【図２３】本発明の実施の形態３による構造化文書変換装置の構成を示すブロック図である。
【図２４】データベース登録定義を示す説明図である。
【図２５】実施の形態３による出力文書形式変換手段の動作を示すフロー図である。
【図２６】ＳＱＬ文の出力文書を示す説明図である。
【図２７】本発明の実施の形態４による構造化文書変換装置の構成を示すブロック図である。
【図２８】要素間計算定義の例を示す説明図である。
【図２９】実施の形態４におけるフラット文書変換プログラム実行手段の動作を示すフロー図である。
【図３０】文書の要素間計算処理によって生成される出力フラット文書例を示す説明図である。
【図３１】本発明の実施の形態５による構造化文書変換装置のブロック図である。
【図３２】入力フラット文書に対して生成される圧縮値対応定義を示す説明図である。
【図３３】圧縮した入力フラット文書例を示す説明図である。
【図３４】本発明の実施の形態６による構造化文書変換装置のブロック図である。
【図３５】フラット文書変換プログラム生成手段の動作を示すフロー図である。
【図３６】フラット文書変換プログラム実行手段の動作を示すフロー図である。
【符号の説明】
【００６６】
１０１：フラット文書変換プログラム生成手段、１０２：フラット文書形式変換手段、１０３：フラット文書変換プログラム実行手段、１０４：出力文書形式変換手段、１０５：入力文書スキーマ、１０６：出力文書スキーマ、１０７：入出力対応定義、１０８：フラット文書変換プログラム、１０９：入力構造化文書、１１０：入力フラット文書、１１１：出力フラット文書、１１２：出力文書、１９０１：出力文書桁数定義、２３０１：データベース登録定義、２７０１：要素間計算定義、３１０１：フラット文書データ圧縮手段、３１０２：フラット文書データ還元手段、３１０３：圧縮値対応表、３４０１：中間入出力対応定義Ａ、３４０２：中間文書スキーマ、３４０３：中間入出力対応定義Ｂ、３４０４：中間フラット文書変換プログラムＡ、３４０５：中間フラット文書変換プログラムＢ、３４０６：中間フラット文書。
【図１】
2005310064.tif 000003
【図２】
2005310064.tif 000004
【図３】
2005310064.tif 000005
【図４】
2005310064.tif 000006
【図５】
2005310064.tif 000007
【図６】
2005310064.tif 000008
【図７】
2005310064.tif 000009
【図８】
2005310064.tif 000010
【図９】
2005310064.tif 000011
【図１０】
2005310064.tif 000012
【図１１】
2005310064.tif 000013
【図１２】
2005310064.tif 000014
【図１３】
2005310064.tif 000015
【図１４】
2005310064.tif 000016
【図１５】
2005310064.tif 000017
【図１６】
2005310064.tif 000018
【図１７】
2005310064.tif 000019
【図１８】
2005310064.tif 000020
【図１９】
2005310064.tif 000021
【図２０】
2005310064.tif 000022
【図２１】
2005310064.tif 000023
【図２２】
2005310064.tif 000024
【図２３】
2005310064.tif 000025
【図２４】
2005310064.tif 000026
【図２５】
2005310064.tif 000027
【図２６】
2005310064.tif 000028
【図２７】
2005310064.tif 000029
【図２８】
2005310064.tif 000030
【図２９】
2005310064.tif 000031
【図３０】
2005310064.tif 000032
【図３１】
2005310064.tif 000033
【図３２】
2005310064.tif 000034
【図３３】
2005310064.tif 000035
【図３４】
2005310064.tif 000036
【図３５】
2005310064.tif 000037
【図３６】
2005310064.tif 000038