(57)【要約】【課題】  正規化ＸＭＬのみを解析する能力を持つＸＭＬパーサでは機器間の相互運用性を確保することができない。【解決手段】  正規化ＸＭＬ文書を解析する正規化ＤＯＭパーサ部５０２と、非正規化ＸＭＬ文書を正規化ＸＭＬ文書へ変換して正規化ＤＯＭパーサ部５０２に供給する正規化部５０４と、入力した文書が、少なくとも正規化ＸＭＬ文書であるか否かを識別する文法違反情報確認部５０３とを有し、正規化ＸＭＬ文書でないと識別されたＸＭＬ文書を正規化部５０４で正規化ＸＭＬ文書へ変換して正規化ＤＯＭパーサ部５０２で解析する。【選択図】  図５
2007122278.tif 000002
【特許請求の範囲】
【請求項１】
入力された構造化文書を解析する文書処理装置であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析手段と、
非正規化ＸＭＬ文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析手段に供給する正規化手段と、
入力された文書が、少なくとも正規化ＸＭＬ文書であるか否かを識別する識別手段とを備え、
前記識別手段で正規化ＸＭＬ文書でないと識別されたＸＭＬ文書を前記正規化手段により正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析手段で解析することを特徴とする文書処理装置。
【請求項２】
前記識別手段は、ＸＭＬ文書の文法規則情報を記憶するデータベースを有し、
前記データベースを参照して前記入力された文書の文法を識別し、前記入力した文書を非正規化ＸＭＬ文書、正規化ＸＭＬ文書、及び非ＸＭＬ文書のいずれかに分類することを特徴とする請求項１記載の文書処理装置。
【請求項３】
前記識別手段により前記入力された文書が正規化ＸＭＬ文書と判断された場合に、前記入力した文書を前記正規化ＸＭＬ解析手段により解析した結果に基づいて処理することを特徴とする請求項１又は２記載の文書処理装置。
【請求項４】
入力された構造化文書を解析する文書処理装置であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析手段と、
入力した文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析手段に供給する正規化手段と、
前記正規化手段により正規化できない文書を非ＸＭＬ文書として判別する判別手段と、を備えることを特徴とする文書処理装置。
【請求項５】
前記識別手段は、前記入力した文書の識別子に基づいて識別することを特徴とする請求項１乃至４のいずれか１項に記載の文書処理装置。
【請求項６】
構造化文書を入力して解析する文書処理方法であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析工程と、
非正規化ＸＭＬ文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析工程に供給する正規化工程と、
入力した文書が、少なくとも正規化ＸＭＬ文書であるか否かを識別する識別工程とを備え、
前記識別工程で正規化ＸＭＬ文書でないと識別されたＸＭＬ文書を前記正規化工程により正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析工程で解析することを特徴とする文書処理方法。
【請求項７】
前記識別工程は、ＸＭＬ文書の文法規則情報を記憶するデータベースを参照して前記入力した文書の文法を識別し、前記入力した文書を非正規化ＸＭＬ文書、正規化ＸＭＬ文書、及び非ＸＭＬ文書のいずれかに分類することを特徴とする請求項６記載の文書処理方法。
【請求項８】
前記識別工程で、前記入力した文書が正規化ＸＭＬ文書と判断された場合に、前記入力した文書を前記正規化ＸＭＬ解析工程により解析した結果に基づいて処理することを特徴とする請求項６又は７記載の文書処理方法。
【請求項９】
構造化文書を入力して解析する文書処理方法であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析工程と、
入力した文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析工程に供給する正規化工程と、
前記正規化工程により正規化できない文書を非ＸＭＬ文書として判別する判別工程と、を備えることを特徴とする文書処理方法。
【請求項１０】
前記識別工程では、前記入力した文書の識別子に基づいて識別することを特徴とする請求項６乃至９のいずれか１項に記載の文書処理方法。
【請求項１１】
請求項６乃至９のいずれか１項に記載の文書処理方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書の文書構造を処理する文書処理装置及びその方法、プログラムに関するものである。
【背景技術】
【０００２】
近年、機器間のデータ互換性を確保するためにＸＭＬ（Extensible Markup Language／非特許文献１）が利用されるようになっている。ＸＭＬはテキストベースであるため、文字エンコーディングや書式の自由度が高いという特徴を持つ。一方で、従来の機器に依存したバイナリデータよりも自由度が高いため、情報を解析するためのＸＭＬパーサも複雑なものになる。このＸＭＬパーサが複雑になることを避けるためには、ＸＭＬの書式を制限する必要がある。
【０００３】
ＸＭＬの書式を制限するための１つの方法としては、機器間で交換するデータを正規化ＸＭＬ（Canonical ＸＭＬ／非特許文献２）で記述することが考えられる。この正規化ＸＭＬは、ＸＭＬにおける自由度の高い書式を１つの書式に制限し、かつＸＭＬと同等の情報を表現できる仕様であり、本来は電子署名等に利用される。ネットワーク間で交換するデータを全て正規化ＸＭＬに限定できれば、ＸＭＬパーサに必要とされる解析能力も大幅に絞られ、ＸＭＬパーサの軽量化及び高速化を実現できる。
【非特許文献１】「Extensible Markup Language（ＸＭＬ） 1.0 （Third Edition）」、 W3C, 2004年、http://www.w3.org/TR/REC-XML/
【非特許文献２】「Canonical XML Version 1.0」、W3C, 2001年、http://www.w3.org/TR/XML-c14n
【発明の開示】
【発明が解決しようとする課題】
【０００４】
局所的なネットワークであれば接続先の機器も制限されるので、全ての機器に対し上記の制約を加えることができる。しかし、広域なネットワーク上の機器との接続を前提とすると、不特定多数の機器に上記の制約を加えるのは不可能であり、正規化ＸＭＬのみを解析する能力を持つＸＭＬパーサでは機器間の相互運用性を確保することができない。
【０００５】
本発明の目的は、上記従来の問題点を解決することにある。
【０００６】
本発明の特徴は、構造化文書の解析を効率良く行う技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の一態様に係る文書処理装置は以下のような構成を備える。即ち、
入力された構造化文書を解析する文書処理装置であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析手段と、
非正規化ＸＭＬ文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析手段に供給する正規化手段と、
入力された文書が、少なくとも正規化ＸＭＬ文書であるか否かを識別する識別手段とを備え、前記識別手段で正規化ＸＭＬ文書でないと識別されたＸＭＬ文書を前記正規化手段により正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析手段で解析することを特徴とする。
【０００８】
上記目的を達成するために本発明の一態様に係る文書処理方法は以下のような工程を備える。即ち、
構造化文書を入力して解析する文書処理方法であって、
正規化ＸＭＬ文書を解析する正規化ＸＭＬ解析工程と、
非正規化ＸＭＬ文書を正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析工程に供給する正規化工程と、
入力した文書が、少なくとも正規化ＸＭＬ文書であるか否かを識別する識別工程とを備え、前記識別工程で正規化ＸＭＬ文書でないと識別されたＸＭＬ文書を前記正規化工程により正規化ＸＭＬ文書へ変換して前記正規化ＸＭＬ解析工程で解析することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、最小限の文書解析機能と、汎用的な記述を最小限の文法規則に変換する正規化機能とを分けて利用することができる。これにより、正規化ＸＭＬ文書に対しては最小限の資源と時間で、非正規化ＸＭＬ文書に対して、必要な資源を追加して効率良く解析処理を行うことが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
＜実施の形態１＞
本発明の実施の形態１では、ＤＯＭパーサを用いて、正規化ＸＭＬ文書、非正規化ＸＭＬ文書、非ＸＭＬ文書の解析を行う例を説明する。
【００１２】
図１は、本実施の形態に係る情報処理装置の概略構成を説明するブロック図である。
【００１３】
図１において、１０１は、この情報処理装置全体を制御する中央制御部（以下、ＣＰＵ）である。ＲＯＭ１０２は、変更を必要としないプログラムやパラメータ、各種データを格納している。ＲＡＭ１０３は、外部装置などから供給されるプログラムやデータを一時的に記憶する。記憶部１０４は、機器に固定して設置されたハードディスクやメモリカード、或は着脱可能なフレキシブルディスク（ＦＤ）やCompact Disk（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカードなどを含む外部記憶装置である。この記憶部１０４には、ＯＳや各種アプリケーションプログラムがインストールされており、これらプログラムは実行時にＲＡＭ１０３にロードされ、ＣＰＵ１０１の制御の下に実行される。操作部１０５は、ユーザによる操作を受け、データを入力するポインティングデバイスやキーボード、その他ハードウェアキーやタッチパネル等の入力デバイスと、そのインタフェースを含む。表示部１０６は、この装置の保持するデータや供給されたデータを表示するためのモニタ、及びそのインタフェースを含んでいる。
【００１４】
ここで記憶部１０４には、予め解析対象の文書が格納されている。この文書の格納手順に関しては本発明の範囲外のため触れないこととする。格納されている文書を読み出して各処理を行い、処理後必要に応じて、当該文書を記憶部１０４に格納する。
【００１５】
ＣＰＵ１０１により実行されるプログラムは、正規化ＸＭＬ文書を解析するＸＭＬパーサと、非特許文献２で定義された１４個の正規化変換規則に従って、入力されたＸＭＬ文書を正規化ＸＭＬ文書へ変換する正規化部とを含む。この正規化変換規則のうち特徴的なものとして以下のようなものが挙げられる。
（１）改行文字を「＃ｘＡ」（１６進数でＡ番目の文字の意。１０進数では「１０」に相当。以下同様）とする。
（２）ＸＭＬ宣言、ＤＴＤ宣言、コメントは削除
（３）空要素タグを開始、終了タグの組に置換
（４）属性値の囲み記号を「"」に統一
（１）を実現するために、正規化部は入力されたＸＭＬ文書を先頭から順に読み取り、改行文字に利用される記号（＃ｘＡ，＃ｘＤ）を探す。汎用的なＸＭＬ文書で１つの改行文字として利用されるパターンは、「＃ｘＡ」のみ、「＃ｘＤ」のみ、「＃ｘＤ ＃ｘＡ」の連続の３種類がある。正規化部は、入力された改行文字がどのパターンに当てはまるのかを順に確認し、全てのパターンを「＃ｘＡ」に置換して、正規化結果として出力する。
【００１６】
また（２）を実現するために、正規化部は、入力されたＸＭＬ文書からＸＭＬ宣言部、ＤＴＤ宣言部、コメントに該当する部分を探し出す。但し、正規化結果としては一切出力しない。
【００１７】
また（３）を実現するために、正規化部は、開始、終了、空要素タグの先頭を示す記号「＜」を探す。それぞれのタグは、「＜要素名 属性 属性 ...＞」、「＜／要素名＞」、「＜要素名 属性 属性 ...／＞」という文法を取るので、正規化部はそれぞれの文法を認識しながら正規化方法を切り替える。まず、次の文字が「／」であるかどうかを確認し、「／」であれば終了タグとして通常の終了タグの情報を出力する。一方、それ以外の要素名として利用できる文字であった場合は、開始、空要素タグのいずれかであるものとして、要素名に該当する部分のコピーを取りながら要素名を出力する。更に、属性の記述があれば、それはコピーを取らずにそのまま出力する。最後に「＞」が現れると、開始タグであったと認識し、コピーした情報を破棄し、通常の開始タグとして「＞」を出力する。
【００１８】
一方、「／＞」が確認できた場合は、空要素タグであったと認識する。空要素タグであると認識した場合、「＞」を出力して開始タグを閉じた直後に、そのコピーした要素名を持つ終了タグを出力する。そして、先に出力した開始タグを閉じる終了タグを正規化ＸＭＬ文書に加える。このようなプロセスを辿ることにより、空要素タグが全て開始及び終了タグの組に正規化される。
【００１９】
また（４）を実現するために正規化部は、入力されたＸＭＬ文書の属性値の囲み記号を確認する。属性の書式は「属性名＝"属性値"」と、「属性名＝'属性値'」のいずれかとなる。正規化部が「＝」の後に「"」を確認した場合は、既に正規化された書式となっているため、何も加工せずにそのまま属性の情報を最後まで出力する。
【００２０】
一方、正規化部が「＝」の後に「'」を確認した場合は、代わりに「"」を出力し、それ以降に続く文字が「"」又は「'」ではないことを確認しながら、順次入力された文字をそのまま出力する。もし「"」が入力された場合は、「"」を意味する実体参照である「 """ 」を出力し、属性値として「"」が出力されることを避ける。
【００２１】
一方、「'」が入力された場合は、属性値の宣言が終了したと認識し「"」を出力する。そして次の属性の宣言、又はタグの閉じる記号を探すプロセスに移行する。
【００２２】
以上のような処理を組み合わせることで、正規化部はＸＭＬ文書を正規化ＸＭＬ文書へ変換できる。
【００２３】
図２〜図４のそれぞれは、本実施の形態で解析対象となる正規化ＸＭＬ文書、非正規化ＸＭＬ文書、非ＸＭＬ文書の一例を示す図である。
【００２４】
図２は、正規化ＸＭＬの仕様に従って記述されている。図３は、属性値の囲み記号として、ＸＭＬでは認められているが正規化ＸＭＬでは認められていない記号（'）を用いた例を示している。更に図４は、属性値の囲み記号がないためＸＭＬ文書というカテゴリからも外れている。尚、これら図では、説明のために行番号と改行、空白文字を適宜加えている。
【００２５】
図５は、本実施の形態１に係るＤＯＭパーサ５０１の機能構成を示すブロック図である。尚、このＤＯＭパーサ５０１の具体的なハードウェア構成は、前述の図１に示す構成と同様である。
【００２６】
このＤＯＭパーサ５０１は、正規化ＸＭＬ文書を解析する機能を備える正規化ＤＯＭパーサ部５０２を有している。この正規化ＤＯＭパーサ部５０２は、正規化ＸＭＬ文書の解析、及び正規化ＸＭＬ文書と非正規化ＸＭＬ文書との判別を実行する。解析対象である文書は記憶部５０８より取得され、その解析結果は、出力インターフェース（Ｉ／Ｆ）部５０７を介してアプリケーション５０９へ伝えられる。記憶部５０８は、解析対象となる複数の文書を記憶している。記憶されている文書は、入力Ｉ／Ｆ部５０６を介して正規化ＤＯＭパーサ部５０２に送られる。
【００２７】
正規化ＤＯＭパーサ部５０２は解析した文書に文法違反を発見すると、文法違反情報を生成して文法違反情報確認部５０３へ伝える。これにより文法違反情報確認部５０３は、文法違反情報確認テーブルを格納するデータベース５０５から受け取った文法違反情報が、非正規化ＸＭＬ文書解析時に生成されるものかどうかを判別する。正規化部５０４は、解析に失敗した文書を正規化して正規化ＤＯＭパーサ部５０２に送出する。
【００２８】
図６は、本発明の実施の形態１に係るＤＯＭパーサ５０１における処理手順を説明するフローチャートである。以下、解析対象となる文書（図２〜図４）を解析する処理手順を説明する。尚、このフローチャートで示される処理を実行するプログラムは、その実行時にはＲＡＭ１０３に記憶され、ＣＰＵ１０１の制御の下に実行される。
（Ａ）図２に示す正規化ＸＭＬ文書を記憶部５０８より取得する場合を説明する。
【００２９】
ＤＯＭパーサ５０１が、入力Ｉ／Ｆ部５０６を介して図２に示す正規化ＸＭＬ文書を取得する。まずステップＳ６０１では、正規化ＤＯＭパーサ部５０２で、その文書を解析する。この場合、正規化ＤＯＭパーサ５０２は、最後まで文法違反を検出せずに解析を終了し、内部にＤＯＭツリーを構築する。従ってステップＳ６０２では文法違反がなかったため、解析対象であるＸＭＬ文書を正規化ＸＭＬ文書であると判断する。そしてステップＳ６０３で、正規化ＤＯＭパーサ５０２内部に構築されたＤＯＭツリーを最終的な解析結果とし、出力Ｉ／Ｆ部５０７を介してアプリケーション５０９へ伝える。こうしてステップＳ６０４で、正規化ＸＭＬ文書の解析を正常終了する。
（Ｂ）図３に示す非正規化ＸＭＬ文書を記憶部５０８より取得した場合について説明する。
【００３０】
この場合は、ステップＳ６０１の正規化ＤＯＭパーサ部５０２による解析処理において、図３の２行目に記述されている属性値の囲み記号に対する文法違反情報が生成される。これによりステップＳ６０２で解析が成功せず、解析対象の文書が、非正規化ＸＭＬ文書或は非ＸＭＬ文書であると判断してステップＳ６０５に進む。このとき、正規化ＤＯＭパーサ部５０２内で途中まで構築されていたＤＯＭツリーが破棄され、生成された文法違反情報は文法違反情報確認部５０３へ伝えられる。これにより文法違反情報確認部５０３は、図７に示す文法違反情報確認テーブル５０５から受け取った文法違反情報が、非正規化ＸＭＬ文書解析時に生成されるものかどうかを判断する。
【００３１】
図７は、本発明の実施の形態１〜２に係る文法違反情報対応テーブル５０５の具体例を示す図である。
【００３２】
ここには、解析の結果、エラーとして判定される「エラー内容」と、その原因がとして「非ＸＭＬ文書であるために発生したエラー」、或は「非正規化文書であるために発生したエラー」であるかが記述されている。尚、図７はあくまでも具体例の一例を示すものであり、これ以外のエラー項目や、エラー原因が含まれていても良い。
【００３３】
図３の文書の場合は、属性の解析中に、記号「＝」の次に記号「'」が出現したという文法違反情報を受け取る。これは図７の７００で示すエラー内容に該当する。その結果、解析対象の文書が非正規化ＸＭＬ文書である可能性があると判断する。これによりステップＳ６０６からステップＳ６０８に進み、その解析に失敗した文書に対して正規化部５０４にて正規化を行う。次にステップＳ６０９で、エラーが発生しなければステップＳ６１０に進み、その正規化したＸＭＬ文書を再度、正規化ＤＯＭパーサ５０２に供給して解析する。そしてステップＳ６１１で、文法違反が検出されなければステップＳ６１２に進み、その解析対象の文書は非正規化ＸＭＬ文書であると判断し、２度目に解析した結果生成されるＤＯＭツリーをアプリケーション５０９へ通知する。こうしてステップＳ６１３で、非正規化ＸＭＬ文書に対する処理を正常に終了する。
【００３４】
一方、ステップＳ６０９或はステップＳ６１１で、文法違反が検出された時には非ＸＭＬ文書と判断してステップＳ６１４に進み、その旨をアプリケーション５０９へ伝えて、非ＸＭＬ文書に対する処理（異常処理）を終了する。
（Ｃ）図４に示す非ＸＭＬ文書を解析する場合を説明する。
【００３５】
図４に示す文書を解析すると、正規化ＤＯＭパーサ部５０２は、属性解析時に記号「＝」の次に「"」と「'」以外の記号があるという内容の文法違反情報を生成する。これにより、ステップＳ６０６で、非ＸＭＬ文書の場合のみに生成されるエラー内容であると判断してステップＳ６０７に進み、その旨をアプリケーション５０９へ伝えて、非ＸＭＬ文書に対する処理（異常処理）を終了する。
【００３６】
以上説明したように本実施の形態１によれば、正規化ＸＭＬ文書のみに対応した正規化ＤＯＭパーサ部５０２と、正規化部５０４とを適宜組み合わせながら正規化ＸＭＬ文書及び非正規化ＸＭＬ文書を共に解析できるＤＯＭパーサ５０１を提供することができる。このＤＯＭパーサを使うことで、入力された文書を最適なコストで解析処理を行うことができる。
【００３７】
＜実施の形態２＞
次に本発明の実施の形態２について説明する。尚、本実施の形態２に係るＤＯＭパーサのハードウェア構成は図１で示す実施の形態１の構成と同じであるため、その説明を省略する。
【００３８】
本実施の形態２では、ＳＡＸパーサ部を用いて、正規化ＸＭＬ文書、非正規化ＸＭＬ文書、非ＸＭＬ文書を解析する例を説明する。本実施の形態２は、前述の実施の形態１に対し正規化ＤＯＭパーサ部５０２を正規化ＳＡＸパーサ部８０２に変更している点が異なっている。
【００３９】
図８は、本発明の実施の形態２に係るＤＯＭパーサ８０１の機能構成を示すブロック図で、前述の実施の形態１の構成と共通する部分は同じ記号で示し、それらの説明を省略する。尚、このＤＯＭパーサ８０１の具体的なハードウェア構成は、前述の図１に示す構成と同様である。
【００４０】
ＳＡＸパーサ８０１は、前述の実施の形態１と同様に、図２〜図４に示す解析対象文書を記憶部５０８より取得する。このＳＡＸパーサ８０１は、前述の実施の形態１のＤＯＭパーサ５０１とは異なり、解析処理の進行に合わせて逐次解析結果をアプリケーション５０９へ通知するものとする。
【００４１】
図９は、本発明の実施の形態２に係るＤＯＭパーサ８０１における処理手順を説明するフローチャートである。以下、解析対象となる文書（図２〜図４）を解析する処理手順を説明する。尚、このフローチャートで示される処理を実行するプログラムは、その実行時にはＲＡＭ１０３に記憶され、ＣＰＵ１０１の制御の下に実行される。
（Ａ）図２に示す正規化ＸＭＬ文書を解析する場合について説明する。
【００４２】
この場合は、正規化ＳＡＸパーサ８０２で文法違反が解決されないため、実施の形態１と同様に、ステップＳ９０１〜Ｓ９０４で解析を行い、一通り解析が終了するとステップＳ９０４からステップＳ９０５に進み、正規化ＸＭＬ文書の解析処理を正常に終了する。
（Ｂ）図３に示す非正規化ＸＭＬ文書を解析する場合を説明する。
【００４３】
実施の形態１と同様に、ステップＳ９０２で文法違反を検出すると、文法違反情報を生成してステップＳ９０６に進む。ステップＳ９０６では、前述の実施の形態１とは異なり、それまでの解析結果をアプリケーション５０９へ通知する。これにより、文法違反情報確認部５０３の処理（Ｓ９０６から９０７）に移る前に、アプリケーション５０９に対して、それまでの解析結果を無効にする情報を通知できる。その後のステップＳ９０７〜Ｓ９１５の処理は、前述の実施の形態１のステップＳ６０５〜Ｓ６１４の処理と共通である。但し、この実施の形態２では、ステップＳ９１０で、正規化部５０４でＸＭＬ文書を正規化した後、ステップＳ６０９におけるエラー判定処理を省略し、ステップＳ９１１で、正規化ＳＡＸパーサ８０２で、その正規化されたＸＭＬ文書を解析している。そして解析に成功してステップＳ９１４で解析が終了するとステップＳ９１５で、その正規化ＸＭＬ文書の解析処理を正常に終了する。ここで解析エラーが発生するとステップＳ９０９で、異常終了となる。
（Ｃ）図４に示す非ＸＭＬ文書を解析する場合を説明する。
【００４４】
この場合は、ステップＳ９０２でエラーとなってステップＳ９０６に進み、前述の実施の形態１とは異なり、それまでの解析結果をアプリケーション５０９へ通知する。これにより、文法違反情報確認部５０３の処理（Ｓ９０６から９０７）に移る前に、アプリケーション５０９に対して、それまでの解析結果を無効にする情報を通知できる。そしてステップＳ９０８で、非正規化文書で発生するエラーではないためステップＳ９０９に進み、非ＸＭＬ文書に対する異常終了処理に進む。
【００４５】
以上説明したように本実施の形態２によれば、ＳＡＸパーサ８０１においても、正規化ＸＭＬ文書にのみ対応した正規化ＳＡＸパーサ部８０２と正規化部５０４とを組み合わせて、最適なコストで解析処理を行うことができる。
【００４６】
＜実施の形態３＞
次に本発明の実施の形態３を説明する。この実施の形態３では、実施の形態３に係るパーサを用いて正規化ＸＭＬ文書、非正規化ＸＭＬ文書、非ＸＭＬ文書を解析する例を説明する。本実施の形態３は、前述の実施の形態１，２とは異なり、正規化部５０４が解析対象文書（図２〜図４）を最初に分析する。また正規化パーサ部１００２は、正規化ＤＯＭパーサ部５０２、正規化ＳＡＸパーサ部８０２のどちらを利用してもよく、また、正規化ＸＭＬ文書を解析する機能を持つ他のパーサを利用してもよい。
【００４７】
図１０は、本発明の実施の形態３に係るパーサ１００１の構成を説明するブロック図で、前述の実施の形態の構成（図５）と共通する部分は同じ記号で示している。また、このパーサ１００１の具体的なハードウェア構成は、前述の図１に示す構成と同様である。
【００４８】
図１０では、入力した文書は、最初に正規化部５０４に入力されて正規化された後、後段の正規化パーサ部１００２に送られる。
【００４９】
図１１は、本発明の実施の形態３に係るパーサ１００１における処理手順を説明するフローチャートである。以下、解析対象となる文書（図２〜図４）を解析する処理手順を説明する。尚、このフローチャートで示される処理を実行するプログラムは、その実行時にはＲＡＭ１０３に記憶され、ＣＰＵ１０１の制御の下に実行される。
【００５０】
まずステップＳ１１０１で、記憶部５０８より取得した解析対象文書を、最初に正規化部５０４で正規化する。
（Ａ）図２に示す正規化ＸＭＬ文書を解析する場合について説明する。
【００５１】
この場合、正規化を行う際に文法違反は検出されないので、ステップＳ１１０２でエラーが発生せず、正規化部５０４は解析対象文章を正規化ＸＭＬ文書であると判断してステップＳ１１０３に進む。ステップＳ１１０３では、その正規化ＸＭＬ文書を正規化パーサ１００２で解析する。そしてステップＳ１１０４で解析に成功するとステップＳ１１０５に進み、その解析処理の結果をアプリケーション５０９に通知する。
【００５２】
また、アプリケーション５０９が、正規化ＸＭＬか否かの判断結果を必要とした場合はステップＳ１１０６で、正規化部５０４において正規化処理の前後で文字の置換の有無に関する情報を利用し、判断結果を伝えることができる。即ち、ステップＳ１１０６で文字の置換が行われるとステップＳ１１０７に進み、非正規化ＸＭＬ文書として正常終了する。またステップＳ１１０６で文字の置換が行われない場合はステップＳ１１０８に進み、正規化ＸＭＬ文書として正常終了する。
（Ｂ）図３に示す非正規化ＸＭＬ文書を解析する場合を説明する。
【００５３】
この場合も、前述の図２の場合と同様に、正規化部５０４において正規化処理を実行する。ステップＳ１１０２〜Ｓ１１０６では、その正規化結果に基づいて、図２に示す正規化ＸＭＬ文書と同様に処理を行う。こうして解析結果をアプリケーション５０９へ伝えることができる。
（Ｃ）図４に示す非ＸＭＬ文書を解析する場合を説明する。
【００５４】
正規化部５０４又は正規化ＸＭＬパーサ部１００２で文法違反を検出すると（Ｓ１１０２，Ｓ１１０４）ステップＳ１１０９に進み、その旨をアプリケーション５０９へ伝えるとともに、非ＸＭＬ文書として異常終了する。
【００５５】
以上説明したように本実施の形態３によれば、非正規化ＸＭＬ文書を多く解析する環境であっても正規化パーサ１００２を用いた解析を効率良く行うことができる。
【００５６】
＜実施の形態４＞
本実施の形態４及び５では、本実施の形態に係るパーサを備え、ネットワークを介してＸＭＬ文書を交換するノードの例を示す。まず実施の形態４ではノード側に正規化機能を持たせた場合で説明する。
【００５７】
図１２は、本発明の実施の形態４に係るパーサを持つノードが接続されたネットワークを説明する図である。
【００５８】
正規化ＸＭＬ対応ノード１２１３〜１２１５，１２２３〜１２２４は、本実施の形態４に係るパーサを備えている。また、これらのノードは他のノードへＸＭＬ文書を送る際、常に正規化ＸＭＬ文書を出力する。一方、汎用ＸＭＬ対応ノード１２３３〜１２３４は、一般的なパーサを有し、他のノードへは汎用のＸＭＬ文書を出力する。また、汎用ＸＭＬ対応ノード１２３３〜１２３４の持つパーサは正規化されていないＸＭＬ文書を解析する機能を持つ。
【００５９】
これらのノードは各ＬＡＮ１２１１，１２２１，１２３１に接続され、それぞれゲートウェイ１２１２，１２２２，１２３２を介して共通のＷＡＮ１２０１へ接続されている。全てのノードはそれぞれネットワーク１２０１，１２１１，１２２１，１２３１上で一意の識別子を持っている。そして全てのノードは、上記ＬＡＮ１２１１，１２２１，１２３１、ゲートウェイ１２１２，１２２２，１２３２、ＷＡＮ１２０１を介することで相互にデータを交換する通信経路を確保している。
【００６０】
図１３は、本実施の形態４に係る正規化ＸＭＬ対応ノード１２１３の構成を示すブロック図である。尚、このノードのハードウェア構成は、前述の実施の形態１の構成と同じであるためその説明を省略する。
【００６１】
この正規化ＸＭＬ対応ノード１２１３はパーサ部１３０１を有し、その内部にはＬＡＮを介してＸＭＬ文書を受け取るための入力Ｉ／Ｆ部１３０２と、入力ＸＭＬ文書が正規化ＸＭＬ文書であるか否かを判定する正規化判定部１３０３とを備える。他の構成要素は前述の実施の形態と同様である。また、他の正規化ＸＭＬ対応ノード１２１４〜１２１５，１２２３〜１２２４も同様の構成となっている。
【００６２】
正規化判定部１３０３は、予めネットワーク上にある正規化ＸＭＬ対応ノードと、該当するノードのネットワークアドレスの対応テーブルを取得しておく。ネットワークアドレスとして、ドメインやサブネットアドレス、ゲートウェイのアドレスといった複数のノードを一括して指し示す情報を利用することもできる。本実施の形態４では、このサブネットアドレスを利用して、ＬＡＮごとに正規化ＸＭＬ対応ノードを指定するものとする。
【００６３】
正規化判定部１３０３は、正規化ＸＭＬ対応ノードからのＸＭＬ文書であれば、その文書を正規化パーサ部１００２に送り、出力インターフェース部５０７を介してアプリケーション５０９に出力する。一方、正規化ＸＭＬ対応ノードからのＸＭＬ文書でないときは、その受信したＸＭＬ文書を正規化部５０４に送って正規化し、その結果を正規化パーサ部１００２に送り、出力インターフェース部５０７を介してアプリケーション５０９に出力する。
【００６４】
尚、図１２では、ＬＡＮ１２１１とＬＡＮ１２２１が正規化ＸＭＬ対応ノードから構成されており、各ＬＡＮに対応するサブネットアドレスを用いることで正規化ＸＭＬ対応ノードを指定できる。
【００６５】
図１４は、本実施の形態４に係るパーサ部１３０１における処理手順を説明するフローチャートである。以下、他のノードから受け取ったＸＭＬ文書を解析する処理手順を説明する。尚、このフローチャートで示される処理を実行するプログラムは、その実行時にはＲＡＭ１０３に記憶され、ＣＰＵ１０１の制御の下に実行される。
【００６６】
正規化ＸＭＬ対応ノード１２１３は、ネットワークを介してＸＭＬ文書を受け取ると、まずステップＳ１４０１で、正規化判定部１３０３を用いてＸＭＬ文書の送信元ノードのアドレスを確認する。次にステップＳ１４０２で、送信元アドレスが正規化ＸＭＬノードに対応するサブネットに含まれていれば、その受け取ったＸＭＬ文書が正規化ＸＭＬ文書であると判断してステップＳ１４０６に進む。ステップＳ１４０６で、そのＸＭＬ文書を正規化パーサ部１００２に出力して解析し、ステップＳ１４０７で解析に成功したかどうかを判定する。成功した場合はステップＳ１４０８に進み、正規化パーサ部１００２にて解析した結果をアプリケーションへ通知する。こうしてステップＳ１４０９で、正常終了する。一方、ステップＳ１４０７で、解析に成功しないと判定した場合はステップＳ１４０５に進み、異常終了する。
【００６７】
本実施の形態４では、ＬＡＮ１２１１とＬＡＮ１２２１に接続されたノード１２１４〜１２１５，１２２３〜１２２４がサブネットアドレスの情報より正規化ＸＭＬ対応ノードと判断される。よって、これらのノードより受け取ったＸＭＬ文書は、全て正規化ＸＭＬ文書として判断され、正規化処理を行わずに正規化パーサ部１００２により解析が行われる。
【００６８】
一方、送信元アドレスが正規化ＸＭＬノードの属するサブネットアドレス以外の場合は、ステップＳ１４０２で、汎用ＸＭＬ対応ノードから送信されたＸＭＬ文書であると判断する。この場合はステップＳ１４０３に進み、その文書を正規化部５０４に送って正規化処理を行う。ここでエラーが発生しなければステップＳ１４０６に進み、正規化パーサ部１００２による解析及びアプリケーションへの結果の通知を行う（Ｓ１４０６〜１４０８）。もしエラーが発生するとステップＳ１４０５で、異常終了となる。
【００６９】
以上説明したように本実施の形態４によれば、必要な場合のみ正規化を行い、正規化ＸＭＬ文書に対して、高速かつ軽量な正規化ＸＭＬ部のみを利用するパーサを提供することができる。このパーサを使うことで、受信したデータ毎に最適なコストで解析処理を行うことができる。
【００７０】
尚、正規化判定部１３０３がネットワーク上のアドレスと正規化、非正規化ネットワークとの対応情報を持たない場合でも、前述の実施の形態１〜３に示した各パーサを正規化ＸＭＬ対応ノード内のパーサ部１３０１として利用する。すると、正規化・汎用ＸＭＬ対応ノードとのＸＭＬ文書の交換を効率良く行うことができる。
【００７１】
＜実施の形態５＞
この実施の形態５では、ゲートウェイ側に正規化機能を持たせ、ゲートウェイとノードで一組の汎用パーサとする例を示す。前述の実施の形態４とは異なり、正規化ＸＭＬ対応ノードは正規化判定部１３０３や正規化部５０４を備えず、正規化ＸＭＬ対応ノードが属するＬＡＮを管理するゲートウェイ１２１２，１２２２側で正規化判定部１３０３、正規化部５０４を備える。
【００７２】
図１５は、本発明の実施の形態５に係るゲートウェイ１５０１の構成を示すブロック図で、前述の図１３と共通する部分は同じ記号で示し、それらの説明を省略する。
【００７３】
ＷＡＮインターフェース部１５０２は、ＷＡＮ１２０１と、このゲートウェイ１５０１とを接続するインターフェース部である。正規化判定部１３０３は、ＷＡＮインターフェース部１５０２から入力した文書が正規化ＸＭＬ文書かどうかを判定し、正規化ＸＭＬ文書であれば、その文書をＬＡＮインターフェース部１５０３を介してＬＡＮ１２１１に出力する。一方、正規化ＸＭＬ文書でないときは、その受信したＸＭＬ文書を正規化部５０４に送って正規化し、その結果をＬＡＮインターフェース部１５０３を介してＬＡＮ１２１１に出力する。
【００７４】
図１６は、実施の形態５に係るノード１６０１の構成を示すブロック図で、前述の図５、図１３と共通する部分は同じ記号で示し、それらの説明を省略する。
【００７５】
図１５に示すゲートウェイ１５０１は、内部に正規化判定部１３０３を備え、前述の実施の形態４と同様の方法で正規化及び非正規化ＸＭＬ文書を判定する。正規化部５０４も前述の実施の形態４の正規化部と同様の処理を行う。
【００７６】
図１６に示す正規化ＸＭＬ対応ノード１６０１は、内部に正規化パーサ部１００２を備え、これも実施の形態４と同様の処理を行う。
【００７７】
図１７は、本発明の実施の形態５に係るゲートウェイ１５０１の処理手順を示すフローチャートである。尚、このフローチャートで示される処理を実行するプログラムは、その実行時にはＲＡＭ１０３に記憶され、ＣＰＵ１０１の制御の下に実行される。
【００７８】
ＬＡＮ１２１１内のノード間でＸＭＬ文書を交換する場合、ゲートウェイ１２１２を経由しないため、各ノード間で直接、正規化ＸＭＬ文書が交換される。この処理手順は図示しないが、例えば、正規化ＸＭＬ対応ノード１２１４から正規化ＸＭＬ対応ノード１２１３へメッセージが送られた場合、正規化ＸＭＬ対応ノード１２１４は正規化ＸＭＬ文書のみを出力する。このため、そのままＸＭＬ対応ノード１２１３が備える正規化パーサ部１００２で、その文書を解析し、アプリケーション５０９へメッセージの内容を伝える（図１６）。
【００７９】
一方、例えば正規化ＸＭＬ対応ノード１２１４が他のＬＡＮ１２２１に属する正規化ＸＭＬ対応ノード１２２３からメッセージを受け取る場合、このメッセージは、順にゲートウェイ１２２２，１２１２を転送される。ゲートウェイ１２２２は、ＬＡＮ１２２１からＷＡＮ１２０１の方向に転送するメッセージに対しては何も加工せずにそのまま転送する。一方、ゲートウェイ１２１２は、ＷＡＮ１２０１からＬＡＮ１２１１へ転送するメッセージに対して、前述の実施の形態４と同様の正規化判定を行う。今回は正規化ＸＭＬ対応ノード１２２３から送られたメッセージであるため、正規化ＸＭＬ文書であると判断し（Ｓ１７０２）、そのままＬＡＮ１２１１へ転送する（Ｓ１７０６）。正規化対応ノード１２１４も、その受け取ったメッセージをそのまま正規化ＸＭＬ文書として解析し、アプリケーション５０９へ内容を通知する。
【００８０】
また例えば正規化ＸＭＬ対応ノード１２１４が他のＬＡＮ１２３１に属する汎用ＸＭＬ対応ノード１２３３からメッセージを受け取る場合も順に、ゲートウェイ１２３２，１２１２を転送される。ゲートウェイ１２３２は通常のゲートウェイであるため、メッセージを何も加工せずにＬＡＮ１２３１からＷＡＮ１２０１の方向に転送する。ゲートウェイ１２１２は、ＷＡＮ１２０１からＬＡＮ１２１１へ転送するメッセージに対して、前述の実施の形態４と同様の正規化判定を行う。今回は汎用ＸＭＬ対応ノード１２３３から送られたメッセージであるため、ステップＳ１７０２で非正規化ＸＭＬ文書であると判断する。よってステップＳ１７０３に進み、正規化部５０４で正規化した後ステップＳ１７０６に進み、その正規化したＸＭＬ文書をＬＡＮ１２１１へ転送する。正規化対応ノード１２１４は、受け取ったメッセージが既に正規化されているため、そのまま正規化ＸＭＬ文書として解析を行い、アプリケーション５０９へ内容を通知する。
【００８１】
以上説明したように本実施の形態５によれば、正規化ＸＭＬ対応ノードが属するＬＡＮ内部では正規化ＸＭＬ文書のみが転送されるようになる。そのため実施の形態４では正規化ＸＭＬ対応ノードに持たせていた正規化判定部や正規化部が不要となり、正規化ＸＭＬ対応ノードが非常に軽量かつ高速なものを実装することができるようになる。
【００８２】
一方で、ゲートウェイ側の負荷は上がるが、小型軽量安価といった特徴が求められるノードよりも比較的コストをかけることができる。また、直接ユーザが触れるものではなく小型軽量等の要求が強く求められるものでもないため負荷に対応し易い。よって、正規化処理に必要な資源を各ノードからゲートウェイに集中させることで、総合的に見てパフォーマンスを向上させることができる。
【００８３】
尚、本実施の形態５では、ゲートウェイに正規化判定部１３０３を持たせたが、ホストの情報ではなく、転送するデータ自体を解析して正規化文書か、非正規化文書かを判定することもできる。その場合は、正規化判定部に正規化ＸＭＬとして要求される文法情報を持たせ、転送データと比較するなどの方法を取る方法などが利用できる。
【００８４】
図１８は、本発明の実施の形態５の変形例であるゲートウェイ１５０１の構成を示すブロック図である。この図１８に示すように、図１５に示す正規化判定部１３０３を無くし、ＷＡＮ１２０１からＬＡＮへ転送されるＸＭＬ文書に対し全て正規化を行うようにしてもよい。元々正規化されているＸＭＬ文書を更に正規化しても結果に影響はないため、図１５に示すゲートウェイを利用した場合と同様に、ＬＡＮで正規化ＸＭＬ文書のみ利用する環境が保たれ、同様の効果を奏することができる。
【００８５】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成される文書処理システムに適用しても良いし、また、一つの機器からなる文書処理装置に適用しても良い。
【００８６】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。上記実施形態では、図５から７、及び図９から１３のフローチャートに対応したプログラムである。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。  従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００８７】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００８８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００８９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【００９０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９１】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９２】
【図１】本発明の実施の形態に係る情報処理装置の概略構成を説明するブロック図である。
【図２】本実施の形態における解析対象である正規化ＸＭＬ文書の一例を示す図である。
【図３】本実施の形態における解析対象である非正規化ＸＭＬ文書の一例を示す図である。
【図４】本実施の形態における解析対象の非ＸＭＬ文書の一例を示す図である。
【図５】本発明の実施の形態１に係るＤＯＭパーサの機能構成を示すブロック図である。
【図６】本発明の実施の形態１に係るＤＯＭパーサにおける処理手順を説明するフローチャートである。
【図７】本発明の実施の形態１〜２に係る文法違反情報対応テーブルの具体例を示す図である。
【図８】本発明の実施の形態２に係るＤＯＭパーサの機能構成を示すブロック図である。
【図９】実施の形態２に係るＤＯＭパーサにおける処理手順を説明するフローチャートである。
【図１０】本発明の実施の形態３に係るパーサの構成を説明するブロック図である。
【図１１】実施の形態３に係るパーサにおける処理手順を説明するフローチャートである。
【図１２】本発明の実施の形態４，５に係るパーサを持つノードが接続されたネットワークを説明する図である。
【図１３】本実施の形態４に係る正規化ＸＭＬ対応ノードの構成を示すブロック図である。
【図１４】本実施の形態４に係るパーサ部における処理手順を説明するフローチャートである。
【図１５】本発明の実施の形態５に係るゲートウェイの構成を示すブロック図である。
【図１６】実施の形態５に係るノードの構成を示すブロック図である。
【図１７】本発明の実施の形態５に係るゲートウェイの処理手順を示すフローチャートである。
【図１８】本発明の実施の形態５の変形例であるゲートウェイの構成を示すブロック図である。
【図１】
2007122278.tif 000003
【図２】
2007122278.tif 000004
【図３】
2007122278.tif 000005
【図４】
2007122278.tif 000006
【図５】
2007122278.tif 000007
【図６】
2007122278.tif 000008
【図７】
2007122278.tif 000009
【図８】
2007122278.tif 000010
【図９】
2007122278.tif 000011
【図１０】
2007122278.tif 000012
【図１１】
2007122278.tif 000013
【図１２】
2007122278.tif 000014
【図１３】
2007122278.tif 000015
【図１４】
2007122278.tif 000016
【図１５】
2007122278.tif 000017
【図１６】
2007122278.tif 000018
【図１７】
2007122278.tif 000019
【図１８】
2007122278.tif 000020