(57)【要約】【課題】必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のＸＭＬ文書等の構造化文書を自動的に変換処理する。【解決手段】大容量ＸＭＬ文書１００を分割プログラム１０１によって、複数の小容量ＸＭＬ文書１０２ａに分割し、この分割の際に、個々の小容量ＸＭＬ文書１０２ａに対して、分割位置の階層に応じた開始／終了タグを付加して大容量ＸＭＬ文書１００と同一の階層構造を持つ完結したＸＭＬ文書を構成する。これらの小容量ＸＭＬ文書１０２ａを分割の順序でＸＳＬ変換プロセッサ１１０に入力してスタイルシート１１０ａに定義された変換処理を行って複数の対応する小容量ＸＭＬ文書２０２ａに出力し、連結プログラム２０１にて、これらの小容量ＸＭＬ文書２０２ａから分割時に付加された冗長なタグを除去して連結し、一つの併合ＸＭＬ文書２００に出力する。【選択図】図１
2007179492.tif 000002
【特許請求の範囲】
【請求項１】
第１構造化文書に含まれる情報を複数の第２構造化文書に分割する分割プログラムであって、
分割順序に対応した固有名を有する個々の前記第２構造化文書に前記第１構造化文書の前記情報を先頭側から既定量だけ順に複写する第１処理と、
個々の前記第２構造化文書が前記第１構造化文書と同じ階層構造を持つように開始タグおよび／または終了タグを前記ファイルに付加する第２処理と、
をコンピュータに実行させることを特徴とする分割プログラム。
【請求項２】
請求項１記載の分割プログラムにおいて、
さらに、個々の前記第２構造化文書に付加された前記開始タグおよび／または終了タグを識別するための識別タグを付加する第３処理を前記コンピュータに実行させることを特徴とする分割プログラム。
【請求項３】
共通の階層構造を有する複数の第１構造化文書の各々から、連結順序を示すように個々の当該第１構造化文書に付与された固有名に基づく順序で情報を読み取る第１処理と、
前記情報に含まれる冗長な開始タグおよび／または終了タグを除去して、前記第１構造化文書と同一の階層構造を有する第２構造化文書に併合する第２処理と、
をコンピュータに実行させることを特徴とする連結プログラム。
【請求項４】
請求項３記載の連結プログラムにおいて、
前記第２処理では、冗長な前記開始タグおよび／または終了タグを識別するために個々の前記第１構造化文書に付加された識別タグに基づいて、当該冗長な前記開始タグおよび／または終了タグを識別して除去することを特徴とする連結プログラム。
【請求項５】
構造化文書の書式を変換する情報処理方法であって、
変換前の第１構造化文書の情報を先頭側から既定量だけ順に第１記憶手段に複写する第１ステップと、
前記第１記憶手段に複写された前記情報が完結した一つの第２構造化文書となるように開始タグおよび／または終了タグと、当該開始タグおよび／または終了タグを識別するための識別タグとを付加する第２ステップと、
前記第１記憶手段に構成された前記第２構造化文書を目的の書式に変換して第３構造化文書として第２記憶手段に出力する第３ステップと、
前記第２記憶手段に保持された前記第３構造化文書から、前記第２ステップで付加された前記開始タグおよび／または終了タグと前記識別タグとを除去して、第４構造化文書に併合する第４ステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割プログラム、連結プログラム、情報処理技術に関し、たとえばＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書等の構造化文書の処理技術に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、インターネットを通して、個人、企業、自治体など、あらゆる種類のシステムが接続され、連携して、ＷｅｂサービスやＥＤＩ（Electronic Data Interchange：電子データ交換）、ＥＣ（electronic commerce：電子商取引）が行われつつある。
【０００３】
このために、幅広い情報交換が必要になっており、データ交換、データ処理に、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）が、データを構造化する柔軟な表現能力を持ち、コンピュータ処理に適するため、情報交換のための共通基盤のフォーマットとして注目されている。
【０００４】
ＸＭＬは、１９８６年  ＩＳＯで標準化されたＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をインターネットで活用し易くするために、１９９８年２月にその基本仕様ＸＭＬ１．０がＷ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）において策定されたものである。Ｗｅｂページ作成言語であるＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）は、タグが固定で表示に特化したものとなっており、タグ情報を基にコンピュータで情報を処理したいという要件に対応できない問題があった。ＸＭＬは、利用者が自由にタグを定義でき、文書中の文字列に意味付けができる言語構造を持ち、コンピュータで情報処理できる。
【０００５】
ＸＭＬ文書に、検索・更新・削除などの操作を施す場合、標準のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）ソフトウェアでツリー構造（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）に展開して操作する。しかし、ＤＯＭツリーへの展開には元データの５〜１０倍の膨大な動作メモリ量を必要とする上、使わない項目も一緒に展開されてしまい、時間もかかる欠点があった。
【０００６】
このようなＸＭＬにおける従来技術の課題を説明する。
（１）ＸＭＬについて
ここで、ＸＭＬ規格に基づき、専門用語の呼び方を定めておく。一対の“＜”と“＞”で囲まれた文字列をタグ、“＜文字列＞”を開始タグ、“＜／文字列＞”を終了タグ、開始タグから終了タグまでの文字列全体を要素、開始タグと終了タグで挟まれた文字列を要素内容、タグ内に記述される要素の名前を要素名（あるいはタグ名）、要素に対する付加情報を属性と呼ぶ。
【０００７】
構造化文書は、文書自身の中にタグを埋め込む形で、データ構造を記述する。データ構造をタグとして文書に埋め込んだ構成を採ることにより、データ項目の追加削除変更に対して柔軟性と拡張性を持つ。また、タグ名に、人が読んで意味のある名前を付けることにより、データに視認性を持たせることができる。
【０００８】
（２）ＸＭＬ文書を扱う標準的なＡＰＩ
代表的な構造化文書であるＸＭＬ文書では、応用ソフトウェアからＸＭＬ文書を扱うために、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）と、ＳＡＸ（Ｓｉｍｐｌｅ  ＡＰＩ  ｆｏｒ  ＸＭＬ）と呼ばれる二つの標準的なインタフェース（ＡＰＩ：  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）規格が定められている。
【０００９】
ＳＡＸは、メモリ消費が小さく、一般に高速だが、時系列出力で、参照するだけの簡単な処理に向くという特徴を持つ。
一方、ＤＯＭは、一般に低速で、メモリ消費が大きいが、文書の要素を階層的なツリー状に展開するため、複雑な処理内容でもプログラムが組み易いという特徴を持つ。ＸＭＬ文書の更新には主にＤＯＭが使われる。
【００１０】
（３）大容量ＸＭＬ文書の変換
ＸＭＬ文書の形式変換には、ＸＭＬ環境に標準装備されているＸＳＬ変換が用いられる。しかし、ＸＳＬ変換は、ファイルサイズの１０倍程度の大量のメモリを消費するため、５０ＭＢ規模以上の大容量のＸＭＬ文書をメモリ上で直接形式を変換することが困難であり、従来、下記のような対策（ｉ）〜（iii）の方法が採られた。最も手間が少ない方法は対策（ｉ）だが、複雑な構造を持つ文書には対応が難しかった。
【００１１】
（ｉ）ファイルの分割変換：  大容量ＸＭＬ文書の変換には、ファイルを複数個に分割して、変換した後、変換ファイルを連結する方法が考えられた。しかし、複雑なデータ構造を持つＸＭＬ文書の分割は、丁度よい分割位置ごとにする必要があり、手作業に頼らねばならなかった。
【００１２】
（ii）ストリーミング処理による変換：（ａ）標準ＡＰＩ  ＳＡＸ（Ｓｉｍｏｐｌｅ  ＡＰＩ  ｆｏｒ  ＸＭＬ）向けに変換プログラムを書く。これは個別に新たなプログラミングが必要になる。（ｂ）ＳＴＸ（Ｓｔｅａｍｉｎｇ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ  ｆｏｒ  ＸＭＬ）を用いる（たとえば、非特許文献１参照）。（ｂ）の方法は、非標準であり、標準のスタイルシートを特定仕様に合わせて書き直さねばならない。１パスのストリーム処理であるため、変換のデータ操作が制約を受ける欠点がある。
【００１３】
（iii）ＲＤＢの利用：大容量ＸＭＬ文書を一旦、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａ  Ｂａｓｅ）に格納し、ＲＤＢ上で処理後、変換ＸＭＬ文書として取り出す。この方法は、ＲＤＢ操作を必要とし、新たにプログラムも作成する必要であり、非常に手間が掛かる。
【００１４】
ＸＭＬは、柔軟なデータ表現形式である反面、データ処理時に、大量メモリを消費する欠点がある。
この対策として、特許文献１には、ＸＭＬ文書をＤＯＭで処理する場合において、解析された要素をノードとする部分木をメモリ上に展開するとともに、その過程で、既定の停止条件になったことを契機として不要なノードを削除することで、メモリ不足に陥ることなく、解析処理を継続させようとする技術が開示されている。
【００１５】
しかし、この特許文献１の場合には、ＤＯＭ自体の動作仕様を変更する必要があるとともに、処理内容によって個別に停止条件を決定する必要があり、汎用性に欠ける。
【非特許文献１】“Streaming Transformations for XML (STX) Version 1.0”［２００５年１２月８日検索］、インターネット＜http://stx.sourceforge.net/＞
【特許文献１】特開２００５−１１１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の目的は、ユーザの介入を必要とすることなく、ＸＭＬ文書等の構造化文書のデータ処理に必要なリソースを軽減することが可能な技術を提供することにある。
本発明の他の目的は、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のＸＭＬ文書等の構造化文書を自動的に変換処理することが可能な技術を提供することにある。
【００１７】
本発明の他の目的は、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のＸＭＬ文書等の構造化文書を、汎用的な変換技術を用いて変換処理することが可能な技術を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の第１の観点は、第１構造化文書に含まれる情報を複数の第２構造化文書に分割する分割プログラムであって、
分割順序に対応した固有名を有する個々の前記第２構造化文書に前記第１構造化文書の前記情報を先頭側から既定量だけ順に複写する第１処理と、
個々の前記第２構造化文書が前記第１構造化文書と同じ階層構造を持つように開始タグおよび／または終了タグを前記ファイルに付加する第２処理と、
をコンピュータに実行させる分割プログラムを提供する。
【００１９】
本発明の第２の観点は、第１の観点に記載の分割プログラムにおいて、
さらに、個々の前記第２構造化文書に付加された前記開始タグおよび／または終了タグを識別するための識別タグを付加する第３処理を前記コンピュータに実行させる分割プログラムを提供する。
【００２０】
本発明の第３の観点は、第１の観点に記載の分割プログラムにおいて、
前記第１および第２構造化文書は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書である分割プログラムを提供する。
【００２１】
本発明の第４の観点は、共通の階層構造を有する複数の第１構造化文書の各々から、連結順序を示すように個々の当該第１構造化文書に付与された固有名に基づく順序で情報を読み取る第１処理と、
前記情報に含まれる冗長な開始タグおよび／または終了タグを除去して、前記第１構造化文書と同一の階層構造を有する第２構造化文書に併合する第２処理と、
をコンピュータに実行させる連結プログラムを提供する。
【００２２】
本発明の第５の観点は、第４の観点に記載の連結プログラムにおいて、
前記第２処理では、冗長な前記開始タグおよび／または終了タグを識別するために個々の前記第１構造化文書に付加された識別タグに基づいて、当該冗長な前記開始タグおよび／または終了タグを識別して除去する連結プログラムを提供する。
【００２３】
本発明の第６の観点は、第４の観点に記載の連結プログラムにおいて、
前記第１および第２構造化文書はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書である連結プログラムを提供する。
【００２４】
本発明の第７の観点は、構造化文書の書式を変換する情報処理方法であって、
変換前の第１構造化文書の情報を先頭側から既定量だけ順に第１記憶手段に複写する第１ステップと、
前記第１記憶手段に複写された前記情報が完結した一つの第２構造化文書となるように開始タグおよび／または終了タグと、当該開始タグおよび／または終了タグを識別するための識別タグとを付加する第２ステップと、
前記第１記憶手段に構成された前記第２構造化文書を目的の書式に変換して第３構造化文書として第２記憶手段に出力する第３ステップと、
前記第２記憶手段に保持された前記第３構造化文書から、前記第２ステップで付加された前記開始タグおよび／または終了タグと前記識別タグとを除去して、第４構造化文書に併合する第４ステップと、
を含む情報処理方法を提供する。
【００２５】
本発明の第８の観点は、第７の観点に記載の情報処理方法において、
前記第３ステップでは、前記第２構造化文書に含まれる複数の要素を、ＣＳＶ（Comma Separated Value）形式で羅列して一つに要素にまとめるＣＳＶ圧縮変換を行う情報処理方法を提供する。
【００２６】
本発明の第９の観点は、第７の観点に記載の情報処理方法において、
前記構造化文書はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書である情報処理方法を提供する。
本発明では、たとえば、大容量ＸＭＬ文書を分割変換するときに、ストリーム型のＡＰＩによりＸＭＬファイルを読み取って、指定したサイズごとの複数個に分割し、分割したファイルに、併合時に分割順序が分かるように、ファイル名に一連番号を付ける。
【００２７】
そして、各分割ファイルがＸＭＬ文書になるように、分割処理中に現在の階層を覚えておき、任意の分割位置において、階層の深さに合わせて「開始タグ」と「終了タグ」を付加するとともに、開始・終了タグの付加したことを識別する「識別用タグ」を挿入するようにするものである。
【００２８】
これにより、分割ファイルを変換後、ストリーム型のＡＰＩによりファイル名の順に合併して書き出し、分割の都合で付加された開始タグ、終了タグを削除して、元のＸＭＬ文書の形式変換文書を再現することができる。分割ファイルは、分割前ファイルと階層位置が同じになるので、ＸＳＬＴスタイルシートを変更せずに用いることができる。
【００２９】
従来は、大容量ＸＭＬ文書は、主にＲＤＢに格納して処理されるため、大容量ＸＭＬ文書の変換は、上述の対策（iii）の方法が多く採られる。今後の流れとして、メモリが安価になるにつれて、ＸＭＬの長所を十分に引き出すため、主記憶上でデータ処理するやり方が増えると予想する。その場合、標準規格に基づいて、大容量ＸＭＬ文書が変換できることが望まれる。
【００３０】
本発明は、入力されるＸＭＬ文書を分割して変換処理に供するため、標準のＸＳＬ変換を用いて、大きさによらず複雑な構造のＸＭＬ文書の自動変換が行える利点がある。分割時、連結時の大容量のＸＭＬ文書をストリーム型のＡＰＩを用いて、読み書きするため、大きな主記憶容量を必要としないで実行することができる。
【００３１】
すなわち、本発明によれば、複雑な構造のＸＭＬ文書に対して、自動的に分割および変換処理を行える。今後、増えると予想される大容量ＸＭＬ文書の主記憶上での変換処理が、標準のＸＭＬ変換を用いて行える。
【００３２】
ＸＭＬ文書は、その特徴によって、次の２種類の型に大きく分類される。
一つはデータ型ＸＭＬ文書と呼ばれ、伝票、予定表など、タグ数が多く、要素内容の短いものである。
【００３３】
他の一つは文書型ＸＭＬ文書と呼ばれ、雑誌、マニュアル、辞典など、要素内容が長い文章になるものである。
本発明は、たとえば、データ型ＸＭＬ文書を対象にしてＡＰＩの簡単化を図ることができる。
【００３４】
本発明は、たとえば、データ型ＸＭＬ文書を対象にし、特に、レコード形式で表され、データベースのように扱われるＸＭＬ文書を対象にすることができる。
これによって、主記憶の容量を増大させることなく、たとえば、大容量ＸＭＬ文書におけるレコード単位の変換を、標準のＸＳＬＴスタイルシートを用いて変換ができるようになる。
【発明の効果】
【００３５】
本発明によれば、ユーザの介入を必要とすることなく、ＸＭＬ文書等の構造化文書のデータ処理に必要なリソースを軽減することが可能な技術を提供することにある。
また、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のＸＭＬ文書等の構造化文書を、自動的に変換処理することが可能となる。
【００３６】
また、必要以上に大きなメモリ資源を必要とすることなく、複雑なデータ構造を持つ大容量のＸＭＬ文書等の構造化文書を、汎用的な変換技術を用いて変換処理することが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図１は、本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例を示す概念図である。
【００３８】
図２は、本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例をより具体的に例示した概念図である。
図３は、本発明の実施の形態の分割プログラムおよび連結プログラム、情報処理方法を実施する情報処理装置の構成の一例を示す概念図である。
【００３９】
まず、図３を参照して、本実施の形態の情報処理装置１０の構成例について説明する。
本実施の形態の情報処理装置１０は、中央処理装置１１、主記憶１２、外部記憶装置１３、ディスプレイ１４、情報入力装置１５、ネットワークインタフェース１６、を含んでいる。
【００４０】
中央処理装置１１は、たとえばマイクロプロセッサ等で構成され、主記憶１２に実装されたプログラムを実行することで所望の情報処理を行う。
主記憶１２は、たとえば半導体メモリで構成され、中央処理装置１１が実行するソフトウェアやデータが格納される。
【００４１】
本実施の形態の場合、主記憶１２には、オペレーティングシステム２１、ストリーミング型パーサプログラム２２、分割プログラム１０１、ＸＳＬ変換プロセッサ１１０、連結プログラム２０１、等のソフトウェアが実装されている。
【００４２】
中央処理装置１１はオペレーティングシステム２１を実行することで、情報処理装置１０の全体の動作を制御する。
ストリーミング型パーサプログラム２２、分割プログラム１０１、ＸＳＬ変換プロセッサ１１０、連結プログラム２０１は、オペレーティングシステム２１の配下で稼働するアプリケーションプログラムである。
【００４３】
外部記憶装置１３は、不揮発性の記憶媒体で構成される記憶装置からなる。
本実施の形態の場合、この外部記憶装置１３には、システムフォルダ２０、大容量ＸＭＬ文書１００、併合ＸＭＬ文書２００、フォルダ１０２、フォルダ２０２、スタイルシート１１０ａ、が格納されている。
【００４４】
システムフォルダ２０には、上述のオペレーティングシステム２１、ストリーミング型パーサプログラム２２、分割プログラム１０１、ＸＳＬ変換プロセッサ１１０、連結プログラム２０１、逐次分割変換プログラム４００等のソフトウェアが格納されており、必要に応じて主記憶１２に読み込まれて実行される。
【００４５】
ストリーミング型パーサプログラム２２は、たとえば、ＳＡＸ（Ｓｉｍｐｌｅ  ＡＰＩ  ｆｏｒ  ＸＭＬ）等のイベント駆動型のＸＭＬパーサである。
分割プログラム１０１は、ストリーミング型パーサプログラム２２を介して構造解析を行いつつ大容量ＸＭＬ文書１００を読み込んで複数の小容量ＸＭＬ文書１０２ａに分割する処理を行う。
【００４６】
分割プログラム１０１は、入力される大容量ＸＭＬ文書１００のタグ情報を、先入れ（ｐｕｓｈｄｏｗｎ）／後出し（ｐｏｐ−ｕｐ）方式で一時的に記憶するためのスタック領域１０１ａを有する。
【００４７】
ＸＳＬ変換プロセッサ１１０は、個々の小容量ＸＭＬ文書１０２ａに対して、ＸＳＬＴ(Extensible Stylesheet Language Transformations)で記述されたスタイルシート１１０ａに定義された変換処理を行い、変換結果を、対応した複数の小容量ＸＭＬ文書２０２ａの各々に出力する。
【００４８】
連結プログラム２０１は、複数の小容量ＸＭＬ文書２０２ａを併合して併合ＸＭＬ文書２００を生成する処理を行う。
ディスプレイ１４は、情報の可視化表示を行う。
【００４９】
情報入力装置１５は、たとえばキーボードやマウス等の情報入力機器からなり、ユーザと情報処理装置１０との間の情報入力インタフェースを提供する。本実施の形態の場合には、後述の分割制御情報１０３の入力に用いられる。
【００５０】
ネットワークインタフェース１６は、情報処理装置１０と外部との間における情報通信を行うための通信インタフェースを提供する。
外部記憶装置１３に格納されている上述の情報は、ネットワークインタフェース１６を介して外部の図示しないサーバ装置や記憶装置に配置して情報処理装置１０からアクセスしてもよい。
【００５１】
図１に、大容量ＸＭＬ文書を分割して変換する本実施の形態の情報処理方法の全体のプロセスを示す。
図１に示すように、大容量ＸＭＬ文書１００を入力し、分割プログラム１０１を用いて、小容量ＸＭＬ文書１０２ａに分割する。分割した複数の小容量ＸＭＬ文書１０２ａには連番のファイル名を付して、フォルダ１０２に格納する。
【００５２】
次に、このフォルダ１０２内の小容量ＸＭＬ文書１０２ａを１個づつ取り出して、ＸＳＬＴ（Ｅｘｔｅｎｓｉｂｌｅ  Ｓｔｙｌｅｓｈｅｅｔ  Ｌａｎｇｕａｇｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ）スタイルシート１１０ａを用いてＸＳＬ変換プロセッサ１１０でＸＳＬ変換を行う。変換した複数の小容量ＸＭＬ文書２０２ａは、変換前の対応する小容量ＸＭＬ文書１０２ａと同じ連番のファイル名で、フォルダ２０２に格納する。
【００５３】
次に、このフォルダ２０２内のＸＭＬ文書を１個づつ取り出して、連結プログラム２０１を用いて、連結し、結果の併合ＸＭＬ文書２００を得る。
図２に、簡単な１階層の大容量ＸＭＬ文書の場合の分割変換の例を示す。
【００５４】
この図２の処理対象の大容量ＸＭＬ文書１００（ｌｉｓｔ．ｘｍｌ）は社員名簿であり、ルート要素「社員名簿」の下に、レコード１００ａとして、各社員のレコード要素「社員」が並んでおり、簡単なデータ構造をしている。
【００５５】
分割プログラム１０１には、レコード名と、１ファイルごとのレコード数を指定して、小容量ＸＭＬ文書１０２ａへの分割を行う。この場合、分割は、レコード要素を、分割制御情報１０３にてユーザから指定された個数だけ取り出して、小容量ＸＭＬ文書１０２ａにルート要素「社員名簿」の追加開始タグ５１、追加終了タグ５２を付ければよい。
【００５６】
すなわち、最初の小容量ＸＭＬ文書１０２ａには、ルート要素「社員名簿」の追加終了タグ５２のみが末尾に付加される。
最後の小容量ＸＭＬ文書１０２ａは、ルート要素「社員名簿」の追加開始タグ５１のみが文書の先頭に付加される。
【００５７】
中間の小容量ＸＭＬ文書１０２ａでは、文書の最初と最後に、ルート要素「社員名簿」の追加開始タグ５１および追加終了タグ５２がそれぞれ付加される。
なお、連結プログラム２０１では、上述と逆の方法で、分割制御情報１０３にて指定されたレコード１００ａの数に基づいて、個々の小容量ＸＭＬ文書２０２ａ内の冗長な追加開始タグ５１、追加終了タグ５２を除去することで、一つの併合ＸＭＬ文書２００に併合できる。
【００５８】
これにより、個々の小容量ＸＭＬ文書１０２ａは、完結した一つのＸＭＬ文書となり、ＸＳＬ変換プロセッサ１１０で処理することができる。
ＸＳＬ変換プロセッサ１１０では、入力される小容量ＸＭＬ文書１０２ａの全体を主記憶１２の作業領域に展開するが、小容量ＸＭＬ文書１０２ａ自体が小容量であるため、作業領域のメモリ容量は小さくて済むので、主記憶１２を必要以上に大きくする必要がない。
【００５９】
図２のＸＳＬ変換プロセッサ１１０による変換例では、ＣＳＶ圧縮（compaction）変換を実行する例が示されている。すなわち、要素「社員」の階層内に含まれる「内線」、「Ｆａｘ」、「Ｍａｉｌ」の各要素のデータを、カンマ“，”を区切りとして羅列し、新たに設けられた要素「連絡先」に集約することで、各要素の開始／終了タグの省略によってデータ量を削減している。
【００６０】
次に、本実施の形態の変形例として、より複雑な階層構造を持つＸＭＬ文書に適用する場合を説明する。なお、変換処理は特に図示しないが、たとえば、個々のレコード１００ａとしてのレコード要素「得意先」「商品」「件」の一部に対してＣＳＶ圧縮処理を行うものとする。
【００６１】
図４は、階層と複数のレコード要素を持つＸＭＬ文書に対して、本実施の形態の分割変換技術を適用した例を示す概念図である。
図５は、本実施の形態における大容量ＸＭＬ文書の分割処理の一例を示すフローチャートである。
【００６２】
図６は、本実施の形態における分割された小容量ＸＭＬ文書の連結処理の一例を示すフローチャートである。
図４において対象とする大容量ＸＭＬ文書１００（ｌｉｓｔ２．ｘｍｌ）は売上実績のデータである。ルート要素「売上実績」の下に「マスタ」と「売上」要素を持ち、「マスタ」の下にはさらに「得意先マスタ」と「商品マスタ」の階層を持つ。
【００６３】
そして、レコード要素として、「得意先マスタ」中の「得意先」、「商品マスタ」中の「商品」、「売上」中の「件」の３種類と、分割する単位のレコード数が分割制御情報１０３として外部から指定される。
【００６４】
実際には、大容量ＸＭＬ文書１００は、数万〜数十万件のレコード１００ａを持ち、小容量の文書は百〜千レコード単位に分割される。図４の右側に示した小容量ＸＭＬ文書１０２ａでは、見易くするため、レコード１００ａを２個ごとに分割した場合を示した。
【００６５】
分割プログラム１０１に対しては、分割制御情報１０３により、レコード名として「得意先」「商品」「件」を与え、１ファイルごとのレコード数として「２」を指定して、小容量のＸＭＬ文書への分割を行う。
【００６６】
最初の小容量ＸＭＬ文書１０２ａ（００１．ｘｍｌ）は、大容量文書を先頭から見ていって指定したレコード１００ａが２個出てくる処までコピーする。そして、その後に、そこまでの階層の、本来の開始タグ４１（＜売上実績＞、＜マスタ＞、＜得意先マスタ＞）に対応した追加終了タグ５２（＜／得意先マスタ＞、＜／マスタ＞、＜／売上実績＞）を付加するとともに、それら追加終了タグ５２の先頭に識別用エンド・タグ６２（＜Ａｄｄｅｄ＿ｅｎｄ−ｔａｇ／＞）を付加して、元の大容量ＸＭＬ文書１００と同一の階層構造を有する、完結した一つのＸＭＬ文書とする。
【００６７】
２番目の小容量ＸＭＬ文書１０２ａ（２．ｘｍｌ）は、先のＸＭＬ文書の階層のタグを開始タグ（追加開始タグ５１）として付加し、その後で、それら追加開始タグ５１に識別用スタート・タグ６１（＜Ａｄｄｅｄ＿ｓｔａｒｔ−ｔａｇ／＞）を付加する。
【００６８】
次に、大容量ＸＭＬ文書１００の中断した部分から、指定したレコード数のところまでコピーする。そして、１番目のファイルと同様に、識別用エンド・タグ６２と、そこまでの階層の終了タグ（追加終了タグ５２）を付加して、完結したＸＭＬ文書とする。
【００６９】
３番目の小容量ＸＭＬ文書１０２ａから最終の小容量ＸＭＬ文書１０２ａの手前までは、この２番目と文書と同様の操作を繰り返す。
最終の小容量ＸＭＬ文書１０２ａでは、２番目の小容量ＸＭＬ文書１０２ａの開始と同様に、階層の開始タグ（追加開始タグ５１）と識別用スタート・タグ６１を付加して作成処理を開始し、指定したレコード数未満をコピーすることになるので、階層の終了タグ（終了タグ４２）もそのままコピーして終了する。
【００７０】
上述の分割操作によって、個々の小容量ＸＭＬ文書１０２ａは、元の大容量ＸＭＬ文書１００と同じ階層を持ち、指定した数のレコード１００ａを持つように分割される。これによって、個々の小容量ＸＭＬ文書１０２ａは、ＸＳＬＴのスタイルシート１１０ａを何ら変更せずに変換することができる。
【００７１】
連結操作は、分割した文書（この場合、変換後の小容量ＸＭＬ文書２０２ａ）から、識別用スタート・タグ６１、識別用エンド・タグ６２を探しながらコピーし、識別用エンド・タグ６２があれば、それ以降の文書の末尾までの階層の追加終了タグ５２を捨てる。この場合、連結処理に際して、分割制御情報１０３の指定は不要である。
【００７２】
次の文書は先頭から識別用スタート・タグ６１までの階層の追加開始タグ５１を捨てて、次から識別用エンド・タグ６２（＜Ａｄｄｅｄ＿ｅｎｄ−ｔａｇ＞）の手前までをコピーするという操作を繰り返す。これによって、分割時に付加された冗長なタグ（追加開始タグ５１、追加終了タグ５２）は全て削除され、元の大容量ＸＭＬ文書１００の階層が復元される。
【００７３】
図５のフローチャートを参照して、本実施の形態の分割プログラム１０１による分割処理をより詳細に説明する。
まず、ステップＳ６１０で、分割制御情報１０３として、対象とするレコード１００ａの要素名と、ファイル分割単位のレコード数を情報入力装置１５やファイルから入力する。
【００７４】
次に、ステップＳ６１１で、入力ＸＭＬファイル（大容量ＸＭＬ文書１００）をオープンするとともに、分割する連番のファイル名の最初の出力ファイル（小容量ＸＭＬ文書１０２ａ）をオープンする。
【００７５】
そして、ステップＳ６１１ａで、入力される大容量ＸＭＬ文書１００のルートタグを読み取り、ルート要素名を記憶する。
ステップＳ６１２で、大容量ＸＭＬ文書１００の内容を１行づつ読み取る。
【００７６】
ステップＳ６１３、ステップＳ６１８で、読み取った内容が開始タグで、かつ対象とするレコード１００ａでないならば、ステップＳ６２０で、タグ名をＳｔａｃｋ（スタック領域１０１ａ）にｐｕｓｈｄｏｗｎして蓄えた後、その開始タグを小容量ＸＭＬ文書１０２ａにコピーした後、ステップＳ６１２に戻る。
【００７７】
ステップＳ６１３、ステップＳ６１８で、読み取った内容が開始タグで、かつ対象とするレコード１００ａならば、ステップＳ６２１でレコード要素とレコード内の要素を全てコピーする。
【００７８】
そして、ステップＳ６２２でレコード数を計数して、ステップＳ６２３で、計数値が、分割制御情報１０３として入力したレコード数に達していると判定されれば、ステップＳ６２４で識別用の識別用エンド・タグ６２（＜Ａｄｄｅｄ＿ｅｎｄ−ｔａｇ／＞）を付加した後、Ｓｔａｃｋしてある階層のタグをルート要素まで終了タグ４２として書き出して、出力ファイルである小容量ＸＭＬ文書１０２ａをクローズする。
【００７９】
次に、ステップＳ６２５で新たな連番のファイル名で出力ファイル（小容量ＸＭＬ文書１０２ａ）をオープンし、ルート要素からＳｔａｃｋしてある現在の階層のタグまでを開始タグ（追加開始タグ５１）として書き出した後、識別用スタート・タグ６１（＜Ａｄｄｅｄ＿ｓｔａｒｔ−ｔａｇ／＞を付加する。そして、ステップＳ６１２へと戻る。もし、ステップＳ６２３で計数しているレコード数が、入力したレコード数に達していない場合は、そのままステップＳ６１２に戻る。
【００８０】
ステップＳ６１３で開始タグでないと判定され、ステップＳ６１４で終了タグを検出した場合は、ステップＳ６１５でタグ名をＳｔａｃｋした階層タグからｐｏｐ−ｕｐして一つ除いた後、その終了タグを出力ファイルにコピーする。
【００８１】
次に、ステップＳ６１６で、その終了タグがルートタグであった場合は、ステップＳ６１７で、出力ファイルをクローズして処理を終了する。もし、その終了タグがルートタグでない場合は、ステップＳ６１２に戻る。
【００８２】
ステップＳ６１４で、読取った内容が開始タグでも終了タグでもなく、要素内容の場合は、ステップＳ６１９で、その内容を単に出力ファイルにコピーした後、ステップＳ６１２に戻る。
【００８３】
こうして分割された複数の小容量ＸＭＬ文書１０２ａは、元の大容量ＸＭＬ文書１００と同一の階層構造を有するので、たとえば、スタイルシート１１０ａを用いたＸＳＬ変換プロセッサ１１０によるＣＳＶ圧縮等の変換処理において、大容量ＸＭＬ文書１００の階層構造に基づいて記述されたスタイルシート１１０ａになんら変更を加えることなく、変換処理を実行することが可能である。
【００８４】
なお、この変換処理においては、変換の前後で、識別用スタート・タグ６１、識別用エンド・タグ６２は、小容量ＸＭＬ文書１０２ａから変換後の小容量ＸＭＬ文書２０２ａにそのまま承継されている。
【００８５】
図６は、本実施の形態の連結プログラム２０１の作用の一例を示すフローチャートである。なお、この図６の場合、識別用スタート・タグ６１、識別用エンド・タグ６２を用いて冗長な追加開始タグ５１、追加終了タグ５２を認識するので、分割制御情報１０３の指定は不要である。
【００８６】
まず、ステップＳ６３０で、最も若い連番のファイル名の分割ファイル（変換後の小容量ＸＭＬ文書２０２ａ）からオープンするとともに、連結出力先の出力ファイル（併合ＸＭＬ文書２００）をオープンする。
【００８７】
ステップＳ６３１で、入力ファイル（小容量ＸＭＬ文書２０２ａ）の内容を一つ読取る。ステップＳ６３２で、もし、最初の入力ファイルの場合、ステップＳ６３４に飛び、識別用エンド・タグ６２が現れるまで、ステップＳ６３５で、読取った内容を出力ファイルにコピーする。
【００８８】
ステップＳ６３４で、識別用エンド・タグ６２が現れた場合、ステップＳ６３９で入力ファイルをクローズし、ステップＳ６４１で、次の入力ファイルをオープンしてステップＳ６３１に戻る。
【００８９】
次に、２番目以降の入力ファイルの場合は、ステップＳ６３３で、識別用スタート・タグ６１が既に現れているかを調べる。識別用スタート・タグ６１が現れていない場合は、ステップＳ６３７で、読取った内容が識別用スタート・タグ６１かを調べ、もしそうならば、ステップＳ６３６で識別用スタート・タグ６１が現れたことを記憶し、ステップＳ６３１に戻る。
【００９０】
もし、ステップＳ６３３で、まだ識別用スタート・タグ６１が現れておらず、ステップＳ６３７で、読取った内容が識別用スタート・タグ６１でもなければ、ステップＳ６３８で、読取った内容を読み飛ばし、ステップＳ６３１に戻る。
【００９１】
ステップＳ６３３で、識別用スタート・タグ６１が既に現れていて、ステップＳ６３４で、読取った内容が識別用スタート・タグ６１でなければ、ステップＳ６３５で、読取った内容を出力ファイルにコピーした後、ステップＳ６４０で、入力ファイルのファイルエンドを検出したか判定する。
【００９２】
ステップＳ６４０で、入力ファイルのファイルエンドを検出しない場合、ステップＳ６３１に戻る。
ステップＳ６４０で、入力ファイルのファイルエンドを検出した場合、ステップＳ６４２で、入力ファイルをクローズして終了する。
【００９３】
ステップＳ６３４で識別用スタート・タグ６１を検出した場合は、一番目のファイルのときと同様である。
このように、図４、図５、図６に例示した変形例では、大容量ＸＭＬ文書１００を複数の小容量ＸＭＬ文書１０２ａに分割する際に、分割位置の前後にタグ階層の深さに合わせて追加開始タグ５１および／または追加終了タグ５２を付加する。このため、比較的複雑な構造を持つ大容量ＸＭＬ文書１００の場合にも、的確かつ自動的に小容量ＸＭＬ文書１０２ａへの分割を行うことができる。
【００９４】
また、複数の小容量ＸＭＬ文書１０２ａを変換処理して得られた小容量ＸＭＬ文書２０２ａから、併合ＸＭＬ文書２００への併合に際しては、識別用スタート・タグ６１および／または識別用エンド・タグ６２を目印にして、冗長な追加開始タグ５１および／または追加終了タグ５２を除去することで、正確に完結した併合ＸＭＬ文書２００を構成することができる。
【００９５】
また、複数の小容量ＸＭＬ文書１０２ａに変換処理を施して小容量ＸＭＬ文書２０２ａを生成する際にＸＳＬ変換プロセッサ１１０が消費する主記憶１２の記憶資源は、個々の小容量ＸＭＬ文書１０２ａに応じた小容量で済む。このため、大容量ＸＭＬ文書１００に合わせて主記憶１２の容量を大きくする必要はない。
【００９６】
すなわち、任意のサイズの大容量ＸＭＬ文書１００に対して、主記憶１２の容量不足を懸念することなく、自動的に確実に変換処理を行うことができる。
今まで述べてきた実施の形態は、大容量ＸＭＬ文書１００を一括して複数の小容量ＸＭＬ文書１０２ａに分割し、一括して変換して複数の小容量ＸＭＬ文書２０２ａの各々に出力し、小容量ＸＭＬ文書２０２ａを、一括して併合ＸＭＬ文書２００に出力するものであった。これは一括分割変換となる。
【００９７】
これに対して図７のように逐次分割変換も、また同様にして行うことができる。この逐次分割変換の場合は、大容量ＸＭＬ文書１００から所定のレコード数の小容量文書（逐次分割ＸＭＬ文書４０１ａ）を主記憶１２上の分割バッファ４１１上に切り出して、その分割文書を変換して逐次変換ＸＭＬ文書４０３ａに出力する。この変換結果を併合ＸＭＬ文書２００に継ぎ足す。
【００９８】
この操作を大容量ＸＭＬ文書１００の先頭から最後まで逐次行えば、複数の小容量ＸＭＬ文書１０２ａ、小容量ＸＭＬ文書２０２ａの格納記憶領域を外部記憶装置１３に設けることなく、小容量ＸＭＬ文書１０２ａの一つ分の分割文書と、変換後の小容量ＸＭＬ文書２０２ａの各々の一つ分の変換分割文書の記憶領域（分割バッファ４１１、連結バッファ４３１）を、主記憶１２上に確保するだけで、変換済みの複数の小容量ＸＭＬ文書２０２ａが合併した状態の併合ＸＭＬ文書２００を作り出すことができる。
【００９９】
このような逐次分割変換を行う逐次分割変換プログラム４００は、分割部４１０、ＸＳＬ変換部４２０、連結部４３０、分割バッファ４１１、連結バッファ４３１を含む。
分割部４１０は、上述の分割プログラム１０１と同様の処理を行うが、出力部分が若干異なる。
【０１００】
すなわち、分割部４１０の場合には、一つの逐次分割ＸＭＬ文書４０１ａが分割バッファ４１１に構築された時点で、ＸＳＬ変換部４２０に対して変換開始を指示する機能と、ＸＳＬ変換部４２０からの変換終了の通知を契機として、次の逐次分割ＸＭＬ文書４０１ａを分割バッファ４１１上に構築する機能を備えている。
【０１０１】
連結部４３０も、入力側の機能が連結プログラム２０１と若干異なる。すなわち、ＸＳＬ変換部４２０からの変換完了通知を契機として、連結バッファ４３１上の逐次変換ＸＭＬ文書４０３ａを入力して併合ＸＭＬ文書２００に追加出力する機能を有する。
【０１０２】
ＸＳＬ変換部４２０は、ＸＳＬＴ(Extensible Stylesheet Language Transformations)で記述されたスタイルシート４０２にて定義された変換処理を、分割バッファ４１１から読み出される逐次分割ＸＭＬ文書４０１ａに対して実行し、連結バッファ４３１上に、逐次変換ＸＭＬ文書４０３ａとして出力する。このスタイルシート４０２による変換処理としては、一例としてＣＳＶ圧縮が考えられる。
【０１０３】
なお、上述の分割プログラム１０１、ＸＳＬ変換プロセッサ１１０、連結プログラム２０１が標準入出力機能を有し、オペレーティングシステム２１がマルチタスクオペレーティングシステムの場合には、逐次分割変換プログラム４００をシェルスクリプトで実現することもできる。
【０１０４】
すなわち、分割プログラム１０１（分割部４１０）の標準入力として、ストリーミング型パーサプログラム２２を介して大容量ＸＭＬ文書１００を割り当て、標準出力を、次段のＸＳＬ変換プロセッサ１１０（ＸＳＬ変換部４２０）の標準入力に接続する。また、ＸＳＬ変換プロセッサ１１０の標準出力を次段の連結プログラム２０１（連結部４３０）の標準入力に接続し、連結プログラム２０１の標準出力を、ストリーミング型パーサプログラム２２を介して併合ＸＭＬ文書２００に割り当てる。
【０１０５】
この場合には、分割バッファ４１１、連結バッファ４３１は、入力したレコード数に応じたサイズを割り当てる。
以下、上述の逐次分割変換の作用について説明する。図８は、本実施の形態の逐次分割変換の作用一例を示すフローチャートである。
【０１０６】
まず、ステップＳ７００で、分割制御情報１０３として、対象とするレコード１００ａの要素名と、ファイル分割単位のレコード数を、情報入力装置１５やファイルから入力する。
【０１０７】
次に、ステップＳ７０１で、入力ＸＭＬファイル（大容量ＸＭＬ文書１００）をオープンするとともに、分割する連番のファイル名の最初の出力ファイル（併合ＸＭＬ文書２００）をオープンする。
【０１０８】
そして、ステップＳ７０２で、逐次分割ＸＭＬ文書４０１ａの格納領域を分割バッファ４１１に確保するとともに、入力される大容量ＸＭＬ文書１００のルートタグを読み取り、ルート要素名を記憶する。
【０１０９】
ステップＳ７０３で、大容量ＸＭＬ文書１００の内容を１行づつ読み取る。
ステップＳ７０４、ステップＳ７０９で、読み取った内容が開始タグで対象とするレコード１００ａならば、ステップＳ７１２でレコード要素とレコード内の要素を全てコピーする。
【０１１０】
そして、ステップＳ７１３でレコード数を計数して、ステップＳ７１４で、計数値が、分割制御情報１０３として入力したレコード数に達していると判定されれば、ステップＳ７１５で識別用の識別用エンド・タグ６２（＜Ａｄｄｅｄ＿ｅｎｄ−ｔａｇ／＞）を付加した後、Ｓｔａｃｋしてある階層のタグをルート要素まで終了タグ４２として書き出して、出力ファイルである逐次分割ＸＭＬ文書４０１ａをクローズする。
【０１１１】
次に、ステップＳ７２０で、作成された逐次分割ＸＭＬ文書４０１ａをＸＳＬ変換部４２０にて変換し、連結バッファ４３１上に逐次変換ＸＭＬ文書４０３ａを生成する。
もし、ステップＳ７１４で計数しているレコード数が、入力したレコード数に達していない場合は、そのままステップＳ７０３に戻る。
【０１１２】
上述のステップＳ７０９で、読み取った内容が開始タグで対象とするレコード１００ａでないならば、ステップＳ７１１で、タグ名をＳｔａｃｋにｐｕｓｈｄｏｗｎして蓄えた後、その開始タグを逐次分割ＸＭＬ文書４０１ａにコピーした後、ステップＳ７０３に戻る。
【０１１３】
ステップＳ７０４で開始タグでないと判定され、ステップＳ７０５で終了タグを検出した場合は、ステップＳ７０６で、タグ名をＳｔａｃｋした階層タグからｐｏｐ−ｕｐして一つ除いた後、その終了タグを出力ファイルにコピーする。
【０１１４】
次に、ステップＳ７０７で、その終了タグがルートタグであった場合は、ステップＳ７０８で、入力ファイル（大容量ＸＭＬ文書１００）および逐次分割ＸＭＬ文書４０１ａをクローズしてステップＳ７２０を実行する。もし、その終了タグがルートタグでない場合は、ステップＳ７０３に戻る。
【０１１５】
ステップＳ７０４、ステップＳ７０５で、読取った内容が開始タグでも終了タグでもなく、要素内容の場合は、ステップＳ７１０で、その内容を単に出力ファイルにコピーした後、ステップＳ７０３に戻る。
【０１１６】
上述のステップＳ７２０の後、ステップＳ７３０で、入力ファイル（逐次変換ＸＭＬ文書４０３ａ）の内容を一つ読取る。ステップＳ７３１で、もし、最初の入力ファイルの場合、ステップＳ７３３に飛び、識別用エンド・タグ６２が現れるまで、ステップＳ７３４で読取った内容を出力ファイルにコピーする。
【０１１７】
ステップＳ７３３で、識別用エンド・タグ６２が現れた場合、ステップＳ７３８で、逐次分割ＸＭＬ文書４０１ａ、逐次変換ＸＭＬ文書４０３ａを削除し、ステップＳ７３９で、入力ファイル（大容量ＸＭＬ文書１００）がクローズならば、ステップＳ７５０で併合ＸＭＬ文書２００をクローズして終了する。
【０１１８】
ステップＳ７３９で、入力ファイル（大容量ＸＭＬ文書１００）がクローズでないと判定された場合には、ステップＳ７４０で、新たな逐次変換ＸＭＬ文書４０３ａをオープンし、ルート要素からＳｔａｃｋしてある現在の階層のタグまでを追加開始タグ５１として書き出した後、識別用の識別用スタート・タグ６１（＜Ａｄｄｅｄ＿ｓｔａｒｔ−ｔａｇ／＞を付加する。そして、ステップＳ７０３へと戻る。
【０１１９】
次に、上述のステップＳ７３１で２番目（１番目でない）以降の逐次変換ＸＭＬ文書４０３ａと判定された場合は、ステップＳ７３２で、識別用スタート・タグ６１が既に現れているかを調べる。識別用スタート・タグ６１が現れていない場合は、ステップＳ７３６で、読取った内容が識別用スタート・タグ６１かを調べ、もしそうならば、ステップＳ７３５で、識別用スタート・タグ６１が現れたことを記憶し、ステップＳ７３０に戻る。
【０１２０】
もし、ステップＳ７３２で、まだ識別用スタート・タグ６１が現れておらず、ステップＳ７３６で、読取った内容が識別用スタート・タグ６１でもないと判定された場合には、ステップＳ７３７で、読取った内容を読み飛ばし、ステップＳ７３０に戻る。
【０１２１】
ステップＳ７３２で、識別用スタート・タグ６１が既に現れていて、ステップＳ７３３で、読取った内容が識別用スタート・タグ６１でなければ、ステップＳ７３４で、読取った内容を出力ファイルにコピーした後、ステップＳ７３０に戻る。
【０１２２】
このように、逐次分割変換プログラム４００を用いた逐次分割変換の場合には、逐次分割ＸＭＬ文書４０１ａや逐次変換ＸＭＬ文書４０３ａを外部記憶装置１３にファイルとして必ずしも出力する必要はなく、主記憶１２上でデータ処理ができるので、逐次分割変換プログラム４００の構造は比較的複雑になるものの、大容量ＸＭＬ文書１００に対して高速な分割変換を行うことができる。
【０１２３】
すなわち、逐次分割変換の場合には、外部記憶装置１３や主記憶１２の記憶容量を意識することなく、大容量ＸＭＬ文書１００を高速に変換処理して併合ＸＭＬ文書２００に出力することが可能となる。
【０１２４】
以上説明した一括分割変換と逐次分割変換の長所を比較すると次の通りである。
一括分割変換は、分割プログラム１０１、フォルダ１０２等のソフトウェアの構造がシンプルになる。
【０１２５】
小容量ＸＭＬ文書１０２ａ、小容量ＸＭＬ文書２０２ａ等の分割ファイルを一旦、フォルダ１０２、フォルダ２０２に溜めるので、このフォルダ１０２、フォルダ２０２上で、更新・追加・削除等の処理を行うことができる。
【０１２６】
小容量ＸＭＬ文書１０２ａ、小容量ＸＭＬ文書２０２ａ等の各分割ファイルが小容量なので、データ更新処理がやり易い。
レコード１００ａを単位とするソート処理では、大容量ＸＭＬ文書１００上で行うことが必要になるが、この場合は本願発明者によって別に出願済みの発明である「ＸＭＬ  ＣＳＶ圧縮」（特開２００３−２０３０６７号公報、特開２００５−２６７５３１号公報、参照）と、本実施の形態の分割変換を組合せれば、省リソースでソート処理を行うことが可能となる。
【０１２７】
一方、逐次分割変換の場合には、上述のように、分割文書や変換文書を外部記憶装置１３のファイルとして必ずしも出力する必要はなく、外部記憶装置１３上でデータ処理ができるので、逐次分割変換プログラム４００の構造は比較的複雑になるものの、大容量ＸＭＬ文書１００の高速な分割変換が可能となる。
【０１２８】
本発明の実施の形態の変形例を以下に述べる。
上述の実施の形態の例では、変換処理としてＣＳＶ圧縮を行う場合、小容量ＸＭＬ文書２０２ａの「社員」のレコード１００ａ内における要素「連絡先」に例示されるように、レコード内で１個のＣＳＶ要素を持つ場合について説明した。これは、ＣＳＶ要素を複数個にした場合も、ＣＳＶ圧縮文書（併合ＸＭＬ文書２００）のヘッダにおいて、その複数個のＣＳＶ要素に格納されている要素名を記述しておき、上述と同様に読み取って２つのデータ用連想配列を用いて、ＡＰＩ上で管理することができる。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【０１２９】
（付記１）
第１構造化文書に含まれる情報を複数の第２構造化文書に分割する分割プログラムであって、
分割順序に対応した固有名を有する個々の前記第２構造化文書に前記第１構造化文書の前記情報を先頭側から既定量だけ順に複写する第１処理と、
個々の前記第２構造化文書が前記第１構造化文書と同じ階層構造を持つように開始タグおよび／または終了タグを前記ファイルに付加する第２処理と、
をコンピュータに実行させることを特徴とする分割プログラム。
（付記２）
付記１記載の分割プログラムにおいて、
さらに、個々の前記第２構造化文書に付加された前記開始タグおよび／または終了タグを識別するための識別タグを付加する第３処理を前記コンピュータに実行させることを特徴とする分割プログラム。
（付記３）
付記１記載の分割プログラムにおいて、
前記第１および第２構造化文書は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書であることを特徴とする分割プログラム。
（付記４）
共通の階層構造を有する複数の第１構造化文書の各々から、連結順序を示すように個々の当該第１構造化文書に付与された固有名に基づく順序で情報を読み取る第１処理と、
前記情報に含まれる冗長な開始タグおよび／または終了タグを除去して、前記第１構造化文書と同一の階層構造を有する第２構造化文書に併合する第２処理と、
をコンピュータに実行させることを特徴とする連結プログラム。
（付記５）
付記４記載の連結プログラムにおいて、
前記第２処理では、冗長な前記開始タグおよび／または終了タグを識別するために個々の前記第１構造化文書に付加された識別タグに基づいて、当該冗長な前記開始タグおよび／または終了タグを識別して除去することを特徴とする連結プログラム。
（付記６）
付記４記載の連結プログラムにおいて、
前記第１および第２構造化文書はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書であることを特徴とする連結プログラム。
（付記７）
構造化文書の書式を変換する情報処理方法であって、
変換前の第１構造化文書の情報を先頭側から既定量だけ順に第１記憶手段に複写する第１ステップと、
前記第１記憶手段に複写された前記情報が完結した一つの第２構造化文書となるように開始タグおよび／または終了タグと、当該開始タグおよび／または終了タグを識別するための識別タグとを付加する第２ステップと、
前記第１記憶手段に構成された前記第２構造化文書を目的の書式に変換して第３構造化文書として第２記憶手段に出力する第３ステップと、
前記第２記憶手段に保持された前記第３構造化文書から、前記第２ステップで付加された前記開始タグおよび／または終了タグと前記識別タグとを除去して、第４構造化文書に併合する第４ステップと、
を含むことを特徴とする情報処理方法。
（付記８）
付記７記載の情報処理方法において、
前記第３ステップでは、前記第２構造化文書に含まれる複数の要素を、ＣＳＶ（Comma Separated Value）形式で羅列して一つに要素にまとめるＣＳＶ圧縮変換を行うことを特徴とする情報処理方法。
（付記９）
付記７記載の情報処理方法において、
前記構造化文書はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＸＭＬ文書であることを特徴とする情報処理方法。
【図面の簡単な説明】
【０１３０】
【図１】本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例を示す概念図である。
【図２】本発明の一実施の形態である分割プログラムおよび連結プログラム、情報処理方法の作用の一例をより具体的に例示した概念図である。
【図３】本発明の実施の形態の分割プログラムおよび連結プログラム、情報処理方法を実施する情報処理装置の構成の一例を示す概念図である。
【図４】本発明の一実施の形態である分割変換技術を、階層と複数のレコード要素を持つＸＭＬ文書に対して適用した例を示す概念図である。
【図５】本発明の実施の形態における大容量ＸＭＬ文書の分割処理の一例を示すフローチャートである。
【図６】本発明の実施の形態における分割された小容量ＸＭＬ文書の連結処理の一例を示すフローチャートである。
【図７】本発明の一実施の形態の変形例である逐次分割変換処理の一例を示す概念図である。
【図８】本発明の一実施の形態の変形例である逐次分割変換の作用一例を示すフローチャートである。
【符号の説明】
【０１３１】
１０  情報処理装置
１１  中央処理装置
１２  主記憶
１３  外部記憶装置
１４  ディスプレイ
１５  情報入力装置
１６  ネットワークインタフェース
２０  システムフォルダ
２１  オペレーティングシステム
２２  ストリーミング型パーサプログラム
４１  開始タグ
４２  終了タグ
５１  追加開始タグ
５２  追加終了タグ
６１  識別用スタート・タグ
６２  識別用エンド・タグ
１００  大容量ＸＭＬ文書
１００ａ  レコード
１０１  分割プログラム
１０１ａ  スタック領域
１０２  フォルダ
１０３  分割制御情報
１０２ａ  小容量ＸＭＬ文書
１１０  ＸＳＬ変換プロセッサ
１１０ａ  スタイルシート
２００  併合ＸＭＬ文書
２０１  連結プログラム
２０２  フォルダ
２０２ａ  小容量ＸＭＬ文書
４００  逐次分割変換プログラム
４０１ａ  逐次分割ＸＭＬ文書
４０２  スタイルシート
４０３ａ  逐次変換ＸＭＬ文書
４１０  分割部
４１１  分割バッファ
４２０  ＸＳＬ変換部
４３０  連結部
４３１  連結バッファ
【図１】
2007179492.tif 000003
【図２】
2007179492.tif 000004
【図３】
2007179492.tif 000005
【図４】
2007179492.tif 000006
【図５】
2007179492.tif 000007
【図６】
2007179492.tif 000008
【図７】
2007179492.tif 000009
【図８】
2007179492.tif 000010