(57)【要約】      （修正有）【課題】ネットワークを介して通信された構造化文書を検証するために必要な演算量を抑制する。【解決手段】本発明によるコンピュータシステムは、構造化文書の内部表現（１３）を符号化して符号化文書（４）を作成する符号化手段（１２）を含む送信側コンピュータ（１）と、ネットワーク（３）を介して符号化文書（４）を取得し、符号化文書（４）を復号して内部表現（２３）を再構成する復号手段（２２）を含む受信側コンピュータ（２）とを備ている。演算量を抑制するために、符号化手段（１２）は、記述の重複が排除された検証支援情報（４ａ〜４ｅ）を生成する手段を含み、復号手段（２２）は、検証支援情報に基づいて文書の適合性を検証する手段を含む。【選択図】  図１
2004302799.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書の内部表現を符号化して符号化文書を作成する符号化手段を含む送信側コンピュータと、
ネットワークを介して前記符号化文書を取得し、前記符号化文書を復号して前記内部表現を再構成する復号手段を含む受信側コンピュータ
とを備え、
前記符号化手段は、前記構造化文書に含まれる記述を重複することなく列挙することによって前記内部表現から検証支援情報を生成する検証支援情報抽出手段を含み、且つ、前記検証支援情報を含むように前記符号化文書を生成し、
前記復号手段は、前記検証支援情報に基づいて、再構成される前記内部表現のデータ構造が、所定の文書型宣言に適合しているかを検証する検証手段を含む
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストを含み、
前記文書型宣言は、前記テキスト含有要素の型を定義した要素型宣言を含み、
前記検証手段は、前記要素テキストが、前記型に適合するか否かを検証する
コンピュータシステム。
【請求項３】
請求項１に記載のコンピュータシステムにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリストを含み、
前記文書型宣言は、前記属性の属性型を定義した属性型宣言を含み、
前記検証手段は、前記属性テキストが、前記属性型に適合するか否かを検証する
コンピュータシステム。
【請求項４】
請求項１に記載のコンピュータシステムにおいて、
前記検証支援情報は、前記内部表現に含まれる部分構造が、重複しないように列挙された部分構造リストを含み、
前記検証手段は、前記部分構造が、前記文書型宣言に定義された構文に適合するか否かを検証する
コンピュータシステム。
【請求項５】
請求項４に記載のコンピュータシステムにおいて、
前記検証支援情報は、
前記要素の要素名を列挙した要素名リストと、
前記属性の属性名を列挙した属性名リストと、
前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストと、
前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリスト
とを含み、
前記部分構造のそれぞれには、構造ＩＤが与えられ、
前記要素テキストと前記属性テキストとのそれぞれにテキストＩＤが与えられ、
前記部分構造の部分構造表現は、前記要素の要素ＩＤと、前記要素が有する属性の属性ＩＤと、前記要素の子要素の要素ＩＤと、前記親要素が、要素テキストを含むことを示す記号とによって記述され、
前記符号化文書は、前記構造ＩＤと前記テキストＩＤとによって前記内部表現の全体の構造を表現する全体構造データを含み、
前記復号手段は、前記要素名リストと前記属性名リストと前記全体構造データとに基づいて前記内部表現を再構成する
コンピュータシステム。
【請求項６】
構造化文書の内部表現を符号化して符号化文書を作成する符号化手段を備え、
前記符号化手段は、前記構造化文書に含まれる記述を重複することなく列挙することによって前記内部表現から検証支援情報を生成する検証支援情報抽出手段を含み、且つ、前記検証支援情報を含むように前記符号化文書を生成する
コンピュータ。
【請求項７】
請求項６に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストを含む
コンピュータ。
【請求項８】
請求項６に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリストを含む
コンピュータ。
【請求項９】
請求項６に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現に含まれる部分構造が、重複しないように列挙された部分構造リストを含む
コンピュータ。
【請求項１０】
請求項９に記載のコンピュータにおいて、
前記検証支援情報は、
前記要素の要素名を列挙した要素名リストと、
前記属性の属性名を列挙した属性名リストと、
前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストと、
前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリスト
とを含み、
前記部分構造のそれぞれには、構造ＩＤが与えられ、
前記要素テキストと前記属性テキストとのそれぞれにテキストＩＤが与えられ、
前記部分構造の部分構造表現は、前記要素の要素ＩＤと、前記要素が有する属性の属性ＩＤと、前記要素の子要素の要素ＩＤと、前記親要素が、要素テキストを含むことを示す記号とによって記述され、
前記符号化文書は、前記構造ＩＤと前記テキストＩＤとによって前記内部表現の全体の構造を表現する全体構造データを含む
コンピュータ。
【請求項１１】
ネットワークを介して符号化文書を取得し、前記符号化文書を復号して構造化文書の内部表現を再構成する復号手段
を備え、
前記符号化文書は、前記構造化文書に含まれる記述が重複することなく列挙された検証支援情報を含み、
前記復号手段は、前記検証支援情報に基づいて、再構成される前記内部表現のデータ構造が、所定の文書型宣言に適合しているかを検証する検証手段を含む
コンピュータ。
【請求項１２】
請求項１１に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストを含み、
前記文書型宣言は、前記テキスト含有要素の型を定義した要素型宣言を含み、
前記検証手段は、前記要素テキストが、前記型に適合するか否かを検証する
コンピュータ。
【請求項１３】
請求項１１に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリストを含み、
前記文書型宣言は、前記属性の属性型を定義した属性型宣言を含み、
前記検証手段は、前記属性テキストが、前記属性型に適合するか否かを検証する
コンピュータ。
【請求項１４】
請求項１１に記載のコンピュータにおいて、
前記検証支援情報は、前記内部表現に含まれる部分構造が、重複しないように列挙された部分構造リストを含み、
前記検証手段は、前記部分構造が、前記文書型宣言に定義された構文に適合するか否かを検証する
コンピュータ。
【請求項１５】
請求項１４に記載のコンピュータにおいて、
前記検証支援情報は、
前記要素の要素名を列挙した要素名リストと、
前記属性の属性名を列挙した属性名リストと、
前記内部表現を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリストと、
前記内部表現を構成する要素のうち、属性を有する属性所有要素と、前記属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリスト
とを含み、
前記部分構造のそれぞれには、構造ＩＤが与えられ、
前記要素テキストと前記属性テキストとのそれぞれにテキストＩＤが与えられ、
前記部分構造の部分構造表現は、前記要素の要素ＩＤと、前記要素が有する属性の属性ＩＤと、前記要素の子要素の要素ＩＤと、前記親要素が、要素テキストを含むことを示す記号とによって記述され、
前記符号化文書は、前記構造ＩＤと前記テキストＩＤとによって前記内部表現の全体の構造を表現する全体構造データを含み、
前記復号手段は、前記要素名リストと前記属性名リストと前記全体構造データとに基づいて前記内部表現を再構成する
コンピュータ。
【請求項１６】
（ａ）構造化文書の内部表現を符号化して符号化文書を作成するステップと、
（ｂ）ネットワークを介して前記符号化文書を取得し、前記符号化文書を復号して前記内部表現を再構成するステップ
とを備え、
前記（ａ）ステップは、
（ａ１）前記構造化文書に含まれる記述を重複することなく列挙することによって前記内部表現から検証支援情報を生成するステップと、
（ａ２）前記検証支援情報を含むように前記符号化文書を生成するステップ
とを含み、
前記（ｂ）ステップは、
（ｂ１）前記検証支援情報に基づいて、再構成される前記内部表現のデータ構造が、所定の文書型宣言に適合しているかを検証するステップ
を含む
構造化文書通信方法。
【請求項１７】
（ａ１）構造化文書に含まれる記述を重複することなく列挙することによって前記構造化文書の内部表現から検証支援情報を生成するステップと、
（ａ２）前記検証支援情報を含むように符号化文書を生成するステップ
とをコンピュータに実行させる
コンピュータプログラム。
【請求項１８】
（ｂ）ネットワークを介して符号化文書を取得し、符号化文書を復号して構造化文書の内部表現を再構成するステップ
をコンピュータに実行させるコンピュータプログラムであって、
前記符号化文書は、前記構造化文書に含まれる記述が重複することなく列挙された検証支援情報を含み、
前記（ｂ）ステップは、
（ｂ１）前記検証支援情報に基づいて、再構成される前記内部表現のデータ構造が、所定の文書型宣言に適合しているかを検証するステップ
を含む
コンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムに関し、特に、構造化文書（構造化テキスト）を相互に通信するコンピュータで形成されたコンピュータシステムに関する。
【０００２】
【従来の技術】
構造化文書（構造化テキスト）は、文書のデータ構造をあらわす記述（タグ）を文書自体に埋め込んだ文書である。構造化文書は、データ構造について高い柔軟性と拡張性とを有しており、このような特長から、構造化文書は、異なるコンピュータ、及び異なるアプリケーション間のデータ交換に広く使用される。ＸＭＬ、及びＳＧＭＬは、典型的な構造化文書の規格である。
【０００３】
構造化文書の構造を規定するために、文書型定義が使用される。例えば、ＸＭＬ文書の文書型定義としてＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）及びＸＭＬスキーマが使用される。文書型定義は、構造化文書自体に埋め込まれることも、構造化文書とは別に用意されることもある。構造化文書とは別途に用意されて文書型定義を記述したファイルは、文書構造定義ファイルと呼ばれる。
【０００４】
構造化文書は、文書型定義に即した形式で正しく記述される必要がある。構造化文書が文書型定義に従わずに記述されていることは、その構造化文書を取り扱うコンピュータが該構造化文書の内容を正しく把握することを妨げる。このため、構造化文書は、そのデータ構造の妥当性が検証されることが望ましい。特許文献１は、構造化文書のデータ構造の検証について開示している。
【０００５】
構造化文書の検証における一つの問題は、構造化文書を検証するために必要な演算量が大きいことである。構造化文書は、本質的に冗長性が大きく、その大きさが大きい傾向にある。この構造化文書の冗長性は、検証に必要な演算量を増加させ、このため、検証に必要なコストを増大させる。
【０００６】
このような問題は、特に、構造化文書を一のコンピュータから他のコンピュータに伝送する場合に顕著になる。構造化文書を伝送する場合、該構造化文書は、送信側コンピュータと受信側コンピュータの両方で検証され得る。送信側コンピュータにおいて構造化文書の検証が行われても、受信した構造化文書のデータの完全性を保証するためには、受信側コンピュータにおいても構造化文書の検証が行われる必要がある。送信側コンピュータと受信側コンピュータの両方で構造化文書の検証が行われることは、検証に必要な演算量が大きいという問題を更に深刻にする。
【０００７】
【特許文献１】
特開２００１−７５９５８号公報
【０００８】
【発明が解決しようとする課題】
本発明の目的は、構造化文書を検証するために必要な演算量を抑制し、これにより検証に必要なコストを減少することにある。
本発明の他の目的は、構造化文書を送信側コンピュータから受信側コンピュータに伝送する場合に、受信側コンピュータが構造化文書を検証するために必要な演算量を抑制し、これにより検証に必要なコストを減少することにある。
【０００９】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されている。但し、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明によるコンピュータシステムは、構造化文書の内部表現（１３）を符号化して符号化文書（４）を作成する符号化手段（１２）を含む送信側コンピュータ（１）と、ネットワーク（３）を介して符号化文書（４）を取得し、符号化文書（４）を復号して内部表現（２３）を再構成する復号手段（２２）を含む受信側コンピュータ（２）とを備えている。符号化手段（１２）は、該構造化文書に含まれる記述を重複することなく列挙することによって内部表現（１３）から検証支援情報（４ａ〜４ｅ）を生成する検証支援情報抽出手段（１５）を含み、且つ、検証支援情報（４ａ〜４ｅ）を含むように符号化文書（４）を生成する。復号手段（２２）は、検証支援情報（４ａ〜４ｅ）に基づいて、再構成される内部表現（２３）のデータ構造が、所定の文書型宣言に適合しているかを検証する検証手段（２５）を含む。当該コンピュータシステムでは、記述の重複が排除された検証支援情報（４ａ〜４ｅ）に基づいて内部表現（２３）のデータ構造の妥当性が検証される。このような構成は、検証手順の重複を排除し、従って、構造化文書を検証するために必要な演算量を抑制することができる。
【００１１】
検証支援情報（４ａ〜４ｅ）は、内部表現（１３）を構成する要素のうち、テキストデータを要素内容として含むテキスト含有要素の要素テキストが、重複しないように列挙された要素テキストリスト（４ｃ）を含み、文書型宣言は、テキスト含有要素の型を定義した要素型宣言を含み、検証手段（２５）は、該要素テキストが、該型に適合するか否かを検証することが好適である。これにより、同一の要素テキストが内部表現（１３）に複数含まれていても、該要素テキストの検証の重複を避けることができる。
【００１２】
検証支援情報（４ａ〜４ｅ）は、内部表現（１３）を構成する要素のうち、属性を有する属性所有要素と、該属性の属性値である属性テキストとが、重複しないように列挙された属性テキストリスト（４ｄ）を含み、文書型宣言は、属性の属性型を定義した属性型宣言を含み、検証手段（２５）は、属性テキストが、属性型に適合するか否かを検証することが好適である。これにより、同一の属性テキストが内部表現（１３）に複数含まれていても、該属性テキストの検証の重複を避けることができる。
【００１３】
検証支援情報（４ａ〜４ｅ）は、内部表現（１３）に含まれる部分構造が、重複しないように列挙された部分構造リスト（４ｅ）を含み、検証手段（２５）は、該部分構造が、文書型宣言に定義された構文に適合するか否かを検証することが好適である。これにより、同一の部分構造が内部表現（１３）に複数含まれていても、該部分構造の検証の重複を避けることができる。
【００１４】
検証支援情報（４ａ〜４ｅ）が、該要素の要素名を列挙した要素名リスト（４ａ）と、該属性の属性名を列挙した属性名リスト（４ｂ）と、要素テキストリスト（４ｃ）と、属性テキストリスト（４ｄ）とを含む場合、該部分構造のそれぞれには、構造ＩＤが与えられ、該要素テキストと該属性テキストとのそれぞれにテキストＩＤが与えられ、該部分構造の部分構造表現は、該要素の要素ＩＤと、該要素が有する属性の属性ＩＤと、該要素の子要素の要素ＩＤと、該親要素が、要素テキストを含むことを示す記号とによって記述され、符号化文書（４）は、該構造ＩＤと該テキストＩＤとによって内部表現（１３）の全体の構造を表現する全体構造データ（４ｆ）を含み、復号手段（２２）は、要素名リスト（４ａ）と属性名リスト（４ｂ）と全体構造データ（４ｆ）とに基づいて内部表現（２３）を再構成することが好適である。このような構成は、内部表現（１３、２３）の全体構成を、小さなデータ量で表現することを可能にする。
【００１５】
本発明によるコンピュータは、構造化文書の内部表現を符号化して符号化文書（４）を作成する符号化手段（１２）を備えている。符号化手段（１２）は、該構造化文書に含まれる記述を重複することなく列挙することによって内部表現から検証支援情報（４ａ〜４ｅ）を生成する検証支援情報抽出手段（２５）を含み、且つ、検証支援情報（４ａ〜４ｅ）を含むように符号化文書（４）を生成する。このようなコンピュータは、上記のコンピュータシステムを好適に実現する。
【００１６】
本発明によるコンピュータは、ネットワーク（３）を介して符号化文書（４）を取得し、符号化文書（４）を復号して構造化文書の内部表現を再構成する復号手段（２２）を備えている。符号化文書（４）は、該構造化文書に含まれる記述が重複することなく列挙された検証支援情報（４ａ〜４ｅ）を含んでいる。
復号手段（２２）は、検証支援情報（４ａ〜４ｅ）に基づいて、再構成される内部表現（２３）のデータ構造が、所定の文書型宣言に適合しているかを検証する検証手段（２５）を含む。このようなコンピュータは、上記のコンピュータシステムを好適に実現する。
【００１７】
本発明による構造化文書通信方法は、
（ａ）構造化文書の内部表現（１３）を符号化して符号化文書（４）を作成するステップと、
（ｂ）ネットワーク（３）を介して符号化文書（４）を取得し、符号化文書（４）を復号して内部表現（２３）を再構成するステップ
とを備えている。
該（ａ）ステップは、
（ａ１）前記構造化文書に含まれる記述を重複することなく列挙することによって内部表現（１３）から検証支援情報（４ａ〜４ｅ）を生成するステップと、
（ａ２）前記検証支援情報（４ａ〜４ｅ）を含むように前記符号化文書（４）を生成するステップ
とを含む。該（ｂ）ステップは、
（ｂ１）検証支援情報（４ａ〜４ｅ）に基づいて、再構成され内部表現（２３）のデータ構造が、所定の文書型宣言に適合しているかを検証するステップ
を含む。このような構造化文書通信方法は、記述の重複が排除された検証支援情報（４ａ〜４ｅ）に基づいて内部表現（２３）のデータ構造の妥当性を検証する。従って、当該構造化文書通信方法は、検証手順の重複を排除し、従って、構造化文書を検証するために必要な演算量を抑制することができる。
【００１８】
本発明によるコンピュータプログラムは、
（ａ１）構造化文書に含まれる記述を重複することなく列挙することによって該構造化文書の内部表現（１３）から検証支援情報（４ａ〜４ｅ）を生成するステップと、
（ａ２）検証支援情報（４ａ〜４ｅ）を含むように符号化文書（４）を生成するステップ
とをコンピュータ（１）に実行させる。当該コンピュータプログラムは、上述のコンピュータシステムの実現に好適に使用される。
【００１９】
本発明によるコンピュータプログラムは、
（ｂ）ネットワーク（３）を介して符号化文書（４）を取得し、符号化文書（４）を復号して構造化文書の内部表現（２３）を再構成するステップ
をコンピュータに実行させるコンピュータプログラムである。符号化文書（４）は、該構造化文書に含まれる記述が重複することなく列挙された検証支援情報（４ａ〜４ｅ）を含む。該（ｂ）ステップは、
（ｂ１）検証支援情報（４ａ〜４ｅ）に基づいて、再構成される内部表現（２３）のデータ構造が、所定の文書型宣言に適合しているかを検証するステップ
を含む。当該コンピュータプログラムは、上述のコンピュータシステムの実現に好適に使用される。
【００２０】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明の実施の一形態を説明する。本発明によるコンピュータシステムの実施の一形態では、図１に示されているように、送信側コンピュータ１と受信側コンピュータ２とが設けられる。
【００２１】
送信側コンピュータ１には、構造化文書、（例えば、ＸＭＬ文書、及びＳＧＭＬ文書）に対応したアプリケーションプログラム１１と構造化文書符号化モジュール１２とがインストールされている。アプリケーションプログラム１１は、受信側コンピュータ２に送信しようとする構造化文書の内部表現である構造化文書内部表現１３を生成する。図１０に示されているように、アプリケーションプログラム１１は、典型的には、外部から構造化文書１３’を受け取り、受け取った構造化文書１３’の構造化文書内部表現１３を生成するプログラムである。
【００２２】
図１に示されているように、送信側コンピュータ１には、送信側コンピュータ２が取り扱う構造化文書の構造を示す文書型宣言を記述した文書構造定義ファイル１４が用意されることがある。文書構造定義ファイル１４に記述される文書型宣言には、構造化文書内部表現１３が表現する構造化文書の文書構造の規則が記述される。より具体的には、文書型宣言は、構造化文書に含まれる要素の型を定義する要素型宣言、要素に与えられる属性の型を定義する属性型宣言を含んでいる。
【００２３】
文書構造定義ファイル１４が用意される場合、構造化文書内部表現１３は、文書構造定義ファイル１４に記述されている文書型宣言に従って記述される必要がある。当該コンピュータシステムがＸＭＬを使用する場合、文書型宣言としては、例えば、ＤＴＤ、ＸＭＬスキーマが使用される。
【００２４】
構造化文書符号化モジュール１２は、アプリケーションプログラム１１から渡された構造化文書内部表現１３を符号化して符号化文書４を生成するコンピュータプログラムである。生成された符号化文書４は、ネットワーク３を介して受信側コンピュータ２に送信される。
【００２５】
受信側コンピュータ２には、アプリケーションプログラム２１と構造化文書復号化モジュール２２とがインストールされている。構造化文書復号化モジュール２２は、受信側コンピュータ２が受信した符号化文書４を復号化して、構造化文書内部表現２３を生成するために使用される。アプリケーションプログラム２１は、復号化文章復号化モジュール２１から構造化文書内部表現２３を受け取り、所望の処理を行う。図１０に示されているように、アプリケーションプログラム２１は、典型的には、構造化文書内部表現２３から、それによって表現されている構造化文書２４’を再生するプログラムである。送信側コンピュータ１から受信側コンピュータ２への通信の間にエラーが発生しなければ、構造化文書内部表現２３は、送信側コンピュータ１のアプリケーションプログラム１１が生成する構造化文書内部表現１３に一致する。
【００２６】
図１に示されているように、受信側コンピュータ２は、受信側コンピュータ２が取り扱う構造化文書が従うべき文書型宣言を記述した文書構造定義ファイル２４を保存している。送信側コンピュータ１に用意され得る文書構造定義ファイル１４と同様に、文書構造定義ファイル２４に記述されている文書型宣言は、構造化文書内部表現２３に表現された構造化文書の文書構造の規則を記述している。より具体的には、文書構造定義ファイル２４に記述されている文書型宣言は、構造化文書に含まれる要素の型を定義する要素型宣言、要素に与えられる属性の型を定義する属性型宣言を含んでいる。送信側コンピュータ１に文書構造定義ファイル１４が用意される場合、受信側コンピュータ２に用意される文書構造定義ファイル２４と送信側コンピュータ１に用意される文書構造定義ファイル１４とは、一致される必要がある。
【００２７】
受信側コンピュータ２が構造化文書内部表現２３の内容を正しく把握するためには、構造化文書内部表現２３が文書構造定義ファイル２４に含まれる文書型宣言に従って記述されていること（このような構造化文書内部表現２３の性質は、「構造化文書内部表現２３の妥当性」と呼ばれる。）が保証されなくてはならない。構造化文書内部表現２３がＸＭＬ文書の内部表現である場合、これは、構造化文書内部表現２３によって表現されるＸＭＬ文書が「妥当なＸＭＬ文書（ｖａｌｉｄ  ＸＭＬ  ｄｏｃｕｍｅｎｔ）」であることを保証することに相当する。
【００２８】
しかし、既述のように、構造化文書は冗長であるから、構造化文書内部表現２３を直接に検証して構造化文書内部表現２３の妥当性を保証することは、それに必要な演算量が大きく好ましくない。
【００２９】
構造化文書内部表現２３の妥当性を保証するために、符号化文書４が下記に述べられるような特別な形式で生成され、その符号化文書４に基づいて構造化文書内部表現２３の妥当性が検証される。必要な演算量を抑えて構造化文書内部表現２３の妥当性の保証を容易化するために、符号化文書４は、下記の２つの特性を備えている。第１に、符号化文書４は、検証支援情報を含んで構成されている。検証支援情報とは、受信側コンピュータ２において構造化文書内部表現２３の妥当性の保証に使用される情報である。第２に、符号化文書４は、構造化文書内部表現１３の冗長性を排除しながら、構造化文書内部表現１３と同等の内容を記述している。既述のように、構造化文書の冗長性は、その検証に必要な演算量を増加させる。冗長性が少ない符号化文書４に基づいて構造化文書内部表現２３の妥当性を保証することにより、妥当性の保証に必要な演算量が抑制される。
【００３０】
図２は、符号化文書４の具体的な構造を示している。符号化文書４は、要素名リスト４ａと、属性名リスト４ｂと、要素テキストリスト４ｃと、属性テキストリスト４ｄと、部分構造リスト４ｅと、全体文書構造データ４ｆとを含んでいる。
【００３１】
要素名リスト４ａは、送信側コンピュータ１のアプリケーションプログラム１１によって提供される構造化文書内部表現１３に含まれる要素の要素名を列挙したリストである。図３は、要素名リスト４ａの内容の例を示している。要素名リスト４ａは、構造化文書内部表現１３に含まれる要素のそれぞれについて、要素に固有に与えられた要素ＩＤと、その要素の要素名とを記述している。図３を参照すると、例えば、要素ＩＤ”Ｅ０１”が与えられた要素の要素名は、”要素名Ａ”である。
【００３２】
要素名リスト４ａにおいて、同一の要素名は、重複して列挙されない。ある要素名を有する要素が構造化文書内部表現１３に複数回現れても、要素名リスト４ａには、その要素名は一度しか現れない。
【００３３】
属性名リスト４ｂは、構造化文書内部表現１３中で使用されている属性の属性名を列挙したリストである。図４は、属性名リスト４ｂの内容の例を示している。属性名リスト４ａは、構造化文書内部表現１３中で使用されている属性のそれぞれに固有に与えられた属性ＩＤと、その属性の属性名とを記述している。図４を参照すると、例えば、属性ＩＤ”Ａ０１”が与えられている属性の属性名は、”属性名Ａ”である。
【００３４】
属性名リスト４ｂにおいて、同一の属性名は、重複して列挙されない。ある属性名を有する属性が構造化文書内部表現１３に複数回現れても、属性名リスト４ｂには、その属性名は一度しか現れない。
【００３５】
要素テキストリスト４ｃは、構造化文書内部表現１３に含まれる要素の要素テキストを列挙したリストである。要素テキストとは、テキストデータである要素内容である。図５は、要素テキストリスト４ｃの内容の例を示している。要素テキストリスト４ｃは、構造化文書内部表現１３に含まれる全要素のうち、要素テキストを含む要素の要素ＩＤと、その要素に含まれる要素テキストと、その要素テキストに固有に与えられたテキストＩＤとを記述している。構造化文書では、ある要素の要素内容は、子要素のみで構成されることが許されているから、全ての要素が要素テキストリスト４ｃに記載されているとは限らないことに留意されたい。図５を参照すると、例えば、要素ＩＤ”Ｅ０１”が与えられている要素の要素内容は、テキストＩＤ”Ｔ０１”が与えられている要素テキスト”テキストＡ”と、テキストＩＤ”Ｔ０２”が与えられている要素テキスト”テキストＢ”と、テキストＩＤ”Ｔ０３”が与えられている要素テキスト”テキストＣ”とを含んでいる。
【００３６】
要素テキストリスト４ｃにおいて、同一の要素テキストは、重複して列挙されない。ある要素テキストが構造化文書内部表現１３に複数回現れても、要素テキストリスト４ｃには、その要素テキストは一度しか現れない。
【００３７】
属性テキストリスト４ｄは、構造化文書内部表現１３中で使用されている属性の属性テキストを列挙したリストである。ある属性の属性テキストとは、その属性の属性値を示すテキストデータである。図６は、属性テキストリスト４ｄの内容の例を示している。属性テキストリスト４ｄは、構造化文書内部表現１３中で使用されている属性の属性ＩＤと、その属性の属性テキストと、その属性テキストに固有に与えられたテキストＩＤとを記述している。ある属性テキストのテキストＩＤは、他の属性テキストのテキストＩＤと異なるとともに、上述の要素テキストのテキストＩＤとも異なるように定められる。
【００３８】
図６を参照すると、例えば属性ＩＤ”Ａ０１”が与えられている属性の属性テキスト（属性値）は、テキストＩＤ”Ｔ０１”が与えられている属性テキスト”テキストＡ”である。
【００３９】
属性テキストリスト４ｄにおいて、同一の属性テキストは、重複して列挙されない。ある属性テキストが構造化文書内部表現１３に複数回現れても、属性テキストリスト４ｃには、その属性テキストは一度しか現れない。
【００４０】
部分構造リスト４ｅは、構造化文書内部表現１３に現れる部分構造を示す部分構造表現を列挙したリストである。部分構造は、一の要素（親要素）と、その要素の子要素とから構成される。部分構造には、親要素の子要素の子要素は、含まれないことに留意されたい。部分構造表現は、このような部分構造を表現する記載である。ある要素（親要素）の部分構造表現は、
（１）親要素の要素ＩＤ
（２）親要素に規定されている属性の属性ＩＤ、
（２）親要素に含まれる子要素の要素ＩＤ
（３）親要素が要素テキストを含む場合、該親要素が要素テキストを含むことを示す記号
を含む。
【００４１】
図７は、部分構造リスト４ｅの内容の例を示す。部分構造リスト４ｅは、部分構造のそれぞれに固有に与えられた構造ＩＤとその部分構造の部分構造表現とを記述している。部分構造表現の先頭には、その部分構造を構成する親要素の要素ＩＤが記述される。図７を参照すると、例えば構造ＩＤ”Ｓ０１”が与えられている部分構造は、要素ＩＤ”Ｅ０１”を有する親要素を含む。その親要素には、属性ＩＤ”Ａ０１”を有する属性が規定され、更に、その親要素は、属性ＩＤ”Ｅ０２”を有する子要素を２つ含んでいる。また、構造ＩＤ”Ｓ０４”が与えられている部分構造は、要素ＩＤ”Ｅ０１”を有する親要素を含む。この要素は、ある要素テキストを含む。図７において記号”Ｔ”は、要素ＩＤ”Ｅ０１”を有する要素が、要素テキストを含むことを意味している。構造ＩＤ”Ｓ０４”が与えられている部分構造表現には、親要素以外の要素ＩＤは含まれておらず、これは、該親要素は子要素を含まないことを示している。
【００４２】
部分構造リスト４ｅにおいて、同一の部分構造は、重複して列挙されない。ある部分構造が構造化文書内部表現１３に複数回現れても、部分構造リスト４ｅには、その部分構造は一度しか現れない。
【００４３】
全体文書構造データ４ｆは、構造化文書内部表現１３の全体の構造を示すデータであり、構造ＩＤとテキストＩＤとによって記述される。全体文書構造データ４ｆには、構造ＩＤに続いて、該構造ＩＤで特定される部分構造の親要素の要素テキスト、又は、その親要素に与えられている属性の属性テキスト（属性値）のテキストＩＤが記述される。例えば、構造ＩＤ”Ｓ０４”によって特定される部分構造の部分構造表現が、”Ｅ０４  Ｔ”であり、要素ＩＤ”Ｅ０４”によって特定される要素名が”Ｄ”であり、テキストＩＤ”Ｔ０４”によって特定される要素テキストが、”テキストＤ”であるとする。全体文書構造データ４ｆが”Ｓ０４  Ｔ０４”という記載を含む場合、その記載は、要素名が”Ｄ”である要素の要素テキストが”テキストＤ”であることが表している。構造ＩＤとテキストＩＤとによって記述される全体文書構造データ４ｆは、より小さなデータ量で、構造化文書内部表現１３の全体の構造を記述することができる。
【００４４】
上述の要素名リスト４ａと、属性名リスト４ｂと、要素テキストリスト４ｃと、属性テキストリスト４ｄと、部分構造リスト４ｅと、全体文書構造データ４ｆとは、符号化データ４を復号化して構造化文書内部表現１３と同一の構造化文書内部表現２３を復元するために必要な情報を全て含んでいる。
【００４５】
要素名リスト４ａと、属性名リスト４ｂと、要素テキストリスト４ｃと、属性テキストリスト４ｄと、部分構造リスト４ｅとは、構造化文書内部表現２３を復元するのに必要な情報であるとともに、受信側コンピュータ２における構造化文書内部表現２３の妥当性の保証に使用される検証支援情報としても機能する。要素名リスト４ａと要素テキストリスト４ｃとは、構造化文書内部表現２３に含まれている要素の要素テキストが、その要素について文書構造定義ファイル２４に宣言されている要素型に適合することを検証するために使用される。属性名リスト４ｂと属性テキストリスト４ｄとは、構造化文書内部表現２３で使用されている属性の属性テキストが、その属性について文書構造定義ファイル２４に宣言されている属性型に適合することを検証するために使用される。部分構造リスト４ｅは、構造化文書内部表現２３で使用されている部分構造が、文書構造定義ファイル２４に定義されている文書構造に適合することを検証するために使用される。これらを検証することにより、符号化文書４を復号化して構造化文書内部表現２３を復元する前に、構造化文書内部表現２３の妥当性を保証することが可能になる。
【００４６】
上述のように、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅからは、重複が排除されている。これは、構造化文書内部表現２３の妥当性を保証するために必要な演算の演算量を有効に減少する。要素テキストリスト４ｃにおいて、同一の要素テキストが重複して列挙されないことは、該要素テキストの妥当性の検証を重複して行う必要をなくす。更に、属性テキストリスト４ｄにおいて、同一の属性テキストが重複して列挙されないことは、該属性テキストの妥当性の検証を重複して行う必要をなくす。加えて、部分構造リスト４ｅにおいて、同一の部分構造が重複して列挙されないことは、該部分構造の妥当性の検証を重複して行う必要をなくす。このように、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅにおける重複の排除により、構造化文書内部表現２３の妥当性を保証するために必要な演算の演算量が抑制される。
【００４７】
図８は、符号化文書４を生成する構造化文書符号化モジュール１２の構成を示す。構造化文書符号化モジュール１２は、検証支援情報抽出モジュール１５と、全体文書構造抽出モジュール１６と、符号化文書出力モジュール１７とを備えている。
【００４８】
検証支援情報抽出モジュール１５は、要素名／属性名抽出モジュール１５ａと、テキスト抽出モジュール１５ｂと、部分構造抽出モジュール１５ｃとを含む。要素名／属性名抽出モジュール１５ａは、構造化文書内部表現１３から、要素名と属性名とを抽出して、要素名リスト４ａと属性名リスト４ｂとを作成する。テキスト抽出モジュール１５ｂは、構造化文書内部表現１３から要素テキスト及び属性テキストとを抽出して、要素テキストリスト４ｃと属性テキストリスト４ｄとを作成する。要素テキストリスト４ｃと属性テキストリスト４ｄとの作成には、要素名／属性名抽出モジュール１５ａによって生成された要素名リスト４ａと属性名リスト４ｂが使用される。部分構造抽出モジュール１５ｃは、構造化文書内部表現１３から部分構造を抽出して部分構造リスト４ｅを作成する。部分構造抽出モジュール１５ｃは、抽出した部分構造のそれぞれに構造ＩＤを与え、更に、部分構造の構造ＩＤとその部分構造表現とを列挙して部分構造リスト４ｅを作成する。
【００４９】
要素名／属性名抽出モジュール１５ａ、テキスト抽出モジュール１５ｂ、及び部分構造抽出モジュール１５ｃは、送信側コンピュータ１が文書構造定義ファイル１４を有している場合に文書構造定義ファイル１４を利用して要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅを効率的に作成するように構成されていることが好適である。
【００５０】
全体文書構造抽出モジュール１６は、構造化文書内部表現１３から全体構造データ４ｆを作成する。全体文書構造抽出モジュール１６は、構造化文書内部表現１３に基づいて構造化文書の全体構造を把握し、その全体構造を構造ＩＤとテキストＩＤとで表現する全体構造データ４ｆを生成する。
【００５１】
符号化文書出力モジュール１７は、要素名リスト４ａと、属性名リスト４ｂと、要素テキストリスト４ｃと、属性テキストリスト４ｄと、部分構造リスト４ｅと、全体構造データ４ｆとを統合して、符号化文書４を生成する。
【００５２】
図９は、符号化文書４を復号して構造化文書内部表現２３を再生する構造化文書復号化モジュール２２の構成を示す。構造化文書復号化モジュール２２は、検証モジュール２５と、符号化文書入力モジュール２６と、構造化文書内部表現出力モジュール２７とを備えている。
【００５３】
符号化文書入力モジュール２６は、符号化文書４を展開して、要素名リスト４ａと、属性名リスト４ｂと、要素テキストリスト４ｃと、属性テキストリスト４ｄと、部分構造リスト４ｅと、全体構造データ４ｆとを生成する。
【００５４】
検証モジュール２５は、テキスト型検証モジュール２５ａと部分構造検証モジュール２５ｂとを含む。テキスト型検証モジュール２５ａは、要素テキストリスト４ｃに列挙された要素テキストと、属性テキストリスト４ｄに列挙された属性テキストとが、文書構造定義ファイル２４に記述されている文書型宣言に適合しているかを検証する。部分構造検証モジュール２５ｂは、部分構造リスト４ｅに列挙された部分構造が、文書構造定義ファイル２４に規定されている型に適合しているかを検証する。
【００５５】
構造化文書内部表現出力モジュール２７は、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、部分構造リスト４ｅ及び全体構造データ４ｆから構造化文書内部表現２３を再生する。
【００５６】
続いて、本実施の形態におけるコンピュータシステムの動作が説明される。図１１及び図１２は、構造化文書符号化モジュール１２が構造化文書内部表現１３から符号化文書４を生成するために行う処理を示すフローチャートである。構造化文書符号化モジュール１２に構造化文書内部表現１３が与えられ、構造化文書符号化モジュール１２の実行が開始されると（ステップＳ０１）、構造化文書符号化モジュール１２は、何も列挙されていない要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅを生成する。更に、構造化文書符号化モジュール１２は、構造化文書内部表現１３に記述されている要素のうち、要素名／属性名抽出モジュール１５ａが処理すべき要素を選択する。選択された要素は、以下において、処理対象要素と呼ばれる。構造化文書符号化モジュール１２の実行が開始された直後においては、ルート要素（即ち、最上位の要素）が処理対象要素として選択される。
【００５７】
要素名／属性名抽出モジュール１５ａは、処理対象要素の要素名を抽出する（ステップＳ０２）。更に、要素名／属性名抽出モジュール１５ａは、処理対象要素の要素名が要素名リスト４ａに登録されているかを調べる（ステップＳ０３）。登録されていない場合、要素名／属性名抽出モジュール１５ａは、処理対象要素の要素名を、処理対象要素の要素ＩＤとともに要素名リスト４ａに登録する（ステップＳ０４）。ステップＳ０３、Ｓ０４の処理により、要素名は、重複することなく要素名リスト４ａに登録される。
【００５８】
更に、要素名／属性名抽出モジュール１５ａは、処理対象要素が属性を持つかを調べる（ステップＳ０５）。処理対象要素が属性を持たない場合には、構造化文書符号化モジュール１２の処理は、図１２に示されているステップＳ１４にジャンプする。
【００５９】
処理対象要素が属性を持つ場合には、要素名／属性名抽出モジュール１５ａは、処理対象要素が有する属性の一つを選択する（ステップＳ０６）。処理対象要素が属性を一つしか有しない場合には、その属性が自動的に選択される。
【００６０】
続いて、要素名／属性名抽出モジュール１５ａは、選択された属性の属性名を、構造化文書内部表現１３から抽出する（ステップＳ０７）。更に、要素名／属性名抽出モジュール１５ａは、選択された属性の属性名が属性名リスト４ｂに登録されているかを調べる。（ステップＳ０８）。登録されていない場合、要素名／属性名抽出モジュール１５ａは、選択された属性の属性名を、その属性の属性ＩＤとともに属性名リスト４ｂに登録する（ステップＳ０９）ステップＳ０８、Ｓ０９の処理により、属性名は、重複することなく属性名リスト４ｂに登録される。
【００６１】
更に、要素名／属性名抽出モジュール１５ａは、処理対象要素に規定されている全ての属性についてステップＳ０７からステップＳ１２の処理、即ち、属性登録処理が行われたかを調べる。属性登録処理が全ての属性について行われていない場合、属性登録処理が行われていない属性について属性登録処理が行われる。
【００６２】
処理対象要素に規定されている全ての属性について属性登録処理が行われると、図１２に示されているように、テキスト抽出モジュール１５ｂは、処理対象要素が要素テキストを有するかを調べる（ステップＳ１４）。有しない場合、構造化文書符号化モジュール１２の処理は、ステップＳ１８にジャンプする。処理対象要素が要素テキストを有する場合、テキスト抽出モジュール１５ｂは、その要素テキストが要素テキストリスト４ｃに登録されているかを調べる（ステップＳ１１）。登録されていない場合、テキスト抽出モジュール１５ｂは、その要素テキストにテキストＩＤを与え、更に、その要素テキストを、処理対象要素の要素ＩＤとテキストＩＤとともに要素テキストリスト４ｃに登録する。ステップＳ１０及びステップＳ１１の処理により、要素テキストは、重複することなく要素テキストリスト４ｃに登録される。
【００６３】
続いて、部分構造抽出モジュール１５ｃは、処理対象要素を親要素として有する部分構造を構造化文書内部表現１３から抽出し、その部分構造の部分構造表現を取得する（ステップＳ１８）。既述の通り、部分構造表現は、要素ＩＤと属性ＩＤで表現されている。部分構造リスト４ｅの作成に使用される要素ＩＤは、要素名を検索キーとして要素名リスト４ａを検索することによって取得され、属性ＩＤは、属性名を検索キーとして属性名リスト４ｂを検索することによって取得される。
【００６４】
更に部分構造抽出モジュール１５ｃは、抽出した部分構造が部分構造リスト４ｅに登録されているかを調べる（ステップＳ１９）。登録されていない場合、部分構造抽出モジュール１５ｃは、該部分構造に構造ＩＤを与え、更に、該部分構造の部分構造表現を、構造ＩＤとともに部分構造リスト４ｅに登録する。
【００６５】
続いて、構造化文書符号化モジュール１２は、処理対象要素が子要素を有するかを調べる（ステップＳ２１）。有する場合、構造化文書符号化モジュール１２は、該処理対象要素の子要素のうちの一つを選択する（ステップＳ２２）。更に、構造化文書符号化モジュール１２は、選択された子要素を処理対象要素としてステップＳ０２以下の手順を再帰的に実行する（ステップＳ２３）。これにより、選択された子要素の要素名と要素ＩＤが要素リスト４ａに登録され、その子要素に与えられている属性の属性名と属性ＩＤとが属性リスト４ｂに登録され、その属性の属性テキスト（属性値）が属性テキストリスト４ｄに登録され、その子要素の要素テキストが要素テキストリスト４ｃに登録され、その子要素を親要素とする部分構造が部分構造リスト４ｄに登録される。選択された子要素が、更に子要素を有する場合も同様の処理が行われる。
【００６６】
全ての要素についてステップＳ０２からステップＳ２３の処理が行われると、全体文書構造抽出モジュール１６は、構造化文書内部表現１３を構造ＩＤとテキストＩＤとで表現する全体構造データ４ｆを生成する。
【００６７】
更に、符号化文書出力モジュール１７が、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、部分構造リスト４ｅ及び全体構造データ４ｆを統合して符号化文書４を生成し、符号化文書４の生成処理が完了する（ステップＳ２６）。
【００６８】
図１３は、構造化文書復号化モジュール２２が、符号化文書４から生成されるべき構造化文書内部表現２３の妥当性を検証し、更に、符号化文書４から構造化文書内部表現２３を復元する処理を示すフローチャートである。まず、構造化文書復号化モジュール２２が符号化文書４を受け取ると、構造化文書復号化モジュール２２の符号化文書入力モジュール２６は、符号化文書４から、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、部分構造リスト４ｅ、及び全体構造データ４ｆを抽出する（ステップＳ３２〜Ｓ３７）。
【００６９】
更に、構造化文書復号化モジュール２２のテキスト型検証モジュール２５ａは、要素テキストリスト４ｃに列挙された要素テキストを検証する（ステップＳ３８）。要素テキストの検証は、下記の手順で行われる。テキスト型検証モジュール２５ａは、要素テキストリスト４ｃに列挙された要素テキストを有する要素の要素名を、要素ＩＤを検索キーとして要素名リスト４ａを検索して取得する。更にテキスト型検証モジュール２５ａは、取得した要素名を検索キーとして文書構造定義ファイル２４を検索し、その要素名を有する要素の要素型宣言を取得する。更にテキスト型検証モジュール２５ａは、要素テキストが、要素型宣言に規定された型に適合しているかを判定する（ステップＳ３９）。要素テキストが、要素型宣言に規定された型に適合していない場合、即ち、要素テキストに要素型違反がある場合、要素型違反の発生を通知する要素型違反通知を生成する。要素型違反通知は、受信側コンピュータ２の表示装置に表示され、更に、送信側コンピュータ１に送信されて送信側コンピュータ１の表示装置に表示される（ステップＳ４４）。要素型違反が発生した場合、構造化文書内部表現２３の復元は行われず、構造化文書復号化モジュール２２の処理は終了する（ステップＳ４７）。
【００７０】
要素型違反が発生していない場合、テキスト型検証モジュール２５ａは、更に、属性テキストリスト４ｄに列挙された属性テキストを検証する（ステップＳ４０）。属性テキストの検証は下記の手順で行われる。テキスト型検証モジュール２５ａは、属性テキストリスト４ｄに列挙された属性テキストを属性値として有する属性の属性名を、属性ＩＤを検索キーとして属性名リスト４ｂを検索して取得する。更にテキスト型検証モジュール２５ａは、取得した属性名を検索キーとして文書構造定義ファイル２４を検索し、その属性名を有する属性の属性型宣言を取得する。更にテキスト型検証モジュール２５ａは、属性テキストが、属性型宣言に規定された型に適合しているかを判定する（ステップＳ４１）。属性テキストが、属性型宣言に規定された型に適合していない場合、即ち、属性テキストに属性型違反がある場合、属性型違反の発生を通知する属性型違反通知を生成する。属性型違反通知は、受信側コンピュータ２の表示装置に表示され、更に、送信側コンピュータ１に送信されて送信側コンピュータ１の表示装置に表示される（ステップＳ４４）。属性型違反が発生した場合、構造化文書内部表現２３の復元は行われず、構造化文書復号化モジュール２２の処理は終了する（ステップＳ４７）。
【００７１】
属性型違反が発生していない場合、部分構造検証モジュール２５ｂは、部分構造リスト４ｅに列挙されている部分構造を検証する（ステップＳ４２）。部分構造の検証は、下記の手順で行われる。部分構造検証モジュール２５ｂは、部分構造リスト４ｅに列挙された部分構造の部分構造表現に現れている要素ＩＤを検索キーとして要素名リスト４ａを検索する。部分構造検証モジュール２５ｂは、要素名リスト４ａを検索することにより、その部分構造に関係している要素の要素名を取得する。更に、その部分構造に関係している要素のうち、親要素の要素名を検索キーとして文書構造定義ファイル２４を検索し、その部分構造が取るべき型を取得する。部分構造検証モジュール２５ｂは、その部分構造が、文書構造定義ファイル２４に規定された型に適合しているかを判定する（ステップＳ４３）。部分構造が、文書構造定義ファイル２４に規定されている型に適合しない場合、部分構造の型違反の発生を通知する部分構造型違反通知を生成する。部分構造型違反通知は、受信側コンピュータ２の表示装置に表示され、更に、送信側コンピュータ１に送信されて送信側コンピュータ１の表示装置に表示される（ステップＳ４４）。部分構造型違反が発生した場合、構造化文書内部表現２３の復元は行われず、構造化文書復号化モジュール２２の処理は終了する（ステップＳ４７）。
【００７２】
要素型違反、属性型違反、及び部分構造型違反のいずれも発生しなかった場合、構造化文書内部表現出力モジュール２７は、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、部分構造リスト４ｅ及び全体構造データ４ｆから構造化文書内部表現２３を再生する。構造化文書内部表現出力モジュール２７は、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅを参照して全体構造データ４ｆを解析する。構造化文書内部表現出力モジュール２７は、全体構造データ４ｆを解析することによって構造化文書内部表現２３に含まれるべき要素の要素名、その要素の要素内容（即ち、要素テキスト及び子要素の要素名）、その要素に定められた属性の属性名、属性の属性テキスト（属性値）を把握し、更に構造化文書内部表現２３を生成する。
【００７３】
更に構造化文書内部表現出力モジュール２７は、型違反が発生しなかったことを通知する正常通知を生成する。正常通知は、受信側コンピュータ２の表示装置に表示され、更に、送信側コンピュータ１に送信されて送信側コンピュータ１の表示装置に表示される（ステップＳ４６）。構造化文書復号化モジュール２２の処理は終了する（ステップＳ４７）。
【００７４】
このように、構造化文書復号化モジュール２２は、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅに基づいて構造化文書内部表現２３の妥当性を検証し、その妥当性が保証された後に構造化文書内部表現２３を復元する。このような検証方法は、構造化文書内部表現２３の妥当性を保証するために必要な演算の演算量を有効に減少する。上述のように、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅからは、重複が排除されている。要素テキストリスト４ｃにおいて、同一の要素テキストが重複して列挙されないことは、該要素テキストの妥当性の検証を重複して行う必要をなくす。更に、属性テキストリスト４ｄにおいて、同一の属性テキストが重複して列挙されないことは、該属性テキストの妥当性の検証を重複して行う必要をなくす。加えて、部分構造リスト４ｅにおいて、同一の部分構造が重複して列挙されないことは、該部分構造の妥当性の検証を重複して行う必要をなくす。このように、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅにおける重複の排除により、構造化文書内部表現２３の妥当性を保証するために必要な演算の演算量が抑制される。
【００７５】
以下では、構造化文書の処理の実施例が、説明される。
【００７６】
【実施例】
本実施例では、図１４に示されているＸＭＬ文書について上記の実施の形態が適用される。該ＸＭＬ文書の構造がアプリケーションプログラム１１によって解析され、構造化文書内部表現１３が生成される。生成された構造化文書内部表現は、構造化文書符号化モジュール１２に引き渡される
【００７７】
ステップＳ０１において要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅが初期化され、更に、ルート要素”Ａｄｄｒｅｓｓｂｏｏｋ”が処理対象要素として選択される。ステップＳ０２においてルート要素の要素名”Ａｄｄｒｅｓｓｂｏｏｋ”が抽出される。この要素名は要素名リスト４ａに登録されていない。従って、ステップＳ０４において、図１５に示されているように、ルート要素の要素ＩＤ”Ｅ０１”と要素名”Ａｄｄｒｅｓｓｂｏｏｋ”とが要素名リスト４ａに登録される。
【００７８】
ステップＳ０５において処理対象要素であるルート要素が属性を有するかが調べられる。図１４に示されているように、ルート要素は、属性”ｏｗｎｅｒ”を有する。ステップＳ０６において属性”ｏｗｎｅｒ”が選択され、ステップＳ０７においてその属性の属性名”ｏｗｎｅｒ”が抽出される。その属性名は、属性リスト４ｂに登録されていない（ステップＳ０８）。そのため、ステップＳ０９において、図１６に示されているように、該属性の属性ＩＤ”Ａ０１”と属性名”ｏｗｎｅｒ”とが属性名リスト４ｂに登録される。更に、ステップＳ１０において、該属性の属性テキスト”Ｓｕｚｕｋｉ”が抽出される。属性テキスト”Ｓｕｚｕｋｉ”は、属性テキストリスト４ｄに登録されていない（ステップＳ１１）。そのため、ステップＳ１２において、図１８に示されているように、該属性の属性ＩＤ”Ａ０１”と、該属性テキストのテキストＩＤ”Ｔ１０”と、属性テキスト”Ｓｕｚｕｋｉ”とが属性テキストリスト４ｄに登録される。ルート要素は、他の属性を有しないため（ステップＳ１３）、ステップＳ０６からステップＳ１２までの処理は完了する。
【００７９】
続いて、ステップＳ１４において、処理対象要素であるルート要素が要素テキストを有するかが判断される。ルート要素は、その要素内容として要素テキストを有しないので、処理がステップＳ１８にジャンプする。
【００８０】
ステップＳ１８では、ルート要素”Ａｄｄｒｅｓｓｂｏｏｋ”を親要素として有する部分構造が抽出される。即ち、ルート要素に与えられた属性と、ルート要素の子要素とが抽出される。該部分構造の部分構造表現は親要素（ルート要素）の要素ＩＤ、親要素の属性の属性ＩＤ、及び子要素の要素ＩＤで記述される。ルート要素の子要素”Ｐｅｒｓｏｎ”の要素ＩＤを”Ｅ０２”とすると、ルート要素を親要素として有する部分構造の部分構造表現は、例えば、”Ｅ０１  Ａ０１Ｅ０２  Ｅ０２”と定められる。本実施例では、部分構造表現は、親要素の要素ＩＤ、親要素が有する属性の属性ＩＤ、及び子要素の要素ＩＤが、この順に記載されるという規則に従って作成されている。親要素が属性を複数有する場合には、その属性ＩＤが順次に並べられ、親要素が子要素を複数有する場合には、その要素ＩＤが順次に並べられる。
【００８１】
更に、ステップＳ１９では抽出された部分構造が部分構造リスト４ｅに登録されているかが判断される。ルート要素”Ａｄｄｒｅｓｓｂｏｏｋ”を親要素として有する部分構造は登録されていないので、図１９に示されているように、ステップＳ２０において該部分構造に構造ＩＤ”Ｓ０１”が与えられ、更に、該部分構造の部分構造表現”Ｅ０１  Ａ０１  Ｅ０２  Ｅ０２”が、構造ＩＤ”Ｓ０１”とともに部分構造リスト４ｅに登録される。
【００８２】
続いて、ステップＳ２１においてルート要素”Ａｄｄｒｅｓｓｂｏｏｋ”が子要素を有するかが判断される。図１４に示されているように、ルート要素は、子要素”Ｐｅｒｓｏｎ”を２つ有している。子要素”Ｐｅｒｓｏｎ”が処理対象要素として順次に選択され、ステップＳ０２からＳ２２までの処理が、再帰的に実行される（ステップＳ２２〜２４）。
【００８３】
図１４のＸＭＬ文書を基にして生成される要素名リスト４ａが図１５に示され、属性名リスト４ｂが図１６に示され、要素テキストリスト４ｃが図１７に示され、属性テキストリスト４ｄが図１８に示され、部分構造リスト４ｅが図１９に示されている。
【００８４】
更に、全体構造データ４ｆが生成される。図１４に示されているＸＭＬ文書の全体構成は、図１９の部分構造リスト４ｅに示されている構造ＩＤと、図１７、図１８の要素テキストリスト４ｃ及び属性テキストリスト４ｄに列挙されているテキストＩＤとを用いて、例えば、
2004302799.tif 000003
と表現される。本実施例では、下記の規則に従って全体構造データ４ｆが生成されている。最上位の階層の要素を親要素とする部分構造の構造ＩＤが先頭に置かれ、該親要素の属性の属性テキスト及び該親要素の要素テキストのテキストＩＤが次に並べられる。更に、該親要素の子要素を親要素とする部分構造の構造ＩＤが並べられる。以下再帰的に、該子要素の属性の属性テキスト及び該子要素の要素テキストのテキストＩＤが並べられ、該子要素の子要素を親要素とする部分構造の構造ＩＤが並べられる。
【００８５】
上記の全体構造データ４ｆを理解しやすくするために括弧を挿入すると、全体構造データ４ｆは、”Ｓ０１  Ｔ１０  （Ｓ０２  （Ｓ０３  （Ｓ０４  Ｔ０１）  （Ｓ０５  Ｔ０２））  （Ｓ０６  （Ｓ０７  Ｔ０４）  （Ｓ０８  Ｔ０５）  （Ｓ０９  Ｔ０６））  （Ｓ１０  Ｔ０８））  （Ｓ１１  （Ｓ０３  （Ｓ０４  Ｔ０１）  （Ｓ０５  Ｔ０３））  （Ｓ１２  （Ｓ０７  Ｔ０４）  （Ｓ０８  Ｔ０５）  （Ｓ０９  Ｔ０７）  （Ｓ１３  Ｔ０９））））”と表現される。
【００８６】
先頭の”Ｓ０１”は、構造ＩＤ”Ｓ０１”を有する部分構造に含まれる親要素がルート要素であることを示している。構造ＩＤ”Ｓ０１”が与えられている部分構造の部分構造表現”Ｅ０１  Ａ０２  Ｅ０２  Ｅ０２”は、要素ＩＤ”Ｅ０１”を有する要素（要素”Ａｄｄｒｅｓｓｂｏｏｋ”、図１５参照）がルート要素であることを示している。ルート要素の要素名は、図１５に示されている要素名リスト４ａから”Ａｄｄｒｅｓｓｂｏｏｏｋ”であることがわかる。
【００８７】
更に、構造ＩＤ”Ｓ０１”を有する部分構造の部分構造表現”Ｅ０１  Ａ０２Ｅ０２  Ｅ０２”は、そのルート要素は、属性ＩＤ”Ａ０１”を有する属性（属性”ｏｗｎｅｒ”、図１６参照）を有し、且つ、要素ＩＤ”Ｅ０２”を有する要素（要素”Ｐｅｒｓｏｎ”、図１５参照）を２つ有していることを示している。全体構造データ４ｆの”Ｓ０１”に続く”Ｔ１０”は、その属性の属性値がテキストＩＤ”Ｔ１０”を有する属性テキスト”Ｓｕｚｕｋｉ”（図１８参照）であることを示している。
【００８８】
要素ＩＤ”Ｅ０２”を有する２つの要素”Ｐｅｒｓｏｎ”のうちの最初の一方には、表現（Ｓ０２  …  ）が割り当てられ、２番目の方には、表現（Ｓ１１  …  ）が割り当てられる。表現（Ｓ０２  …  ）に含まれる構造ＩＤ”Ｓ０２”を有する部分構造の部分構造表現”Ｅ０２  Ｅ０３  Ｅ０６  Ｅ１０”から、要素”Ｐｅｒｓｏｎ”の最初の一方は、要素ＩＤ”Ｅ０３”、”Ｅ０６”、及び”Ｅ１０”をそれぞれに有する要素を子要素として有していることが分かる。要素ＩＤ”Ｅ０３”を有する要素には、表現（Ｓ０３  …  ）が割り当てられ、要素ＩＤ”Ｅ０６”を有する要素には、表現（Ｓ０６  …  ）が割り当てられ、要素ＩＤ”Ｅ１０”を有する要素には、表現（Ｓ１０  …  ）が割り当てられる。以下、同様にして図１４のＸＭＬ文書の全体構造が表現される。但し、このような全体構造を表現するために、他の規則が使用され得ると理解されなくてはならない。
【００８９】
図１５乃至図１９に示されている要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅと、上記の全体構造データ４ｆとが統合されて、符号化文書４が生成される。
【００９０】
一方、図１４のＸＭＬ文書に対応する符号化文書４が構造化文書復号化モジュール２２に入力されると、ステップＳ３２〜Ｓ３７において、その符号化文書４から、図１５乃至図１９に示されている要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅと、上記の全体構造データ４ｆとが取り出される。
【００９１】
続いて、ステップＳ３８において、テキスト型検証モジュール２５ａにより、要素テキストリスト４ｃに挙げられている要素テキストの型が検証される。要素テキストリスト４ｃに挙げられている９個の要素テキストのそれぞれについて、その要素テキストを要素内容とする要素の要素ＩＤが取り出され、取り出された要素ＩＤを検索キーとして要素名リスト４ａが検索されて、該要素の要素名が取り出される。その要素名を用いて文書構造定義ファイル２４が検索されて、該要素名を有する要素の要素型宣言が取り出される。更に、要素テキストが該要素型宣言に規定されている型に適合するかが検証される。
【００９２】
例えば、図１５を参照して、要素”ＬａｓｔＮａｍｅ”について考える。更に、文書構造定義ファイル２４に規定された要素”ＬａｓｔＮａｍｅ”の要素型宣言により、要素”ＬａｓｔＮａｍｅ”の要素テキストが文字型であると規定されているとする。図１７を参照すると、要素”ＬａｓｔＮａｍｅ”は要素テキスト”Ｙａｍａｄａ”を有しており、要素”ＬａｓｔＮａｍｅ”の要素テキストは、正しい型を有していると判断される。
【００９３】
更に例えば、図１５を参照して、要素”Ｔｅｌｅｐｈｏｎｅ”について考える。文書構造定義ファイル２４に規定された要素”Ｔｅｌｅｐｈｏｎｅ”の要素型宣言により、要素”Ｔｅｌｅｐｈｏｎｅ”の要素テキストが、３桁の整数と、それに続くハイフン”−”と、それに続く３桁の整数と、それに続くハイフンと、それに続く４桁の整数というフォーマットを有すると規定されているとする。図１７を参照すると、要素”Ｔｅｌｅｐｈｏｎｅ”は要素テキスト”０４５−１２３−４５６７”を有しており、要素”Ｔｅｌｅｐｈｏｎｅ”の要素テキストは、正しい型を有していると判断される。
【００９４】
要素テキストが取り得る型は、この他にも、例えば、整数型、浮動小数点型、日付型であり得る。
【００９５】
同様に、全ての要素について要素型違反がないと判断されると、ステップＳ４０において、属性テキストリスト４ｄに挙げられている属性テキストの型が検証される。属性テキストリスト４ｄに挙げられている属性テキストのそれぞれについて、その属性テキストを属性値とする属性の属性ＩＤが取り出され、取り出された属性ＩＤを検索キーとして属性名リスト４ｂが検索されて、該属性の属性名が取り出される。その属性名を用いて文書構造定義ファイル２４が検索されて、該属性名を有する属性の属性型宣言が取り出される。更に、属性テキストが該属性型宣言に規定されている型に適合するかが検証される。
【００９６】
例えば、図１６を参照して、属性”Ｏｗｎｅｒ”について考える。更に、文書構造定義ファイル２４に規定された属性”Ｏｗｎｅｒ”の属性型宣言により、属性”Ｏｗｎｅｒ”の属性テキスト（属性値）が文字型であると規定されているとする。図１８を参照すると、属性”Ｏｗｎｅｒ”の要素テキストは、”Ｓｕｚｕｋｉ”であり、属性”Ｏｗｎｅｒ”の要素テキストは、正しい型を有していると判断される。
【００９７】
更に、ステップＳ４２において部分構造リスト４ｅに列挙されている１３個の部分構造が検証される。例えば、図１９を参照して、構造ＩＤ”Ｓ０１”を有する部分構造の部分構造表現は、”Ｅ０１  Ａ０１  Ｅ０２  Ｅ０２”である。要素名リスト４ａと属性名リスト４ｂとを参照すると、この部分構造表現は、要素ＩＤ”Ｅ０１”を有する要素”Ａｄｄｒｅｓｓｂｏｏｋ”は属性”Ｏｗｎｅｒ”を有し、且つ、その子要素が２つの要素”Ｐｅｒｓｏｎ”であることを示している。この部分構造が、文書構造定義ファイル２４に規定されている構文に適合するかが判定される。他の部分構造についても、同様の検証が行われる。
【００９８】
以上の工程により、要素テキスト、属性テキスト、及び部分構造の検証が終了する。検証が終了した後、要素名リスト４ａ、属性名リスト４ｂ、要素テキストリスト４ｃ、属性テキストリスト４ｄ、及び部分構造リスト４ｅと、上記の全体構造データ４ｆから、図１４のＸＭＬ文書の構造化文書内部表現２３が復元される。
【００９９】
このような検証方法は、同一の要素テキスト、属性テキスト、及び部分構造に対して重複して検証することを避けることができる。図１４のＸＭＬ文書を用いてその妥当性を検証しようとすれば、同一の検証対象に対して重複した検証が行われる。例えば、要素”Ｐｅｒｓｏｎ”が”要素”Ｎａｍｅ”と要素”Ａｄｄｒｅｓｓ”を有し、且つ、要素”Ｎａｍｅ”が要素”ＬａｓｔＮａｍｅ”と要素”ＦｉｒｓｔＮａｍｅ”を有するという記述は、図１４のＸＭＬ文書にそれぞれ２回現れる。従って、図１４のＸＭＬ文書を用いて検証が行われた場合、これらの記述は、２回検証されたはずである。更に、要素”ＬａｓｔＮａｍｅ”の要素テキスト”Ｙａｍａｄａ”の型が正しいかという検証も２回繰り返されたはずである。要素”Ｃｏｕｎｔｒｙ”の要素テキスト”Ｊａｐａｎ”、要素”Ｐｒｅｆｅｃｔｕｒｅ”の要素テキスト”Ｋａｎａｇａｗａ”についても同様である。
【０１００】
本実施の形態では、冗長性を排除して構造化文書を表現した符号化文書４が送信され、その符号化文書４に基づいて再生されるべき構造化文書内部表現２３の妥当性が検証され、妥当性が保証された後に構造化文書内部表現２３が再生される。これにより、同一の検証作業の繰り返しが排除され、検証作業のコストを低減することができる。
【０１０１】
図２０に示されているように、本実施の形態のコンピュータシステムは、送信側コンピュータ１にデータ圧縮モジュール１８を有し、受信側コンピュータ２にデータ解凍モジュール２８を有していることが好適である。データ圧縮モジュール１８は、符号化文書４を圧縮して圧縮符号化文書４’を生成する。データ解凍モジュール２８は、圧縮符号化文書４’を受信して解凍し、符号化文書４を再生する。このような構成は、送信側コンピュータ１から受信側コンピュータ２に通信されるデータの量を抑制する。
【０１０２】
本実施の形態のコンピュータシステムにおいて、要素ＩＤが一連番号を含んで構成される場合、要素名リスト４ａには明示的に要素ＩＤが記述される必要はない。要素ＩＤの代わりに、要素名リスト４ａ内において要素名が記述される順番を使用することが可能である。例えば、要素名リスト４ａにおいて第１番目に記述される要素名は、要素ＩＤ”Ｅ０１”を有すると規定され、その要素ＩＤが要素名リスト４ａに記述されないことが可能である。通信コストに敏感な状況において本実施の形態のコンピュータシステムが使用される場合、要素名リスト４ａをより小さなデータ量で表現するメリットは大きい。
【０１０３】
同様に、属性ＩＤが一連番号を含んで構成される場合、属性名リスト４ｂには、明示的に要素ＩＤが記述される必要はない。
【０１０４】
更に同様に、要素テキストリスト４ｃ及び属性テキストリスト４ｄが一のリストに記述され、且つ、テキストＩＤが一連番号を含んで構成される場合、要素テキストリスト４ｃ及び属性テキストリスト４ｄには、明示的にテキストＩＤが記述される必要はない。
【０１０５】
更に同様に、構造ＩＤが一連番号を含んで構成される場合、部分構造リスト４ｅには、構造ＩＤが明示的に記述される必要がない。
【０１０６】
【発明の効果】
本発明により、構造化文書を検証するために必要な演算量を抑制し、これにより、検証に必要なコストを減少することができる。
また、本発明により、構造化文書を送信側コンピュータから受信側コンピュータに伝送する場合に、受信側コンピュータが構造化文書を検証するために必要な演算量を抑制し、これにより、検証に必要なコストを減少することができる。
【図面の簡単な説明】
【図１】図１は、本発明によるコンピュータシステムの実施の一形態を示すブロック図である。
【図２】図２は、符号化文書４の内容を示す。
【図３】図３は、要素名リスト４ａの内容を示す。
【図４】図４は、属性名リスト４ｂの内容を示す。
【図５】図５は、要素テキストリスト４ｃの内容を示す。
【図６】図６は、属性テキストリスト４ｄの内容を示す。
【図７】図７は、部分構造リスト４ｅの内容を示す。
【図８】図８は、構造化文書符号化モジュール１２の構成を示すブロック図である。
【図９】図９は、構造化文書復号化モジュール２２の構成を示すブロック図である。
【図１０】図１０は、本実施の形態のコンピュータシステムの変形例を示すブロック図である。
【図１１】図１１は、構造化文書内部表現１３から符号化文書４を生成する手順を示すフローチャートである。
【図１２】図１２は、構造化文書内部表現１３から符号化文書４を生成する手順を示すフローチャートである。
【図１３】図１３は、符号化文書４に基づいて構造化文書内部表現２３の妥当性を検証し、更に、構造化文書内部表現２３を再構成する手順を示すフローチャートである。
【図１４】図１４は、ＸＭＬ文書の例を示す。
【図１５】図１５は、図１４のＸＭＬ文書の内部表現から生成される要素名リスト４ａを示す。
【図１６】図１６は、図１４のＸＭＬ文書の内部表現から生成される属性名リスト４ｂを示す。
【図１７】図１７は、図１４のＸＭＬ文書の内部表現から生成される要素テキストリスト４ｃを示す。
【図１８】図１８は、図１４のＸＭＬ文書の内部表現から生成される属性テキストリスト４ｄを示す。
【図１９】図１９は、図１４のＸＭＬ文書の内部表現から生成される部分構成リスト４ｅを示す。
【図２０】図２０は、本実施の形態のコンピュータシステムの他の変形例を示すブロック図である。
【符号の説明】
１：送信側コンピュータ
２：受信側コンピュータ
３：ネットワーク
４：符号化文書
４ａ：要素名リスト
４ｂ：属性名リスト
４ｃ：要素テキストリスト
４ｄ：属性テキストリスト
４ｅ：部分構造リスト
４ｆ：全体構造データ
１１：アプリケーションプログラム
１２：構造化文書符号化モジュール
１３：構造化文書内部表現
１３’：構造化文書
１４：文書構造定義ファイル
１５：検証支援情報抽出モジュール
１５ａ：要素名／属性名抽出モジュール
１５ｂ：テキスト抽出モジュール
１５ｃ：部分構造抽出モジュール
１６：全体文書構造抽出モジュール
１７：符号化文書出力モジュール
２１：アプリケーションプログラム
２２：構造化文書復号化モジュール
２３：構造化文書内部表現
２４：文書構造定義ファイル
２５：検証モジュール
２５ａ：テキスト型検証モジュール
２５ｂ：部分構造検証モジュール
２６：符号化文書入力モジュール
２７：構造化文書内部表現出力モジュール
【図１】
2004302799.tif 000004
【図２】
2004302799.tif 000005
【図３】
2004302799.tif 000006
【図４】
2004302799.tif 000007
【図５】
2004302799.tif 000008
【図６】
2004302799.tif 000009
【図７】
2004302799.tif 000010
【図８】
2004302799.tif 000011
【図９】
2004302799.tif 000012
【図１０】
2004302799.tif 000013
【図１１】
2004302799.tif 000014
【図１２】
2004302799.tif 000015
【図１３】
2004302799.tif 000016
【図１４】
2004302799.tif 000017
【図１５】
2004302799.tif 000018
【図１６】
2004302799.tif 000019
【図１７】
2004302799.tif 000020
【図１８】
2004302799.tif 000021
【図１９】
2004302799.tif 000022
【図２０】
2004302799.tif 000023