(57)【要約】【課題】構造化文書に対する操作に必要となるリソースを軽減し、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方を実現する。【解決手段】処理部が、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに区別するための区別情報を読み込み、所定のタグ名および所定の属性名を付与された、該非キー要素のための新たな要素を作成し、該非キー要素のタグ名を区切り記号を介して繋いで該非キー要素のタグ名を含むタグ名文字列を作成し、該新たな要素において、前記所定の属性名に対応する属性値として記述し、該非キー要素の内容を区切り記号を介して繋いで該非キー要素の内容を含む内容文字列を作成し、該新たな要素の内容として記述し、該キー要素を、変換後の構造化文書においてそのまま記述する。【選択図】図１
2008217809.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書を変換する処理部を有する構造化文書変換装置であって、
該処理部が、
変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに区別するための区別情報を読み込み、
所定のタグ名および所定の属性名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、
該非キー要素のタグ名を区切り記号を介して繋いで該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、
該非キー要素の内容を区切り記号を介して繋いで該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述し、
該区別情報における該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換装置。
【請求項２】
該処理部が、該区別情報を記述するとともに該新たな要素のタグ名を記述した変換仕様文書を読み込み、該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、請求項１記載の構造化文書変換装置。
【請求項３】
構造化文書を変換する処理部を有する構造化文書変換装置であって、
該処理部が、
変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに区別するための区別情報を読み込み、
所定のタグ名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、
該非キー要素の記述中においてタグを表わす記号を実体参照記述によりタグ付けに関連しない実体参照文字列に置き換えた文字列を作成し、該文字列を、該新たな要素の内容として記述し、
該区別情報における該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ(eXtensible Markup Language)等の構造化文書を取り扱うシステムに適用される技術に関し、そのシステムにおいて処理速度を高速化するとともに使用メモリ量を削減すべく、構造化文書のデータ構造や、構造化文書を成す文字列を変換するための技術に関する。
ＸＭＬ文書は、その特徴によって、次の２種類に大きく分類される。一つは、伝票，予定表など，タグ数が多く、要素内容が比較的短い、データ系ＸＭＬ文書である。また、もう一つは、雑誌，マニュアル，辞典など、要素内容が比較的長い文章になる文書系ＸＭＬ文書である。本発明は、前者のデータ系ＸＭＬ文書を処理対象とする場合に用いて好適の技術で、特に、表形式で表わされ、データベースのように扱われるＸＭＬ文書を処理対象とする場合に用いて好適の技術である。
【背景技術】
【０００２】
近年、インターネットを通して、個人，企業，自治体など、あらゆる種類のシステムが相互に通信可能に接続されており、これらのシステムが相互に連携してＷｅｂサービスが提供されたりＥＤＩ（Electronic Data Interchange）やＥＣ（Electronic Commerce）が行なわれたりしつつある。このため、幅広い情報の交換が必要になってきている。このような状況下において、ＸＭＬは、データを構造化する柔軟な表現能力を有し、コンピュータによる処理に適しているので、上記のシステム間のデータ交換や各システムでのデータ処理を行なう際の、共通基盤のフォーマットとして注目されている。
【０００３】
ＸＭＬは、１９８６年ＩＳＯ（International Organization for Standardization）で標準化されたＳＧＭＬ(Standard Generalized Markup Language)をインターネットで活用し易くするために、１９９８年２月にその基本仕様ＸＭＬ1.0としてＷ３Ｃ(World Wide Web Consortium)において策定されたものである。Ｗｅｂページ作成言語であるＨＴＭＬ(HyperText Markup Language)は、タグが固定され、表示に特化されたものとなっており、タグ情報を基にコンピュータで情報を処理したいという要件に対応することができないという問題があった。これに対し、ＸＭＬは、利用者によって自由にタグを定義され、文書中の文字列に対し意味付けを行なえる言語構造を有している。このようなＸＭＬで文書を記述した場合、その文書を、タグ情報に基づいてコンピュータで処理することが可能になる。
【０００４】
ここで、以下の説明で使用される用語について、ＸＭＬ規格に基づき説明しておく。一対の“<”と“>”とで囲まれた文字列を「タグ」、“<文字列>”を「開始タグ」、“</文字列>”を「終了タグ」、“<文字列/>”を「空要素タグ」、開始タグから終了タグまでの文字列全体を「要素」、開始タグと終了タグとで挟まれた文字列を「要素内容（単に内容と呼ぶ場合もある）」、タグ内に記述される要素の名前を「要素名(あるいはタグ名)」、要素に対する付加情報を「属性」と呼ぶ。
【０００５】
構造化文書では、その文書中にタグを埋め込む形でデータ構造が記述される。このようにデータ構造をタグとして文書に埋め込んだ構成を採ることにより、データ項目の追加削除変更に対して柔軟性や拡張性が得られるほか、タグ名に、ユーザが読んで意味のある名前を付けることにより、その構造化文書データに視認性を持たせることもできる。
ところで、ＸＭＬ文書に対する処理の高速化やメモリ使用量の削減等をはかってＸＭＬ文書に対する処理性能を向上させる際には、一般に、基盤ソフトウエアの実装の高性能化をはかることが主流になっている。しかし、このような手法のほかに、ＸＭＬ文書自体に予め加工を施しておくことによっても、ＸＭＬ文書に対する処理性能を向上させることが可能である。本発明は、後者の手法（ＸＭＬ文書を加工して処理性能の向上をはかる手法）に関連するものであり、ここで、後者の手法に係る従来技術について説明する。
【０００６】
〔ａ１〕従来技術１
日経コンピュータ誌2001.3.12号の記事「見えてきた万能幻想の真実ＸＭＬの“常識”を覆す」に、ＸＭＬ導入時に処理速度が遅くなる問題が発生し、データ構造を変更することにより、問題に対処する事例が開示されている。住友電工システムズの例(同誌のp.64-65参照)では、同種のデータを、ＣＳＶ(Comma Separated Value)形式でまとめて記述し、まとめられたデータを、ＸＭＬデータ中の一つのタグ中に埋め込む。例えば、ＸＭＬデータの定義情報を変更し、１カ月分のＸＭＬデータを日付順にコンマで区切ってまとめている。
【０００７】
具体的には、
<KOUSU day="01">8.0</KOUSU><KOUSU day="02">5.5</KOUSU>…
…<KOUSU day="31">12.8</KOUSU>
というように、別々のタグに記述されていた毎日の実績に関するデータを、
<KOUSU day="01,02,…,31" data="8.0,5.5,…,12.8"></KOUSU>
といった形式で、月単位にまとめるように、元の文書を書き換えている。
【０００８】
このような変更により、１ヶ月分のデータを参照する際には、データベース・サーバへの照会は１回で済むようになり、ＸＭＬの定義情報の送信も１回だけで済むほか、データ容量も１０分の１に減ったとしている。このような従来技術１による手法は、データ処理に用いられる同種のデータを一つのタグにまとめるものであって、同種のデータを持つ特定のデータに適用される技術であり、改善の効果はデータに依存する。
【０００９】
〔ａ２〕従来技術２
ＸＭＬ文書のレコード項目（フィールド）が、データ処理の対象となるキー要素（鍵要素）と、そのデータ処理の対象とならない要素（非キー要素，非鍵要素）とに分けられる場合、下記項目〔ａ２−１〕，〔ａ２−２〕に示すように、キー要素を残し、非キー要素をまとめて別ファイルにすることができる。このとき、非キー要素は、キー要素から、属性としての識別情報(id)を用いて引用される。このような従来技術２では、キー要素だけでデータ処理する場合には、キー要素のみに負荷を限定することができるが、検索の用途などで対象レコードを抽出し、キー要素と非キー要素とを一緒に表示したい場合には、非キー要素を別ファイルから読み出してキー要素と一緒にする必要があり、非常に手間がかかる。
【００１０】
〔ａ２−１〕原ＸＭＬ文書の具体例
<名簿>
<個人><名前>Aさん</名前><会社>A社</会社><部署>A部</部署><住所>A市</住所><電話>123</電話></個人>
<個人><名前>Bさん</名前><会社>B社</会社><部署>B部</部署><住所>B市</住所><電話>456</電話></個人>
</名簿>
〔ａ２−２〕２つのファイルへの分割例
上記原ＸＭＬ文書のうち、キー要素(名前，会社)と非キー要素（部署，住所，電話）とを別々のファイル、つまりキー要素のＸＭＬ文書と非キー要素のＸＭＬ文書とに分け、キー要素のＸＭＬ文書では、新たにタグ名「情報」の空要素タグを作成するとともに、その空要素タグにおける属性(id)によってキー要素と非キー要素のＸＭＬ文書とを関連付ける。別ファイルで、タグ名「情報」の要素に非キー要素をまとめておき、ｉｄ属性と対応する属性(ref)を用いて非キー要素を参照する。
【００１１】
・キー要素のＸＭＬ文書
<名簿>
<個人><名前>Aさん</名前><会社>A社</会社><情報 id="1"/></個人>
<個人><名前>Bさん</名前><会社>B社</会社><情報 id="2"/></個人>
</名簿>
・非キー要素のＸＭＬ文書
<名簿>
<情報ref="1"><部署>A部</部署><住所>A市</住所><電話>123</電話></情報>
<情報ref="2"><部署>B部</部署><住所>B市</住所><電話>456</電話></情報>
</名簿>
〔ａ３〕従来技術３
従来技術３では、ＸＭＬデータの階層を指定して、それ以下の階層におけるデータをＸＭＬ専用の圧縮ソフトＸＭＬＺｉｐにより圧縮する。データベース形式のＸＭＬデータでは、レコード毎に圧縮ファイルが作成され、圧縮されたＸＭＬデータを部分的に復元することができるようになっている。ＸＭＬ文書をレコード毎に解凍できるようにすることで、メモリの制約を回避することができる。ただし、このような従来技術３では、１レコード当たりのサイズ（データ量）が大きくない場合には、有効な圧縮率を得ることができない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、代表的な構造化文書であるＸＭＬ文書に対しては、そのＸＭＬ文書を応用ソフトウエア（アプリケーション）によって扱うために、ＤＯＭ(Document Object Model)とＳＡＸ(Simple API for XML)と呼ばれる、２つの標準的なインターフェイス(ＡＰＩ：Application Programming Interface)が定められている。ＳＡＸは、一般に処理速度が高速で、処理時のメモリ使用量が小さいが、時系列出力を行なうものであり、データを参照するだけの簡単な処理に向くという特徴を有している。これに対し、ＤＯＭは、一般に処理速度が低速で、処理時のメモリ使用量が大きいが、ＸＭＬ文書の要素を階層的なツリー（ＤＯＭツリー）に展開するため、複雑な処理内容に対してもプログラムを組みやすいという特徴を有している。
【００１３】
一般に、ＸＭＬ文書に対して検索・更新・削除などの操作を施す場合、操作対象のＸＭＬ文書を標準ＡＰＩ（ＤＯＭ）でＤＯＭツリーに展開してから、その操作を施すことになる。しかし、ＸＭＬ文書をＤＯＭツリーに展開する際には、元のデータ量の６倍もの膨大な動作メモリ容量が必要となる上、使用されない項目（操作対象外の項目）も一緒に展開されてしまうため、展開処理に多大な時間を要している。
【００１４】
つまり、標準ＡＰＩ（ＤＯＭ）によるメモリ使用量が大きく処理速度が遅くなるのは、ＸＭＬ文書を取り扱うアプリケーションにおいて、データ処理の対象とならない要素も含む全ての要素がメモリ上に展開されるからである。従って、処理速度やメモリ使用量は、構造化文書の要素数に比例して増加することになる。
そこで、ＸＭＬ文書自体に予め加工を施して、ＸＭＬ文書に対する処理性能を向上させるべく、上述のような従来技術１，２も提案されている。
【００１５】
しかし、上述した従来技術１による手法では、データ処理に用いられる同種のデータが一つのタグにまとめられているが、この手法は、同種のデータを持つ特定のデータに適用され、メモリ使用量削減や処理速度の高速化についての改善効果はデータに依存することになる。
また、上述した従来技術２では、データ処理の対象となるキー要素と、使用されない要素とを別々のファイルに分けているが、キー要素と非キー要素とを一緒に表示したい場合、非キー要素を別ファイルから読み出してキー要素と一緒にしなければならず、非常に手間がかかることになる。
【００１６】
従って、ＸＭＬデータの構造を事前に変換する場合には、その変換手法を種々のＸＭＬデータに適用することができるように汎用のデータ構造変換法を考える必要がある。また、変換後のＸＭＬデータも有効なデータ構造を有するように変換を行なう必要があるほか、応用ソフトウエアに対してのトランスペアレント性（透過性）を確保する必要もある。ここで、トランスペアレント性は、応用ソフトウエアが、処理対象の変換後ＸＭＬ文書に対して、修正を行なうことなく、もしくは、わすかな修正を行なうだけで、変換後ＸＭＬ文書をそのまま使えることを意味する。このトランスペアレント性は、変換後のＸＭＬ文書を、既存の応用ソフトウエアで実行する際に重要な性質である。
【００１７】
一方、上述した従来技術３では、ＸＭＬデータのレコード毎に圧縮ファイルを作成しているが、その圧縮ファイルは、通常、バイナリデータであるため、文字コードのみからなるＸＭＬ文書内に置くことができず、別ファイルとして保存されることになる。従って、ＸＭＬ文書内の所定レコードを参照する必要がある場合には、そのレコードを別ファイルから読み出して解凍しなければならず、非常に手間がかかることになる。このため、ＸＭＬ文書を効率良く圧縮しながら、その圧縮結果をＸＭＬ文書内に置くことができるようにした（つまり圧縮結果を文字コードの形で得られるようにした）圧縮方法の開発が望まれている。
【００１８】
本発明は、このような課題に鑑み創案されたもので、アプリケーションに対するトランスペアレント性や変換された構造化文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々の構造化文書データに施すことができるようにした汎用の変換技術を提供することにより、構造化文書に対する操作に必要となるリソースを軽減し、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方を実現することを目的とする。
【００１９】
また、本発明は、構造化文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得て構造化文書内に置くことができるようにした圧縮変換技術を提供することにより、構造化文書に対する操作に必要となるリソースを軽減し、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方を実現することを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するために、本発明の構造化文書変換装置は、構造化文書を変換する処理部を有する装置であって、該処理部が、変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに区別するための区別情報を読み込み、所定のタグ名および所定の属性名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、該非キー要素のタグ名を区切り記号を介して繋いで該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、該非キー要素の内容を区切り記号を介して繋いで該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述し、該区別情報における該キー要素を、変換後の構造化文書においてそのまま記述することを特徴としている（請求項１）。
【００２１】
なお、該処理部が、該区別情報を記述するとともに該新たな要素のタグ名を記述した変換仕様文書を読み込み、該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことが好ましい（請求項２）。
また、上記目的を達成するために、本発明の構造化文書変換装置は、構造化文書を変換する処理部を有する装置であって、該処理部が、変換対象の構造化文書を成す要素につき、構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象にならない非キー要素とに区別するための区別情報を読み込み、所定のタグ名を付与された、該区別情報における該非キー要素のための新たな要素を作成し、該非キー要素の記述中においてタグを表わす記号を実体参照記述によりタグ付けに関連しない実体参照文字列に置き換えた文字列を作成し、該文字列を、該新たな要素の内容として記述し、該区別情報における該キー要素を、変換後の構造化文書においてそのまま記述することを特徴としている（請求項３）。
【００２２】
さらに、上記目的を達成するために、本発明の関連技術としての構造化文書変換方法は、変換対象の構造化文書を成す要素をキー要素と非キー要素とに分け、所定のタグ名および所定の属性名を付与された新たな要素を作成し、該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において前記所定の属性名に対応する属性値として記述するタグ名変換を行ない、該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、該キー要素を、変換後の構造化文書において、そのまま（該キー要素に対し何の変換も施すことなく）記述することを特徴としている。
【００２３】
また、本発明の関連技術としての構造化文書変換方法は、変換対象の構造化文書を成す要素をキー要素と非キー要素とに分け、所定のタグ名を付与された新たな要素を作成し、該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、該文字列を、該新たな要素の内容として記述し、該キー要素を、変換後の構造化文書において、そのまま（該キー要素に対し何の変換も施すことなく）記述することを特徴としている。
【００２４】
さらに、本発明の関連技術としての構造化文書変換方法は、変換対象の構造化文書を成す要素をキー要素と非キー要素とに分け、所定のタグ名を付与された新たな要素を作成し、該非キー要素を成す文字もしくは文字列に対し出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングし、各変換データにパッキングされた６ビットデータをＡＳＣＩＩ（American Standard Code for Information Interchange）コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、該圧縮文字列を、該新たな要素の内容として記述し、該キー要素を、変換後の構造化文書において、そのまま（該キー要素に対し何の変換も施すことなく）記述することを特徴としている。
【００２５】
一方、本発明の関連技術としてのデータ変換方法は、変換対象の文字もしくは文字列に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングして出力することを特徴としている。このとき、さらに、各変換データにパッキングされた６ビットデータをＡＳＣＩＩコードに従う文字コードに変換し、該変換データ毎に得られた該文字コードを、前記変換対象の文字もしくは文字列の圧縮変換結果として出力してもよい。
【発明の効果】
【００２６】
本発明の関連技術としての構造化文書変換方法及び本発明の構造化文書変換装置によれば、処理部によって、変換対象の構造化文書を成す要素につき、キー要素と非キー要素とに分けた区別情報を読み込まれ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で非キー要素を一つのタグにまとめて記述した構造化文書に変換されるので、変換後の構造化文書では、要素数が削減されるとともに、展開時やデータ処理時に非キー要素を一括して扱うことができる。特に、データ処理の対象とならない非キー要素が多い構造化文書や、１レコードの要素数が多い構造化文書での要素数の削減効果は大きい。
【００２７】
また、応用ソフトウエア（アプリケーション）により構造化文書に対するデータ処理を行なう際にはキー要素のみが使用されるが、本発明では、キー要素についてはそのまま記述されているので、通常通り、キー要素のタグ名を用いてキー要素の内容を参照することができ、変換後の構造化文書のトランスペアレント性は確保される。
このとき、変換仕様文書を構造化文書として作成し変換実行手順を与えることにより、多様な種類の構造化文書に対して、スタイルシートを一々作成する必要がなくなり、手間をかけることなく、本発明によるデータ構造の変換／逆変換処理を種々の構造化文書データに施すことができる。さらに、変換仕様文書に基づいて変換／逆変換を指示する変換／逆変換用スタイルシートを生成すれば、構造化文書変換プロセッサ（例えば標準のＸＳＬＴプロセッサ）により変換／逆変換用スタイルシートを用いて変換／逆変換を実行することができ、つまりは、ほとんどあらゆる種類の構造化文書システム（ＸＭＬ文書システム）において本発明による変換／逆変換処理を実行することができる。
【００２８】
従って、本発明によれば、アプリケーションに対するトランスペアレント性や変換された構造化文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々の構造化文書データに施すことができるようにした汎用の変換技術を提供することができ、これにより、構造化文書に対する操作に必要となるリソースが大幅に軽減され、構造化文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方が実現されることになる。
【００２９】
タグ名変換や内容変換に際しては、コンマ等の区切り記号を介して非キー要素のタグ名や内容を繋ぐことにより、タグ名文字列や内容文字列が、タグ付けに関連することのない記号を用いて極めて容易に作成される。
このとき、非キー要素が複数階層を成している場合、タグ名文字列におけるタグ名に、階層構造識別情報を付加すれば、その階層構造を変換後の構造化文書に保存することができるので、その階層構造識別情報に従って、元の構造化文書を復元するための逆変換を容易に行なうことができる。
【００３０】
また、非キー要素が属性を有する場合、タグ名文字列において、属性を有するタグ名の後に、区切り記号を介して、属性名識別情報を付加した属性の属性名を記述するとともに、このタグ名文字列におけるタグ名の並びに対応させて非キー要素の内容を繋いだ内容文字列を作成することにより、非キー要素の属性を変換後の構造化文書に保存することができるので、その属性名識別情報に従って、元の構造化文書を復元するための逆変換を容易に行なうことができる。
【００３１】
非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なうことにより、変換後の構造化文書のデータ量を削減することができる。このとき、変換仕様文書におけるタグ名短縮変換情報によってタグ名短縮変換を行なうか否かを指示し、タグ名短縮変換やタグ名伸長変換の実行／非実行を自動的に切り換えることができる。
変換対象の構造化文書が表形式で記述されている場合、元の構造化文書を復元するための逆変換に際してタグ名や属性名を容易に割り出すことができるので、タグ名変換や属性名変換を省略することができる。従って、変換後の構造化文書においては、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができ、変換後の構造化文書のデータ量を大幅に削減することができる。このとき、変換仕様文書における表形式情報によって表形式変換を行なうか否かを指示し、表形式変換や表形式逆変換の実行／非実行を自動的に切り換えることができる。
【００３２】
また、本発明の関連技術としての構造化文書変換方法及び本発明の構造化文書変換装置によれば、処理部によって、変換対象の構造化文書を成す要素につき、キー要素と非キー要素とに分けた区別情報を読み込まれ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で、非キー要素を一つのタグにまとめその非キー要素の記述中のタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた構造化文書に変換されるので、上述した構造化文書変換方法と同様の効果ないし利点を得ることができる。このとき、非キー要素の記述中においてタグを表わす記号を実体参照記述によりタグ付けに関連しない実体参照文字列に置き換えることにより〔例えば、構造化文書がＸＭＬ文書である場合、タグ記号「<」および「>」をそれぞれ実体参照記述による文字列「&lt；」および「&gt；」に置き換えることにより〕、極めて容易に構造化文書の変換を行なうことができる。
【００３３】
さらに、本発明の関連技術としての構造化文書変換方法によれば、変換対象の構造化文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で、非キー要素を成す文字もしくは文字列を一つのタグにまとめ下記データ圧縮方法により圧縮して得られた文字コード列（圧縮文字列）として記述した構造化文書に変換されるので、上述した構造化文書変換方法と同様の効果ないし利点を得ることができるほか、変換後の構造化文書のデータ量を大幅に削減することができる。
【００３４】
非キー要素を成す文字もしくは文字列を圧縮する際には、可変長符号化を行なった上で、この可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングし、各変換データにパッキングされた６ビットデータをＡＳＣＩＩコードに従う文字コードに変換することにより、文字コードで記述された圧縮データ（圧縮文字列）を得ることができる。これにより、圧縮データを、構造化文書の要素あるいは属性値として置くことができる。
【００３５】
上述のような本発明の関連技術としてのデータ圧縮方法を用いることにより、構造化文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得て構造化文書内に置くことのできる圧縮変換技術が提供されるので、構造化文書に対する操作に必要となるリソースが大幅に軽減され、構造化文書を処理する際におけるメモリ使用量削減や処理速度の高速化が実現される。
【００３６】
このとき、圧縮データを表現する文字コードとして、タグ付けに関連する記号（例えばＸＭＬ文書では＜，＞，＆，”，’）を除いたＡＳＣＩＩコードを用いる。これにより、変換後の構造化文書における圧縮文字列にはタグ付けに関連する記号が存在せず、データ処理時などに誤処理が発生するのを確実に防止することができる。
また、ＡＳＣＩＩコードは、種々の文字コード系に共通に含まれる文字コードセットであるため、変換後の構造化文書が文字コード系の変換を施されても、ＡＳＣＩＩコードを用いた圧縮文字列を成すビット列は、文字コード系の変換の影響を受けることなく元の状態に保たれる。従って、文字コード系を変換された構造化文書に含まれる圧縮文字列は、元の非キー要素に正しく復元される。
【００３７】
さらに、圧縮文字列に圧縮時点の文字コード系の種別を示す情報を付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、構造化文書の現在の文字コード系に合わせることにより、構造化文書全体の文字コード系の整合性を保つことができる。
また、非キー要素を圧縮文字列に変換するに先立ち、非キー要素を成す文字列を、予め作成された静的辞書を用いて辞書番号に置き換えておくことにより、可変長符号化の対象となる文字列を短縮できるので、より圧縮効率を高めることができ、変換後の構造化文書のデータ量をより削減することができる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照して本発明の実施の形態を説明する。
標準ＡＰＩとしてＤＯＭを採用し構造化文書をメモリ上へＤＯＭツリーとして展開する場合、一般に、構造化文書中の要素数が多いほど、その展開処理に時間がかかり、タグ検索にも時間がかかることになる。
構造化文書中には、通常、その構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とが含まれており、構造化文書を成す要素は、キー要素と非キー要素とに分けることができる。つまり、応用ソフトウエア（アプリケーション）により構造化文書に対するデータ処理を行なう際には、キー要素のみが処理の対象とされ、タグ名でキー要素の検索を行ない、検索されたキー要素の内容が参照される。
【００３９】
そこで、本発明（第１〜第３実施形態）では、変換対象の構造化文書を、１レコード中で、キー要素については何の変換も施すことなくそのまま記述するとともに、非キー要素を一つのタグにまとめて記述した構造化文書に変換している。以下、本実施形態では、構造化文書がＸＭＬ文書である場合について説明する。
〔１〕第１実施形態の説明
本発明の第１実施形態では、説明を簡単にするため、まず、各レコードの要素が１階層であるＸＭＬ文書の変換方法について説明した後、要素が２以上の階層を成しているレコードや、属性を有する要素を含むレコードが含まれるＸＭＬ文書の変換方法について説明する。
【００４０】
〔１−１〕第１実施形態の構造化文書変換方法の原理
ここで、図１（Ａ），図１（Ｂ）および図３（Ａ）を参照しながら、本発明の第１実施形態としての構造化文書変換方法の原理について説明する。
図３（Ａ）に示す変換対象のＸＭＬ文書は２つのレコード（タグ名“個人”）を有している。一方のレコードは、タグ名“名前”，“会社”，“部署”，“住所”，“電話”の要素を一つずつ有している。また、もう一方のレコードは、タグ名“名前”，“会社”，“部署”の要素を一つずつ有するとともに、タグ名“電話”の要素を二つ有している。これら二つのレコードにおいては、要素の種類や数が異なっているため、図３（Ａ）に示すＸＭＬ文書は表形式ではない。図３（Ａ）に示すＸＭＬ文書のメモリ展開形式を図１（Ａ）に示す。この図１（Ａ）では、図３（Ａ）に示すＸＭＬ文書をメモリ上へＤＯＭツリーとして展開した例が示されている。
【００４１】
上述のような要素を有するＸＭＬ文書において、タグ名“名前”，“会社”の要素をキー要素とするとともにタグ名“部署”，“住所”，“電話”の要素を非キー要素とし、このＸＭＬ文書に対し、第１実施形態の構造化文書変換方法を適用して得られた変換後ＸＭＬ文書のメモリ展開形式を図１（Ｂ）に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準ＡＰＩ（ＤＯＭ）を介して変換後ＸＭＬ文書を操作するときの、メモリ上への展開形式である。
【００４２】
この図１（Ｂ）に示す変換後ＸＭＬ文書は、図３（Ｂ）〜図３（Ｄ）を参照しながら後述するＸＭＬ文書に対応するもので、この図１（Ｂ）では、図３（Ｂ）〜図３（Ｄ）に示すＸＭＬ文書をメモリ上へＤＯＭツリーとして展開した例が示されている。図１（Ｂ）に示すＸＭＬ文書では、タグ名“情報”を有する新たな要素が作成され、この新たな要素の内容として、タグ名“部署”，“住所”，“電話”の非キー要素の内容がまとめて記述されている。
【００４３】
つまり、一方のレコードでは、タグ名“情報”の要素の内容として“Ａ部，Ａ市，123”が記述され、もう一方のレコードでは、タグ名“情報”の要素の内容として“Ｂ部，456，789”が記述されている。また、タグ名“名前”，“会社”のキー要素については、元のまま記述されている。
このようにして非キー要素を一つの要素にまとめるようにＸＭＬ文書を変換することによって、ＸＭＬ文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
【００４４】
〔１−２〕第１実施形態のシステムおよび変換／逆変換処理の流れ
図２は、本発明の第１実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換／逆変換処理の流れを説明するための図である。
多様な種類のＸＭＬ文書に対して、各ＸＭＬ文書に応じたスタイルシート〔ＸＳＬ(ＸＭＬ Style Language)シート〕を一々作成するのは極めて面倒で手間がかかる。
【００４５】
そこで、その手間を省くため、第１実施形態では、図９，図１２〜図１５および図１７を参照しながら後述するごとく、ＸＭＬ文書のデータ構造を変換するための仕様（レコード名，キータグ名，非キータグ名等）をＸＭＬ文書（変換仕様文書）によって作成して変換実行手順を与え、図１８および図１９を参照しながら後述するごとく、その変換仕様文書に基づいてＸＭＬ文書の変換／逆変換を実行する。
【００４６】
さらに、第１実施形態では、図２０（Ａ）〜図２０（Ｄ）を参照しながら後述するごとく、与えられた変換仕様文書に基づいて、変換実行手順を指示する変換用スタイルシートや、逆変換実行手順を指示する逆変換用スタイルシートを自動的に生成し、このスタイルシートを用いて、構造化文書変換プロセッサ〔ＸＳＬＴ(ＸＭＬ Style Language Translator)プロセッサ〕に、ＸＭＬ文書に対するデータ構造変換／逆変換を実行させている。このように変換／逆変換の実行手順をスタイルシートで与えるようにすれば、標準のＸＳＬＴプロセッサで変換／逆変換を実行することができるので、ほとんどあらゆる種類のＸＭＬ文書システムにおいて第１実施形態による変換／逆変換処理を実行することができる。
【００４７】
図２に示すシステムでは、ＸＳＬＴ変換部１１，ＸＳＬＴ構造変換部１２およびＸＳＬＴ逆変換部１３からなるデータ構造変換／逆変換機構１０がそなえられるとともに、標準ＡＰＩ２０および応用ソフトウエア３０がそなえられている。なお、ＸＳＬＴ変換部１１，ＸＳＬＴ構造変換部１２およびＸＳＬＴ逆変換部１３（データ構造変換／逆変換機構１０）は、実際には、一つの標準のＸＳＬＴプロセッサ（構造化文書変換プロセッサ）によって実現される。
【００４８】
ＸＳＬＴ変換部１１は、ＸＭＬ文書によって与えられ、キー要素と非キー要素との区別情報等を記したデータ構造変換の仕様（例えば図９参照）を読み込み、そのＸＭＬ文書と自動変換スタイルシートとにより、構造変換用スタイルシート（例えば図１０参照）および逆変換用スタイルシート（例えば図１１参照）を生成するものである。
ＸＳＬＴ構造変換部１２は、変換対象のＸＭＬ文書（入力ＸＭＬ文書）を読み込み、ＸＳＬＴ変換部１１により生成された構造変換用スタイルシートに基づいて、入力ＸＭＬ文書に対し、レコード毎に非キー要素を一つの要素にまとめるデータ構造変換を施すものである。
【００４９】
標準ＡＰＩ２０および応用ソフトウエア（アプリケーション）３０は、いずれも、プロセッサによって実行され、ＸＳＬＴ構造変換部１２からの変換後ＸＭＬ文書に対して所定のデータ処理を施すためのものである。そのプロセッサとしては、データ構造変換／逆変換機構１０を実現するためのＸＳＬＴプロセッサを用いてもよいし、このＸＳＬＴプロセッサとは別のプロセッサを用いてもよい。
【００５０】
ＸＳＬＴ逆変換部１３は、応用ソフトウエア３０により処理されたＸＭＬ文書（抽出ＸＭＬ文書，変換後ＸＭＬ文書）を読み込み、ＸＳＬＴ変換部１１により生成された逆変換用スタイルシートに基づいて、抽出ＸＭＬ文書を元の形式のＸＭＬ文書（非キー要素を元の状態に戻したＸＭＬ文書）に復元するための逆変換を実行し、復元結果を抽出最終結果として出力するものである。
【００５１】
上述のごとく構成されたシステムにおいて、データ構造変換/逆変換機構（ＸＳＬＴプロセッサ）１０は、ＸＭＬ文書による変換仕様文書を読み込むとともに、処理対象の入力ＸＭＬ文書を読み込み、変換仕様（実際には構造変換用スタイルシート）に基づいて入力ＸＭＬ文書を変換し、所定のデータ構造変換を施したＸＭＬ文書を出力する。そして、変換されたＸＭＬ文書に対しては、標準ＡＰＩ２０を介して応用ソフトウエアによりデータ処理（例えばタグ検索）が施され、データ処理後のＸＭＬ文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出ＸＭＬ文書の形で得られる。この抽出ＸＭＬ文書は、データ構造変換／逆変換機構１０に読み込まれ、変換仕様（実際には逆変換用スタイルシート）に基づいて元のデータ構造のＸＭＬ文書に逆変換され、最終的なデータ処理結果としてのＸＭＬ文書が得られる。
【００５２】
なお、第１実施形態において、ＸＳＬＴ変換部１１に読み込まれるデータ構造変換用の仕様ＸＭＬ文書については、図９，図１２〜図１５および図１７を参照しながら後述する。また、ＸＳＬＴ変換部１１によって生成される構造変換用スタイルシートおよび逆変換用スタイルシートについては、それぞれ図１０および図１１を参照しながら後述する。
〔１−３〕第１実施形態における、非表形式ＸＭＬ文書の変換方法および具体的な変換例
第１実施形態の変換方法を表形式でないＸＭＬ文書（非表形式ＸＭＬ文書）に適用した場合、非キー要素のタグ名を含むタグ名文字列、および、非キー要素の内容を含む内容文字列が作成され、これらの文字列が、新たに作成された要素において要素内容，タグ名もしくは属性値として記述される。
【００５３】
このとき、タグ名文字列は、区切り記号を介して複数の非キー要素のタグ名を繋いで作成されるとともに、内容文字列も、同様に、区切り記号を介して複数の非キー要素の内容を繋いで作成される。第１実施形態では、区切り記号としてコンマ“，”を用いる。
ここで、タグ名や内容の繋ぎ方としてはＣＳＶ(Comma Separated Value)形式を用いる。ＣＳＶは、本来、コンマを介して数値や文字列を繋ぐ方法であり、区切り記号をコンマに限っているが、本発明では、区切り記号をコンマに限る必要はない。
【００５４】
区切り記号としてコンマを用いた場合、要素内容が金額であると、千の位を表わすコンマと混同するおそれがあるため、コンマよりも“@”（アットマーク）や“_”（アンダーバー）を用いる。また、区切り記号を介して文字列を繋ぐ際にその文字列中に区切り記号が文字として含まれている場合には、その文字を実体参照の形に置き換えてもよい。例えばコンマを区切り記号とした場合に文字列中のコンマについては、実体参照記述である“&CMM;”に置き換える。従って、できれば、区切り記号としては、通常の文字列に、滅多に現われない文字を用いることが望ましい。本実施形態では、コンマに限らず、区切り記号を介して、数値や文字列を繋ぐ方法を、便宜上、ＣＳＶと呼ぶことにする。
【００５５】
図３（Ｂ）〜図３（Ｆ）においては、それぞれ、図３（Ａ）で前述した表形式でないＸＭＬ文書に、第１実施形態の構造化文書変換方法を適用して得られた変換結果の第１〜第５具体例が示されている。ここでも、タグ名“名前”，“会社”の要素をキー要素とし、タグ名“部署”，“住所”，“電話”の要素を非キー要素とする。
第１実施形態の変換方法では、基本的に、変換対象のＸＭＬ文書を成す要素をそのＸＭＬ文書に対してデータ処理の対象となるキー要素とそのデータ処理の対象とならない非キー要素とに分け、新たな要素を作成し、非キー要素に対してはタグ名変換および内容変換を施す一方、キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。
【００５６】
図３（Ｂ）に示す第１具体例では、タグ名“情報”および属性名“tags”を付与された新たな要素を作成した上で、タグ名変換により、非キー要素についてのタグ名文字列をＣＳＶ形式で作成し、そのタグ名文字列を、新たな要素において属性名“tags”に対応する属性値として記述している。また、内容変換により、非キー要素についての内容文字列をＣＳＶ形式で作成し、この内容文字列を、新たな要素の内容として記述している。
【００５７】
つまり、図３（Ｂ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“情報”の要素において、内容文字列“Ａ部，Ａ市，123”が要素内容として記述され、タグ名文字列“部署，住所，電話”が属性名“tags”の属性値として記述されている。また、第２レコードでは、タグ名“情報”の要素において、内容文字列“Ｂ部，456，789”が要素内容として記述され、タグ名文字列“部署，電話，電話”が属性名“tags”の属性値として記述されている。
【００５８】
このとき、図１２や図１４を参照しながら後述するごとく、変換仕様文書において、非キー要素のタグ名とこのタグ名よりも短く且つこのタグ名を特定しうる短縮タグ名とを対応付けて記述しておき、上記タグ名変換時に、変換仕様文書に基づいて、非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なってもよい。このようなタグ名短縮変換を施されたＸＭＬ文書を元の状態に復元する際（逆変換時）には、変換仕様文書に基づいて、短縮タグ名を非キー要素のタグ名に置換するタグ名伸長変換を行なう。
【００５９】
図３（Ｃ）に示す第２具体例では、図３（Ｂ）に示すＸＭＬ文書に対して、さらに上述のようなタグ名短縮変換を施した結果のＸＭＬ文書が示されている。つまり、変換仕様文書においてタグ名“部署”，“住所”，“電話”をそれぞれ短縮タグ名“Ａ”，“Ｂ”，“Ｃ”に対応付けておくことにより（図１２や図１４参照）、第１レコードでは、属性名“tags”の属性値として記述されるタグ名文字列が“Ａ，Ｂ，Ｃ”に置き換えられ、同様に、第２レコードでは、属性名“tags”の属性値として記述されるタグ名文字列が“Ａ，Ｃ，Ｃ”に置き換えられている。
【００６０】
図３（Ｄ）に示す第３具体例では、タグ名“情報”，第１属性名“tags”および第２属性名“contents”を付与された新たな要素を作成した上で、タグ名変換により、非キー要素についてのタグ名文字列をＣＳＶ形式で作成し、そのタグ名文字列を、新たな要素において第１属性名“tags”に対応する第１属性値として記述している。また、内容変換により、非キー要素についての内容文字列をＣＳＶ形式で作成し、この内容文字列を、新たな要素において第２属性名“contents”に対応する第２属性値として記述している。なお、この場合、新たな要素は空要素タグとして記述されることになる。
【００６１】
つまり、図３（Ｄ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“情報”の要素において、内容文字列“Ａ部，Ａ市，123”が第２属性名“contents”の第２属性値として記述され、タグ名文字列“部署，住所，電話”が第１属性名“tags”の第１属性値として記述されている。また、第２レコードでは、タグ名“情報”の要素において、内容文字列“Ｂ部，456，789”が第２属性名“contents”の第２属性値として記述され、タグ名文字列“部署，電話，電話”が第１属性名“tags”の第１属性値として記述されている。このとき、図３（Ｃ）に示した第２具体例と同様、第１属性値として記述されるタグ名文字列に対して、さらに、上述と同様のタグ名短縮変換を施してもよい。
【００６２】
図３（Ｅ）に示す第４具体例では、タグ名変換により、非キー要素についてのタグ名文字列をＣＳＶ形式で作成し、そのタグ名文字列をタグ名として付与された新たな要素を作成する。そして、内容変換により、非キー要素についての内容文字列をＣＳＶ形式で作成し、この内容文字列を、新たな要素の内容として記述している。
つまり、図３（Ｅ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“部署，住所，電話”の要素において、内容文字列“Ａ部，Ａ市，123”が要素内容として記述されている。また、第２レコードでは、タグ名“部署，電話，電話”の要素において、内容文字列“Ｂ部，456，789”が要素内容として記述されている。
【００６３】
図３（Ｆ）に示す第５具体例では、図３（Ｅ）に示すＸＭＬ文書に対して、さらに上述のようなタグ名短縮変換を施した結果のＸＭＬ文書が示されている。つまり、変換仕様文書においてタグ名“部署”，“住所”，“電話”をそれぞれ短縮タグ名“Ａ”，“Ｂ”，“Ｃ”に対応付けておくことにより（図１２や図１４参照）、第１レコードでは、新たな要素のタグ名として記述されるタグ名文字列が“Ａ，Ｂ，Ｃ”に置き換えられ、同様に、第２レコードでは、新たな要素のタグ名として記述されるタグ名文字列が“Ａ，Ｃ，Ｃ”に置き換えられている。
【００６４】
なお、図３（Ｂ）に示すようにＣＳＶ形式のタグ名文字列を属性値として新要素の開始タグに入れる方法を用いた場合は、図３（Ｅ）に示すようにＣＳＶ形式のタグ名文字列をタグ名として新要素の開始タグに持たせる方法を用いた場合に比べ、終了タグが短くなる分だけデータ量が減ることになる。その代わり、前者の方法を用いた場合、ＣＳＶ形式のタグ名文字列を記述する属性が一つ増えることになる。図３（Ｂ）や図３（Ｅ）に示すＸＭＬ文書は、それぞれ図３（Ｃ）や図３（Ｆ）に示すごとく、前述したタグ名短縮変換を行なうことで、データ量を削減することができる。
【００６５】
このように、第１実施形態の変換方法は、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。非キー要素のタグ名をＣＳＶ形式に繋いで作成したタグ名文字列を、新たな要素のタグ名として記述するか、新たな要素の属性値として記述するかは、変換仕様文書等により選択・指定することができるようになっている。また、非キー要素の要素内容をＣＳＶ形式に繋いで作成した内容文字列を、新たな要素の属性値として記述するか、新たな要素の内容として記述するかも、変換仕様文書等により選択・指定することができるようになっている。変換方法として、図３（Ｂ）〜図３（Ｆ）で説明した各種方法のうちのどれを用いるかは、ＸＭＬ文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どの方法を採用してもよい。
【００６６】
〔１−４〕第１実施形態における、表形式ＸＭＬ文書の変換方法および具体的な変換例
第１実施形態の変換方法を表形式ＸＭＬ文書に適用した場合、非キー要素の内容を含む内容文字列が作成され、この内容文字列が、新たに作成された要素において要素内容もしくは属性値として記述される。つまり、第１実施形態の変換方法を表形式ＸＭＬ文書に適用する場合、表形式ＸＭＬ文書における各レコードの要素記述が規則性を有しているので、表形式でないＸＭＬ文書で行なっていたタグ名変換（あるいは後述する属性名変換）を省略することができる。
【００６７】
ただし、その場合、図９を参照しながら後述するごとく、変換仕様文書においては、キー要素と非キー要素とを区別するための情報が記述されるとともに、非キー要素のタグ名（属性を有する場合には、その属性名も含む；項目〔１−５〕参照）とそのタグ名や属性名を代表する代表タグ名（新要素のタグ名）とが対応付けて記述される。このような変換仕様文書に基づいて、データ構造変換時には、変換対象のＸＭＬ文書に対し、上述したタグ名変換を省略し上述した内容変換のみを行なう表形式変換を施す。一方、逆変換時には、この変換仕様文書に基づいて、代表タグ名（新要素のタグ名）から非キー要素のタグ名および属性名を割り出し、前記表形式変換を施されたＸＭＬ文書（データ処理後のＸＭＬ文書）に対し、非キー要素の記述を元の状態に戻す表形式逆変換を施す。
【００６８】
ここで、図４（Ａ）〜図４（Ｃ）を参照しながら表形式ＸＭＬ文書の具体的な変換結果について説明する。
図４（Ａ）に示す変換対象のＸＭＬ文書は２つのレコード（タグ名“個人”）を有しており、これらのレコードは、いずれも、タグ名“名前”，“会社”，“部署”，“住所”，“電話”の要素を一つずつ有している。つまり、これら二つのレコードにおいては、要素の種類や数が同じであり、図４（Ａ）に示すＸＭＬ文書は表形式である。
【００６９】
図４（Ｂ）および図４（Ｃ）においては、それぞれ、図４（Ａ）で前述した表形式ＸＭＬ文書に、第１実施形態の構造化文書変換方法を適用して得られた変換結果の第１および第２具体例が示されている。ここでも、タグ名“名前”，“会社”の要素をキー要素とし、タグ名“部署”，“住所”，“電話”の要素を非キー要素とする。
第１実施形態の変換方法を表形式ＸＭＬ文書に適用する場合、上述のごとく変換仕様文書において代表タグ名（新要素のタグ名）“情報”と非キー要素のタグ名“部署”，“住所”，“電話”とを対応付けた上で、変換対象のＸＭＬ文書を成す要素をそのＸＭＬ文書に対するデータ処理の対象となるキー要素とそのデータ処理の対象とならない非キー要素とに分け、新たな要素を作成し、非キー要素に対しては内容変換を施す一方、キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。
【００７０】
図４（Ｂ）に示す第１具体例では、代表タグ名“情報”を付与された新たな要素を作成した上で、内容変換により、非キー要素についての内容文字列をＣＳＶ形式で作成し、この内容文字列を、新たな要素の内容として記述している。
つまり、図４（Ｂ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“情報”の要素において、内容文字列“Ａ部，Ａ市，123”が要素内容として記述される。また、第２レコードでは、タグ名“情報”の要素において、内容文字列“Ｂ部，Ｂ市，456”が要素内容として記述される。なお、図４（Ｂ）に示すＸＭＬ文書は、図９を参照しながら後述する変換仕様文書に従って、図４（Ａ）に示すＸＭＬ文書を変換して得られたものである。
【００７１】
図４（Ｃ）に示す第２具体例では、タグ名“情報”および属性名“contents”を付与された新たな要素を作成した上で、内容変換により、非キー要素についての内容文字列をＣＳＶ形式で作成し、この内容文字列を、新たな要素において属性名“contents”に対応する属性値として記述している。なお、この場合、新たな要素は空要素タグとして記述されることになる。
【００７２】
つまり、図４（Ｃ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“情報”の要素において、内容文字列“Ａ部，Ａ市，123”が属性名“contents”の属性値として記述される。また、第２レコードでは、タグ名“情報”の要素において、内容文字列“Ｂ部，Ｂ市，456”が属性名“contents”の属性値として記述される。
このように、変換対象のＸＭＬ文書が表形式で記述されている場合、元のＸＭＬ文書を復元するための逆変換に際してタグ名（属性を有する場合には、その属性名も含む）を容易に割り出すことができるので、タグ名変換や属性名変換（この属性名変換については、図５〜図８を参照しながら後述する）を省略することができる。従って、表形式ＸＭＬ文書を変換した場合、その変換後ＸＭＬ文書には、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができる。
【００７３】
〔１−５〕第１実施形態における、階層構造および属性を有するＸＭＬ文書の変換方法および具体的な変換例
ここまで、各レコードにおける非キー要素が、単一階層であり且つ属性をもたない場合について説明してきたが、第１実施形態の変換方法は、非キー要素が複数階層を成す場合（階層が深くなった場合）や属性を有する場合にも、上述した原理を拡張することによって適用される。
【００７４】
非キー要素が複数階層を成している場合、第１実施形態の変換方法では、上記タグ名変換によって得られるタグ名文字列において、複数階層を成す非キー要素のタグ名に、その非キー要素が複数階層を成している旨を示す階層構造識別情報（記号もしくは文字列；図６〜図８参照）を付加する。
また、非キー要素が属性を有する場合、第１実施形態の変換方法では、その属性名の文字列に、この文字列が属性名であることを示す属性名識別情報（記号；例えば“＠”；図６〜図８参照）を付加する。そして、上記タグ名変換によって得られるタグ名文字列において、属性を有する非キー要素のタグ名の後に、区切り記号（例えばコンマ）を介して、上述のごとく属性名識別情報を付加した属性名を記述する。また、上記内容変換によって得られる内容文字列において、属性を有する非キー要素の内容の後に、区切り記号（例えばコンマ）を介して、その属性の属性値を記述する。
【００７５】
これにより、属性値は、内容文字列において、タグ名文字列中における属性名の記述位置に対応する位置に記述される。つまり、非キー要素のタグ名および属性名と非キー要素の要素内容および属性内容（属性値）とを、一対一の対応関係を保持しながら、それぞれＣＳＶ形式で繋いだタグ名文字列および内容文字列が作成され、ＸＭＬ文書中に記述される。
【００７６】
なお、レコード毎の要素の種類や数が同じである表形式ＸＭＬ文書であって非キー要素が属性を有している場合には、非キー要素のタグ名および属性名とそのタグ名および属性名を代表する代表タグ名（新要素のタグ名）とを対応付けた変換仕様文書が作成される。そして、変換後のＸＭＬ文書における新要素内の内容文字列では、要素内容および属性内容（属性値）が、その変換仕様文書におけるタグ名および属性名の記述順序と対応した順序で記述される。
【００７７】
ここで、図５〜図８を参照しながら、階層構造および属性を有するＸＭＬ文書の具体的な変換結果について説明する。
図５に示す変換対象のＸＭＬは２つのレコード（タグ名“個人”）を有しており、これらのレコードは、いずれも、タグ名“名前”，“勤務先”，“住所”，“連絡先”の要素を一つずつ有している。そして、タグ名“勤務先”の要素は、タグ名“会社”，“部署”の要素を有して階層構造となっており、さらにタグ名“部署”の要素は、属性名“担務”の属性を有している。なお、第１レコードは、タグ名“部署”の要素を一つだけ有しているのに対し、第２レコードは、タグ名“部署”の要素を二つ有している。また、タグ名“連絡先”の要素は、タグ名“電話”，“Fax”，“Email”の要素を有して階層構造となっている。
【００７８】
図６〜図８においては、それぞれ、図５で前述したＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得れた変換結果の第１〜第３具体例が示されている。ここでも、タグ名“名前”，“会社”の要素をキー要素とし、それ以外の要素を非キー要素とする。ただし、ここでは、タグ名“勤務先”の要素が、タグ名“会社”の要素を含む階層構造となっているので、タグ名“勤務先”の要素はキー要素として取り扱われることになる。
【００７９】
図６に示す第１具体例では、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報１”および属性名“tags”を付与された第１の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報２”および属性名“tags”を付与された第２の新要素が作成される。
そして、第１レコードのタグ名“情報１”の要素においては、タグ名文字列“部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ａ部，主務”が要素内容として記述されている。また、第１レコードのタグ名“情報２”の要素においては、タグ名文字列“住所，0連絡先，1電話，1Fax，1Email”が属性名“tags”の属性値として記述され、内容文字列“Ａ市，123，321，a1-a2@a-sya.co.jp”が要素内容として記述されている。
【００８０】
同様に、第２レコードのタグ名“情報１”の要素においては、タグ名文字列“部署，＠担務，部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ｂ-1部，主務，Ｂ-2部，兼務”が要素内容として記述されている。また、第２レコードのタグ名“情報２”の要素においては、タグ名文字列“住所，0連絡先，1電話，1Fax，1Email”が属性名“tags”の属性値として記述され、内容文字列“Ｂ市，456，654，b1-b2@b-sya.co.jp”が要素内容として記述されている。
【００８１】
ここで、“担務”の先頭に付加された“＠”は、属性名識別情報であり、この“担務”が属性名であることを示す情報である。また、“連絡先”の先頭に付加された“0”や、“電話”，“Fax”，“Email”の先頭に付加された“1”は階層構造識別情報であり、“1”を付されたタグ名の要素が“0”を付されたタグ名の要素の下位階層（要素内容に含まれる要素）であることを示すものである。
【００８２】
この図６に示すＸＭＬ文書は、図１５を参照しながら後述する変換仕様文書に従って、図５に示すＸＭＬ文書を変換して得られたものである。特に、図６に示すＸＭＬ文書は、図１５に示す変換仕様文書において“情報１”および“情報２”の表形式情報としていずれも“nontable”（表形式でない旨）を設定して得られたものである。つまり、この図６に示す例では、タグ名“住所”および“連絡先”の要素は、レコード毎の要素の種類や数が同一であるので、表形式として取り扱うことのできるものであるが、表形式情報として“nontable”を設定することにより、タグ名“住所”および“連絡先”の要素を、表形式ではないものとして取り扱っている。
【００８３】
図７に示す第２具体例においても、図６に示した例と同様、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報１”および属性名“tags”を付与された第１の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報２”および属性名“tags”を付与された第２の新要素が作成される。
また、第１レコードのタグ名“情報１”の要素においても、図６に示した例と同様、タグ名文字列“部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ａ部，主務”が要素内容として記述されている。ただし、図７に示す第２具体例では、第１レコードのタグ名“情報２”の要素においては、タグ名文字列“住所，連絡先/電話，連絡先/Fax，連絡先/Email”が属性名“tags”の属性値として記述され、内容文字列“Ａ市，123，321，a1-a2@a-sya.co.jp”が要素内容として記述されている。
【００８４】
同様に、第２レコードのタグ名“情報１”の要素においては、タグ名文字列“部署，＠担務，部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ｂ-1部，主務，Ｂ-2部，兼務”が要素内容として記述されている。また、第２レコードのタグ名“情報２”の要素においては、タグ名文字列“住所，連絡先/電話，連絡先/Fax，連絡先/Email”が属性名“tags”の属性値として記述され、内容文字列“Ｂ市，456，654，b1-b2@b-sya.co.jp”が要素内容として記述されている。
【００８５】
ここで、“電話”，“Fax”，“Email”の先頭に付加された文字列“連絡先/”は階層構造識別情報であり、文字列“連絡先/”を付されたタグ名の要素が、タグ名“連絡先”の要素の下位階層（要素内容に含まれる要素）であることを示すものである。この階層位置の表記法は、ＸPathとして知られている。
この図７に示すＸＭＬ文書は、図１７を参照しながら後述する変換仕様文書に従って、図５に示すＸＭＬ文書を変換して得られたものである。特に、図７に示すＸＭＬ文書は、図１７に示す変換仕様文書において“情報１”および“情報２”の表形式情報としていずれも“nontable”（表形式でない旨）を設定して得られたものである。つまり、この図７に示す例でも、タグ名“住所”および“連絡先”の要素は表形式として取り扱うことのできるものであるが、表形式情報として“nontable”を設定することにより、タグ名“住所”および“連絡先”の要素を、表形式ではないものとして取り扱っている。
【００８６】
図８に示す第３具体例においては、レコード毎に、タグ名“勤務先”の要素内に、タグ名“情報１”および属性名“tags”を付与された第１の新要素が作成されるとともに、タグ名“名前”やタグ名“勤務先”の要素と同一階層に、タグ名“情報２”を付与された第２の新要素が作成される。
そして、第１レコードのタグ名“情報１”の要素においては、タグ名文字列“部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ａ部，主務”が要素内容として記述されている。また、タグ名“住所”および“連絡先”の要素を表形式として取り扱うことにより、第１レコードのタグ名“情報２”の要素においては、内容文字列“Ａ市，123，321，a1-a2@a-sya.co.jp”が要素内容として記述されている。
【００８７】
同様に、第２レコードのタグ名“情報１”の要素においては、タグ名文字列“部署，＠担務，部署，＠担務”が属性名“tags”の属性値として記述され、内容文字列“Ｂ-1部，主務，Ｂ-2部，兼務”が要素内容として記述されている。また、第２レコードのタグ名“情報２”の要素においては、内容文字列“Ｂ市，456，654，b1-b2@b-sya.co.jp”が要素内容として記述されている。
【００８８】
この図８に示すＸＭＬ文書は、図１５もしくは図１７を参照しながら後述する変換仕様文書に従って、図５に示すＸＭＬ文書を変換して得られたものである。特に、図８に示すＸＭＬ文書は、図１５もしくは図１７に示す変換仕様文書において“情報１”の表形式情報として “nontable”（表形式でない旨）を設定するとともに“情報２”の表形式情報として“table”（表形式である旨）を設定して得られたものである。
【００８９】
なお、図６〜図８のいずれのＸＭＬ文書においても、当然、キー要素については、何の変換も施すことなくそのまま記述されている。
〔１−６〕第１実施形態の変換仕様文書およびスタイルシートの具体例
〔１−６−１〕表形式データのための変換仕様文書およびスタイルシート
図９には、図４（Ａ）に示した表形式ＸＭＬ文書を変換対象とした場合の、具体的な変換仕様文書（ＸＭＬ文書）が示されている。
【００９０】
この図９に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key_tags”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey_tags”の要素の内容として非キー要素のタグ名“部署”，“住所”および“電話”を記述することにより、キー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey_tags”の要素の内容には、タグ名“merged_tag”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名（代表タグ名）“情報”が記述されている。このような変換仕様文書により、ＸＭＬ文書のデータ構造変換実行手順が指示される。
【００９１】
そして、図２に示すＸＳＬＴ変換部１１が、図９に示す変換仕様文書を読み込み、その変換仕様文書と自動変換スタイルシート（自動変換ＸＳＬシート；図示省略）とにより、図１０に示す構造変換用スタイルシート（ＸＳＬシート）と図１１に示す逆変換用スタイルシート（ＸＳＬシート）とを生成する。図１０に示す構造変換用スタイルシートは、ＸＳＬＴ構造変換部１２によって読み込まれ、変換対象のＸＭＬ文書（入力ＸＭＬ文書）に対しデータ構造変換を施すために用いられる。また、図１１に示す逆変換用スタイルシートは、ＸＳＬＴ逆変換部１３によって読み込まれ、応用ソフトウエア３０により処理されたＸＭＬ文書（抽出ＸＭＬ文書，変換後ＸＭＬ文書）を元の形式のＸＭＬ文書（非キー要素を元の状態に戻したＸＭＬ文書）に復元するために用いられる。
【００９２】
上述のように変換対象のＸＭＬ文書が表形式データである場合、非キー要素のタグ名は、変換／逆変換用スタイルシートによって新要素のタグ名（代表タグ名）と対応付けられるので、変換後のＸＭＬ文書には現われない。これにより、変換後のＸＭＬ文書のデータ量を大幅に削減することができる。つまり、変換仕様文書と自動変換スタイルシートとの両方を用意しておくか、もしくは、構造変換／逆変換用スタイルシートを用意しておけば、非キー要素のタグ名は変換後ＸＭＬ文書では基本的に不要になる。上述のようなスタイルシートの用意がない場合は、表形式のＸＭＬ文書であっても、非表形式として取り扱えば、要素の並びの規則性に基づいて、元のＸＭＬ文書を復元することは可能である。
【００９３】
〔１−６−２〕タグ名短縮変換を行なうための変換仕様文書
図１２には、第１実施形態における、タグ名短縮変換を行なうための具体的な変換仕様文書（ＸＭＬ文書）が示されている。この図１２に示す変換仕様文書においては、変換対象のＸＭＬ文書における非キー要素のタグ名“部署”，“住所”，“電話”を変換後のＸＭＬ文書において例えば図３（Ｃ）に示すようにそれぞれ短縮タグ名“Ａ”，“Ｂ”，“Ｃ”に置き換えるタグ名短縮変換を行なうべく、タグ名“部署”，“住所”，“電話”と短縮タグ名“Ａ”，“Ｂ”，“Ｃ”との対応付けが記述されている。このとき、図１２に示す変換仕様文書においても、図９に示した変換仕様文書と同様の記述がなされているが、図１２に示す変換仕様文書では、短縮タグ名が、タグ名“nonkey_tags”の各キー要素のタグ名において“abbr”属性によって対応付けられて記述されている。
【００９４】
〔１−６−３〕表形式／非表形式を指定するための変換仕様文書
図１３には、第１実施形態における、データ形式（表形式であるか否か）を指定する機能を有する変換仕様文書（ＸＭＬ文書）の具体例が示されている。この図１３に示す変換仕様文書においては、変換対象のＸＭＬ文書（非キー要素）が表形式で記述されているか否かの表形式情報が記述されている。つまり、図１３に示す変換仕様文書においても、図９に示した変換仕様文書と同様の記述がなされているが、図１３に示す変換仕様文書では、表形式情報が、タグ名“merged_tag”の要素における“format”属性として付加されている。表形式を指定する場合には“format”属性値として例えば“table”を記述する一方、非表形式を指定する場合には“format”属性値として例えば“nontable”を記述する。
【００９５】
変換仕様文書の“format”属性値として“table”が記述されていれば、図２に示すＸＳＬＴ構造変換部１２は、表形式に対応した変換処理（タグ名変換を省略し内容変換のみ行なう処理）を実行するとともに、図２に示すＸＳＬＴ逆変換部１３は、表形式に対応した逆変換を実行する。逆に、変換仕様文書の“format”属性値として“nontable”が記述されていれば、図２に示すＸＳＬＴ構造変換部１２は、非表形式に対応した変換処理（タグ名変換および内容変換の両方を行なう処理）を実行するとともに、図２に示すＸＳＬＴ逆変換部１３は、非表形式に対応した逆変換を実行する。
【００９６】
従って、エンドユーザは、ＸＭＬで記述された変換仕様文書において、“format”属性を用いて変換対象のＸＭＬ文書が表形式か否かを指定することができ、この“format”属性により、表形式変換を行なうか否か、つまり、表形式変換と非表形式変換とのどちらを行なうかが指示され、表形式変換や表形式逆変換の実行／非実行の自動切換え、つまり、表形式変換／逆変換と非表形式変換／逆変換との自動切換えを行なうことができる。
【００９７】
なお、上述のような表形式情報としての“format”属性は、図２１（Ａ）および図２１（Ｂ）を参照しながら後述するごとく、図２に示すＸＳＬＴ変換部１１において表形式データに対応する構造変換／逆変換用スタイルシートと非表形式データに対応する構造変換／逆変換用スタイルシートとのどちらを作成するかを判断する際に参照される。
また、一つの変換対象のＸＭＬ文書に表形式の部分と非表形式の部分とが混在する場合には、例えば図１５や図１７に示すごとく、タグ名“merged_tag”の各要素における“format”属性によって表形式情報を指定することで、例えば図８に示すごとく、表形式の部分に対しては表形式変換を施すとともに、非表形式の部分に対しては非表形式変換を施すようにすることもできる。
【００９８】
〔１−６−４〕短縮変換の実行／非実行を指定するための変換仕様文書
図１４には、第１実施形態における、データ形式（タグ名短縮変換を行なうか否か）を指定する機能を有する変換仕様文書（ＸＭＬ文書）の具体例が示されている。この図１４に示す変換仕様文書においては、変換時にタグ名短縮変換を行なうか否かのタグ名短縮変換情報が記述されている。つまり、図１４に示す変換仕様文書においては、図１２に示した変換仕様文書とほぼ同様の記述がなされているが、図１４に示す変換仕様文書では、タグ名短縮変換情報が、タグ名“merged_tag”の要素における“format”属性として付加されている。タグ名短縮変換を実行する場合には“format”属性値として例えば“abbr”を記述する。
【００９９】
変換仕様文書においてタグ名と短縮タグ名との対応付けがなされるとともに “format”属性値として“abbr”が記述されていれば、図２に示すＸＳＬＴ構造変換部１２は、タグ名短縮変換処理を実行するとともに、図２に示すＸＳＬＴ逆変換部１３は、タグ名伸長変換処理を実行する。
従って、エンドユーザは、ＸＭＬで記述された変換仕様文書において、“format”属性を用いてタグ名短縮変換を行なうか否かを指定することができ、この“format”属性により、タグ名短縮変換やタグ名伸長変換の実行／非実行の自動切換えを行なうことができる。
【０１００】
〔１−６−５〕階層構造と属性とをもつＸＭＬ文書のための変換仕様文書
図１５には、第１実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書（ＸＭＬ文書）の第１具体例が示されている。特に、この図１５に示す変換仕様文書は、図５に示したＸＭＬ文書を変換対象とし、図５に示したＸＭＬ文書を、図６または図８で説明したＸＭＬ文書に変換するためのものである。ここでは、要素の階層構造が、属性“depth”を用いて記述されるほか、子を有する親のタグにも属性“depth”を付しておく。
【０１０１】
この図１５に示すような変換仕様文書の作成手順を、図１６に示すフローチャート（ステップＳ１〜Ｓ４）に従って説明する。ただし、図１６に示す手順は、レコード内の階層数が任意であり且つ非キー要素が任意の属性を有する場合の変換仕様の作成手順である。
まず、ルート（root）およびレコードのタグ名を要素“structure”で指定する（ステップＳ１）。例えば図５に示すＸＭＬ文書を変換対象とする場合、ルートのタグ名として“名簿”が指定され、レコードのタグ名として“個人”が指定される。
【０１０２】
また、レコード内の要素をキー要素と非キー要素との二つのグループに分ける（ステップＳ２）。図５および図１６に示す例では、タグ名“名前”，“姓”，“名”，“勤務先”および“会社”の要素をキー要素とし、タグ名“部署”，“住所”，“連絡先”，“電話”，“Fax”および“Email”の要素を非キー要素としている。
そして、キー要素のタグ名をそれぞれ<key_tags>内の<tag>の箇所で指定するとともに（ステップＳ３）、非キー要素のタグ名をそれぞれ<nonkey_tags>内の<tag>の箇所で指定する（ステップＳ４）。
【０１０３】
ステップＳ４においては、非キー要素に関する情報が、以下の手順(1)〜(4)に従って変換仕様文書として記述される。
手順(1)：一つにまとめられた非キー要素を記述する新たな要素のタグ名を<merged_tag>で指定する（図１５の“情報１”や“情報２”参照）。
手順(2)：一つにまとめるべき非キー要素が表形式データであるか否かを“format”属性で指定する。表形式データの場合、“format”属性値として“table”を記述する一方、非表形式データの場合、“format”属性値として“nontable”を記述する。また、非表形式データの場合であって、タグ名を短縮タグ名に置き換えるタグ名短縮変換を行なう場合も、その旨を“format”属性で指定する。タグ名短縮変換を行なう場合、“format”属性値として“abbr”を記述する。
【０１０４】
手順(3)：タグ名，要素内容，属性，属性内容（属性値）を所定の順序で順に書き出し、ＣＳＶ形式で繋げる。
手順(4)：２階層以上の要素（階層構造を成す要素）は、“depth”属性で深さを指定する（図１５の「depth=“0”」や「depth=“1”」参照）。
以上のような手順によって、変換仕様文書が、図１５に示すごとく、ＸＭＬによって記述されることになる。
【０１０５】
一方、図１７には、第１実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書（ＸＭＬ文書）の第２具体例が示されている。特に、この図１７に示す変換仕様文書は、図５に示したＸＭＬ文書を変換対象とし、図５に示したＸＭＬ文書を、図７または図８で説明したＸＭＬ文書に変換するためのものである。ここでは、葉となる要素の階層構造が、属性“path”を用いて記述される。また、“path”属性値は、“ＸＰath”で表現される。
【０１０６】
このように、図１７に示す変換仕様文書では、属性“path”を用いて階層構造を記述する点以外は、図１５に示した変換仕様文書と同様であるので、その詳細な説明は省略する。また、図１７に示すような変換仕様文書も、図１６にて説明した手順と同様の手順によって作成される。
なお、前述した通り、図６や図７に示したＸＭＬ文書は、図１５や図１７に示す変換仕様文書を用いて変換されたもので、“format”属性値として“nontable”を設定し、変換対象のＸＭＬ文書が表形式データであるか否かを区別されることなく（つまり非表形式データとして）変換されたものである。これに対し、図８に示したＸＭＬ文書では、“情報１”の“format”属性値として“nontable”を設定するとともに“情報２”の“format”属性値として“table”を設定し、表形式データの非キー要素に対しては表形式変換が施されるとともに、非表形式データの非キー要素に対しては非表形式変換が施されている。
【０１０７】
〔１−７〕第１実施形態の変換方法による具体的な変換処理手順
次に、図１８〜図２１を参照しながら、本発明の第１実施形態としての構造化文書変換方法による変換処理手順について説明する。
図１８および図１９は、データ構造変換／逆変換処理を、Javaソフトウエアにより、ＤＯＭおよびＸＳＬＴなどを使用して実行する場合の処理手順を示すものである。なお、Javaは、米国Sun Microsystems社によって開発されたＣ++類似のオブジェクト指向プログラミング言語である。
【０１０８】
ここで、図１８は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャート（ステップＡ１〜Ａ１６）であり、図１９は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャート（ステップＢ１〜Ｂ１５）である。図１８および図１９に示す処理手順は、図２に示すようなデータ構造変換／逆変換機構１０を用いることなく、変換仕様文書に基づいて、変換対象ＸＭＬ文書や変換後ＸＭＬ文書に対する処理を実行する際の処理手順である。
【０１０９】
変換対象ＸＭＬ文書に対してデータ構造変換を施す際には、図１８に示すように、最初に、プロセッサは、変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＡ１）、変換対象のＸＭＬ文書を読み込み、データ構造の変換処理を開始する（ステップＡ２）。
まず、変換対象ＸＭＬ文書のルート（root）のタグを変換後ＸＭＬ文書側にコピーしてから（ステップＡ３）、次のレコードデータを一つ変換対象ＸＭＬ文書から切り出す（ステップＡ４）。この後、全てのレコードに対して処理を行なったか否かを判断し（ステップＡ５）、まだ全てのレコードに対する処理を完了していない場合（ステップＡ５のＮＯルート）、次のレコードのタグを変換後ＸＭＬ文書側にコピーし（ステップＡ６）、現在処理中のレコードから次の要素データを切り出す（ステップＡ７）。
【０１１０】
ここで次の要素データが切り出された場合には、まだ全ての要素に対する処理を完了していないものと判断し（ステップＡ８のＮＯルート）、切り出された要素がキー要素であるか否かを判断する（ステップＡ９）。キー要素である場合（ステップＡ９のＹＥＳルート）、切り出された要素をそのまま変換後ＸＭＬ文書側にコピーしてから（ステップＡ１０）、ステップＡ７の処理に戻る。
【０１１１】
切り出された要素がキー要素でない場合（ステップＡ９のＮＯルート）、その要素が非キー要素であるか否かを判断する（ステップＡ１１）。もし非キー要素でない場合（ステップＡ１１のＮＯルート）、何らかのエラー処理を実行する。
一方、非キー要素である場合（ステップＡ１１のＹＥＳルート）、変換仕様文書によって予め指定されたタグ名の新要素を作成する（ステップＡ１２）。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
【０１１２】
そして、ステップＡ１２で新要素を作成した場合には、その非キー要素のタグ名を新要素の属性においてタグ名文字列（属性値）として記述する。既に非キー要素に対応する新要素が作成されている場合には、その非キー要素のタグ名を、新要素の属性におけるタグ名文字列の後に、ＣＳＶ形式でつまり区切り記号を介して繋げる（ステップＡ１３）。
また、ステップＡ１２で新要素を作成した場合には、その非キー要素の内容を新要素の内容において内容文字列として記述する。既に非キー要素に対応する新要素が作成されている場合には、その非キー要素の内容を、新要素の要素における内容文字列の後に、ＣＳＶ形式でつまり区切り記号を介して繋げる（ステップＡ１４）。この後、ステップＡ７の処理に戻る。なお、ステップＡ１４において、非キー要素の内容中に区切り記号（ここではコンマ“，”）と同じ文字が現われた場合、前述したように、非キー要素の内容中における文字（区切り記号）を、他の識別文字列（例えば実体参照記述等）に置き換える。
【０１１３】
ステップＡ７で次の要素データが切り出されなかった場合には、全ての要素に対する処理を完了したものと判断し（ステップＡ８のＹＥＳルート）、現在処理中のレコードの終了タグを出力し変換後ＸＭＬ文書側にコピーしてから（ステップＡ１５）、ステップＡ４の処理に戻る。また、全てのレコードに対する処理を完了した場合（ステップＡ５のＹＥＳルート）、ルートの終了タグを出力し変換後ＸＭＬ文書側にコピーし（ステップＡ１６）、変換処理を終了する。
【０１１４】
逆に、変換後ＸＭＬ文書に対してデータ構造の逆変換を施す際には、図１９に示すように、最初に、プロセッサは、変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＢ１）、逆変換対象ＸＭＬ文書を読み込み、データ構造の逆変換処理を開始する（ステップＢ２）。
まず、逆変換対象ＸＭＬ文書のルート（root）のタグを復元ＸＭＬ文書側にコピーしてから（ステップＢ３）、次のレコードデータを一つ逆変換対象ＸＭＬ文書から切り出す（ステップＢ４）。この後、全てのレコードに対して処理を行なったか否かを判断し（ステップＢ５）、まだ全てのレコードに対する処理を完了していない場合（ステップＢ５のＮＯルート）、そのレコードのタグを復元ＸＭＬ文書側にコピーし（ステップＢ６）、現在処理中のレコードから次の要素データを切り出す（ステップＢ７）。
【０１１５】
ここで次の要素データが切り出された場合には、まだ全ての要素に対する処理を完了していないものと判断し（ステップＢ８のＮＯルート）、切り出された要素がキー要素であるか否かを判断する（ステップＢ９）。キー要素である場合（ステップＢ９のＹＥＳルート）、切り出された要素をそのまま復元ＸＭＬ文書側にコピーしてから（ステップＢ１０）、ステップＢ７の処理に戻る。
【０１１６】
切り出された要素がキー要素でない場合（ステップＢ９のＮＯルート）、その要素が、非キー要素をまとめた（マージした）ものであるか否かを判断する（ステップＢ１１）。もし非キー要素をまとめたものでない場合（ステップＢ１１のＮＯルート）、何らかのエラー処理を実行する。
一方、非キー要素をまとめた前記新要素が切り出された場合（ステップＢ１１のＹＥＳルート）、その新要素のタグにおいて属性値として記述されたタグ文字列（非キー要素のタグ名をＣＳＶ形式で繋いだもの）から、非キー要素のタグ名を順次切り出す（ステップＢ１２）。
【０１１７】
また、その新要素の内容に記述された内容文字列（非キー要素の内容をＣＳＶ形式で繋いだもの）から、非キー要素の内容を順次切り出し、切り出された内容とステップＢ１２で切り出されたタグ名とから、非キー要素を復元してから（ステップＢ１３）、ステップＢ７の処理に戻る。なお、ステップＢ１３において、新要素における内容文字列から、区切り記号についての識別文字列を含む内容が切り出された場合には、その識別文字列を元の区切り記号に戻す。
【０１１８】
ステップＢ７で次の要素データが切り出されなかった場合には、全ての要素に対する処理を完了したものと判断し（ステップＢ８のＹＥＳルート）、現在処理中のレコードの終了タグを出力し復元ＸＭＬ文書側にコピーしてから（ステップＢ１４）、ステップＢ４の処理に戻る。また、全てのレコードに対する処理を完了した場合（ステップＢ５のＹＥＳルート）、ルートの終了タグを出力し復元ＸＭＬ文書側にコピーし（ステップＢ１５）、逆変換処理を終了する。
【０１１９】
ところで、図２０（Ａ）〜図２０（Ｄ）は、第１実施形態によるデータ構造変換／逆変換処理をＸＳＬＴプロセッサのみで実行する場合の処理手順を示すものである。つまり、図２０（Ａ）〜図２０（Ｄ）に示す処理手順は、図２に示したデータ構造変換／逆変換機構１０を用い、変換仕様文書に基づいて、変換対象ＸＭＬ文書や変換後ＸＭＬ文書に対する処理を実行する際の処理手順である。
【０１２０】
ここで、図２０（Ａ）および図２０（Ｂ）は、それぞれ、第１実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順（ＸＳＬＴ変換部１１での処理）を説明するためのフローチャートである。
また、図２０（Ｃ）は、ＸＳＬＴ構造変換部１２が構造変換用スタイルシートに基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャートであり、図２０（Ｄ）は、ＸＳＬＴ逆変換部１３が逆変換用スタイルシートに基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャートである。
【０１２１】
変換対象ＸＭＬ文書に対する処理を施すのに先立って、まず、図２０（Ａ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＡ１）、その変換仕様と自動変換スタイルシートとを用いて、データ構造変換用スタイルシートを作成する（ステップＡ２０）。また、同様に、図２０（Ｂ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＢ１）、その変換仕様と自動変換スタイルシートとを用いて、データ構造逆変換用スタイルシートを作成する（ステップＢ２０）。
【０１２２】
そして、変換対象ＸＭＬ文書に対してデータ構造変換を施す際には、図２０（Ｃ）に示すように、ＸＳＬＴ構造変換部１２は、その変換対象ＸＭＬ文書と構造変換用スタイルシートとを指定して、変換処理を開始する（ステップＡ２１）。その後、ＸＳＬＴ構造変換部１２は、図１８のステップＡ２〜Ａ１６と同様の処理を実行する。
逆に、変換後ＸＭＬ文書に対してデータ構造の逆変換を施す際には、図２０（Ｄ）に示すように、ＸＳＬＴ逆変換部１３は、逆変換対象ＸＭＬ文書と逆変換用スタイルシートとを指定して、逆変換処理を開始する（ステップＢ２１）。その後、ＸＳＬＴ逆変換部１３は、図１９のステップＢ２〜Ｂ１５と同様の処理を実行する。
【０１２３】
ここで、図２に示すように、応用ソフトウエア３０は、標準ＡＰＩ（ＤＯＭ）２０を通して、ＸＳＬＴ構造変換部１２からの、要素数を削減された変換後ＸＭＬ文書に対し、タグ検索等の処理を行なうことになるので、応用ソフトウエア３０による処理速度は大幅に高速化される。
応用ソフトウエア３０が、変換後ＸＭＬ文書に対してタグ検索を行なうものである場合、そのタグ検索によってヒットしたレコードを記述するＸＭＬ文書（抽出ＸＭＬ文書）が抽出・出力される。この抽出ＸＭＬ文書は、ＸＳＬＴ逆変換部１３によって上述のごとく逆変換され、応用ソフトウエア３０が元のＸＭＬ文書に対してタグ検索したのと全く同じ、検索結果（ＸＭＬ文書）が得られることになる。
【０１２４】
このとき、ＸＳＬＴ逆変換部１３が逆変換を施すＸＭＬ文書は、応用ソフトウエア３０によって抽出された少数のレコードを記述されたＸＭＬ文書であるので、ＸＳＬＴ逆変換部１３による逆変換のオーバーヘッドは、ほとんど問題にならない。従って、応用ソフトウエア３０で多数回実行される処理は、本実施形態のデータ構造変換を予め施しておくことによって、大幅に高速化されるとともに、動作メモリの使用量も大幅に削減されることになる。
【０１２５】
なお、図２１（Ａ）および図２１（Ｂ）は、それぞれ、第１実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順（ＸＳＬＴ変換部１１での処理）の変形例を説明するためのフローチャートである。これらの図２１（Ａ）および図２１（Ｂ）に示す処理手順は、図１３，図１５や図１７に示す変換仕様文書において“format”属性値（表形式情報）により表形式／非表形式が指定されている場合に、図２０（Ａ）や図２０（Ｂ）で前述した処理手順に代えて、ＸＳＬＴ変換部１１において実行されるものである。
【０１２６】
つまり、変換対象ＸＭＬ文書に対する処理を施すのに先立って、まず、図２１（Ａ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＡ１）、“format”属性値を参照してデータ（変換対象ＸＭＬ文書）が表形式か否かを判断する（ステップＡ２２）。
【０１２７】
データが表形式である場合（ステップＡ２２のＹＥＳルート）、ＸＳＬＴ変換部１１は、変換仕様と自動変換スタイルシートとを用いて、非キー要素のタグ名を新要素のタグ名で代表させる構造変換用スタイルシートを作成する（ステップＡ２０−１）。一方、非表形式の場合（ステップＡ２２のＮＯルート）、ＸＳＬＴ変換部１１は、変換仕様と自動変換スタイルシートとを用いて、区切り記号を介して非キー要素のタグ名（もしくは短縮タグ名）を繋いだタグ名文字列を変換後ＸＭＬ文書中に記述させる構造変換用スタイルシートを作成する（ステップＡ２０−２）。
【０１２８】
また、図２１（Ｂ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＢ１）、“format”属性値を参照してデータ（変換対象ＸＭＬ文書）が表形式か否かを判断する（ステップＢ２２）。
データが表形式である場合（ステップＢ２２のＹＥＳルート）、ＸＳＬＴ変換部１１は、変換仕様と自動変換スタイルシートとを用いて、新要素のタグ名から非キー要素のタグ名を割り出せるようにした逆変換用スタイルシートを作成する（ステップＢ２０−１）。一方、非表形式の場合（ステップＢ２２のＮＯルート）、ＸＳＬＴ変換部１１は、変換仕様と自動変換スタイルシートとを用いて、タグ名文字列から非キー要素のタグ名を復元させる構造変換用スタイルシートを作成する（ステップＡ２０−２）。
【０１２９】
〔１−８〕第１実施形態の効果
このように、本発明の第１実施形態としての構造化文書変換方法によれば、変換対象のＸＭＬ文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象の構造化文書が、キー要素をそのまま記述する一方で非キー要素（データ処理の対象とならない項目）を一つのタグにまとめて記述したＸＭＬ文書に変換されるので、変換後のＸＭＬ文書では、要素数が大幅に削減されるとともに、ＤＯＭツリーへの展開時や、タグ検索等のデータ処理時に、非キー要素を一括して扱うことができる。
【０１３０】
特に、データ処理の対象とならない非キー要素が多いＸＭＬ文書や、１レコードの要素数が多いＸＭＬ文書での要素数の削減効果は大きく、例えば要素数が半分になれば、ＤＯＭツリーへの展開およびタグ検索に要する時間は半分に短縮することができる。また、変換対象のＸＭＬ文書が表形式データである場合には、そのＸＭＬ文書を図４（Ｂ）や図４（Ｃ）にて説明したように変換することで、非キー要素のタグ名を変換後のＸＭＬ文書に記述する必要がなくなるので、変換後のＸＭＬ文書のデータ量を、変換前のＸＭＬ文書のデータ量の約３分の１まで削減することができる場合がある。
【０１３１】
また、応用ソフトウエア（アプリケーション）３０によりＸＭＬ文書に対するデータ処理を行なう際にはキー要素のみが使用されるが、第１実施形態では、キー要素についてはそのまま記述されているので、通常通り、キー要素のタグ名を用いてキー要素の内容を参照することができ、変換後のＥＭＬ文書のトランスペアレント性は確保される。
このとき、変換仕様文書をＸＭＬ文書として作成し変換実行手順を与えることにより、多様な種類のＸＭＬ文書に対して、スタイルシートを一々作成する必要がなくなり、手間をかけることなく、第１実施形態によるデータ構造の変換／逆変換処理を種々のＸＭＬ文書データに施すことができる。さらに、変換仕様文書に基づいて変換／逆変換を指示する変換／逆変換用スタイルシートを生成すれば、標準のＸＳＬＴプロセッサにより変換／逆変換用スタイルシートを用いて変換／逆変換を実行することができ、つまりは、ほとんどあらゆる種類のＸＭＬシステムにおいて第１実施形態による変換／逆変換処理を実行することができる。
【０１３２】
従って、第１実施形態の変換方法によれば、アプリケーションに対するトランスペアレント性や変換されたＸＭＬ文書のデータ構造の有効性を確保しながら、非キー要素を一つの要素にまとめるデータ構造変換処理を、種々のＸＭＬ文書データに施すことができるようにした汎用の変換技術を提供することができ、これにより、ＸＭＬ文書に対する操作に必要となるリソースが大幅に軽減され、ＸＭＬ文書を処理する際におけるメモリ使用量削減と処理速度の高速化との両方が実現されることになる。
【０１３３】
また、ＥＤＩのデータにおいては１レコード当たり数百〜千の項目（要素）があり、項目数が多過ぎるため、ＤＯＭツリーへの展開に向かない。また、文書要素を切り出して時系列的に流すだけの標準ＡＰＩ(ＳＡＸ: Simple API for XML)が用いられているため、複雑な文書操作が難しくなっている。しかし、項目数の多いデータであっても、データ処理の対象となる項目（キー要素）の数は必ずしも多くないので、第１実施形態の変換方法によりＸＭＬ文書を変換することは極めて効果的である。
【０１３４】
タグ名変換や内容変換に際しては、図３〜図８に示すように、コンマ等の区切り記号を介して（ＣＳＶ形式で）非キー要素のタグ名や内容を繋ぐことにより、タグ名文字列や内容文字列が、タグ付けに関連することのない記号を用いて極めて容易に作成される。
このとき、非キー要素が複数階層を成している場合、図６や図７に示すように、タグ名文字列におけるタグ名に、階層構造識別情報を付加すれば、その階層構造を変換後のＸＭＬ文書に保存することができるので、その階層構造識別情報に従って、元のＸＭＬ文書を復元するための逆変換を容易に行なうことができる。
【０１３５】
また、非キー要素が属性を有する場合、図６〜図８に示すように、タグ名文字列において、属性を有するタグ名の後に、区切り記号を介して、属性名識別情報（図６〜図８では“＠”）を付加した属性の属性名を記述するとともに、このタグ名文字列におけるタグ名の並びに対応させて非キー要素の内容を繋いだ内容文字列を作成することにより、非キー要素の属性を変換後のＸＭＬ文書に保存することができるので、その属性名識別情報に従って、元のＸＭＬ文書を復元するための逆変換を容易に行なうことができる。
【０１３６】
さらに、図３（Ｃ）や図３（Ｆ）に示すように、非キー要素のタグ名を短縮タグ名に置換するタグ名短縮変換を行なうことにより、変換後の構造化文書のデータ量を削減することができる。このとき、図１４に示すように変換仕様文書におけるタグ名短縮変換情報（“format”属性値の“abbr”）によってタグ名短縮変換を行なうか否かを指示し、タグ名短縮変換やタグ名伸長変換の実行／非実行を自動的に切り換えることができる。
【０１３７】
変換対象のＸＭＬ文書が表形式で記述されている場合、前述した通り、元のＸＭＬ文書を復元するための逆変換に際してタグ名や属性名を容易に割り出すことができるので、タグ名変換や属性名変換を省略することができる。従って、変換後のＸＭＬ文書においては、非キー要素の内容文字列が記述されていればよく、タグ名や属性名に係る記述を省略することができ、変換後のＸＭＬ文書のデータ量を大幅に削減することができる。このとき、図１３，図１５や図１７に示すように変換仕様文書における表形式情報(“format”属性値の“table/nontable”)によって表形式変換を行なうか否かを指示し、表形式変換や表形式逆変換の実行／非実行を自動的に切り換えることができる。
【０１３８】
〔２〕第２実施形態の説明
〔２−１〕第２実施形態の構造化文書変換方法の原理
図１（Ａ），図３（Ａ）および図２２を参照しながら、本発明の第２実施形態としての構造化文書変換方法の原理について説明する。
図１（Ａ）および図３（Ａ）により前述したＸＭＬ文書において、タグ名“名前”，“会社”の要素をキー要素とするとともにタグ名“部署”，“住所”，“電話”の要素を非キー要素とし、このＸＭＬ文書に対し、第２実施形態の構造化文書変換方法を適用して得られた変換後ＸＭＬ文書のメモリ展開形式を図２２に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準ＡＰＩ（ＤＯＭ）を介して変換後ＸＭＬ文書を操作するときの、メモリ上への展開形式である。
【０１３９】
この図２２に示すＸＭＬ文書では、タグ名“情報”を有する新たな要素が作成され、この新たな要素の内容として、タグ名“部署”，“住所”，“電話”の非キー要素が記述されている。ただし、非キー要素を新たな要素の内容として記述する際に、非キー要素記述におけるタグ記号“<”および“>”を実体参照記述に置き換えている。また、タグ名“名前”，“会社”のキー要素については、元のまま記述されている。なお、図２２において、新要素“情報”の要素内容は、先頭の一部のみ記述されている。
【０１４０】
このようにしてレコード毎に非キー要素を一つの要素にまとめるようにＸＭＬ文書を変換することによって、ＸＭＬ文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
ここで、レコード毎に非キー要素を一つの要素にまとめる際、第２実施形態では、非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、この文字列を、新たな要素の内容（図２２や図２３参照）もしくは新たな要素の属性値（図２４参照）もしくは親要素の属性値（図２５参照）もしくは親要素の内容（図２６参照）として記述する。なお、第２実施形態の変換方法の原理を説明するための図２２では、上記文字列を新たな要素の内容として記述した場合の変換後ＸＭＬ文書のＤＯＭツリーが示されている。
【０１４１】
特に、第２実施形態では、非キー要素におけるタグ付けに関連する記号（タグ記号「<」および「>」）を、「実体参照」と呼ばれる記述手法で、タグ付けに関連しない他の文字列に置き換えている。
実体(entity)とは、ファイルや置換文字列のように、何らかの形でＸＭＬ文書の一部となりうるデータを格納しているものをいう。「実体参照」を行なう場合には、ＸＭＬ実現値の中で「&実体名;」という記述がなされる。
【０１４２】
通常、文書型定義(ＤＴＤ：Document Type Definition)において、実体名と元のファイル名や文字列との対応関係が宣言される。しかし、下記表１に示す、タグ付けに関連する５つの実体＜，＞，＆，’，”は、ＤＴＤなしでも使用できるようになっている。例えば、要素内容中に実体（置換したい文字）「＜」が記述されていた場合、「＜」は実体名「lt」を用いた実体参照記述による文字列「&lt;」に置き換えられる。同様に、「＞」は「&gt;」に、「＆」は「&amp;」に、「'」は「&apos;」に、「"」は「&quot;」に置き換えられる。
【０１４３】
【表１】
2008217809.tif 000003
【０１４４】
このような実体参照記述を用いて、要素内容中のタグを表わす記号「<」および「>」をそれぞれ実体参照文字列「&lt;」および「&gt;」に置き換えることにより、要素内容中に記述されていたタグ記号は、パーサー（構文解析ソフトウエア）でタグとして処理されなくなる。従って、非キー要素を一つの要素にまとめる際に、タグ記号を実体参照文字列に置換した一連の非キー要素を、例えば<情報></情報>というタグで囲い、タグ名“情報”の新要素の内容とすれば、その一連の非キー要素は、単なる要素内容として扱われることになる。このような変換方法を整理して記述すると、以下のようになる。
【０１４５】
(1)一連の非鍵要素を抽出する。
第１レコード：<部署>Ａ部</部署><住所>Ａ市</住所><電話>123</電話>
第２レコード：<部署>Ｂ部</部署><電話>456</電話><電話>789</電話>
(2)タグ記号を実体参照文字列に置換する。
「<」を「&lt;」に、「>」を「&gt;」に置換
第１レコード：&lt;部署&gt;Ａ部&lt;/部署&gt;&lt;住所&gt;Ａ市&lt;/住所&gt;&lt;電話&gt;123&lt;/電話&gt;
第２レコード：&lt;部署&gt;Ｂ部&lt;/部署&gt;&lt;電話&gt;456&lt;/電話&gt;&lt;電話&gt;789&lt;/電話&gt;
(3)レコード毎に、<情報></情報>というタグで、実体参照を適用された一連の非キー要素を囲むことにより、一連の非キー要素を１つの要素の内容としてまとめる。
【０１４６】
第１レコード：<情報>&lt;部署&gt;Ａ部&lt;/部署&gt;&lt;住所&gt;Ａ市&lt;/住所&gt;&lt;電話&gt;123&lt;/電話&gt;</情報>
第２レコード：<情報>&lt;部署&gt;Ｂ部&lt;/部署&gt;&lt;電話&gt;456&lt;/電話&gt;&lt;電話&gt;789&lt;/電話&gt;</情報>
〔２−２〕第２実施形態のシステムおよび変換／逆変換処理の流れ
本発明の第２実施形態としての構造化文書変換方法も、図２で説明したシステムに適用される。
【０１４７】
多様な種類のＸＭＬ文書に対して、各ＸＭＬ文書に応じたスタイルシート（ＸＳＬシート）を一々作成するのは極めて面倒で手間がかかる。そこで、その手間を省くため、第２実施形態でも、図２７を参照しながら後述するごとく、ＸＭＬ文書のデータ構造を変換するための仕様（レコード名，キータグ名，非キータグ名等）をＸＭＬ文書（変換仕様文書）によって作成して変換実行手順を与え、図３１〜図３８を参照しながら後述するごとく、その変換仕様文書に基づいてＸＭＬ文書の変換／逆変換を実行する。
【０１４８】
さらに、第２実施形態でも、図３９（Ａ）〜図３９（Ｄ）を参照しながら後述するごとく、与えられた変換仕様文書に基づいて、変換実行手順を指示する変換用スタイルシートや、逆変換実行手順を指示する逆変換用スタイルシートを自動的に生成し、このスタイルシートを用いて、構造化文書変換プロセッサ（ＸＳＬＴプロセッサ）に、ＸＭＬ文書に対するデータ構造変換／逆変換を実行させている。このように変換／逆変換の実行手順をスタイルシートで与えるようにすれば、標準のＸＳＬＴプロセッサで変換／逆変換を実行することができるので、ほとんどあらゆる種類のＸＭＬ文書システムにおいて第２実施形態による変換／逆変換処理を実行することができる。
【０１４９】
図２に示すシステムに第２実施形態の変換方法を適用した場合も、データ構造変換/逆変換機構（ＸＳＬＴプロセッサ）１０は、ＸＭＬ文書による変換仕様文書を読み込むとともに、処理対象の入力ＸＭＬ文書を読み込み、変換仕様（実際には構造変換用スタイルシート）に基づいて入力ＸＭＬ文書を変換し、所定のデータ構造変換を施したＸＭＬ文書を出力する。そして、変換されたＸＭＬ文書に対しては、標準ＡＰＩ２０を介して応用ソフトウエアによりデータ処理（例えばタグ検索）が施され、データ処理後のＸＭＬ文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出ＸＭＬ文書の形で得られる。この抽出ＸＭＬ文書は、データ構造変換／逆変換機構１０に読み込まれ、変換仕様（実際には逆変換用スタイルシート）に基づいて元のデータ構造のＸＭＬ文書に逆変換され、最終的なデータ処理結果としてのＸＭＬ文書が得られる。
【０１５０】
なお、第２実施形態において、ＸＳＬＴ変換部１１に読み込まれるデータ構造変換用の仕様ＸＭＬ文書については、図２７を参照しながら後述する。また、ＸＳＬＴ変換部１１によって生成される構造変換用スタイルシートおよび逆変換用スタイルシートについては、それぞれ図２８および図２９を参照しながら後述する。
〔２−３〕第２実施形態におけるＸＭＬ文書の変換方法および具体的な変換例
図２３〜図２６においては、それぞれ、図４（Ａ）に示した表形式ＸＭＬ文書に、第２実施形態の構造化文書変換方法を適用して得られた変換結果の第１〜第４具体例が示されている。ここでも、タグ名“名前”，“会社”の要素をキー要素とし、タグ名“部署”，“住所”，“電話”の要素を非キー要素とする。
【０１５１】
図２３に示す第１具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、タグ名“情報”を付与された新たな要素を作成し、非キー要素の記述中においてタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換えた文字列を作成し、この文字列を新たな要素の内容として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、新たな要素に関する情報（タグ名“情報”）は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のＸＭＬ文書に対するデータ構造変換が施されるとともに、その変換を施されたＸＭＬ文書に対し、非キー要素の記述を元の状態に戻す逆変換が施される。
【０１５２】
図２４に示す第２具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、タグ名“情報”および属性名“contents”を付与された新たな要素（空要素）を作成し、非キー要素の記述中においてタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換えた文字列を作成し、この文字列を新たな要素の属性名“contents”に対応する属性値として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、新たな要素に関する情報（タグ名“情報”および属性名“contents”）は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のＸＭＬ文書に対するデータ構造変換や、変換後ＸＭＬ文書に対する逆変換が施される。
【０１５３】
図２５に示す第３具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、非キー要素の親要素（タグ名“個人”）に新たな属性名“contents”を付与し、非キー要素の記述中においてタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換えた文字列を作成し、この文字列を親要素の属性名“contents”に対応する属性値として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、親要素に関する情報（タグ名“個人”や属性名“contents”）は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のＸＭＬ文書に対するデータ構造変換や、変換後ＸＭＬ文書に対する逆変換が施される。
【０１５４】
図２６に示す第４具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、非キー要素の記述中においてタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換えた文字列を作成し、この文字列を親要素（タグ名“個人”）の内容として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。このとき、キー要素と非キー要素とを区別するための情報や、親要素に関する情報（タグ名“個人”）は、変換仕様文書に記述されて指定され、この変換仕様文書に基づいて、変換対象のＸＭＬ文書に対するデータ構造変換や、変換後ＸＭＬ文書に対する逆変換が施される。
【０１５５】
このように、第２実施形態の変換方法も、第１実施形態と同様、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。変換方法として、図２３〜図２６で説明した各種方法のうちのどれを用いるかは、自動変換スタイルシート等により選択・指定することができるようになっている。このとき、これら各種方法のうちのどれを用いるかは、ＸＭＬ文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どの方法を採用してもよい。
【０１５６】
〔２−４〕第２実施形態の変換仕様文書およびスタイルシートの具体例
図２７には、図４（Ａ）に示した表形式ＸＭＬ文書を変換対象とした場合の、具体的な変換仕様文書（ＸＭＬ文書）が示されている。ここでは、変換対象のＸＭＬ文書が表形式データである場合について説明しているが、変換対象のＸＭＬ文書が非表形式データであっても、図２７に示す変換仕様文書を用いて変換／逆変換を行なうことができる。また、図２７に示す変換仕様文書は、図２３で説明した変換方法を実現するためのものである。
【０１５７】
この図２７に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey”の要素の内容として非キー要素のタグ名“部署”，“住所”および“電話”を記述することによりキー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey”の要素の内容には、タグ名“merged_item”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名 “情報”が記述されている。このような変換仕様文書により、ＸＭＬ文書のデータ構造変換実行手順が指示される。
【０１５８】
そして、図２に示すＸＳＬＴ変換部１１が、図２７に示す変換仕様文書を読み込み、その変換仕様文書と自動変換スタイルシート（自動変換ＸＳＬシート；図示省略）とにより、図２８に示す構造変換用スタイルシート（ＸＳＬシート）と図２９に示す逆変換用スタイルシート（ＸＳＬシート）とを生成する。図２８に示す構造変換用スタイルシートは、ＸＳＬＴ構造変換部１２によって読み込まれ、変換対象のＸＭＬ文書（入力ＸＭＬ文書）に対しデータ構造変換を施すために用いられる。また、図２９に示す逆変換用スタイルシートは、ＸＳＬＴ逆変換部１３によって読み込まれ、応用ソフトウエア３０により処理されたＸＭＬ文書（抽出ＸＭＬ文書，変換後ＸＭＬ文書）を元の形式のＸＭＬ文書（非キー要素を元の状態に戻したＸＭＬ文書）に復元するために用いられる。
【０１５９】
ここまで、各レコードにおける非キー要素が、単一階層であり且つ属性をもたない場合について説明してきたが、第２実施形態の変換方法も、非キー要素が複数階層を成す場合（階層が深くなった場合）や属性を有する場合にも、上述した原理を拡張することによって適用される。つまり、階層毎に、非キー要素のタグに関わる記号を実体参照記述による文字列に置き換え、その置換結果を要素内容とする新しい要素を同じ階層に設けるか、その置換結果を属性値とする新しい要素を同じ階層に設けるか、その置換結果を親要素の要素内容もしくは新しい属性の属性値として記述すればい。
【０１６０】
なお、図３０は、第２実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャート（ステップＳ１，Ｓ２，Ｓ５およびＳ６）である。ただし、図３０に示す手順は、レコード内の階層数が任意であり且つ非キー要素が任意の属性を有する場合の変換仕様の作成手順である。また、図３０に示す手法で作成される変換仕様文書は、図２３で説明した変換方法を実現するためのものである。
【０１６１】
レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する際には、図３０に示すように、まず、ルート（root）およびレコードのタグ名を要素“structure”で指定する（ステップＳ１）。また、レコード内の要素をキー要素と非キー要素との二つのグループに分ける（ステップＳ２）。そして、キー要素のタグ名をそれぞれ<key>内の<item>の箇所で指定するとともに（ステップＳ５）、非キー要素のタグ名をそれぞれ<nonkey>内の<item>の箇所で指定する（ステップＳ６）。
【０１６２】
ステップＳ６においては、非キー要素に関する情報が、以下の手順(1)，(2)に従って変換仕様文書として記述される。
手順(1)：一つにまとめられた非キー要素を記述する新たな要素のタグ名を<merged_item>で指定する。
手順(2)：非キー要素のタグ名を<item>の後に記述する。
【０１６３】
〔２−５〕第２実施形態の変換方法による具体的な変換処理手順
次に、図３１〜図３９を参照しながら、本発明の第２実施形態としての構造化文書変換方法による変換処理手順について説明する。
図３１〜図３８は、図１８や図１９により説明した手順と同様、データ構造変換／逆変換処理を、Javaソフトウエアにより、ＤＯＭおよびＸＳＬＴなどを使用して実行する場合の処理手順を示すものである。なお、図３１〜図３８において図１８および図１９と同じステップ番号を付されたステップは、図１８および図１９で説明した処理と同一もしくはほぼ同一の処理を実行するものであるので、その説明は省略する。つまり、以下の説明では、ステップ番号Ａ１〜Ａ１１，Ａ１５，Ａ１６およびＢ１〜Ｂ１１，Ｂ１４，Ｂ１５を付されたステップにおける処理の説明は省略する。また、図３１〜図３８に示す処理手順は、図２に示すようなデータ構造変換／逆変換機構１０を用いることなく、変換仕様文書に基づいて、変換対象ＸＭＬ文書や変換後ＸＭＬ文書に対する処理を実行する際の処理手順である。
【０１６４】
〔２−５−１〕変換／逆変換処理手順の第１例
図３１は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順の第１例を説明するためのフローチャートであり、図３２は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順の第１例を説明するためのフローチャートである。ここで説明する第１例は、図２３で説明した変換方法に対応するものである。
【０１６５】
図３１に示す変換処理手順の第１例では、ステップＡ７で切り出された要素データが非キー要素である場合（ステップＡ１１のＹＥＳルート）、変換仕様文書によって予め指定されたタグ名“情報”の新要素（<情報>タグ）を作成する（ステップＡ３１）。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
また、その非キー要素の記述中におけるタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換える（ステップＡ３２）。なお、このステップＡ３２において、非キー要素の内容中に、タグ付けに関連する記号（表１参照）と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【０１６６】
そして、ステップＡ３１で新要素を作成した場合には、ステップＡ３２での置換結果文字列を新要素の内容として記述する。既に非キー要素に対応する新要素が作成されている場合には、ステップＡ３２での置換結果文字列を、新要素の内容における置換結果文字列の後に繋げて記述する（ステップＡ３３）。この後、ステップＡ７の処理に戻る。
一方、図３２に示す逆変換処理手順の第１例では、非キー要素をまとめた新要素（<情報>タグ）がステップＢ７で切り出された場合（ステップＢ１１のＹＥＳルート）、その新要素の内容の記述中における文字列「&lt;」，「&gt;」を元のタグ記号「<」，「>」に復元する（ステップＢ３１）。なお、このステップＢ３１において、新要素における内容に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号（表１参照）に復元する。そして、復元ＸＭＬ文書において、非キー要素をまとめた要素（<情報>タグ）の記述を削除してから（ステップＢ３２）、ステップＢ７の処理に戻る。
【０１６７】
〔２−５−２〕変換／逆変換処理手順の第２例
図３３は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順の第２例を説明するためのフローチャートであり、図３４は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順の第２例を説明するためのフローチャートである。ここで説明する第２例は、図２４で説明した変換方法に対応するものである。
【０１６８】
図３３に示す変換処理手順の第２例では、ステップＡ７で切り出された要素データが非キー要素である場合（ステップＡ１１のＹＥＳルート）、タグ名“情報”および属性名“contents”を付与された新要素（<情報>タグ）を作成する（ステップＡ３４）。既に非キー要素に対応する新要素が作成されている場合には、この作成処理は省略される。
また、その非キー要素の記述中におけるタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換える（ステップＡ３５）。なお、このステップＡ３５において、非キー要素の内容中に、タグ付けに関連する記号（表１参照）と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【０１６９】
そして、ステップＡ３４で新要素を作成した場合には、ステップＡ３５での置換結果文字列を新要素の“contents”属性値として記述する。既に非キー要素に対応する新要素が作成されている場合には、ステップＡ３５での置換結果文字列を、新要素の“contents”属性値における置換結果文字列の後に繋げて記述する（ステップＡ３６）。この後、ステップＡ７の処理に戻る。
【０１７０】
一方、図３４に示す逆変換処理手順の第２例では、非キー要素をまとめた新要素（<情報>タグ）がステップＢ７で切り出された場合（ステップＢ１１のＹＥＳルート）、その新要素の“contents”属性値の記述中における文字列「&lt;」，「&gt;」を元のタグ記号「<」，「>」に復元する（ステップＢ３３）。なお、このステップＢ３３において、新要素における“contents”属性値に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号（表１参照）に復元する。
【０１７１】
そして、復元ＸＭＬ文書において、非キー要素をまとめた要素（<情報>タグ）の記述を削除するとともに、この要素（<情報>タグ）の“contents”属性値（ステップＢ３３で復元された結果）を、キー要素の隣に要素内容として挿入する（ステップＢ３４）。この後、ステップＢ７の処理に戻る。
〔２−５−３〕変換／逆変換処理手順の第３例
図３５は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順の第３例を説明するためのフローチャートであり、図３６は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順の第３例を説明するためのフローチャートである。ここで説明する第３例は、図２５で説明した変換方法に対応するものである。
【０１７２】
図３５に示す変換処理手順の第３例では、ステップＡ７で切り出された要素データが非キー要素である場合（ステップＡ１１のＹＥＳルート）、親要素（<個人>タグ）に属性名“contents”の新たな属性を設定する（ステップＡ３７）。既に新属性が設定されている場合には、この作成処理は省略される。
また、その非キー要素の記述中におけるタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換える（ステップＡ３８）。なお、このステップＡ３８において、非キー要素の内容中に、タグ付けに関連する記号（表１参照）と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。
【０１７３】
そして、ステップＡ３７で新属性を設定した場合には、ステップＡ３８での置換結果文字列を親要素の“contents”属性値として記述する。既に非キー要素に対応する新属性が設定されている場合には、ステップＡ３７での置換結果文字列を、親要素の“contents”属性値における置換結果文字列の後に繋げて記述する（ステップＡ３９）。この後、ステップＡ７の処理に戻る。
【０１７４】
一方、図３６に示す逆変換処理手順の第３例では、前述したステップＢ９およびＢ１１による処理に代えてステップＢ９´による処理が実行されている。このステップＢ９´においては、ステップＢ７で切り出された要素が、非キー要素を“contents”属性値としてまとめたマージ親要素（ここでは“contents”属性値を有する<個人>タグ）であるか否かを判断する。
【０１７５】
マージ親要素でない場合（ステップＢ９´のＮＯルート）、前述したステップＢ１０の処理へ移行する一方、マージ親要素である場合（ステップＢ９´のＹＥＳルート）、その親要素の“contents”属性値の記述中における文字列「&lt;」，「&gt;」を元のタグ記号「<」，「>」に復元する（ステップＢ３５）。なお、このステップＢ３５において、親要素における“contents”属性値に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号（表１参照）に復元する。
【０１７６】
そして、復元ＸＭＬ文書において、親要素において非キー要素向けに設定された属性の記述を削除するとともに、その属性の“contents”属性値（ステップＳ３５で復元された結果）を、元々の子要素の記述の隣に要素内容として挿入する（ステップＢ３６）。この後、ステップＢ７の処理に戻る。
〔２−５−４〕変換／逆変換処理手順の第４例
図３７は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順の第４例を説明するためのフローチャートであり、図３８は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順の第４例を説明するためのフローチャートである。ここで説明する第４例は、図２６で説明した変換方法に対応するものである。
【０１７７】
図３７に示す変換処理手順の第４例では、ステップＡ７で切り出された要素データが非キー要素である場合（ステップＡ１１のＹＥＳルート）、その非キー要素の記述中におけるタグ記号「<」，「>」をそれぞれ実体参照記述による文字列「&lt;」，「&gt;」に置き換える（ステップＡ４０）。なお、このステップＡ４０において、非キー要素の内容中に、タグ付けに関連する記号（表１参照）と同じ文字が現われた場合、その文字を、実体参照記述による文字列に置き換える。そして、ステップＡ４０での置換結果文字列を、非キー要素の親要素（<個人>タグ）の内容として記述する（ステップＡ４１）。この後、ステップＡ７の処理に戻る。
【０１７８】
一方、図３８に示す逆変換処理手順の第４例では、前述したステップＢ９´による処理に代えてステップＢ９″による処理が実行されている。このステップＢ９″においては、ステップＢ７で切り出された要素が、非キー要素を要素内容としてまとめたマージ親要素であるか否かを判断する。
マージ親要素でない場合（ステップＢ９″のＮＯルート）、前述したステップＢ１０の処理へ移行する一方、マージ親要素である場合（ステップＢ９″のＹＥＳルート）、その親要素の要素内容の記述中における文字列「&lt;」，「&gt;」を元のタグ記号「<」，「>」に復元する（ステップＢ３７）。なお、このステップＢ３７において、親要素における要素内容に、実体参照記述による他の文字列が含まれている場合には、その文字列を、タグ付けに関連する元の記号（表１参照）に復元する。そして、復元ＸＭＬ文書において、ステップＢ３７で復元された結果を、元々の子要素の記述の隣に要素内容として挿入してから（ステップＢ３８）、ステップＢ７の処理に戻る。
【０１７９】
〔２−５−５〕変換／逆変換処理手順の第５例
ところで、図３９（Ａ）〜図３９（Ｄ）は、第２実施形態によるデータ構造変換／逆変換処理をＸＳＬＴプロセッサのみで実行する場合の処理手順を示すものである。つまり、図３９（Ａ）〜図３９（Ｄ）に示す処理手順は、図２に示したデータ構造変換／逆変換機構１０を用い、変換仕様文書に基づいて、変換対象ＸＭＬ文書や変換後ＸＭＬ文書に対する処理を実行する際の処理手順である。
【０１８０】
ここで、図３９（Ａ）および図３９（Ｂ）は、それぞれ、第２実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順（ＸＳＬＴ変換部１１での処理）を説明するためのフローチャートである。
また、図３９（Ｃ）は、第２実施形態において、ＸＳＬＴ構造変換部１２が構造変換用スタイルシートに基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順（変換処理手順の第５例）を説明するためのフローチャートであり、図３９（Ｄ）は、第２実施形態において、ＸＳＬＴ逆変換部１３が逆変換用スタイルシートに基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順（逆変換処理手順の第５例）を説明するためのフローチャートである。
【０１８１】
変換対象ＸＭＬ文書に対する処理を施すのに先立って、まず、図３９（Ａ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＡ１）、その変換仕様と自動変換スタイルシートとを用いて、データ構造変換用スタイルシートを作成する（ステップＡ２０）。また、同様に、図３９（Ｂ）に示すように、ＸＳＬＴ変換部１１は、ＸＭＬで記述された変換仕様文書を読み込んで、その変換仕様文書の記述から変換仕様を解析してから（ステップＢ１）、その変換仕様と自動変換スタイルシートとを用いて、データ構造逆変換用スタイルシートを作成する（ステップＢ２０）。なお、図３９（Ａ）および図３９（Ｂ）により説明した処理手順は、第１実施形態において図２０（Ａ）および図２０（Ｂ）により説明した処理手順と同様である。
【０１８２】
そして、変換対象ＸＭＬ文書に対してデータ構造変換を施す際には、図３９（Ｃ）に示すように、ＸＳＬＴ構造変換部１２は、その変換対象ＸＭＬ文書と構造変換用スタイルシートとを指定して、変換処理を開始する（ステップＡ２１）。その後、ＸＳＬＴ構造変換部１２は、４種類の変換方法（それぞれ図２３〜図２６により説明した変換方法）から選択された方法に応じて、図３１，図３３，図３５もしくは図３７のステップＡ２以降の処理と同様の処理を実行する。
【０１８３】
逆に、変換後ＸＭＬ文書に対してデータ構造の逆変換を施す際には、図３９（Ｄ）に示すように、ＸＳＬＴ逆変換部１３は、逆変換対象ＸＭＬ文書と逆変換用スタイルシートとを指定して、逆変換処理を開始する（ステップＢ２１）。その後、ＸＳＬＴ逆変換部１３は、４種類の変換方法（それぞれ図２３〜図２６により説明した変換方法）から選択された方法に応じて、図３２，図３４，図３６もしくは図３８のステップＢ２以降の処理と同様の処理を実行する。
【０１８４】
このようにして、第２実施形態においても、図２に示すように、応用ソフトウエア３０は、標準ＡＰＩ（ＤＯＭ）２０を通して、ＸＳＬＴ構造変換部１２からの、要素数を削減された変換後ＸＭＬ文書に対し、タグ検索等の処理を行なうことになるので、第１実施形態と同様、応用ソフトウエア３０による処理速度は大幅に高速化される。
〔２−６〕第２実施形態の効果
このように、本発明の第２実施形態としての構造化文書変換方法によれば、変換対象のＸＭＬ文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象のＸＭＬ文書が、キー要素をそのまま記述する一方で、非キー要素を一つのタグにまとめその非キー要素の記述中のタグ記号をタグ付けに関連しない文字列に置き換えたＸＭＬ文書に変換されるので、第１実施形態の構造化文書変換方法と同様の効果ないし利点を得ることができる。このとき、タグ記号「<」および「>」をそれぞれ実体参照記述による文字列「&lt；」および「&gt；」に置き換えることにより、極めて容易にＸＭＬ文書の変換を行なうことができる。
【０１８５】
〔３〕第３実施形態の説明
〔３−１〕第３実施形態の構造化文書変換方法の原理
図１（Ａ），図３（Ａ）および図４０を参照しながら、本発明の第３実施形態としての構造化文書変換方法の原理について説明する。
図１（Ａ）および図３（Ａ）により前述したＸＭＬ文書において、タグ名“名前”，“会社”の要素をキー要素とするとともにタグ名“部署”，“住所”，“電話”の要素を非キー要素とし、このＸＭＬ文書に対し、第３実施形態の構造化文書変換方法を適用して得られた変換後ＸＭＬ文書のメモリ展開形式を図４０に示す。なお、ここで示す展開形式は、応用ソフトウエアが標準ＡＰＩ（ＤＯＭ）を介して変換後ＸＭＬ文書を操作するときの、メモリ上への展開形式である。
【０１８６】
この図４０に示すＸＭＬ文書では、タグ名“compressed”を付与された新たな要素が作成され、この新たな要素の内容として、タグ名“部署”，“住所”，“電話”の非キー要素をひとまとめにした文字列を圧縮して得られた圧縮文字列が記述されている。この圧縮文字列は、非キー要素をひとまとめにした文字列を、図４１（Ａ）を参照しながら後述する本発明のデータ変換方法により圧縮して得られたものである。また、タグ名“名前”，“会社”のキー要素については、元のまま記述されている。
【０１８７】
このように、変換後ＸＭＬ文書において、レコード毎に一つの要素にまとめられた非キー要素を、所定のデータ変換方法により圧縮文字列に変換して記述することにより、ＸＭＬ文書中に含まれる要素の数、つまりメモリ上に展開されたツリーの子要素の数を大幅に減らすことができ、展開時やデータ処理時に非キー要素を一括して扱うことができる。
ここで、圧縮文字列は、変換後ＸＭＬ文書において、新たな要素の内容として記述されてもよいし〔図４０や図４４（Ａ）参照〕、新たな要素の属性値として記述されてもよい〔図４４（Ｂ）参照〕。なお、第３実施形態の変換方法の原理を説明するための図４０では、上記圧縮文字列を新たな要素の内容として記述した場合の変換後ＸＭＬ文書のＤＯＭツリーが示されている。
【０１８８】
〔３−２〕第３実施形態におけるデータ変換方法（データ圧縮／復元方法）
ところで、従来技術３において前述した通り、通常、圧縮ファイルは、バイナリデータであるため、文字コードのみからなるＸＭＬ文書内に置くことができない。
そこで、本発明のデータ変換方法のごとくバイナリの圧縮データを文字コードに変換すれば、その圧縮データ（圧縮文字列）をＸＭＬ文書の要素内容または属性値として記述することができる。
【０１８９】
ただし、その際、圧縮文字列に用いる文字コードのセット中に、構造化文書内で特別の意味をもつ文字コードが含まれないようにすることに注意する必要がある。ＸＭＬ文書の場合、上記特別の意味をもつ文字コードは、表１に示した、タグ付けに関連する記号<,>,&,",'である。
さらに、ＸＭＬ文書は種々の文字コード系（ＵＴＦ−８，ＵＴＦ−１６，Shift_ＪＩＳ，ＥＵＣ等）を取り得るため、圧縮データをただ単に文字コードで表すだけでは、ＸＭＬ文書の文字コード系が変換されたときに、圧縮データを表した圧縮文字列も自動的に変換されることになり、その圧縮データを元の状態に復元ができなくなるという不具合が生じるおそれがある。
【０１９０】
上述のような注意点や不具合を考慮し、本発明のデータ変換方法では、圧縮データ（圧縮文字列）を表現する文字コードとして、タグ付けに関連する文字コードを除いたＡＳＣＩＩコードを用いている。ＡＳＣＩＩコードは、種々の文字コード系に共通に含まれる文字コードセットである。従って、圧縮文字列がＡＳＣＩＩコードによって記述されていれば、その圧縮文字列を含むＸＭＬ文書に対して文字コード系の変換が施されても、圧縮文字列を成すビット列は、変換されることなくそのままの状態に保持される。
【０１９１】
なお、図４５を参照しながら後述するごとく、圧縮文字列に圧縮時点の文字コード系の種別を示す情報を付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、ＸＭＬ文書の現在の文字コード系に合わせることにより、ＸＭＬ文書全体の文字コード系の整合性を保つことができる。
ここで、図４１（Ａ），図４１（Ｂ）および図４２を参照しながら、第３実施形態で用いられるデータ変換方法（データ圧縮／復元方法）について、より具体的に説明する。ここで、図４１（Ａ）はデータ変換処理（圧縮処理）の流れを説明するための図、図４１（Ｂ）はデータ逆変換処理（伸長処理）の流れを説明するための図、図４２は第３実施形態における文字コード変換用ルックアップテーブル（ＬＵＴ）の具体例を示す図である。
【０１９２】
入力文字列（本実施形態では非キー要素を成す文字列）を圧縮して文字コードへのパッキングを行なう際には、図４１（Ａ）に示すように、まず、入力文字列を、圧縮用静的単語辞書（静的辞書）４１に登録されている単語（文字列）と照合し、その単語辞書４１中の単語と最長一致する単語を入力文字列から順次切り出し、切り出された単語を、その単語に対応する辞書番号に置き換える（ステップＳ１１）。
【０１９３】
なお、静的単語辞書４１によるデータ圧縮手法は、予め作成された辞書を用いる公知技術で、例えば特開平３−２４７１６７号公報（辞書登録方法及びデータ圧縮方法）や特開平４−８０８１３号公報（辞書初期化方式）や特開平６−２２２９０３号公報（文字データを圧縮し圧縮済みデータを展開するための静的辞書構造を提供する方法および手段）などに開示されている。第３実施形態における静的単語辞書４１や４４は、サンプルの出現頻度を調べて予め作成されたものである。
【０１９４】
次に、出現頻度に従って割り当てた可変長の符号語を収めた符号表４２を参照し、固定長ビットの辞書番号に対応する可変長符号を取り出して辞書番号を可変長符号に置換した後、その可変長符号が、バイトごとのデータになるように、ビット詰め処理を行なう。このとき、各バイトのデータについて、可変長符号化により得られたバイナリデータを６ビット分だけ詰めるバイト・パッキングを行なう（ステップＳ１２）。つまり、ステップＳ１２では、変換対象の文字もしくは文字列（本実施形態では辞書番号）に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化（統計的なデータ圧縮）を行ない、この可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングして出力する。
【０１９５】
この後、例えば図４２に示すような文字コード変換用ルックアップテーブル（ＬＵＴ）４５を用いて、１バイトの各変換データ（６ビット詰めされた１バイトのデータ）を文字コードの符号に変換し、その変換結果を圧縮文字列として出力する（ステップＳ１３）。
ここで、ＬＵＴ４５は、上述のように６ビットパッキング時の文字コード変換（ＢＡＳＥ６４符号化）に用いられるもので、６ビットで表わされる値０〜６３と、これらの値０〜６３にそれぞれ対応する文字コードの符号との対応関係を設定している。特に、図４２に示すＬＵＴ４５は、６ビット値０〜６３を、それぞれ、Ａ〜Ｚ（0x41〜0x5A），ａ〜ｚ（0x61〜0x7A），０〜９（0x30〜0x39），+（0x2B），/（0x2F）の文字コードに対応させるように作成されている。
【０１９６】
このとき、ＬＵＴ４５におけるＡＳＣＩＩコードのセットにはタグ記号“<”，“>”が含まれていない。つまり、ＬＵＴ４５には、ＸＭＬ文書においてタグ付けに関する文字コードを除いたＡＳＣＩＩコードのセットが登録されている。従って、ステップＳ１３でのＬＵＴ変換処理に際して、タグ記号をタグ付けに関連しない他の文字列に変換するといった、特別なエスケープ処理を行なう必要はない。
【０１９７】
このようなＬＵＴ４５を用いて、各変換データにパッキングされた６ビットデータが、ＡＳＣＩＩコードに従う文字コード（ＡＳＣＩＩコードの印字可能文字に対応する符号）に変換され、変換データ毎に得られた文字コードが、圧縮変換結果つまり圧縮文字列として出力される。
一方、上述のようにして圧縮された圧縮文字列を元の文字列に復元する際には、図４１（Ｂ）に示すように、まず、圧縮文字列の各文字コードを、ＬＵＴ４５に基づいて０〜６３の数値（６ビット値）に変換するＬＵＴ逆変換を行なう（ステップＳ２１）。
【０１９８】
この後、６ビット詰めを解く処理、即ち、１バイトの各変換データから６ビットデータを取り出すデパッキング（アンパッキング）を行ない、取り出されたバイナリデータを、符号表４３に基づいて固定長ビットの辞書番号に復元する（ステップＳ２２）。
そして、ステップＳ２２で復元された各辞書番号を復元用静的単語辞書（静的辞書）４４の辞書番号と照合して各辞書番号に対応する単語（文字列）を読み出し、各辞書番号を、読み出された単語（文字列）に置き換えることにより、元の文字列に復元する（ステップＳ２３）。
【０１９９】
以下に、上述したデータ圧縮／復元方法を用いて行なわれる、構造化文書の代表であるＸＭＬ文書に対する変換／逆変換処理について説明する。
〔３−３〕第３実施形態のシステムおよび変換／逆変換処理の流れ
図４３は、本発明の第３実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換／逆変換処理の流れを説明するための図である。
【０２００】
多様な種類のＸＭＬ文書に対して、各ＸＭＬ文書に応じたスタイルシート（ＸＳＬシート）を一々作成するのは極めて面倒で手間がかかる。そこで、その手間を省くため、第３実施形態でも、図４６を参照しながら後述するごとく、ＸＭＬ文書のデータ構造を変換するための仕様（レコード名，キータグ名，非キータグ名等）をＸＭＬ文書（変換仕様文書）によって作成して変換実行手順を与え、図４７および図４８を参照しながら後述するごとく、その変換仕様文書に基づいてＸＭＬ文書の変換／逆変換を実行する。
【０２０１】
図４３に示すシステムでは、データ構造変換／逆変換機構（プロセッサ）１０Ａ，標準ＡＰＩ２０および応用ソフトウエア３０がそなえられている。データ構造変換／逆変換機構１０Ａは、キー要素と非キー要素とを区別するための情報を記述するとともに新たな要素（圧縮文字列を記述する要素）に関する情報を記述した変換仕様文書（ＸＭＬ文書）を読み込み、この変換仕様文書に基づいて得られた構造変換圧縮ソフトウエアにより入力ＸＭＬ文書に対する変換処理を行なって変換後ＸＭＬ文書を出力する。
【０２０２】
つまり、構造変換圧縮ソフトウエアによって動作するデータ構造変換／逆変換機構１０Ａは、所定のタグ名（本実施形態では“compressed”）を付与された新たな要素を作成した上で、圧縮用静的単語辞書４１，符号表４２およびＬＵＴ４５を用いて、非キー要素を成す文字もしくは文字列を図４１（Ａ）で説明したデータ圧縮方法により圧縮して圧縮文字列を生成してから、その圧縮文字列を、変換後ＸＭＬ文書において新たな要素の内容もしくは属性として記述する一方、キー要素を、変換後ＸＭＬ文書においてそのまま記述する。
【０２０３】
そして、変換されたＸＭＬ文書に対しては、標準ＡＰＩ２０を介して応用ソフトウエアによりデータ処理（例えばタグ検索）が施され、データ処理後のＸＭＬ文書が得られる。なお、データ処理としてタグ検索を行なった場合、検索結果が抽出ＸＭＬ文書の形で得られる。この抽出ＸＭＬ文書は、データ構造変換／逆変換機構１０Ａに読み込まれ、データ構造変換／逆変換機構１０Ａは、前記変換仕様文書に基づいて得られた復元・構造逆ソフトウエアにより、抽出ＸＭＬ文書に対する逆変換処理を行なって抽出最終結果を出力する。
【０２０４】
つまり、復元・構造逆変換ソフトウエアによって動作するデータ構造変換／逆変換機構１０Ａは、復元用静的単語辞書４３，符号表４４およびＬＵＴ４５を用いて、所定のタグ名（本実施形態では“compressed”）を付与された要素に記述された圧縮文字列を、図４１（Ｂ）で説明したデータ復元方法により、非キー要素についての元の文字列に復元してから、復元された非キー要素を用いて、元のデータ構造のＸＭＬ文書を復元して出力する。これにより、最終的なデータ処理結果としてのＸＭＬ文書が得られる。
【０２０５】
このとき、図４３に示すように、応用ソフトウエア３０は、標準ＡＰＩ（ＤＯＭ）２０を通して、データ構造変換／逆変換機構１０Ａからの、要素数を削減された変換後ＸＭＬ文書に対し、タグ検索等の処理を行なうことになるので、第１実施形態や第２実施形態と同様、応用ソフトウエア３０による処理速度は大幅に高速化される。
応用ソフトウエア３０が、変換後ＸＭＬ文書に対してタグ検索を行なうものである場合、そのタグ検索によってヒットしたレコードを記述するＸＭＬ文書（抽出ＸＭＬ文書）が抽出・出力される。この抽出ＸＭＬ文書は、データ構造変換／逆変換機構１０Ａによって上述のごとく逆変換され、応用ソフトウエア３０が元のＸＭＬ文書に対してタグ検索したのと全く同じ、検索結果（ＸＭＬ文書）が得られることになる。
【０２０６】
また、データ構造変換／逆変換機構１０Ａが逆変換を施すＸＭＬ文書は、応用ソフトウエア３０によって抽出された少数のレコードを記述されたＸＭＬ文書であるので、データ構造変換／逆変換機構１０Ａによる逆変換のオーバーヘッドはほとんど問題にならない。従って、応用ソフトウエア３０で多数回実行される処理は、本実施形態のデータ構造変換を予め施しておくことによって、大幅に高速化されるとともに、動作メモリの使用量も大幅に削減されることになる。
【０２０７】
〔３−４〕第３実施形態におけるＸＭＬ文書の変換方法および具体的な変換例
図４４（Ａ）および図４４（Ｂ）においては、それぞれ、図４（Ａ）に示す表形式ＸＭＬ文書に、第３実施形態の構造化文書変換方法を適用して得られた変換結果の第１および第２具体例が示されている。ここでも、タグ名“名前”，“会社”の要素をキー要素とし、タグ名“部署”，“住所”，“電話”の要素を非キー要素とする。なお、図４４（Ａ）および図４４（Ｂ）中において、波線下線を付した部分は、図４１（Ａ）で説明したデータ圧縮方法により圧縮処理を施される部分（文字列）である。
【０２０８】
図４４（Ａ）に示す第１具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、タグ名“compressd”を付与された新たな要素を作成し、非キー要素をひとまとめにしてから図４１（Ａ）で説明したデータ圧縮方法により圧縮処理を施して圧縮文字列を作成し、その圧縮文字列を新たな要素の内容として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。
【０２０９】
つまり、図４４（Ａ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>A部</部署><住所>A市</住所><電話>123</電話>を図４１（Ａ）で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が要素内容として記述される。また、第２レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>B部</部署><住所>B市</住所><電話>456</電話>を図４１（Ａ）で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が要素内容として記述される。
【０２１０】
図４４（Ｂ）に示す第２具体例では、変換対象のＸＭＬ文書を成す要素をキー要素と非キー要素とに分け、タグ名“compressd”および属性名“info”を付与された新たな要素（空要素）を作成し、非キー要素をひとまとめにしてから図４１（Ａ）で説明したデータ圧縮方法により圧縮処理を施して圧縮文字列を作成し、その圧縮文字列を、新たな要素において、属性名“info”に対応する属性値として記述する。キー要素については、変換後のＸＭＬ文書においても、何の変換も施すことなくそのまま記述する。
【０２１１】
つまり、図４４（Ｂ）に示す変換後ＸＭＬ文書の第１レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>A部</部署><住所>A市</住所><電話>123</電話>を図４１（Ａ）で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が属性名“info”の属性値として記述されている。また、第２レコードでは、タグ名“compressd”の要素において、一連の非キー要素<部署>B部</部署><住所>B市</住所><電話>456</電話>を図４１（Ａ）で説明したデータ圧縮方法によって圧縮して得られた圧縮文字列が属性名“info”の属性値として記述される。
【０２１２】
ＸＭＬ文書には、文字コードしか含ませることができないが、上述した圧縮方法で得られた圧縮データ（圧縮文字列）は文字コードによって記述されるので、そのままＸＭＬ文書に記述することができる。ただし、ＸＭＬ文書では，タグ記号“<”，“>”が特別な意味を持つが、上述したように圧縮データの文字コードは、タグ記号以外の、ＡＳＣＩＩコードの印字可能文字であるため、圧縮データを要素内容あるいは属性値に記述しても、全体がテキストと見なされる。
【０２１３】
また、第３実施形態の変換方法も、第１実施形態や第２実施形態と同様、複数の非キー要素を一つの要素にまとめ、応用ソフトウエアがデータ処理を実行している間は非キー要素をデータ処理と無関係な要素として一括して扱えるようにするものである。変換方法として、図４４（Ａ）もしくは図４４（Ｂ）で説明した方法のうちのどちらを用いるかは、変換仕様文書等により選択・指定することができるようになっている。このとき、これらの変換方法のうちのどちらを用いるかは、ＸＭＬ文書のデータ量によって、あるいは、データ処理に伴い新たな要素が幾つ増えるかによって決定されることになるが、非キー要素をひとまとめにして取り扱うという本発明の本質を考えれば、どちらの方法を採用してもよい。
【０２１４】
なお、図４５に示すように、第３実施形態において、変換後ＸＭＬ文書中に記述された圧縮文字列（圧縮データ）の先頭には、圧縮時点におけるＸＭＬ文書の文字コード系の種別を示す情報としての識別ビット（ここでは２ビット）が付与されている。
ＸＭＬ文書の文字コード系が例えばＵＴＦ−８に固定されていて、文字コード系の変換が全く起こらない場合には、何ら問題は生じないが、ＸＭＬ文書は、ＵＴＦ−８のほか、ＵＴＦ−１６，Shift_ＪＩＳ，ＥＵＣ等の文字コード系を取り得るので、文字コード系が変更になる場合の、本発明の対応について以下に説明する。
【０２１５】
圧縮文字列の文字コード系として特定のものを選んでおくと、ＸＭＬ文書の文字コード系が圧縮時点と変わった場合に、圧縮文字列も文字コード系が自動的に変換されてしまうので、通常、ビット並びが変わってしまい、圧縮文字列を元の状態に復元することができなくなるおそれがある。
これに対し、本発明では、前述したように、圧縮文字列が、全ての文字コード系に共通に含まれるＡＳＣＩＩコードによって記述されるため、元のＸＭＬ文書の文字コード系が変換されても、圧縮文字列のビット並びは変わらず、圧縮文字列を正常に復元することができる。
【０２１６】
ＸＭＬ文書の文字コード系が圧縮時点から任意の文字コードに変換されているときには、圧縮文字列を復元して圧縮時点の文字コード系の種別を認識し、その文字コード系を現在（逆変換時）のＸＭＬ文書の文字コード系に合わせる必要がある。このため、第３実施形態では、図４５に示すように、圧縮データのヘッダに、圧縮時点の文字コード系の種別を識別するための識別ビットを付加する。
【０２１７】
識別すべき文字コード系の種別がＵＴＦ−８，ＵＴＦ−１６，Shift_ＪＩＳ，ＥＵＣの４つであれば、識別ビットを２ビット設ける。この場合、例えば、“００”がＵＴＦ−８を、“０１”がＵＴＦ−１６を、“１０”がShift_ＪＩＳを、“１１”がＥＵＣを示すものと定義しておく。なお、この識別ビットは、圧縮すべき一連の非キー要素に添付され、非キー要素とともに、図４１（Ａ）で説明したデータ圧縮方法により圧縮文字列に変換されるものとする。
【０２１８】
〔３−５〕第３実施形態における変換仕様文書の具体例
図４６には、図４（Ａ）に示した表形式ＸＭＬ文書を変換対象とした場合の、具体的な変換仕様文書（ＸＭＬ文書）が示されている。ここでは、変換対象のＸＭＬ文書が表形式データである場合について説明しているが、変換対象のＸＭＬ文書が非表形式データであっても、図４６に示す変換仕様文書を用いて変換／逆変換を行なうことができる。また、図４６に示す変換仕様文書は、図４４（Ａ）で説明した変換方法を実現するためのものである。
【０２１９】
この図４６に示す変換仕様文書では、ルートのタグ名“名簿”やレコードのタグ名“個人”が記述されるほか、タグ名“key_tags”の要素の内容としてキー要素のタグ名“名前”および“会社”を記述するとともにタグ名“nonkey_tags”の要素の内容として非キー要素のタグ名“部署”，“住所”および“電話”を記述することにより、キー要素と非キー要素とを区別するための情報が記述されている。また、タグ名“nonkey_tags”の要素の内容には、タグ名“merged_tag”の要素が含まれており、この要素の内容として、非キー要素を一つにまとめるための新たな要素のタグ名 “compressed”が記述されている。このような変換仕様文書により、ＸＭＬ文書のデータ構造変換実行手順が指示される。
【０２２０】
〔３−６〕第３実施形態の変換方法による具体的な変換処理手順
次に、図４７および図４８を参照しながら、本発明の第３実施形態としての構造化文書変換方法による変換処理手順について説明する。なお、図４７および図４８において図１８および図１９と同じステップ番号を付されたステップは、図１８および図１９で説明した処理と同一もしくはほぼ同一の処理を実行するものであるので、その説明は省略する。つまり、以下の説明では、ステップ番号Ａ１〜Ａ１１，Ａ１５，Ａ１６およびＢ１〜Ｂ１１，Ｂ１４，Ｂ１５を付されたステップにおける処理の説明は省略する。
【０２２１】
図４７は、変換仕様文書に基づいて変換対象ＸＭＬ文書に対してデータ構造変換を施す際の処理手順を説明するためのフローチャートであり、図４８は、変換仕様文書に基づいて変換後ＸＭＬ文書（処理済ＸＭＬ文書）に対してデータ構造の逆変換を施す際の処理手順を説明するためのフローチャートである。
なお、第３実施形態では、データ構造変換／逆変換機構１０Ａは、図４３で説明した構造変換圧縮ソフトウエアや復元構造逆変換ソフトウエアを実行することにより、図４７もしくは図４８に示すフローチャートに従って、変換仕様文書を読み込み、符号表４１，４４や圧縮用／復元用の静的単語辞書４２，４３やＬＵＴ４５を参照しながら変換／逆変換処理（データ圧縮／復元処理）を実行する。
【０２２２】
図４７に示す変換処理手順では、ステップＡ７で切り出された要素データが非キー要素である場合（ステップＡ１１のＹＥＳルート）、その非キー要素が、一つの要素にまとめるべき非キー要素群のうちの最初のものであるか否かを判断し（ステップＡ５１）、最初のものである場合（ステップＡ５１のＹＥＳルート）、変換仕様文書によって予め指定されたタグ名“compressed”の開始タグを作成してから（ステップＡ５２）、今回切り出された非キー要素を保持しておく（ステップＡ５３）。
【０２２３】
一方、非キー要素が最初のものでない場合（ステップＡ５１のＮＯルート）、つまり既に非キー要素に対応する新要素が作成されている場合には、ステップＡ５２による開始タグの作成処理をジャンプし、今回切り出された非キー要素を、既に切り出されて保持されている非キー要素の後に繋いでまとめる（ステップＡ５３）。
この後、非キー要素が、一つの要素にまとめるべき非キー要素群のうちの最後のものであるか否かを判断し（ステップＡ５４）、最後のものでない場合（ステップＡ５４のＮＯルート）、ステップＡ７の処理に戻る。
【０２２４】
一方、最後のものである場合（ステップＡ５４のＹＥＳルート）、ステップＡ５３でまとめられた非キー要素に、文字コード系の種別を示す識別ビットを付与した上で、図４１（Ａ）で説明したデータ圧縮方法による圧縮処理を施して圧縮文字列を得る。そして、その圧縮文字列を、タグ名“compressed”の開始タグの次に、新要素の内容として記述してから、その後に、タグ名“compressed”の終了タグを作成して付加する（ステップＡ５５）。この後、ステップＡ７の処理に戻る。
【０２２５】
なお、ここでは、図４４（Ａ）で説明した変換方法に対応した処理を行なった場合について説明しているが、図４４（Ｂ）で説明した変換方法を採用する場合には、ステップＡ５２で、新要素として、タグ名“compressed”および属性名“info”をもつ空要素タグを作成し、ステップＡ５５で、圧縮文字列を新要素（空要素）の“info”属性の属性値として記述する。
【０２２６】
一方、図４８に示す逆変換処理手順では、非キー要素をまとめた新要素（<compressed>タグ）がステップＢ７で切り出された場合（ステップＢ１１のＹＥＳルート）、新要素の内容（もしくは属性値）として記述された圧縮文字列を読み出し、その圧縮文字列から、図４１（Ｂ）で説明したデータ復元方法により、非キー要素を成す元の文字列を復元し、非キー要素のタグの記述を削除し、復元ＸＭＬ文書に、復元された非キー要素を記述してから（ステップＢ３９）、ステップＢ７の処理に戻る。
【０２２７】
〔３−７〕第３実施形態の効果
このように、本発明の第３実施形態としての構造化文書変換方法によれば、変換対象のＸＭＬ文書を成す要素がキー要素と非キー要素とに分けられ、その変換対象のＸＭＬ文書が、キー要素をそのまま記述する一方で、非キー要素を成す文字もしくは文字列を一つのタグにまとめ図４１（Ａ）に示すデータ圧縮方法により圧縮して得られた文字コード列（圧縮文字列）として記述したＸＭＬ文書に変換される。従って、上述した第１実施形態や第２実施形態と同様の効果ないし利点を得ることができるほか、変換後のＸＭＬ文書のデータ量を大幅に削減することができる。
【０２２８】
また、図４１（Ａ）で説明したデータ圧縮方法を用いることにより、ＸＭＬ文書を効率良く圧縮しながら、その圧縮結果を文字コードの形で得てＸＭＬ文書内に置くことのできる圧縮変換技術が提供されるので、ＸＭＬ文書に対する操作に必要となるリソースが大幅に軽減され、ＸＭＬ文書を処理する際におけるメモリ使用量削減や処理速度の高速化が実現される。
【０２２９】
このとき、圧縮データを表現する文字コードとして、タグ付けに関連する記号（例えばＸＭＬ文書では＜，＞，＆，”，’）を除いたＡＳＣＩＩコードを用いる。これにより、変換後のＸＭＬ文書における圧縮文字列にはタグ付けに関連する記号が存在せず、データ処理時などに誤処理が発生するのを確実に防止することができる。
また、ＡＳＣＩＩコードは、種々の文字コード系に共通に含まれる文字コードセットであるため、変換後のＸＭＬ文書が文字コード系の変換を施されても、ＡＳＣＩＩコードを用いた圧縮文字列を成すビット列は、文字コード系の変換の影響を受けることなく元の状態に保たれる。従って、文字コード系を変換されたＸＭＬ文書に含まれる圧縮文字列は、元の非キー要素に正しく復元される。
【０２３０】
さらに、図４５に示すように、圧縮文字列に圧縮時点の文字コード系の種別を示す識別ビットを付与しておくことにより、圧縮文字列から復元されたデータの文字コード系の種別を認識することができ、その文字コード系を、ＸＭＬ文書の現在の文字コード系に合わせることにより、ＸＭＬ文書全体の文字コード系の整合性を保つことができる。
また、非キー要素を圧縮文字列に変換するに先立ち、非キー要素を成す文字列を、予め作成された静的単語辞書４１を用いて辞書番号に置き換えておくことにより、可変長符号化の対象となる文字列をより短縮できるので、圧縮効率をさらに高めることができ、変換後のＸＭＬ文書のデータ量をより削減することができる。
【０２３１】
〔４〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、構造化文書がＸＭＬ文書である場合について説明したが、本発明は、これに限定されるものではなく、他の種々の構造化文書にも上述した実施形態と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
【０２３２】
〔５〕付記
（付記１）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２３３】
（付記２）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名，所定の第１属性名および所定の第２属性名を付与された新たな要素を作成し、
該非キー要素のタグ名を含むタグ名文字列を作成し、該タグ名文字列を、該新たな要素において、前記第１属性名に対応する第１属性値として記述するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素において、前記第２属性名に対応する第２属性値として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２３４】
（付記３）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素のタグ名を含むタグ名文字列を、所定のタグ名として付与された新たな要素を作成するタグ名変換を行ない、
該非キー要素の内容を含む内容文字列を作成し、該内容文字列を、該新たな要素の内容として記述する内容変換を行ない、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２３５】
（付記４）  該タグ名文字列を、区切り記号を介して該非キー要素のタグ名を繋いで作成することを特徴とする、付記１〜付記３のいずれか一つに記載の構造化文書変換方法。
（付記５）  該非キー要素が複数階層を成している場合、該タグ名文字列において、該複数階層を成す非キー要素のタグ名に、階層構造識別情報を付加することを特徴とする、付記４記載の構造化文書変換方法。
【０２３６】
（付記６）  該非キー要素が属性を有する場合、該タグ名文字列において、該属性を有する非キー要素のタグ名の後に、該区切り記号を介して、属性名識別情報を付加した該属性の属性名を記述し、
該内容文字列を、区切り記号を介して該非キー要素の内容を繋いで作成するとともに、該内容文字列において、該属性を有する該非キー要素の内容の後に、該区切り記号を介して、該属性の属性値を記述することを特徴とする、付記４または付記５に記載の構造化文書変換方法。
【０２３７】
（付記７）  該内容文字列を、区切り記号を介して該非キー要素の内容を繋いで作成することを特徴とする、付記１〜付記５のいずれか一つに記載の構造化文書変換方法。
（付記８）  該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記１〜付記７のいずれか一つに記載の構造化文書変換方法。
【０２３８】
（付記９）  該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記８記載の構造化文書変換方法。
（付記１０）  該変換仕様文書において、該非キー要素のタグ名と該タグ名よりも短く且つ該タグ名を特定しうる短縮タグ名とを対応付けて記述し、
前記変換時に、該変換仕様文書に基づいて、該非キー要素のタグ名を該短縮タグ名に置換するタグ名短縮変換を行なう一方、
前記逆変換時に、該変換仕様文書に基づいて、該短縮タグ名を該非キー要素のタグ名に置換するタグ名伸長変換を行なうことを特徴とする、付記９記載の構造化文書変換方法。
【０２３９】
（付記１１）  該変換仕様文書において、前記変換時に前記タグ名短縮変換を行なうか否かのタグ名短縮変換情報を記述し、
前記変換時または前記逆変換時に、該変換仕様文書における該タグ名短縮変換情報に基づいて、前記タグ名短縮変換および前記タグ名伸長変換の実行／非実行を選択することを特徴とする、付記１０記載の構造化文書変換方法。
【０２４０】
（付記１２）  該変換対象の構造化文書が、レコード毎の要素の種類および数が同じである表形式で記述されている場合、該キー要素と該非キー要素とを区別するための情報を記述するとともに、該非キー要素のタグ名と該タグ名を代表する前記所定のタグ名としての代表タグ名とを対応付けて記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、前記タグ名変換を省略し前記内容変換のみを行なう表形式変換を施すことを特徴とする、付記１〜付記１１のいずれか一つに記載の構造化文書変換方法。
【０２４１】
（付記１３）  該変換仕様文書に基づいて、前記代表タグ名から該非キー要素のタグ名を割り出し、前記表形式変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す表形式逆変換を施すことを特徴とする、付記１２記載の構造化文書変換方法。
（付記１４）  該変換対象の構造化文書が、レコード毎の要素の種類および数が同じである表形式で記述されている場合、該キー要素と該非キー要素とを区別するための情報を記述するとともに、該非キー要素のタグ名および属性名と該タグ名および該属性名を代表する前記所定のタグ名としての代表タグ名とを対応付けて記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、前記タグ名変換を省略し前記内容変換のみを行なう表形式変換を施すことを特徴とする、付記１〜付記１１のいずれか一つに記載の構造化文書変換方法。
【０２４２】
（付記１５）  該変換仕様文書に基づいて、前記代表タグ名から該非キー要素のタグ名および属性名を割り出し、前記表形式変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す表形式逆変換を施すことを特徴とする、付記１４記載の構造化文書変換方法。
（付記１６）  該変換仕様文書において、該変換対象の構造化文書が表形式で記述されているか否かの表形式情報を記述し、
該変換仕様文書における該表形式情報に基づいて、前記表形式変換および前記表形式逆変換の実行／非実行を選択することを特徴とする、付記１３または付記１５に記載の構造化文書変換方法。
【０２４３】
（付記１７）  該変換対象の構造化文書が表形式ではない旨が該表形式情報として記述されている場合に、前記タグ名変換を実行することを特徴とする、付記１６記載の構造化文書変換方法。
（付記１８）  該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記８〜付記１７のいずれか一つに記載の構造化文書変換方法。
【０２４４】
（付記１９）  該変換仕様文書に基づいて、前記の変換を指示する変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該変換用スタイルシートを用いて前記の変換を実行させることを特徴とする、付記８〜付記１８のいずれか一つに記載の構造化文書変換方法。
（付記２０）  該変換仕様文書に基づいて、前記の逆変換を指示する逆変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該逆変換用スタイルシートを用いて前記の逆変換を実行させることを特徴とする、付記８〜付記１９のいずれか一つに記載の構造化文書変換方法。
【０２４５】
（付記２１）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名を付与された新たな要素を作成し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該新たな要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２４６】
（付記２２）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２４７】
（付記２３）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素の親要素に新たな属性名を付与し、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該親要素において、前記新たな属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２４８】
（付記２４）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
該非キー要素の記述中においてタグ付けに関連する記号をタグ付けに関連しない文字列に置き換えた文字列を作成し、
該文字列を、該非キー要素の親要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２４９】
（付記２５）  該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記２１または付記２２に記載の構造化文書変換方法。
【０２５０】
（付記２６）  該キー要素と該非キー要素とを区別するための情報を記述するとともに該親要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記２３または付記２４に記載の構造化文書変換方法。
【０２５１】
（付記２７）  該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記２５または付記２６に記載の構造化文書変換方法。
（付記２８）  該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記２５〜付記２７のいずれか一つに記載の構造化文書変換方法。
【０２５２】
（付記２９）  該変換仕様文書に基づいて、前記変換を指示する変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該変換用スタイルシートを用いて前記変換を実行させることを特徴とする、付記２５〜付記２８のいずれか一つに記載の構造化文書変換方法。
（付記３０）  該変換仕様文書に基づいて、前記逆変換を指示する逆変換用スタイルシートを生成し、
構造化文書変換プロセッサに、該逆変換用スタイルシートを用いて前記の逆変換を実行させることを特徴とする、付記２５〜付記２９のいずれか一つに記載の構造化文書変換方法。
【０２５３】
（付記３１）  前記タグ付けに関連しない文字列として、前記タグ付けに関連する記号の実体参照記述を用いることを特徴とする、付記２１〜付記３０のいずれか一つに記載の構造化文書変換方法。
（付記３２）  該変換対象の構造化文書がＸＭＬ(eXtensible Markup Language)文書である場合、前記タグ付けに関連する記号「＜」および「＞」をそれぞれ「&lt；」および「&gt；」に置き換えることを特徴とする、付記３１記載の構造化文書変換方法。
【０２５４】
（付記３３）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名を付与された新たな要素を作成し、
該非キー要素を成す文字もしくは文字列に対し出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングし、各変換データにパッキングされた６ビットデータをＡＳＣＩＩ（American Standard Code for Information Interchange）コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、
該圧縮文字列を、該新たな要素の内容として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２５５】
（付記３４）  変換対象の構造化文書を成す要素を、該構造化文書に対するデータ処理の対象となるキー要素と前記データ処理の対象とならない非キー要素とに分け、
所定のタグ名および所定の属性名を付与された新たな要素を作成し、
該非キー要素を成す文字もしくは文字列に対し出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、該可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングし、各変換データにパッキングされた６ビットデータをＡＳＣＩＩ（American Standard Code for Information Interchange）コードに従う文字コードに変換することにより、該非キー要素を、該文字コードからなる圧縮文字列に変換し、
該圧縮文字列を、該新たな要素において、前記所定の属性名に対応する属性値として記述し、
該キー要素を、変換後の構造化文書においてそのまま記述することを特徴とする、構造化文書変換方法。
【０２５６】
（付記３５）  該非キー要素を該圧縮文字列に変換するに先立ち、該非キー要素を成す文字列を、予め作成された静的辞書を用いて辞書番号に置き換え、該辞書番号を含む文字列を、該圧縮文字列に変換することを特徴とする、付記３３または付記３４に記載の構造化文書変換方法。
（付記３６）  該変換後の構造化文書を逆変換する際には、該圧縮文字列を該変換後の構造化文書から取り出し、
前記圧縮文字列における各文字コードを、前記ＡＳＣＩＩコードに従って６ビットデータに変換し、
該文字コード毎に得られた６ビットデータから、該非キー要素を成す文字もしくは文字列を復元し、
復元された該非キー要素を用いて、元の構造化文書を復元することを特徴とする、付記３３または付記３４に記載の構造化文書変換方法。
【０２５７】
（付記３７）  該キー要素と該非キー要素とを区別するための情報を記述するとともに該新たな要素に関する情報を記述した変換仕様文書を作成し、
該変換仕様文書に基づいて、該変換対象の構造化文書に対し、該非キー要素の記述についての変換を施すことを特徴とする、付記３３〜付記３６のいずれか一つに記載の構造化文書変換方法。
【０２５８】
（付記３８）  該変換仕様文書に基づいて、前記変換を施された構造化文書に対し、該非キー要素の記述を元の状態に戻す逆変換を施すことを特徴とする、付記３７記載の構造化文書変換方法。
（付記３９）  該変換仕様文書を構造化文書として作成し変換実行手順を与えることを特徴とする、付記３７または付記３８に記載の構造化文書変換方法。
【０２５９】
（付記４０）  該圧縮文字列に、圧縮時点の文字コード系の種別を示す情報を付与し、
該変換後の構造化文書を逆変換する際には、該情報を参照して該圧縮時点での文字コード系の種別を認識し、
認識された種別の文字コード系を該逆変換時の文字コード系に合わせるように該圧縮文字列を復元することを特徴とする、付記３３〜付記３９のいずれか一つに記載の構造化文書変換方法。
【０２６０】
（付記４１）  前記ＡＳＣＩＩコードのセットとして、構造化文書においてタグ付けに関連する文字コードを除いたものを用いることを特徴とする、付記３３〜付記４０のいずれか一つに記載の構造化文書変換方法。
（付記４２）  変換対象の文字もしくは文字列に対し、出現頻度の高いものほど短い可変長符号を割り付ける可変長符号化を行ない、
該可変長符号化により得られたバイナリデータを６ビットずつ１バイトの変換データにパッキングして出力することを特徴とする、データ変換方法。
【０２６１】
（付記４３）  各変換データにパッキングされた６ビットデータをＡＳＣＩＩ（American Standard Code for Information Interchange）コードに従う文字コードに変換し、
該変換データ毎に得られた該文字コードを、前記変換対象の文字もしくは文字列の圧縮変換結果として出力することを特徴とする、付記４２記載のデータ変換方法。
（付記４４）  前記圧縮変換結果を復元する際には、前記圧縮変換結果における各文字コードを、前記ＡＳＣＩＩコードに従って６ビットデータに変換し、
該文字コード毎に得られた６ビットデータから、前記変換対象の文字もしくは文字列を復元することを特徴とする、付記４３記載のデータ変換方法。
【０２６２】
（付記４５）  前記ＡＳＣＩＩコードのセットとして、構造化文書においてタグ付けに関連する文字コードを除いたものを用いることを特徴とする、付記４３または付記４４に記載のデータ変換方法。
【図面の簡単な説明】
【０２６３】
【図１】本発明の第１実施形態としての構造化文書変換方法の原理について説明するためのもので、（Ａ）は変換対象のＸＭＬ文書のメモリ展開形式を示す図、（Ｂ）は（Ａ）に示すＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得られたＸＭＬ文書のメモリ展開形式を示す図である。
【図２】本発明の第１実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換／逆変換処理の流れを説明するための図である。
【図３】（Ａ）は変換対象のＸＭＬ文書の具体例を示す図、（Ｂ）〜（Ｆ）は、それぞれ、（Ａ）に示すＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得られた変換結果の第１〜第５具体例を示す図である。
【図４】（Ａ）は変換対象のＸＭＬ文書（表形式）の具体例を示す図、（Ｂ）および（Ｃ）は、それぞれ、（Ａ）に示すＸＭＬ文書が表形式である場合に第１実施形態の構造化文書変換方法を適用して得られた変換結果の第１および第２具体例を示す図である。
【図５】変換対象のＸＭＬ文書の具体例を示す図である。
【図６】図５に示すＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得られた変換結果の第１具体例を示す図である。
【図７】図５に示すＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得られた変換結果の第２具体例を示す図である。
【図８】図５に示すＸＭＬ文書に第１実施形態の構造化文書変換方法を適用して得られた変換結果の第３具体例を示す図である。
【図９】第１実施形態における変換仕様文書の具体例を示す図である。
【図１０】第１実施形態において、図９に示す変換仕様文書により作成された変換用スタイルシートの具体例を示す図である。
【図１１】第１実施形態において、図９に示す変換仕様文書により作成された逆変換用スタイルシートの具体例を示す図である。
【図１２】第１実施形態における、タグ名短縮を行なうための変換仕様文書の具体例を示す図である。
【図１３】第１実施形態における、データ形式（表形式であるか否か）を指定する機能を有する変換仕様文書の具体例を示す図である。
【図１４】第１実施形態における、データ形式（タグ名短縮変換を行なうか否か）を指定する機能を有する変換仕様文書の具体例を示す図である。
【図１５】第１実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書の第１具体例を示す図である。
【図１６】第１実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャートである。
【図１７】第１実施形態における、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書の第２具体例を示す図である。
【図１８】本発明の第１実施形態としての構造化文書変換方法による変換処理手順を説明するためのフローチャートである。
【図１９】本発明の第１実施形態としての構造化文書変換方法による逆変換処理手順を説明するためのフローチャートである。
【図２０】（Ａ）および（Ｂ）は、それぞれ、第１実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順を説明するためのフローチャート、（Ｃ）および（Ｄ）は、それぞれ、本発明の第１実施形態としての構造化文書変換方法による変換処理手順および逆変換処理手順の変形例を説明するためのフローチャートである。
【図２１】（Ａ）および（Ｂ）は、それぞれ、第１実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順の変形例を説明するためのフローチャートである。
【図２２】本発明の第２実施形態としての構造化文書変換方法の原理を説明すべく、図１（Ａ）に示すＸＭＬ文書に第２実施形態の構造化文書変換方法を適用して得られたＸＭＬ文書のメモリ展開形式を示す図である。
【図２３】図４（Ａ）に示すＸＭＬ文書に第２実施形態の構造化文書変換方法を適用して得られた変換結果の第１具体例を示す図である。
【図２４】図４（Ａ）に示すＸＭＬ文書に第２実施形態の構造化文書変換方法を適用して得られた変換結果の第２具体例を示す図である。
【図２５】図４（Ａ）に示すＸＭＬ文書に第２実施形態の構造化文書変換方法を適用して得られた変換結果の第３具体例を示す図である。
【図２６】図４（Ａ）に示すＸＭＬ文書に第２実施形態の構造化文書変換方法を適用して得られた変換結果の第４具体例を示す図である。
【図２７】第２実施形態における変換仕様文書の具体例を示す図である。
【図２８】第２実施形態において、図２７に示す変換仕様文書により作成された変換用スタイルシートの具体例を示す図である。
【図２９】第２実施形態において、図２７に示す変換仕様文書により作成された逆変換用スタイルシートの具体例を示す図である。
【図３０】第２実施形態において、レコード内の非キー要素が階層構造を成すとともに属性を有する場合の変換仕様文書を作成する手順を説明するためのフローチャートである。
【図３１】本発明の第２実施形態としての構造化文書変換方法による変換処理手順の第１例を説明するためのフローチャートである。
【図３２】本発明の第２実施形態としての構造化文書変換方法による逆変換処理手順の第１例を説明するためのフローチャートである。
【図３３】本発明の第２実施形態としての構造化文書変換方法による変換処理手順の第２例を説明するためのフローチャートである。
【図３４】本発明の第２実施形態としての構造化文書変換方法による逆変換処理手順の第２例を説明するためのフローチャートである。
【図３５】本発明の第２実施形態としての構造化文書変換方法による変換処理手順の第３例を説明するためのフローチャートである。
【図３６】本発明の第２実施形態としての構造化文書変換方法による逆変換処理手順の第３例を説明するためのフローチャートである。
【図３７】本発明の第２実施形態としての構造化文書変換方法による変換処理手順の第４例を説明するためのフローチャートである。
【図３８】本発明の第２実施形態としての構造化文書変換方法による逆変換処理手順の第４例を説明するためのフローチャートである。
【図３９】（Ａ）および（Ｂ）は、それぞれ、第２実施形態における変換用スタイルシートおよび逆変換用スタイルシートの作成手順を説明するためのフローチャート、（Ｃ）および（Ｄ）は、それぞれ、本発明の第２実施形態としての構造化文書変換方法による変換処理手順および逆変換処理手順の第５例を説明するためのフローチャートである。
【図４０】本発明の第３実施形態としての構造化文書変換方法の原理を説明すべく、図１（Ａ）に示すＸＭＬ文書に第３実施形態の構造化文書変換方法を適用して得られたＸＭＬ文書のメモリ展開形式を示す図である。
【図４１】第３実施形態で用いられるデータ変換方法を説明するためのもので、（Ａ）はデータ変換処理（圧縮処理）の流れを説明するための図、（Ｂ）はデータ逆変換処理（伸長処理）の流れを説明するための図である。
【図４２】第３実施形態における文字コード変換用ルックアップテーブルの具体例を示す図である。
【図４３】本発明の第３実施形態としての構造化文書変換方法を適用されるシステムおよびそのシステムにおける変換／逆変換処理の流れを説明するための図である。
【図４４】（Ａ）および（Ｂ）は、それぞれ、図４（Ａ）に示すＸＭＬ文書に第３実施形態の構造化文書変換方法を適用して得られた変換結果の第１および第２具体例を示す図である。
【図４５】第３実施形態において、文字コード系の種別を示す情報を付与された圧縮文字列の具体例を示す図である。
【図４６】第３実施形態における変換仕様文書の具体例を示す図である。
【図４７】本発明の第３実施形態としての構造化文書変換方法による変換処理手順を説明するためのフローチャートである。
【図４８】本発明の第３実施形態としての構造化文書変換方法による逆変換処理手順を説明するためのフローチャートである。
【符号の説明】
【０２６４】
１０  データ構造変換／逆変換機構（構造化文書変換プロセッサ）
１０Ａ  データ構造変換／逆変換機構
１１  ＸＳＬＴ変換部（構造化文書変換プロセッサ）
１２  ＸＳＬＴ構造変換部（構造化文書変換プロセッサ）
１３  ＸＳＬＴ逆変換部（構造化文書変換プロセッサ）
２０  標準ＡＰＩ
３０  応用ソフトウエア（アプリケーション）
４１  圧縮用静的単語辞書（静的辞書）
４２，４３  符号表
４４  復元用静的単語辞書（静的辞書）
４５  文字コード変換用ルックアップテーブル（ＬＵＴ）
【図１】
2008217809.tif 000004
【図２】
2008217809.tif 000005
【図３】
2008217809.tif 000006
【図４】
2008217809.tif 000007
【図５】
2008217809.tif 000008
【図６】
2008217809.tif 000009
【図７】
2008217809.tif 000010
【図８】
2008217809.tif 000011
【図９】
2008217809.tif 000012
【図１０】
2008217809.tif 000013
【図１１】
2008217809.tif 000014
【図１２】
2008217809.tif 000015
【図１３】
2008217809.tif 000016
【図１４】
2008217809.tif 000017
【図１５】
2008217809.tif 000018
【図１６】
2008217809.tif 000019
【図１７】
2008217809.tif 000020
【図１８】
2008217809.tif 000021
【図１９】
2008217809.tif 000022
【図２０】
2008217809.tif 000023
【図２１】
2008217809.tif 000024
【図２２】
2008217809.tif 000025
【図２３】
2008217809.tif 000026
【図２４】
2008217809.tif 000027
【図２５】
2008217809.tif 000028
【図２６】
2008217809.tif 000029
【図２７】
2008217809.tif 000030
【図２８】
2008217809.tif 000031
【図２９】
2008217809.tif 000032
【図３０】
2008217809.tif 000033
【図３１】
2008217809.tif 000034
【図３２】
2008217809.tif 000035
【図３３】
2008217809.tif 000036
【図３４】
2008217809.tif 000037
【図３５】
2008217809.tif 000038
【図３６】
2008217809.tif 000039
【図３７】
2008217809.tif 000040
【図３８】
2008217809.tif 000041
【図３９】
2008217809.tif 000042
【図４０】
2008217809.tif 000043
【図４１】
2008217809.tif 000044
【図４２】
2008217809.tif 000045
【図４３】
2008217809.tif 000046
【図４４】
2008217809.tif 000047
【図４５】
2008217809.tif 000048
【図４６】
2008217809.tif 000049
【図４７】
2008217809.tif 000050
【図４８】
2008217809.tif 000051