(57)【要約】【課題】利用可能な記憶領域が小さい機器でも、文書データを復号化できるようにする。【解決手段】ＰＣ１０１は、ＸＭＬ文書データを、pageタグ単位で分割し、分割した各ＸＭＬ分割文書データに対する符号化テーブルを作成する。そして、ＰＣ１０１は、作成した符号化テーブルを用いてＸＭＬ分割文書データを符号化して符号化分割データを作成し、符号化テーブルと、その符号化テーブルに対応する符号化分割データとをプリンタ１０４に送信する。このように、冗長性の少ない符号化テーブルを作成し、符号化したＸＭＬ文書データと、符号化データとを小分けしてプリンタ１０４に送信したので、低価格のプリンタのように、利用可能な記憶領域が小さい機器でも、ＸＭＬ文書データを復号化できる。【選択図】図１
2008140179.tif 000002
【特許請求の範囲】
【請求項１】
文書データを複数に分割する分割ステップと、
前記分割ステップにより分割された文書データ単位で、前記分割ステップにより分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成ステップと、
前記分割ステップにより得られた複数の文書データを、前記作成ステップにより作成された符号化テーブルに基づいて符号化する符号化ステップと、
前記符号化ステップにより符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割ステップにより分割された文書データ単位で、外部装置に送信する送信ステップとを有することを特徴とする文書データ処理方法。
【請求項２】
前記符号化された文書データと、その文書データに対応する符号化テーブルとが前記外部装置で受信されると、前記受信された符号化テーブルを用いて、前記符号化された文書データを復号化する復号化ステップを有することを特徴とする請求項１に記載の文書データ処理方法。
【請求項３】
前記符号化テーブルが、前記外部装置で受信されると、受信された符号化テーブルを記憶媒体に記憶する記憶ステップを有し、
前記記憶ステップは、前記符号化テーブルが、前記外部装置で受信されると、既に記憶した不要な符号化テーブルを、受信された符号化テーブルに置き換えることを特徴とする請求項１又は２に記載の文書データ処理方法。
【請求項４】
前記文書データの分割単位を取得する取得ステップを有し、
前記分割ステップは、前記取得ステップにより取得された分割単位で、前記文書データを複数に分割することを特徴とする請求項１〜３の何れか１項に記載の文書データ処理方法。
【請求項５】
前記文書データは、構造化記述言語により記述されたデータであり、
前記取得ステップは、前記文書データの分割単位として、前記文書データにおける構造単位を取得することを特徴とする請求項４に記載の文書データ処理方法。
【請求項６】
前記構造単位は、ページ単位であることを特徴とする請求項５に記載の文書データ処理方法。
【請求項７】
前記取得ステップは、前記文書データの分割単位として、データサイズを取得し、
前記分割ステップは、前記符号化ステップにより符号化される文書データのデータ量と、その文書データに対応する符号化テーブルのデータ量との加算値が、前記取得ステップにより取得されたデータサイズ以下になるように、前記文書データを複数に分割することを特徴とする請求項４に記載の文書データ処理方法。
【請求項８】
前記取得ステップは、前記文書データの分割単位として、名前空間の影響範囲を取得し、
前記分割ステップは、前記名前空間の影響範囲に基づいて前記文書データを複数に分割することを特徴とする請求項４に記載の文書データ処理方法。
【請求項９】
前記符号化テーブルの有効範囲を、前記分割ステップにより分割された文書データ単位で設定する設定ステップを有し、
前記作成ステップは、前記分割ステップにより分割された複数の文書データに、共通する記述がある場合には、その共通する記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成し、
前記設定ステップは、前記共通する記述と、その記述を表す符号との対応関係を示す符号化テーブルの有効範囲として、前記共通する記述を有する複数の文書データを設定することを特徴とする請求項１〜８の何れか１項に記載の文書データ処理方法。
【請求項１０】
前記符号化テーブルが、前記外部装置で受信されると、受信された符号化テーブルの有効範囲を検出する検出ステップと、
前記符号化テーブルが、前記外部装置で受信されると、受信された符号化テーブルの有効範囲に属する文書データが復号化されてから、前記受信された符号化テーブルを破棄する破棄ステップとを有することを特徴とする請求項９に記載の文書データ処理方法。
【請求項１１】
前記送信ステップは、前記符号化ステップにより符号化された文書データの前方に、その文書データに対応する符号化テーブルを挿入して、前記符号化ステップにより符号化された文書データと、その文書データに対応する符号化テーブルとを外部装置に送信することを特徴とする請求項１〜１０の何れか１項に記載の文書データ処理方法。
【請求項１２】
前記文書データは、構造化記述言語により記述されたデータであり、
前記作成ステップは、前記文書データにおける構造単位のボキャブラリと、そのボキャブラリを簡略化して表した符号との対応を示す符号化テーブルを作成し、
前記符号化ステップは、前記分割ステップにより得られた複数の文書データを、前記文書データにおける構造単位で符号化することを特徴とする請求項１〜１１の何れか１項に記載の文書データ処理方法。
【請求項１３】
文書データを複数に分割する分割手段と、
前記分割手段により分割された文書データ単位で、前記分割手段により分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成手段と、
前記分割手段により得られた複数の文書データを、前記作成手段により作成された符号化テーブルに基づいて符号化する符号化手段と、
前記符号化手段により符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割手段により分割された文書データ単位で、外部装置に送信する送信手段とを有することを特徴とする文書データ作成装置。
【請求項１４】
前記文書データの分割単位を取得する取得手段を有し、
前記分割手段は、前記取得手段により取得された分割単位で、前記文書データを複数に分割することを特徴とする請求項１３に記載の文書データ作成装置。
【請求項１５】
前記文書データは、構造化記述言語により記述されたデータであり、
前記取得手段は、前記文書データの分割単位として、前記文書データにおける構造単位を取得することを特徴とする請求項１４に記載の文書データ作成装置。
【請求項１６】
前記構造単位は、ページ単位であることを特徴とする請求項１５に記載の文書データ作成装置。
【請求項１７】
前記取得手段は、前記文書データの分割単位として、データサイズを取得し、
前記分割手段は、前記符号化手段により符号化される文書データのデータ量と、その文書データに対応する符号化テーブルのデータ量との加算値が、前記取得手段により取得されたデータサイズ以下になるように、前記文書データを複数に分割することを特徴とする請求項１４に記載の文書データ作成装置。
【請求項１８】
前記取得手段は、前記文書データの分割単位として、名前空間の影響範囲を取得し、
前記分割手段は、前記名前空間の影響範囲に基づいて前記文書データを複数に分割することを特徴とする請求項１４に記載の文書データ作成装置。
【請求項１９】
前記符号化テーブルの有効範囲を、前記分割手段により分割された文書データ単位で設定する設定手段を有し、
前記作成手段は、前記分割手段により分割された複数の文書データに、共通する記述がある場合には、その共通する記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成し、
前記設定手段は、前記共通する記述と、その記述を表す符号との対応関係を示す符号化テーブルの有効範囲として、前記共通する記述を有する複数の文書データを設定することを特徴とする請求項１３〜１８の何れか１項に記載の文書データ作成装置。
【請求項２０】
前記送信手段は、前記符号化手段により符号化された文書データの前方に、その文書データに対応する符号化テーブルを挿入して、前記符号化手段により符号化された文書データと、その文書データに対応する符号化テーブルとを外部装置に送信することを特徴とする請求項１３〜１９の何れか１項に記載の文書データ作成装置。
【請求項２１】
前記文書データは、構造化記述言語により記述されたデータであり、
前記作成手段は、前記文書データにおける構造単位のボキャブラリと、そのボキャブラリを簡略化して表した符号との対応を示す符号化テーブルを作成し、
前記符号化手段は、前記分割手段により得られた複数の文書データを、前記文書データにおける構造単位で符号化することを特徴とする請求項１３〜２０の何れか１項に記載の文書データ作成装置。
【請求項２２】
複数に分割され、符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割された文書データ単位で外部装置から受信する受信手段と、
前記受信手段により受信された符号化テーブルを用いて、前記符号化された文書データを復号化する復号化手段とを有し、
前記符号化テーブルは、前記分割された文書データの記述と、その記述を表す符号との対応関係を示すテーブルであることを特徴とする文書データ処理装置。
【請求項２３】
前記受信手段により受信された符号化テーブルを記憶媒体に記憶する記憶手段を有し、
前記記憶手段は、前記受信手段により符号化テーブルが受信されると、既に記憶した不要な符号化テーブルを、受信された符号化テーブルに置き換えることを特徴とする請求項２２に記載の文書データ処理装置。
【請求項２４】
前記受信手段により受信された符号化テーブルの有効範囲を検出する検出手段と、
前記受信手段により符号化テーブルが受信されると、受信された符号化テーブルの有効範囲に属する文書データが、前記復号化手段により復号化されてから、前記受信された符号化テーブルを破棄する破棄手段とを有することを特徴とする請求項２３に記載の文書データ処理装置。
【請求項２５】
前記請求項１３〜２１の何れか１項に記載の文書データ作成装置と、前記請求項２２〜２４の何れか１項に記載の文書データ処理装置とを有することを特徴とする文書データ処理システム。
【請求項２６】
文書データを複数に分割する分割ステップと、
前記分割ステップにより分割された文書データ単位で、前記分割ステップにより分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成ステップと、
前記分割ステップにより得られた複数の文書データを、前記作成ステップにより作成された符号化テーブルに基づいて符号化する符号化ステップと、
前記符号化ステップにより符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割ステップにより分割された文書データ単位で、外部装置に送信する送信ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書データ処理方法、文書データ作成装置、及び文書データ処理システムに関し、特に、符号化した文書データを復号化するために用いて好適なものである。
【背景技術】
【０００２】
ＸＭＬ（eXtensible Markup Language）で記述されたデータは、テキスト形式のデータであることから、従来は、テキスト形式で読み書きや保存等が行われてきた。テキスト形式のデータは、人間にとって扱いやすい。しかしながら、データが冗長となるので、コンピュータが読み書きするのに時間がかかるという問題がある。このため、バイナリ（binary）ＸＭＬという技術が使われている。
【０００３】
バイナリＸＭＬでは、ＸＭＬデータ内の要素名や属性名等といった各ボキャブラリを短い長さで表した符号に置き換えることにより、冗長性の小さなデータとしている。例えば、Sun Microsystems社のFast Infosetでは、要素名や属性名等の各ボキャブラリに対して、ＸＭＬデータ内の出現順に番号を振り、各ボキャブラリを符号化している。特許文献１では、属性値や要素を、整数や文字列等のデータ型に分けて符号化している。
【０００４】
【特許文献１】特開２００５−２１５９５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、バイナリＸＭＬでは、符号化されたデータを復号化するために、符号と各ボキャブラリとの対応を示す表である符号化デーブルが必要である。
しかしながら、前述した従来の技術では、ＸＭＬデータ全体に対して一つの符号化テーブルが与えられていた。このため、ＸＭＬデータ内で使用されているボキャブラリの種類が多いほど符号化テーブルのサイズは大きくなる。そうすると、低価格のプリンタ等、利用可能な記憶領域が小さい機器では、符号化テーブルを保持できず、符号化されたバイナリＸＭＬ（各ボキャブラリ）を復号化できないことがあった。
【０００６】
以上のように従来の技術では、ＸＭＬ等、文書を構造化して記述するための言語（構造化記述言語）等で記述された文書データを、利用可能な記憶領域が小さい機器で復号化できなくなる虞があるという問題点があった。
本発明は、このような問題点に鑑みてなされたものであり、利用可能な記憶領域が小さい機器でも、文書データを復号化できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の文書データ処理方法は、文書データを複数に分割する分割ステップと、前記分割ステップにより分割された文書データ単位で、前記分割ステップにより分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成ステップと、前記分割ステップにより得られた複数の文書データを、前記作成ステップにより作成された符号化テーブルに基づいて符号化する符号化ステップと、前記符号化ステップにより符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割ステップにより分割された文書データ単位で、外部装置に送信する送信ステップとを有することを特徴とする。
【０００８】
本発明の文書データ作成装置は、文書データを複数に分割する分割手段と、前記分割手段により分割された文書データ単位で、前記分割手段により分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成手段と、前記分割手段により得られた複数の文書データを、前記作成手段により作成された符号化テーブルに基づいて符号化する符号化手段と、前記符号化手段により符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割手段により分割された文書データ単位で、外部装置に送信する送信手段とを有することを特徴とする。
本発明の文書データ処理装置は、前記取得手段は、前記文書データの分割単位として、データサイズを取得し、前記分割手段は、前記符号化手段により符号化される文書データのデータ量と、その文書データに対応する符号化テーブルのデータ量との加算値が、前記取得手段により取得されたデータサイズ以下になるように、前記文書データを複数に分割することを特徴とする。
本発明の文書データ処理システムは、前記文書データ作成装置と、前記文書データ処理装置とを有することを特徴とする。
【０００９】
本発明のコンピュータプログラムは、文書データを複数に分割する分割ステップと、前記分割ステップにより分割された文書データ単位で、前記分割ステップにより分割された文書データの記述と、その記述を表す符号との対応関係を示す符号化テーブルを作成する作成ステップと、前記分割ステップにより得られた複数の文書データを、前記作成ステップにより作成された符号化テーブルに基づいて符号化する符号化ステップと、前記符号化ステップにより符号化された文書データと、その文書データに対応する符号化テーブルとを、前記分割ステップにより分割された文書データ単位で、外部装置に送信する送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明では、文書データを分割し、分割した文書データ単位で符号化テーブルを作成し、その符号化テーブルに基づき、分割した文書データを符号化し、符号化した文書データとその文書データに対応する符号化テーブルとを、分割した文書データ単位で送信した。従って、符号化された文書データを復号化する装置は、文書データ全体の符号化テーブルを持たずに文書データを復号化できる。これにより、利用可能な記憶領域が小さい機器でも、文書データを復号化できる。
【発明を実施するための最良の形態】
【００１１】
＜第１の実施形態＞
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
図１は、文書データ処理システムの構成の概要の一例を示した図である。
図１において、文書データ処理システムは、パーソナルコンピュータ（ＰＣ）１０１、１０３と、ＬＡＮ（Local Area Network）１０２と、プリンタ１０４とを有している。
【００１２】
ＰＣ１０１は、構造化記述言語の一例であるＸＭＬで記述された文書データであるＸＭＬ文書データを符号化し、符号化したＸＭＬ文書データを他の機器へ送信するものである。ＰＣ１０１は、ＬＡＮ１０２を介して、ＰＣ１０３及びプリンタ１０４と相互に接続されている。尚、以下の説明では、符号化したＸＭＬ文書データを必要に応じて符号化データと称する
【００１３】
ＰＣ１０３は、ＰＣ１０１から送られてきた符号化データを復号化し、復号化したデータを処理するものである。
プリンタ１０４は、ＰＣ１０１から送られてきた符号化データを復号化し、復号化したデータに基づいて印刷処理を行うものである。プリンタ１０４は、例えば１ページずつ印刷処理を行うような低価格プリンタであり、ＰＣ１０３と比べると、利用可能なメモリ量が非常に小さいものであるとする。
【００１４】
図２は、ＰＣ１０１、１０３の構成の一例を示したブロック図である。
図２において、ＣＰＵ（Central Processing Unit）２０１は、ＰＣ１０１、１０３における情報処理全体を制御するためのものである。
ＣＰＵ２０１は、ＲＯＭ(Read Only Memory)２０３又はＭＥＭＯ２０２に記憶されたプログラムを、ＲＡＭ（Random Access Memory）に展開して実行する。これにより、ＣＰＵ２０１は、システムバス２１２に接続された各構成部を総括的に制御する。即ち、ＣＰＵ２０１は、所定の処理シーケンスに従った処理プログラムを、ＲＯＭ１０２０、或いはＭＥＭＯ２０２から読み出して実行することで、ＰＣ１０１、１０３における動作を実現するための制御を行う。尚、ＭＥＭＯ２０２とＣＰＵ２０１とのアクセスは、ＭＣ２０７によって実行される。
【００１５】
ＭＥＭＯ２０２は、ＰＣ１０１、１０３に固定して設置されたハードディスク等の記憶媒体である。また、ＭＥＭＯ２０２は、ＰＣ１０１、１０３から着脱可能な記録媒体として、例えば、フレキシブルディスク（ＦＤ）、コンパクトディスク（ＣＤ）等の光ディスク、磁気カード、光カード、ＩＣカード、及びメモリカード等を装着できるように構成されている。
【００１６】
ＲＯＭ２０３は、変更を必要としないプログラムやパラメータを格納するためのものである。ＲＡＭ２０４は、プログラムやデータを一時的に記憶するためのものである。
ＬＡＮｉ／ｆ２０５は、ＬＡＮ１０２等のネットワーク回線に接続するためのインタフェースである。ＵＳＢｉ／ｆ２０７は、ＵＳＢ（Universal Serial Bus）２１３に接続するためのインタフェースである。
ＬＡＮ１０２やＵＳＢ２１３は、例えば、ＰＣ１０３やプリンタ１０４等の外部装置へ符号化データを伝送するために用いられる。
【００１７】
ＫＢ２０８は、ユーザインターフェースとなるキーボードである。ＫＢＣ２０９は、ＫＢ２０８や図示していないポインティングデバイス等からの指示入力を制御する。
ＬＣＤ２１０は、表示部としての液晶ディスプレイである。ＬＣＤＣ２１１は、ＬＣＤ２１０の表示を制御する。
尚、ＣＰＵ２０１、ＲＯＭ２０３、ＲＡＭ２０４、ＬＡＮｉ／ｆ２０５、ＵＳＢｉ／ｆ２０６、ＭＣ２０７、ＫＢＣ２０９、及びＣＲＣＴ２１１は、システムバス２１２を介して相互に接続されている。
【００１８】
図３は、プリンタ１０２の構成の一例を示したブロック図である。
ＣＰＵ３０１は、ＨＤＤ（Hard Disk Drive）３０３、或いはＲＯＭ３０４に格納されたプログラムを読み出す。そして、ＣＰＵ３０１は、読み出したプログラムをＲＡＭ３０５に展開して実行することにより、ＰＣ１０１から送られてきた符号化データを復号化する等の処理を行う。そして、ＣＰＵ３０１は、Ｉ／Ｏ制御部３０２を介してプリンタ部３０６の動作を制御する。
プリンタ部３０６は、例えば、ＣＰＵ３０１で復号化されたデータに基づく印刷を実行するためのプリンタエンジンを備えており、紙面に画像を形成するためのものである。
【００１９】
また、ＣＰＵ２０２は、ｉ／ｆ３０７を介して、ＬＡＮ２１３等のネットワーク回線やＵＳＢ２１３に接続される。これにより、プリンタ１０２は、ＰＣ１０１、１０３等の外部装置と通信することが可能になる。更に、ＣＰＵ３０２は、操作部３０８の操作を受け付け、受け付けた操作の内容に応じた処理を行う。
操作部３０８は、例えばボタンやタッチパネル等のユーザインターフェースを備えている。
【００２０】
尚、ＣＰＵ３０１、Ｉ／Ｏ制御部３０２、ＨＤＤ３０３、ＲＯＭ３０４、ＲＡＭ３０５、ｉ／ｆ３０７、及び操作部３０８は、システムバス３０９を介して相互に接続されている。
【００２１】
次に、ＸＭＬ文書データを符号化する際のＰＣ１０１（ＣＰＵ２０１）における処理の一例について説明する。尚、以下に示すＰＣ１０１の処理は、例えばＲＯＭ２０３又はＭＥＭＯ２０２に記憶されたプログラムを実行することにより実現される。本実施形態では、ＸＭＬ文書データの分割単位に応じて複数の符号化テーブルを生成する。ここでは、図５に示すようなＸＭＬ文書データを、pageタグ単位で分割して符号化する場合を例に挙げてについて説明する。
【００２２】
図５に示すＸＭＬ文書データ５００において、pageタグで囲まれた部分は、１ページ分の処理でしか使われない情報である。プリンタ１０４は、図５に示すＸＭＬ文書データ５００を処理する場合、例えば、１つのpageタグの情報を読み出して１ページ分の印刷処理を行う。そして、プリンタ１０４は、読み出したpageタグの情報を破棄してから、別のページの印刷処理を行う。
【００２３】
図４のステップＳ１００１において、ＣＰＵ２０１は、ＸＭＬ文書データ５００の分割単位の入力をユーザに促す。具体的に説明すると、例えば、ＣＰＵ２０１は、ＸＭＬ文書データ５００の印刷設定のための印刷設定用ＧＵＩ（Graphic User Interface）をＬＣＤ２１０に表示する。ユーザは、この印刷設定用ＧＵＩに基づいて、ポインティングデバイスやＫＢ２０８を操作して、印刷設定を行う。本実施形態では、この印刷設定において、ＸＭＬ文書データをＰＣ１０３に送信することが設定された場合には、印刷設定用ＧＵＩにおいて、ＸＭＬ文書データ５００の分割単位の入力を受け付け不能にしている。ＰＣ１０３における利用可能なメモリ量は、ＸＭＬ文書データ５００を一度に処理するのに十分な量だからである。
【００２４】
一方、ＸＭＬ文書データ５００をＰＣ１０３に送信することが設定された場合には、印刷設定用ＧＵＩにおいて、ＸＭＬ文書データの分割単位の入力を受け付け可能にしている。プリンタ１０２における利用可能なメモリ量は、ＸＭＬ文書データ５００を一度に処理するのに十分な量ではないからである。
以上のような印刷設定用ＧＵＩを用いた印刷設定が完了し、印刷設定用ＧＵＩに表示されている印刷実行ボタンがユーザにより押されると、ステップＳ１００２に進む。
【００２５】
ステップＳ１００２に進むと、ＣＰＵ２０１は、ＸＭＬ文書データ５００の分割単位が入力されているか否かを判定する。この判定の結果、ＸＭＬ文書データ５００の分割単位が入力されている場合には、ステップＳ１００３に進む。一方、ＸＭＬ文書データ５００の分割単位が入力されていない場合には、ステップＳ１００９に進む。
前述したように、本実施形態では、ＸＭＬ文書データ５００の送信先がＰＣ１０３の場合には、ＸＭＬ文書データ５００の分割単位が入力されないようにしている。一方、ＸＭＬ文書データ５００の送信先がプリンタ１０２の場合には、ＸＭＬ文書データ５００の分割単位として、例えばpageタグが入力されるようにしている。
【００２６】
ステップＳ１００２の判定の結果、ＸＭＬ文書データ５００の分割単位が入力されておらず、ステップＳ１００９に進むと、ＣＰＵ２０１は、ＸＭＬ文書データ５００全体を一つの分割単位にすると決定する。そして、ＣＰＵ２０１は、そのＸＭＬ文書データ５００に対応する符号化デーブルを作成する。
図６は、図５に示したＸＭＬ文書データ５００全体に対応する符号化デーブルの一例を示した図である。
図６において、"Namespace name entry"は名前空間名を示す。"Local name entry"はローカル名を示す。"attribute value entry"は属性値を示す。"characters entry"は要素を示す。それぞれ項目に符号（code）が割り振られる。"Element name entry"、"Attribute name entry"は、それぞれ要素名、属性名を示し、"prefix"、名前空間名、及びローカル名の符号の組み合わせが"entry"となっている。ここでは"prefix"はないので、"prefix"の符号の部分は"＿"となっている。
【００２７】
尚、図６に示す符号化テーブル６００は、ＸＭＬ文書データにおける構造単位のボキャブラリと、そのボキャブラリを簡略化して示した符号との対応関係を示すテーブルである。また、図６に示す符号化テーブル６００は、ＸＭＬスキーマを利用して予め作成しておいてもよいし、動的に作成してもよい。更に過去に使用された符号化テーブルを使いまわすようにしてもよい。
【００２８】
以上のようにして符号化テーブル６００を作成すると、ＣＰＵ１０１は、ＸＭＬ文書データ５００を符号化する。ここで、符号化は、ＸＭＬ文書データ５００における構造単位で行われるようにするのが好ましい。また、ＸＭＬ文書データ５００を符号化する際には、図６に示した符号化テーブル６００とは別に、図７に示すＸＭＬ文書データの構造を示す符号７００も使う。このＸＭＬ文書データの構造を示す符号７００は、ＸＭＬの仕様に基づいて予め決められているものである。図７では、開始タグに対する符号、charactersに対する符号、属性に対する符号、及び終了タグに対する符号等が示されている。例えば、開始タグに対する符号は、属性や名前空間宣言の有無と、"prefix"や名前空間名の有無とによってビットが立つ。属性の符号は、"prefix"や名前空間名の有無によってビットが立つ。
図５に示したＸＭＬ文書データ５００の一部を、図６に示した符号化テーブル６００と、図７に示す符合７００とを使って符号化した結果の一例を図８に示す。
【００２９】
以上のようにしてＸＭＬ文書データ５００を符号化すると、ステップＳ１０１０に進む。ステップＳ１０１０に進むと、ＣＰＵ２０１は、ステップＳ１００９で作成した符号化テーブル６００を、ＬＡＮｉ／ｆ２０５及びＬＡＮ１０２を介して、ステップＳ１００１で入力された送信先に送信する。そして、ＣＰＵ２０１は、ステップＳ１００９で符号化したＸＭＬ文書データ（符号化データ）を、ＬＡＮｉ／ｆ２０５及びＬＡＮ１０２を介して、ステップＳ１００１で入力された送信先に送信する。
前述したように、ＸＭＬ文書データ５００を分割しない場合の送信先は、ＰＣ１０３であるので、ステップＳ１００９で作成された符号化テーブル６００と、符号化データの送信先はＰＣ１０３になる。
【００３０】
ＰＣ１０３は、符号化テーブル６００と、符号化データとを受信すると、符号化テーブル６００を用いて、符号化データを復号化する。ＰＣ１０３は、利用可能なメモリ量（リソース（resource））が十分であるので符号化データを一度に復号化できる。
【００３１】
前述したステップＳ１００２の判定の結果、ＸＭＬ文書データの分割単位が入力されており、ステップＳ１００３に進むと、ＣＰＵ２０１は、ＬＡＮｉ／ｆ２０５を介して、利用可能なメモリ量を、送信先であるプリンタ１０２に問い合わせる。この問い合わせを受けたプリンタ１０４のＣＰＵ３０１は、ＲＡＭ３０５における利用可能な容量を検出し、検出した結果に基づいて、利用可能なメモリ量をＰＣ１０１に返信する。これによりＣＰＵ２０１は、プリンタ１０４における利用可能なメモリ量を取得する。
【００３２】
次に、ステップＳ１００４において、ＣＰＵ２０１は、プリンタ１０４における利用可能なメモリ量に基づいて、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０４が処理可能か否かを判定する。
【００３３】
具体例を説明すると、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データであって、後述するようにして符号化されたＸＭＬ文書データのデータ量と、そのＸＭＬ文書データに対応する符号化デーブルのデータ量との加算値を算出する。そして、算出したデータ量が、プリンタ１０２における利用可能なメモリ量以下であるか否かを、分割された各ＸＭＬ文書データについて判定する。
【００３４】
そして、算出したデータ量が、プリンタ１０２における利用可能なメモリ量以下である場合には、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０２が処理可能であると判定する。一方、そうでない場合には、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０２が処理可能でないと判定する。
【００３５】
以上のような判定の結果、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０２が処理可能でない場合には、ステップＳ１００１に戻る。そして、ＸＭＬ文書データの分割単位の入力を再度ユーザに促す。
【００３６】
一方、ステップＳ１００２で入力された分割単位で分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０２が処理可能である場合には、ステップＳ１００５に進む。
ステップＳ１００５に進むと、ＣＰＵ２０１は、ステップＳ１００２で入力されたと判定した分割単位でＸＭＬ文書データを分割すると決定する。具体的に説明すると、例えば、ＣＰＵ２０１は、ＸＭＬ文書の分割単位を、設定ファイルやＡＰＩ（Application Program Interface）を用いて指定する。以上のように、本実施形態では、例えば、ステップＳ１００５の処理によって取得手段が実現される。
【００３７】
そして、ＣＰＵ２０１は、決定した分割単位でＸＭＬ文書データを分割する。ここでは、pageタグが分割単位である場合を例に挙げているので、例えば、図５に示したＸＭＬ文書データ５００を、図９に示すように、pageタグの前で分割する。尚、以下の説明では、このようにして分割されたＸＭＬ文書データの各部分９０１〜９０３を、必要に応じてＸＭＬ分割文書データ９０１〜９０３と称する。以上のように、本実施形態では、例えば、ステップＳ１００５の処理によって分割手段が実現される。
【００３８】
次に、ステップＳ１００６において、ＣＰＵ２０１は、ステップＳ１００５で決定した分割単位に従って符号化テーブルを作成する。即ち、ＸＭＬ分割文書データ９０１〜９０３のそれぞれに対応する複数の符号化テーブルを作成する。
【００３９】
図１０は、図９に示した各ＸＭＬ分割文書データ９０１〜９０３（パート１〜パート３）に対応する符号化デーブルの一例を示す図である。図１０に示すように、ＸＭＬ分割文書データ９０１〜９０３のそれぞれに含まれるボキャブラリが、それぞれの符号化テーブル１００１〜１００３に含まれることになる。ここで、"page"というローカル名は、図９に示したパート２のＸＭＬ分割文書データ９０２と、パート３のＸＭＬ分割文書データ９０３との両方に使われる。従って、"page"というローカル名は、図１０に示すパート２の符号化テーブル１００２と、パート３の符号化テーブル１００３の両方に存在する。尚、図１０に示す符号化テーブル１００１〜１００３は、ＸＭＬ分割文書データ９０１〜９０３における構造単位のボキャブラリと符号との対応関係を示すテーブルである。
【００４０】
また、図１０に示すような符号化テーブル１００１〜１００３を作成する際に、ＸＭＬ分割文書データに名前空間宣言があれば、ＣＰＵ２０１は、その名前空間宣言を別途記憶しておく。その後、ＸＭＬ分割文書データ９０１〜９０３を符号化するに際して、要素名や属性名に、記憶しておいた名前空間宣言が関係している場合、ＣＰＵ２０１は、符号化テーブル１００１〜１００３のエントリに、該当する名前空間名を追加する。図１０において、"http://www.w3.org/ 2000/svg"という名前空間名は、全ての要素名、属性名に関係しているので、パート１〜パート３の全ての符号化テーブル１００１〜１００３に追加される。このように符号化テーブル１００１〜１００３を記述することにより、符号化されたＸＭＬ分割文書データ９０１〜９０３を、受信側で順次復号化できるようになる。
【００４１】
そして、ＣＰＵ１０１は、以上のようにして作成した符号化テーブル１００１〜１００３と、ＸＭＬ文書データの構造を示す符号７００とを用いて、ＸＭＬ分割文書データ９０１〜９０３を符号化する。ここで、符号化は、ＸＭＬ分割文書データ９０１〜９０３における構造単位で行われるようにするのが好ましい。尚、本実施形態では、パート１のＸＭＬ分割文書データ１００１、パート２のＸＭＬ分割文書データ１００２、及びパート３のＸＭＬ分割文書データ１００３の順でステップＳ１００６の処理を行う。また、以下の説明では、符号化したＸＭＬ分割文書データ９０１〜９０３を、必要に応じて符号化分割データと称する。
以上のように、本実施形態では、例えば、ステップＳ１００６の処理によって作成手段、符号化手段が実現される。
【００４２】
次に、ステップＳ１００７において、ステップＳ１００６で作成した符号化テーブル１００１〜１００３と、ステップＳ１００６で符号化したＸＭＬ分割文書データ（符号化分割データ）を、ステップＳ１００１で入力された送信先に送信する。本実施形態では、符号化テーブル１００１〜１００３を、対応する符号化分割データの先頭（対応する符号化分割データよりも前方）に挿入することにより、符号化テーブル１００１〜１００３を、対応する符号化分割データよりも先に送信するようにしている。
前述したように、ＸＭＬ文書データを分割する場合の送信先は、プリンタ１０４であるので、ステップＳ１００９で作成された符号化テーブル１００１〜１００３と、符号化分割データの送信先はプリンタ１０４になる。
尚、本実施形態では、パート１のＸＭＬ分割文書データ９０１、パート２のＸＭＬ分割文書データ９０２、及びパート３のＸＭＬ分割文書データ９０３の順でステップＳ１００７の処理を行う。
以上のように、本実施形態では、例えば、ステップＳ１００７の処理によって送信手段、送信ステップが実現される。
【００４３】
次に、ステップＳ１００８において、ＣＰＵ１０１は、未送信のＸＭＬ分割文書データ９０１〜９０３があるか否かを判定する。この判定の結果、未送信のＸＭＬ分割文書データ９０１〜９０３がある場合には、ステップＳ１００６に戻る。前述したように、本実施形態では、まず、パート１のＸＭＬ分割文書データ９０１に対してステップＳ１００６、Ｓ１００７の処理を行う。次に、パート２のＸＭＬ分割文書データ９０２に対してステップＳ１００６、Ｓ１００７の処理を行う。そして、パート３のＸＭＬ分割文書データ９０３に対してステップＳ１００６、Ｓ１００７の処理を行う。
【００４４】
以上のように処理することにより、図１１に示すように、符号化テーブル１００１〜１００３と、符号化分割データ１１０１〜１１０３とが順次ＰＣ１０１からプリンタ１０４に送信される。前述したように、本実施形態では、図１１に示すように、符号化分割データ１１０１〜１１０３の先頭に、その符号化分割データ１１０１〜１１０３に対応する符号化テーブル１００１〜１００３を挿入して、符号化分割データと符号化テーブルとを送信する。
【００４５】
プリンタ１０４は、符号化テーブル１００１〜１００３と、その符号化テーブルに対応する符号化分割データ１１０１〜１１０３とをｉ／ｆ３０７で受信する。ＣＰＵ３０１は、受信された符号化テーブル１００１〜１００３を用いて符号化分割データ１１０１〜１１０３を復号化する。プリンタ１０４は、利用可能なメモリ量（リソース（resource））が十分でないのでＸＭＬ文書データの全体を一度に復号化できない。そこで、まず、プリンタ１０４のＣＰＵ３０１は、パート１の符号化テーブル１００１を受け取り、ＲＡＭ３０５等に保存する。次に、パート１の符号化分割データ１１０１が到着するので、ＣＰＵ３０１は、保存したパート１の符号化テーブル１００１を使って、パート１の符号化分割データ１１０１を順次復号化する。
【００４６】
パート１の符号化分割データ１１０１の符号化が終了すると、ＣＰＵ３０１は、パート２の符号化テーブル１００２を受け取る。この時点でパート１の符号化テーブル１００１は不要になる。そこで、ＣＰＵ３０１は、パート１の符号化テーブル１１０１を破棄して、パート２の符号化テーブル１００２に置き換える。以降、全ての符号化分割データ１１０１〜１１０３を復号化するまで繰り返し処理を行う。
尚、以上のようにして行われるＣＰＵ３０１の処理は、ＨＤＤ３０３或いはＲＯＭ３０４に格納されたプログラムを実行することにより実現される。
以上のように、本実施形態では、例えば、ｉ／ｆ３０７を用いて受信手段が実現される。また、プリンタ１０４のＣＰＵ３０１を用いて復号化手段、記憶手段が実現される。
【００４７】
以上のように本実施形態では、ＰＣ１０１は、ＸＭＬ文書データ５００を、pageタグ単位で分割し、分割した各ＸＭＬ分割文書データ９０１〜９０３に対する符号化テーブル１００１〜１００３を作成する。次に、ＰＣ１０１は、作成した符号化テーブル１００１〜１００３を用いてＸＭＬ分割文書データ９０１〜９０３を符号化して符号化分割データ１１０１〜１１０３を作成する。次に、ＰＣ１０１は、符号化テーブル１００１〜１００３と、その符号化テーブルに対応する符号化分割データ１１０１〜１１０３とをプリンタ１０４に送信する。このように、冗長性の少ない符号化テーブルを作成し、符号化したＸＭＬ文書データと、符号化テーブルとを小分けしてプリンタ１０４に送信したので、低価格のプリンタのように、利用可能な記憶領域が小さい機器でも、ＸＭＬ文書データを復号化できる。
【００４８】
また、本実施形態では、符号化テーブル１００１〜１００３のデータ量と、その符号化テーブルに対応する符号化分割データ１１０１〜１１０３のデータ量との加算値を、プリンタ１０４で利用可能なメモリ量以下にしてから、それらをプリンタ１０４に送信した。従って、プリンタ１０４は、ＸＭＬ文書データを確実に復号化できるようになる。
【００４９】
尚、本実施形態では、ＸＭＬ文書データ５００の分割単位がpageタグである場合を例に挙げて説明した。しかしながら、ＸＭＬ文書データ５００の分割単位は、ＸＭＬ文書データの構造単位であれば、例えばpageタグ以外のタグであってもよい。
【００５０】
更に、ＸＭＬ文書データ５００の分割単位を、データサイズにしてもよい。このようにする場合には、分割単位であるデータサイズで分割することにより得られる符号化分割データのデータ量と、その符号化分割データに対応する符号化デーブルのデータ量との加算値を、各ＸＭＬ分割文書データについて算出する。そして、算出したデータ量が、プリンタ１０２における利用可能なメモリ量以下であるか否かを判定する。この判定の結果、算出したデータ量が、プリンタ１０２における利用可能なメモリ量以下である場合に、算出したデータ量が、分割単位であるデータサイズ以下となるように、例えばボキャブラリ単位でＸＭＬ文書データを分割する。
【００５１】
また、本実施形態では、ＸＭＬ文書データ５００の分割単位をユーザの操作に基づいて取得する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、pageタグを分割するということを予めソフトウェアに組み込む等して、ＸＭＬ文書の分割単位を予め設定しておき、設定しておいたＸＭＬ文書データ５００の分割単位をＣＰＵ２０１が取得するようにしてもよい。更に、ＸＭＬ文書中のxpathを用いてＸＭＬ文書データ５００の分割単位を予め設定しておき、設定しておいたＸＭＬ文書の分割単位をＣＰＵ２０１が取得するようにしてもよい。
【００５２】
また、本実施形態では、利用可能なメモリ量をプリンタ１０４に問い合わせ、問い合わせたメモリ量が、符号化分割データのデータ量と、その符号化分割データに対応する符号化テーブルのデータ量との加算値以下である場合にＸＭＬ文書データ５００を分割した。しかしながら、必ずしもこのようにする必要はない。例えば、符号化分割データのデータ量と、その符号化分割データに対応する符号化テーブルのデータ量との加算値が、予め設定されたデータ量以下である場合にＸＭＬ文書データを分割するようにしてもよい。また、符号化テーブルのデータ量だけから、分割されたＸＭＬ文書データの各部分のデータを、プリンタ１０４が処理可能か否かを判定してもよい。
【００５３】
また、本実施形態では、構造化記述言語がＸＭＬである場合を例に挙げて説明した。しかしながら、本実施形態の動作は、構造化記述言語であれば、どのような言語の文書データであっても適用できる。例えば、ＳＧＭＬ（Standard Generalized Mark-up Language）等の他のマークアップ言語を用いることができる。更に、前述したようにデータサイズ等を分割単位とする場合には、文書データは、必ずしも構造化記述言語で記述されていなくてもよい。
【００５４】
また、本実施形態では、文書データを分割して符号化すると共に符号化テーブルを作成する装置（文書データ作成装置）としてＰＣ１０１を例に挙げて説明した。更に、符号化された文書データを、符号化テーブルを用いて復号化する装置（文書データ処理装置）としてプリンタ１０４を例に挙げて説明した。しかしながら、文書データ作成装置及び文書データ処理装置は、これらに限定されない。例えばプリンタの代わりにデジタル複合機を文書データ処理装置として用いてもよい。
【００５５】
また、本実施形態では、ＸＭＬ文書データを、そのＸＭＬ文書データの構造単位の一例であるpageタグ単位で分割して符号化する場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、ＣＰＵ２０１は、ＸＭＬ文書データに含まれる名前空間の影響範囲に関する情報を例えばユーザによる入力操作に基づいて取得し、取得した名前空間の影響範囲を分割単位としてＨＭＬ文書データを分割して符号化するようにしてもよい。尚、名前空間の影響範囲に関する情報とは、例えば、名前空間の始まりと終わりとを示す情報である。
【００５６】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、図１０に示したように、複数のＸＭＬ分割文書データに重複するボキャブラリであっても、そのボキャブラリに対応する符号を各符号化テーブル１００１〜１００３に登録するようにした。即ち、符号化テーブルと、符号化分割データとが一対一に対応するようにした。
【００５７】
これに対し、本実施形態では、符号化テーブルの有効範囲を設定し、複数の符号化分割データに対応する符号化テーブルを作成することにより、複数のＸＭＬ分割文書データに跨るボキャブラリを冗長なく符号化テーブルに登録できるようにしている。
このように、本実施形態と、前述した第１の実施形態とは、ＸＭＬ分割文書データから、符号化テーブルを作成する方法の一部が主として異なる。従って、本実施形態の説明において、前述した第１の実施形態と同一の部分については、図１〜図１１に付した符号と同一の符号を付す等して詳細な説明を省略する。尚、本実施形態においても、図５に示したＸＭＬで記述された文書のデータを、図９に示したようにpageタグ単位で分割して符号化する場合を例に挙げてについて説明する。
【００５８】
図１２のフローチャートを参照しながら、本実施形態における符号化テーブルの作成方法の一例を説明する。尚、図１２のフローチャートの処理は、図９のパート１のＸＭＬ分割文書データ９０１、パート２のＸＭＬ分割文書データ９０２、及びパート３のＸＭＬ分割文書データ９０３の順で行われる。
【００５９】
まず、ステップＳ１３０１において、ＰＣ１０１のＣＰＵ２０１は、ＸＭＬ文書データ５００に対する全ての符号化テーブルを既に作成しているか否かを判定する。この判定の結果、ＸＭＬ文書データ５００に対する全ての符号化テーブルを既に作成している場合には、ステップＳ１３０２〜Ｓ１３０６を省略して、後述するステップＳ１３０７に進む。一方、ＸＭＬ文書データ５００に対する全ての符号化テーブルを作成していない場合には、符号化テーブルを作成する必要があるので、ステップＳ１３０２に進む。
【００６０】
ステップＳ１３０２に進むと、ＣＰＵ２０１は、処理対象のパートのＸＭＬ分割文書データに対する符号化テーブルに登録すべき符号（code）とボキャブラリとの対応が、既に作成した符号化テーブルに登録されているか否かを判定する。この判定の結果、符号化テーブルに登録すべき符号（code）とボキャブラリとの対応が、既に作成した符号化テーブルに登録されていない場合には、ステップＳ１３０３に進む。
【００６１】
ステップＳ１３０３に進むと、ＣＰＵ２０１は、既に作成した符号化テーブルに登録されていない符号（code）とボキャブラリとの対応を登録して符号化テーブルを作成する。このステップＳ１３０３で作成された符号化テーブルの有効範囲は、現在の処理対象のパートとなる。そして、後述するステップＳ１３０６に進む。
【００６２】
ステップＳ１３０２において、符号化テーブルに登録すべき符号（code）とボキャブラリとの対応が、既に作成した符号化テーブルに登録されている場合には、ステップＳ１３０４に進む。ステップＳ１３０４に進むと、ＣＰＵ２０１は、現在の処理対象のパートが、既に作成した符号化デーブルの有効範囲に含まれているか否かを判定する。この判定の結果、現在の処理対象のパートが、既に作成した符号化デーブルの有効範囲に含まれている場合には、後述するステップＳ１３０６に進む。
【００６３】
一方、現在の処理対象のパートが、既に作成した符号化デーブルの有効範囲に含まれていない場合には、ステップＳ１３０５に進む。ステップＳ１３０５に進むと、ＣＰＵ２０１は、ステップＳ１３０２において、既に作成した符号化テーブルに登録されていると判定された符号（code）とボキャブラリとの対応を、その符号化テーブルから削除する。そして、ＣＰＵ２０１は、削除した符号（code）とボキャブラリとの対応を登録した新たな符号化テーブルを作成する。このステップＳ１３０５で作成された符号化テーブルの有効範囲は、既に作成した符号化テーブルの有効範囲に含まれているパートと、現在の処理対象のパートになる。そして、ステップＳ１３０６に進む。
【００６４】
ステップＳ１３０６に進むと、ＣＰＵ２０１は、ＸＭＬ文書データ５００に対する全ての符号化テーブルを作成したか否かを判定する。この判定の結果、ＸＭＬ文書データに対する全ての符号化テーブルを作成していない場合には、ステップＳ１３０２に戻り、次のパートを処理対象として、ステップＳ１３０２〜Ｓ１３０５の処理を再度行う。即ち、パート１のＸＭＬ分割文書データ９０１に対する処理を終えた後は、パート２のＸＭＬ分割文書データ９０２に対する処理を行い、その後パート３のＸＭＬ分割文書データ９０３に対する処理を終えると、ステップＳ１３０７に進む。
【００６５】
ステップＳ１３０７に進むと、符号化テーブルと、ＸＭＬ文書データの構造を示す符号とを用いて、ＸＭＬ分割文書データを符号化する。
次に、ステップＳ１３０８において、ＣＰＵ２０１は、符号化テーブルを符号化分割データの先頭に挿入して符号化テーブル、符号化分割データの順にプリンタ１０４に送信されるようにする。ここで、符号化テーブルは、その有効範囲の最初のパートに対する符号化分割データの先頭（前方）に挿入されるようにする。例えば、符号化テーブルの有効範囲がパート１とパート２であるならば、その符号化テーブルは、パート１に対する符号化分割データの先頭に挿入される。尚、本実施形態でも第１の実施形態と同様に、パート１、パート２、パート３の順でステップＳ１３０７、Ｓ１３０８の処理を行う。
【００６６】
次に、図１２のフローチャートにおける処理の具体例を、図１３及び図１４を参照しながら説明する。図１３は、図９に示したＸＭＬ文書データに対する符号化テーブルの一例を示した図である。図１４は、符号化テーブルと符号化分割データとの送信順序の一例を示した図である。
【００６７】
まず、パート１のＸＭＬ分割文書データ９０１に対する符号化テーブルを作成する。
ＣＰＵ２０１は、パート１のＸＭＬ分割文書データ９０１に対する符号化テーブルに登録すべき符号とボキャブラリとの対応が、既に作成してある符号化テーブルに登録されているかどうかを調べる（ステップＳ１３０２）。ここでは、既に作成してある符号化テーブルはないので、パート１のＸＭＬ分割文書データ９０１に対する符号化テーブルに登録すべき符号とボキャブラリとの対応の全てを登録したパート１の符号化テーブルを作成する（ステップＳ１３０３）。この符号化テーブルの有効範囲は、パート１のみとなる。
【００６８】
次に、パート２のＸＭＬ分割文書データ９０２に対する符号化テーブルを作成する。
ＣＰＵ２０１は、パート２のＸＭＬ分割文書データ９０２に対する符号化テーブルに登録すべき符号とボキャブラリとの対応が、既に作成してある符号化テーブルに登録されているかどうかを調べる（ステップＳ１３０２）。名前空間名である"http://www.w3.org/2000/svg"は、パート２の要素名や属性名の符号化に必要であるが、既にパート１の符号化テーブルに登録されており共通している。
【００６９】
そこで、ＣＰＵ２０１は、現在の処理対象であるパート２が、パート１の符号化テーブルの有効範囲に含まれているかどうかを調べる（ステップＳ１３０４）。パート１の符号化テーブルの有効範囲は、パート１である。従って、現在の処理対象であるパート２は、パート１の符号化テーブルの有効範囲に含まれていない。
【００７０】
そこで、ＣＰＵ２０１は、パート１の符号化テーブルに登録されている"０ｘ００"と"http://www.w3.org/2000/svg"との対応を、パート１の符号化テーブルから削除する。そして、ＣＰＵ２０１は、"０ｘ００"と"http://www.w3.org/2000/svg"との対応関係を登録したパート１〜パート２の符号化テーブルを作成する。このパート１〜パート２の符号化テーブルの有効範囲は、パート１の符号化テーブルの有効範囲であるパート１と、現在の処理対象であるパート２である。
【００７１】
パート２の残りのボキャブラリは、既に作成してあるパート１の符号化テーブルに登録されていない。従って、ＣＰＵ２０１は、これらのボキャブラリと符号との対応関係の全てを登録したパート２の符号化テーブルを作成する（ステップＳ１３０３）。この符号化テーブルの有効範囲は、パート２のみとなる。
【００７２】
最後に、パート３のＸＭＬ分割文書データ９０３に対する符号化テーブルを作成する。
ＣＰＵ２０１は、パート３のＸＭＬ分割文書データ９０３に対する符号化テーブルに登録すべき符号とボキャブラリとの対応が、既に作成してある符号化テーブルに登録されているかどうかを調べる（ステップＳ１３０２）。名前空間名である"http://www.w3.org/2000/svg"と、ローカル名である"page"と、要素名である"＿００"は、パート３の符号化に必要である。しかしながら、これらはパート１〜パート２の符号化テーブルと、パート２の符号化テーブル２に既に登録されており共通している。
【００７３】
そこで、ＣＰＵ２０１は、現在の処理対象であるパート３が、パート１〜パート２の符号化テーブル及びパート２の符号化テーブルの有効範囲に含まれているかどうかを調べる（ステップＳ１３０４）。パート１〜パート２の符号化テーブルの有効範囲は、パート１とパート２のみである。従って、現在の処理対象であるパート３は、パート１〜パート２の符号化テーブルの有効範囲に含まれていない。また、パート２の符号化テーブルの有効範囲は、パート２である。従って、現在の処理対象であるパート３は、パート２の符号化テーブルの有効範囲に含まれていない。
【００７４】
そこで、ＣＰＵ２０１は、パート１〜パート２の符号化テーブルに登録されている"０ｘ００"と"http://www.w3.org/2000/svg"との対応を、パート１〜パート２の符号化テーブルから削除する。ここでは、パート１〜パート２の符号化テーブルに登録されているボキャブラリはないので、パート１〜パート２の符号化テーブル自体を削除する。そして、ＣＰＵ２０１は、"０ｘ００"と"http://www.w3.org/2000/svg"との対応関係を登録したパート１〜パート３の符号化テーブルを作成する。このパート１〜パート３の符号化テーブルの有効範囲は、パート１〜パート２の符号化テーブルの有効範囲であるパート１及びパート２と、現在の処理対象であるパート３である。
【００７５】
尚、ここでは、パート１〜パート２の符号化テーブルを削除して、パート１〜パート３の符号化テーブルを作成するようにしたが、必ずしもこのようにする必要はない。例えば、パート１〜パート２の符号化テーブルの有効範囲をパート１〜パート３に広げるようにしてもよい。
【００７６】
また、パート２の符号化テーブルに登録されている"０ｘ００"と"page"及び"＿００"との対応を、パート２の符号化テーブルから削除する。そして、ＣＰＵ２０１は、"０ｘ００"と"page"及び"＿００"との対応関係を登録したパート２〜パート３の符号化テーブルを作成する。このパート２〜パート３の符号化テーブルの有効範囲は、パート２の符号化テーブルの有効範囲であるパート２と、現在の処理対象であるパート３である。
【００７７】
パート３の残りのボキャブラリは、既に作成してあるパート１の符号化テーブル、パート２の符号化テーブル、及びパート１〜パート２の符号化テーブルに登録されていない。従って、ＣＰＵ２０１は、これらのボキャブラリと符号との対応の全てを登録したパート３の符号化テーブルを作成する（ステップＳ１３０３）。この符号化テーブルの有効範囲は、パート３のみとなる。
【００７８】
図１３において、パート１〜パート３の符号化テーブルには、有効範囲として、"scope=3"が記述され、パート２〜パート３の符号化テーブルには、有効範囲として、"scope=2"が記述される。
以上のように、本実施形態では、例えば、ステップＳ１３０３、Ｓ１３０５に処理によって設定手段、作成手段が実現される。
【００７９】
ＣＰＵ２０１は、図１４に示すように、符号化テーブルを符号化分割データの先頭（前方）に挿入して符号化テーブル、符号化分割データの順にプリンタ１０４に送信されるようにする。ここで、符号化テーブルは、その有効範囲の最初のパートに対する符号化分割データの先頭に挿入されるようにする。図１４に示すように複数の符号化テーブルを符号化分割データの先頭に挿入する場合には、有効範囲の広い符号化テーブルを先頭に挿入する。
【００８０】
以上のように本実施形態では、符号化テーブルに有効範囲を設定し、複数のパートで重複するボキャブラリを１つの符号化テーブルに纏めるようにした。従って、第１の実施形態で説明した効果に加え、より一層冗長性の少ない符号化テーブルを作成できるという効果が得られる。
【００８１】
尚、本実施形態では、符号化テーブルを全て作ってからデータ送信するようにしたが、必ずしもこのようにする必要はない。即ち、符号化しながらデータを送信してもよい。このとき、送信単位を跨ってボキャブラリが出現する場合は、送信単位で一旦有効範囲を区切って符号化テーブルを作成するようにする。例えば、パート１及びパート２を送信単位とした場合は、パート１〜パート２の符号化テーブルからパート１〜パート３の符号化テーブルを作成しないようにすると共に、パート２の符号化テーブルからパート２〜パート３の符号化テーブルを作成しないようにする。このようにすれば、符号化しながらデータを送信しても、送信先で符号化テーブルが存在しなくなることを確実に防止できる。
【００８２】
また、本実施形態では、パート１〜パート３の符号化テーブルと、パート２〜パート３の符号化テーブルのように、有効範囲が連続しているパートである場合を例に挙げて説明したが、必ずしもこのようにする必要はない。即ち、有効範囲が不連続のパートの符号化テーブル（例えば、有効範囲がパート１とパート３の符号化テーブル）を作成するようにしてもよい。
更に、本実施形態においても、第１の実施形態で説明した種々の変形例を採ることができる。
【００８３】
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００８４】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ等を用いることができる。
【００８５】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００８６】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるＣＰＵが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００８７】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００８８】
【図１】本発明の第１の実施形態を示し、文書データ処理システムの構成の概要の一例を示した図である。
【図２】本発明の第１の実施形態を示し、ＰＣの構成の一例を示したブロック図である。
【図３】本発明の第１の実施形態を示し、プリンタの構成の一例を示したブロック図である。
【図４】本発明の第１の実施形態を示し、ＸＭＬ文書データを符号化する際のＰＣにおける処理の一例について説明するフローチャートである。
【図５】本発明の第１の実施形態を示し、ＸＭＬ文書データの一例を示した図である。
【図６】本発明の第１の実施形態を示し、ＸＭＬ文書データ全体に対応する符号化デーブルの一例を示した図である。
【図７】本発明の第１の実施形態を示し、ＸＭＬ文書データの構造を示す符号の一例を示す図である。
【図８】本発明の第１の実施形態を示し、ＸＭＬ文書データの一部を、符号化テーブルと、ＸＭＬ文書データの構造を示す符合とを使って符号化した結果の一例を示す図である。
【図９】本発明の第１の実施形態を示し、ＸＭＬ文書データをpageタグ単位で分割した様子を概念的に示した図である。
【図１０】本発明の第１の実施形態を示し、各ＸＭＬ分割文書データ（パート１〜パート３）に対応する符号化デーブルの一例を示す図である。
【図１１】本発明の第１の実施形態を示し、符号化テーブルと符号化分割データとの送信順序の一例を示した図である。
【図１２】本発明の第２の実施形態を示し、符号化テーブルの作成方法の一例を説明するフローチャートである。
【図１３】本発明の第２の実施形態を示し、ＸＭＬ文書データに対する符号化テーブルの一例を示した図である。
【図１４】本発明の第２の実施形態を示し、符号化テーブルと符号化分割データとの送信順序の一例を示した図である。
【符号の説明】
【００８９】
１０１、１０３  ＰＣ
１０２  ＬＡＮ
１０４  プリンタ
５００  ＸＭＬ文書データ
９０１〜９０３  ＸＭＬ分割文書データ
１００１〜１００３  符号化テーブル
１１０１〜１１０３  符号化分割データ
【図１】
2008140179.tif 000003
【図２】
2008140179.tif 000004
【図３】
2008140179.tif 000005
【図４】
2008140179.tif 000006
【図５】
2008140179.tif 000007
【図６】
2008140179.tif 000008
【図７】
2008140179.tif 000009
【図８】
2008140179.tif 000010
【図９】
2008140179.tif 000011
【図１０】
2008140179.tif 000012
【図１１】
2008140179.tif 000013
【図１２】
2008140179.tif 000014
【図１３】
2008140179.tif 000015
【図１４】
2008140179.tif 000016