(57)【要約】【課題】構造化文書１２に係る一連のイベントをアプリケーション・プログラム１１へ通知する処理を能率化する。【解決手段】構造化文書用インターフェース装置１０は、アプリケーション・プログラム１１からの構造化文書Ａについての処理要求に対して、該構造化文書Ａについて所定の処理を行ってから、構造化文書Ａに係る一連のイベントを該アプリケーション・プログラム１１へ順番に通知する。ストア手段１５は、該通知した一連のイベントをイベント・セット情報としてキャッシュ１６にストアする。次に、構造化文書Ａについて同一又は別のアプリケーション・プログラム１１から処理要求を受けたときには、キャッシュ１６からイベント・セット情報を読込んで、それに基づいて構造化文書Ａに係る一連のイベントを再生し、該再生した一連のイベントを、構造化文書Ａについての処理を要求して来たアプリケーション・プログラム１１へ順番に通知する。【選択図】　　　図２
2004062716.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用インターフェース装置において、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアするストア手段、及び
処理対象の構造化文書についてそのイベント・セット情報が前記キャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第１の通知手段、
を有していることを特徴とする構造化文書用インターフェース装置。
【請求項２】
そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第２の通知手段を有し、
前記ストア手段は、第２の通知手段がアプリケーション・プログラムへ通知した前記一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアすることを特徴とする請求項１記載の構造化文書用インターフェース装置。
【請求項３】
処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する第１の処理手段、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する第２の処理手段、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには前記第１の処理手段に処理対象の構造化文書についての処理を委譲し、また、そのイベント・セット情報がキャッシュに有るときには前記第２の処理手段に処理対象の構造化文書についての処理を委譲する制御手段、
を有していることを特徴とする構造化文書用インターフェース装置。
【請求項４】
前記制御手段は、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことを特徴とする請求項３記載の構造化文書用インターフェース装置。
【請求項５】
前記制御手段は、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩにより通知されるパーサーであることを特徴とする請求項４記載の構造化文書用インターフェース装置。
【請求項６】
前記第１及び第２の処理手段はそれぞれ対応のパーサーに実装されるのに対し、前記制御手段は処理要求元のアプリケーション・プログラムに実装されていることを特徴とする請求項４記載の構造化文書用インターフェース装置。
【請求項７】
アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用処理方法において、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第１のステップ、及び
処理対象の構造化文書についてそのイベント・セット情報が前記キャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第２のステップ、
を有していることを特徴とする構造化文書用処理方法。
【請求項８】
そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第３のステップ、及び
第３のステップにおいてアプリケーション・プログラムへ通知した前記一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第４のステップ、
を有していることを特徴とする請求項７記載の構造化文書用処理方法。
【請求項９】
処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する標準処理用ステップ、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する短縮処理用ステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには前記標準処理用ステップを実行するように制御し、また、そのイベント・セット情報がキャッシュに有るときには前記短縮処理用ステップを実行するように制御する制御ステップ、
を有していることを特徴とする構造化文書用処理方法。
【請求項１０】
前記制御ステップは、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことを特徴とする請求項９記載の構造化文書用処理方法。
【請求項１１】
前記制御ステップは、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩにより通知されるパーサーにおいて実施されるものであることを特徴とする請求項１０記載の構造化文書用処理方法。
【請求項１２】
前記第１及び第２の処理ステップは、それぞれ対応のパーサーにおいて実施されるものであるのに対し、前記制御ステップは、構造化文書についての処理要求を出すアプリケーション・プログラムにおいて実施されるものであることを特徴とする請求項１０記載の構造化文書用処理方法。
【請求項１３】
アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用処理プログラムにおいて、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第１のステップ、及び
処理対象の構造化文書についてそのイベント・セット情報が前記キャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第２のステップ、
をコンピュータに実行させるための構造化文書用処理プログラム。
【請求項１４】
そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第３のステップ、及び
第３のステップにおいてアプリケーション・プログラムへ通知した前記一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第４のステップ、
をコンピュータに実行させるための請求項１３記載の構造化文書用処理プログラム。
【請求項１５】
処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する標準処理用ステップ、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する短縮処理用ステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには前記標準処理用ステップを実行するように制御し、また、そのイベント・セット情報がキャッシュに有るときには前記短縮処理用ステップを実行するように制御する制御ステップ、
をコンピュータに実行させるための構造化文書用処理プログラム。
【請求項１６】
前記制御ステップは、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことをコンピュータに実行させるための請求項１５記載の構造化文書用処理プログラム。
【請求項１７】
前記制御ステップは、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩにより通知されるパーサーにおいて実施されるものであることをコンピュータに実行させるための請求項１６記載の構造化文書用処理プログラム。
【請求項１８】
前記第１及び第２の処理ステップは、それぞれ対応のパーサーにおいて実施されるものであるのに対し、前記制御ステップは、構造化文書についての処理要求を出すアプリケーション・プログラムにおいて実施されるものであることをコンピュータに実行させるための請求項１６記載の構造化文書用処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、構造化文書用インターフェース装置、方法及びプログラムに関し、詳しくはＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）文書等の構造化文書について、アプリケーション・プログラムからの処理要求に応じて文字コード調整及び字句解析の処理と共に、該アプリケーション・プログラムへ、構造化文書に係る一連のイベントを通知する処理とを実施する構造化文書用インターフェース装置、方法及びプログラムに関するものである。
【０００２】
【従来の技術】
近年、ＸＭＬ文書は、構成情報等の静的な情報を記述するために、使用される傾向が増大している。ＸＭＬ文書は高い可読性をもつので、アプリケーション・プログラムは、ＸＭＬ文書をインタープリタ形式で、つまり、必要のつど、ＳＡＸパーサー（ＳＡＸ：Ｓｉｍｐｌｅ　ＡＰＩ　ｆｏｒ　ＸＭＬ）を起動して、ＳＡＸパーサーによりＸＭＬ文書を解析させ、解析結果としてのイベントをＳＡＸパーサーより通知される形式で、該ＸＭＬ文書を処理するのが望ましいことが多い。
【０００３】
従来のＳＡＸパーサーは、アプリケーション・プログラムからの処理要求を受けると、一律に、（ａ）該当ＸＭＬ文書を読込み、（ｂ）文字コード調整、（ｃ）字句解析、及び（ｄ）処理要求して来たアプリケーション・プログラムへの一連のイベントの通知を行っている。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、構造化文書についてのアプリケーション・プログラムからの処理要求に対して該構造化文書に対応の一連のイベントを該アプリケーション・プログラムへ通知する構造化文書用インターフェース装置、方法、及びプログラムにおいて、処理速度を改善することである。
【０００５】
【課題を解決するための手段】
本発明の構造化文書用インターフェース装置及び方法は、キャッシュを利用して、アプリケーション・プログラムへ通知した一連のイベントの情報としてのイベント・セット情報をキャッシュにストアする。そして、次に、前回のアプリケーション・プログラムと同一又は別のアプリケーション・プログラムから、イベント・セット情報がキャッシュにストアしてある構造化文書について、処理要求があった場合には、該構造化文書についてキャッシュにストアしてあるイベント・セット情報に基づいて、該構造化文書に係る一連のイベントを順番に、今回の処理要求元のアプリケーション・プログラムへ通知する。こうして、構造化文書用インターフェース装置が、一度、処理して、キャッシュにイベント・セット情報をストアしてそれが残っている構造化文書について、同一又は別のアプリケーション・プログラムが構造化文書用インターフェース装置へ再度、処理要求して来たときは、該アプリケーション・プログラムへのイベント通知処理のための処理量及び処理時間を大幅に低減できる。また、キャッシュにストアされるイベント・セット情報はアプリケーション・ユニークなものではないので、すなわち特定のアプリケーション・プログラムのみへのイベント通知しか適用できないものではないので、キャッシュにストアされるイベント・セット情報の活用が向上する。
【０００６】
構造化文書とは、各内容が所定の要素に分類されている文書を含む。各要素は階層化されていてもよいとする。すなわち、本発明の構造化文書には、構造化及び階層化された文書を含む。構造化及び階層化された文書として例えばＸＭＬ文書がある。構造化文書における各要素の内容は典型的にはテキストで記述される。構造化文書とは、各内容が文書構造上のどの要素に該当するかを示しつつ、要素内容を記述した文書構造定義文書と把握することもできる。構造化文書は文書構造を例えばタグと要素名とにより定義している。
【０００７】
本発明の構造化文書用インターフェース装置は、アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する。該構造化文書用インターフェース装置は、アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアするストア手段、及び処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第１の通知手段、を有している。
【０００８】
本発明の構造化文書用インターフェース装置は、処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する第１の処理手段、処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する第２の処理手段、及び処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには第１の処理手段に処理対象の構造化文書についての処理を委譲し、また、そのイベント・セット情報がキャッシュに有るときには第２の処理手段に処理対象の構造化文書についての処理を委譲する制御手段、を有している。
【０００９】
本発明の構造化文書用処理方法は、アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する。該構造化文書用処理方法は、アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第１のステップ、及び処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第２のステップ、を有している。
【００１０】
本発明の構造化文書用処理方法は、処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する標準処理用ステップ、処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する短縮処理用ステップ、及び処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには標準処理用ステップを実行するように制御し、また、そのイベント・セット情報がキャッシュに有るときには短縮処理用ステップを実行するように制御する制御ステップ、を有している。
【００１１】
【発明の実施の形態】
図１は構造化文書入手のためにインターネット／イントラネット１０１が利用されるシステムの構成図である。クライアント１０１は、複数個の構造化文書サーバ１０２へインターネット／イントラネット１０１を介して接続されている。例えば、クライアント１１は、構造化文書１２を使用する後述のアプリケーション・プログラム１１（図２）と共に、後述の構造化文書用インターフェース装置１０、２０、又は２５を実装する。クライアント１０１は、今回の処理対象の構造化文書１２（図２）を管理する構造化文書サーバ１０２へＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）を指定してＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）を使ってアクセスし、該所望の構造化文書１２を入手する。なお、アプリケーション・プログラム及び構造化文書用インターフェース装置を実装するコンピュータが、自身のローカルのハード・ディスク装置内に処理対象の構造化文書を有していることもあり、そのような場合はパス名やファイル名等を利用して、構造文書を入手する。
【００１２】
図２は本発明の第１の実施形態としての構造化文書用インターフェース装置１０の機能ブロック図である。図２におけるＳ１〜Ｓ７は後述の図３のステップＳ１〜Ｓ７に対応する。構造化文書用インターフェース装置１０は、種々のアプリケーション・プログラム１１，１１，・・・から種々の構造化文書１２，１２，・・・についての処理要求を受け付ける。構造化文書１２は、例えば、構造化文書用インターフェース装置１０及びアプリケーション・プログラム１１を実装するコンピュータ又は該コンピュータとはＬＡＮ又はインターネットを介して接続されているサーバの記憶装置の所定フォルダ内に存在する。構造化文書１２は、階層化された構造化文書であってもよく、階層化された構造化文書として例えばＸＭＬ文書がある。アプリケーション・プログラム１１，１１，・・・は、例えば、構造化文書１２の内容に基づく音声応答を電話問い合わせに対して実施するアプリケーション・プログラムや、オペレータの指示に応じて構造化文書１２の内容に基づく案内画面を作るアプリケーション・プログラムである。以下、説明の便宜上、処理要求対象の構造化文書１２を「構造化文書Ａ」と呼び、構造化文書Ａについての処理要求を構造化文書用インターフェース装置１０へ先に出したアプリケーション・プログラム１１を「アプリケーション・プログラムＡ」と呼び、構造化文書Ａについての処理要求を構造化文書用インターフェース装置１０へアプリケーション・プログラムＡの後に出したアプリケーション・プログラム１１を「アプリケーション・プログラムＢ」と呼ぶことにする。典型的には、アプリケーション・プログラムＢはアプリケーション・プログラムＡと異なるものであるが、アプリケーション・プログラムＢがアプリケーション・プログラムＡである場合もある。構造化文書用インターフェース装置１０は、ストア手段１５及び第１の通知手段１７を備え、キャッシュ１６を適宜、利用する。
【００１３】
構造化文書用インターフェース装置１０は、アプリケーション・プログラムＡからの構造化文書Ａについての処理要求に対して（Ｓ１）、構造化文書Ａを読込んで、構造化文書Ａの文字コード調整及び字句解析を実施しつつ（Ｓ２）、構造化文書Ａに係る一連のイベントを、今回の処理要求元であるアプリケーション・プログラムＡへ順番に通知する（Ｓ３）。なお、文字コード調整とは、構造化文書が日本語ＸＭＬ文書である場合、例えばＳｈｉｆｔ　ＪＩＳからユニコードへの変換である。典型的なＸＭＬパーサーはＸＭＬ文書をユニコードへ変換して処理する。典型的な構造化文書用インターフェース装置は、構造化文書Ａの文字コード調整及び字句解析の両方を実施するが、一部の構造化文書用インターフェース装置は、構造化文書Ａの文字コード調整を省略して、直ちに構造化文書Ａの字句解析を実施することがある。構造化文書用インターフェース装置１０のストア手段１５は、アプリケーション・プログラムＡへ通知した一連のイベントをイベント・セット情報として構造化文書Ａに対応付けてキャッシュ１６にストアする（Ｓ４）。注意すべきは、字句解析においてエラーが見つかったときは、キャッシュ１６へのイベント・セット情報のストアは中止されることである。したがって、構造化文書Ａに字句解析上のエラーが１個でもあれば、構造化文書Ａについてのキャッシュ１６へのイベント・セット情報のストアは行われない。該エラーには例えば、要素名の開始のタグはあるものの、終わりのタグが無いと言うものがある。構造化文書が例えばＸＭＬ文書である場合の字句解析上のエラーは、Ｗ３Ｃ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ　Ｃｏｎｓｏｒｔｉｕｍ）のＸＭＬ１．０（１．０は本願出願時のバージョン）の推薦（Ｒｅｃｏｍｍｎｄａｔｉｏｎ）に定義されている通りであり、ＸＭＬ１．０の仕様書で規定しているＸＭＬ規則に違反するものはすべて、字句解析上のエラーに含まれる。次に、アプリケーション・プログラムＢが構造化文書用インターフェース装置１０へ構造化文書Ａについての処理要求を出したとする（Ｓ５）。構造化文書用インターフェース装置１０の第１の通知手段１７は、アプリケーション・プログラムＡが構造化文書Ａに対する処理要求を出したときの処理全体を繰り返すことなく、具体的には、構造化文書Ａの再び読込んで、アプリケーション・プログラムＡの文字コード調整及び字句解析を再び実施する処理はせずに、構造化文書Ａについてキャッシュ１６にストアされているイベント・セット情報を読込み（Ｓ６）、読込んだイベント・セット情報に基づいて一連のイベントを検出し、該一連のイベントをアプリケーション・プログラムＢへ順番に通知する（Ｓ７）。
【００１４】
図３は図２の構造化文書用インターフェース装置１０の処理手順のフローチャートである。構造化文書用インターフェース装置１０はアプリケーション・プログラム１１に対して構造化文書ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）としての機能を果たす。Ｓ１では、アプリケーション・プログラムＡから構造化文書Ａについての処理要求を受け付ける。Ｓ２では、構造化文書Ａを読込む。アプリケーション・プログラムＡからの構造化文書Ａについての処理要求では、構造化文書Ａはパス名（構造化文書Ａがローカル・ファイルの場合）又はＵＲＬ（構造化文書Ａをネットワークを介して入手する場合）で特定されており、構造化文書Ａの読込みは、構造化文書用インターフェース装置１０を実装するコンピュータが直接（構造化文書Ａがパス名で特定されているとき）又はＨＴＴＰ（構造化文書ＡがＵＲＬで特定されているとき）を介して行われる。Ｓ３では、アプリケーション・プログラムＡへ該構造化文書Ａに係る一連のイベントを順番に通知する。Ｓ４では、Ｓ３において通知した一連のイベントをイベント・セット情報として構造化文書Ａに対応付けてキャッシュ１６にストアする。Ｓ５では、アプリケーション・プログラムＢから構造化文書Ａについての処理要求を受け付ける。Ｓ６では、キャッシュ１６におけるアプリケーション・プログラムＡについてのイベント・セット情報を読み出す。Ｓ７では、読み出したイベント・セット情報に基づいて一連のイベントを検出し、各イベントを順番にアプリケーション・プログラムＢへ通知する。
【００１５】
図４は本発明の第２の実施形態としての構造化文書用インターフェース装置２０の機能ブロック図である。図４におけるＳ１〜Ｓ１３は後述の図５のステップＳ１〜Ｓ１３に対応する。構造化文書用インターフェース装置２０について、構造化文書用インターフェース装置１０との同一部分についての説明は省略し、構造化文書用インターフェース装置１０との相違点について説明する。構造化文書用インターフェース装置２０では、第２の通知手段２２が構造化文書用インターフェース装置１０に対して付加されている。ここで次の仮定を行う。該仮定では、キャッシュ１６には、構造化文書Ａのイベント・セット情報がストアされているものの、構造化文書Ａとは別の構造化文書としての構造化文書Ｂのイベント・セット情報がまだストアされていない状態であるとし、さらに、この状態において、アプリケーション・プログラムＢが構造化文書用インターフェース装置２０に対して構造化文書Ｂの処理を要求したとする（Ｓ１０）。第２の通知手段２２は、構造化文書Ｂについて、それを読込んで、文字コード調整及び字句解析を実施した後（Ｓ１１）、字句上のエラーが無ければ、アプリケーション・プログラムＢへ構造化文書Ｂについての一連のイベントを順番に通知する（Ｓ１２）。一方、ストア手段１５は、構造化文書用インターフェース装置１０（図２）が構造化文書Ａについてのイベント・セット情報をキャッシュ１６にストアしたときと同様に、アプリケーション・プログラムＢへ通知した一連のイベントをイベント・セット情報として構造化文書Ｂに対応付けてキャッシュ１６にストアする（Ｓ１３）。
【００１６】
図５は図４の構造化文書用インターフェース装置２０の処理手順のフローチャートである。図５において、Ｓ１〜Ｓ４は図３のＳ１〜Ｓ４と同一であるので、説明は省略し、Ｓ１０〜Ｓ１３についてのみ説明する。Ｓ１０〜Ｓ１３は、構造化文書Ａに対するＳ１〜Ｓ４の処理に対して、構造化文書Ｂに対する処理となっており、内容はＳ１〜Ｓ４にそれぞれ対応している。Ｓ１０では、アプリケーション・プログラムＢから構造化文書Ｂについての処理要求を受け付ける。Ｓ１１では、構造化文書Ｂを読込む。アプリケーション・プログラムＢからの構造化文書Ｂについての処理要求では、構造化文書Ａの場合と同様に、構造化文書Ｂはパス名又はＵＲＬで特定されている。Ｓ１２では、アプリケーション・プログラムＢへ該構造化文書Ｂに係る一連のイベントを順番に通知する。Ｓ１３では、Ｓ１２において通知した一連のイベントをイベント・セット情報として構造化文書Ｂに対応付けてキャッシュ１６にストアする。
【００１７】
図６は本発明の第３の実施形態としての構造化文書用インターフェース装置２５の機能ブロック図である。図６におけるＳ２０〜Ｓ２９は後述の図７のＳ２０〜Ｓ２９に対応する。構造化文書用インターフェース装置２５について構造化文書用インターフェース装置２０との相違点を説明する。構造化文書用インターフェース装置２５は、第１の処理手段２６、第２の処理手段２７、及び制御手段２８を有している。制御手段２８は、アプリケーション・プログラムＡから或る構造化文書についての処理要求を受ける（Ｓ２０）、該或る構造化文書を構造化文書Ａと呼ぶことにする。制御手段２８は、該構造化文書Ａについてのイベント・セット情報がキャッシュ１６にストアされていないか調べ（Ｓ２１）、無いと分かれば、第１の処理手段２６へ処理の指示を出す（Ｓ２２）。第１の処理手段２６は、構造化文書Ａを読込んで、文字コード調整及び字句解析を実施する（Ｓ２２）。第１の処理手段２６は、構造化文書Ａについての字句解析の結果、エラー無しと判明すれば、構造化文書Ａについての一連のイベントを順番にアプリケーション・プログラムＡへ通知する（Ｓ２３）。第１の処理手段２６は、また、該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュ１６にストアする（Ｓ２４）。その後、制御手段２８は、アプリケーション・プログラムＢ（アプリケーション・プログラムＢは、アプリケーション・プログラムＡであることもあり得る。）から或る構造化文書についての処理要求を受け付ける（Ｓ２０）。制御手段２８は、アプリケーション・プログラムから処理要求のあった構造化文書についてのイベント・セット情報がキャッシュ１６に有るか無いかを調べる（Ｓ２１）。Ｓ２０で受け付けた該或る構造化文書が、構造化文書Ａとは異なる構造化文書Ｂであるときは、構造化文書Ｂについてのイベント・セット情報はキャッシュ１６には無いので、制御手段２８は第１の処理手段２６に処理を委譲する（ｄｅｌｅｇａｔｅ）。Ｓ２０で受け付けた該或る構造化文書が、構造化文書Ａであるときは、構造化文書Ａについてのイベント・セット情報はキャッシュ１６に有るので、制御手段２８は第２の処理手段２７に処理を委譲する（Ｓ２８）。第２の処理手段２７は、キャッシュ１６から構造化文書Ａに係るイベント・セット情報を読込み（Ｓ２８）、該イベント・セット情報に基づいて、構造化文書Ａに係る一連のイベントを順番にアプリケーション・プログラムＢへ通知する（Ｓ２９）。
【００１８】
図７は図６の構造化文書用インターフェース装置２５の処理手順のフローチャートである。Ｓ２０，Ｓ２２〜Ｓ２４は図３のＳ１〜Ｓ４に対応する。Ｓ２８，Ｓ２９は図３のＳ６，Ｓ７に対応する。Ｓ２０では、或るアプリケーション・プログラムから或る構造化文書についての処理要求を受け付ける。Ｓ２１では、該或る構造化文書に係るイベント・セット情報がキャッシュ１６に有るか無いかを調べ、無ければ、Ｓ２２へ進み、また、有れば、Ｓ２８へ進む。Ｓ２２では、処理要求のあった構造化文書を読込み、文字コード調整及び字句解析等の処理を行う。字句上のエラーがなかったならば、Ｓ２３では、Ｓ２０において処理要求を出して来たアプリケーション・プログラムに、処理対象の構造化文書に係る一連のイベントを通知する。Ｓ２４では、Ｓ２３において通知した一連のイベントをイベント・セット情報としてキャッシュ１６にストアする。Ｓ２８では、今回、処理要求の出された構造化文書に係るイベント・セット情報をキャッシュ１６から読み出す。Ｓ２９では、Ｓ２８に読み出したイベント・セット情報に基づいて一連のイベントを順番に、Ｓ２０で処理要求を出して来たアプリケーション・プログラムへ通知する。Ｓ２８，Ｓ２９のステップは、Ｓ２２〜Ｓ２４のステップに対して、文字コード調整や字句解析の処理が省かれるので、アプリケーション・プログラムへの一連のイベントの通知を早めることができる。
【００１９】
図６及び図７についての今までの説明では、イベント・セット情報がキャッシュ１６に有る構造化文書が、そのイベント・セット情報についてのキャッシュ１６へのストア後、変更されていないことを前提にしている。キャッシュ１６の容量上の制約のために、新規なイベント・セット情報をストアするだけ残存量がキャッシュ１６に無いときは、例えばストア日時の古いイベント・セット情報から順番に捨てられていく。或る構造化文書についてのイベント・セット情報がキャッシュ１６に捨てられずに存在する期間は、限定されているかもしれないものの、該存在期間中にも、ソース（Ｓｏｕｒｃｅ）の構造化文書が更新されることがあり、キャッシュ１６にファイル名の同じ構造化文書についてのイベント・セット情報があるとしても、ソースの構造化文書の更新を反映していない場合が起こり得る。これに対処するため、キャッシュ１６のイベント・セット情報の基になっている構造化文書が最新版のものか否かを調べ、最新版のものでなければ、該構造化文書についてキャッシュ１６におけるイベント・セット情報は利用しないことにする。なお、利用できないと判明したイベント・セット情報はキャッシュ１６から直ちに削除することが望ましい。図８は構造化文書の更新に対処してキャッシュのイベント・セット情報を利用する処理手順のフローチャートである。図８のフローチャートでは、図７のＳ２１の判断処理に加えて、Ｓ３４〜Ｓ３６が追加されている。Ｓ２１では、今回、処理要求のあった構造化文書に係るイベント・セット情報にあるか否かを判定するが、この判定では、単に、今回、処理要求のあった構造化文書と同一ファイル名Ｘの構造化文書に係るイベント・セット情報にあるか否かを判定する。すなわち、該判定では、処理対象の構造化文書についての更新の有無は問わない。Ｓ２１の判定がＮＯであれば、Ｓ２２へ進むのに対し、Ｓ２１の判定がＹＥＳであれば、Ｓ３４へ進む。Ｓ３４では、構造化文書原物（ソース構造化文書）についての作成日時Ｄ１を検出する。通常のファイル・システムでは、ファイル自体に対してファイル作成日時等の管理情報が所定の記憶エリアに記録されており、構造化文書原物についての作成日時Ｄ１は該記憶エリアへのアクセスにより検出される。Ｓ３５では、キャッシュ１６におけるファイル名Ｘについてのイベント・セット情報の基になっている構造化文書の作成日時Ｄ２を検出する。Ｓ３６では、Ｄ１がＤ２以降の日時か否か、すなわちキャッシュ１６におけるファイル名Ｘについてのイベント・セット情報の基になっている構造化文書が最新版のものであるか否かを判定し、該判定がＹＥＳであれば、Ｓ２８へ進み、ＮＯであれば、Ｓ２２へ進む。なお、ここでは更新情報の確認を日時を用いて行ったが、更新の有無を確認できるのであれば他の方法を用いることもできる。ソースの構造化文書がローカル・ファイルである場合の文書の作成日時はタイム・スタンプを検出することにより検出でき、また、ソースの構造化文書がＨＴＴＰにより入手するものである場合の文書の更新状態は、Ｌａｓｔ−Ｍｏｄｉｆｉｅｄのヘダー付加に対するサーバからの応答（サーバ応答が３０４であれは、更新無しで、２００であれば更新有り。）に基づいて検出できる。
【００２０】
制御手段２８は、（ａ）ＸＭＬパーサーのような構造化文書用パーサに実装される場合、及び（ｂ）アプリケーション・プログラム内に実装される場合がある。アプリケーション・プログラムが、構造化文書用インターフェース装置２５へＵＲＩ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｉｄｅｎｔｉｆｉｅｒｓ。後述のＵＲＬと区別。）で処理対象の構造化文書を指定するときは、構造化文書用パーサーは、ＵＲＩを読むことできるので、自ら、アプリケーション・プログラムから処理要求された構造化文書が何であるかをＵＲＩから解釈できる。したがって、ケース（ａ）には何ら支障はない。これに対して、Ｊａｖａ（Ｓｕｎ　Ｍｉｃｒｏｓｙｓｔｅｍｓ，　Ｉｎｃ．の米国及びその他の国における商標）で記述された一部のアプリケーション・プログラムは、データをバイト・ストリームで構造化文書用パーサーへ渡すことがある。すなわち、アプリケーション・プログラムは、処理要求対象の構造化文書を開いて、この開いた構造化文書Ｘの内容をバイト・ストリームの形式で構造化文書用パーサーへ渡すことがある。バイト・ストリーム、すなわち構造化文書の内容自体からは更新日時情報等の管理情報は検出不能となるので、構造化文書用パーサーがアプリケーション・プログラムからデータをバイト・ストリームで受け取る場合には、制御手段２８は、キャッシュ１６内に処理対象の構造化文書についてのイベント・セット情報が有るか無いかを判定することができない。これに対処するためには、ケース（ｂ）のように、制御手段２８はアプリケーション・プログラムに実装され、制御手段２８は、アプリケーション・プログラムが処理対象の構造化文書を開くのに先立って、該構造化文書についての作成日時等の必要情報を取得する。そして、該構造化文書Ｘに係るイベント・セット情報がキャッシュ１６にあり、かつ該イベント・セット情報が基にしている構造化文書の日時が構造化文書原物の日時と同じであるかを調べ、その結果に基づいて、構造化文書用パーサーの第１の処理手段２６及び第２の処理手段２７のいずれに処理を移譲するかを決定することになる。
【００２１】
【実施例】
図９は構造化文書用インターフェース装置としてのＳＡＸパーサー３４の構成図である。ＳＡＸパーサー３４は、キャッシュ使用決定用パーサー３５、キャッシュ・データ生成用パーサー３６、キャッシュ・データ再生用パーサー３７、及びキャッシュ・データ管理部３８を有している。ＳＡＸパーサー３４及びアプリケーション・プログラム４１は、典型的には、ＬＡＮ、イントラネット又はインターネットを介して相互に接続されているサーバ及びクライアントにそれぞれ実装される。しかしながら、ＳＡＸパーサー３４及びアプリケーション・プログラム４１は、同一のコンピュータに実装されている場合もある。アプリケーション・プログラム４１は、所定のＸＭＬファイル４８をパス名及びＵＲＬ等で指定して、該ＸＭＬファイル４８についての処理をＳＡＸパーサー３４に要求する。ＳＡＸパーサー３４のＸＭＬデータ情報取得部４５は、アプリケーション・プログラム４１から処理要求のあったＸＭＬファイル４８を読込む。なお、ＸＭＬデータ情報取得部４５は、ＸＭＬファイル４８が、ＳＡＸパーサー３４の実装されているコンピュータ内にあるときは、すなわちローカル・ファイルであるときは、パス名の指定により読込むが、ＸＭＬファイル４８が、ＳＡＸパーサー３４の実装されているコンピュータへインターネットやイントラネットを介して接続されているサーバに蓄積されているときは、ｈｔｔｐやｈｔｔｐｓ（ｈｔｔｐ　ｓｅｃｕｒｅｄ）によりＵＲＬを指定して、読込むことになる。
【００２２】
下記はＸＭＬファイル４８の内容を例示したものである。
2004062716.tif 000003
【００２３】
一方、キャッシュ使用決定用パーサー３５のキャッシュ・データ確認部４６はキャッシュ・データ管理部３８を使ってキャッシュ内をＳＡＸイベント・セット情報について検索する。キャッシュ・データ管理部３８が管理するキャッシュ内には、キャッシュの容量内で幾つかのアプリケーション・プログラム４１についてＳＡＸイベント・セット情報が蓄積可能になっている。新規のＳＡＸイベント・セット情報をキャッシュにストアしようとするときに、キャッシュにストアする容量が残されていない時は、古い方のＳＡＸイベント・セット情報から適当個数、適宜、削除して、該新規のＳＡＸイベント・セット情報をストアする容量を確保し、そこへ該新規のＳＡＸイベント・セット情報をストアすることになる。各ＸＭＬファイル４８の作成日時の情報は例えばタイム・スタンプとして記録されており、ソースのＸＭＬファイル４８のタイム・スタンプから該ＸＭＬファイル４８の作成日時として最後の更新日時を知ることができる。キャッシュ・データ確認部４６は、アプリケーション・プログラム４１からキャッシュ使用決定用パーサー３５へ今回、処理要求のあったＸＭＬファイル４８と同一ファイル名のＸＭＬファイル４８に対応付けられているＳＡＸイベント・セット情報を検索し、該検索ＳＡＸイベント・セット情報の日時を確認する。キャッシュ使用決定用パーサー３５は、ＸＭＬデータ情報取得部４５が読込んだ現在のＸＭＬファイル４８の作成日時とキャッシュ・データ確認部４６が確認したＳＡＸイベント・セット情報の日時とを照合して、キャッシュ内のＳＡＸイベント・セット情報が現在の構造化文書の内容を基にしたＳＡＸイベント・セット情報であるか否かを調べる。（ａ）アプリケーション・プログラム４１より今回、処理要求のあったＸＭＬファイル４８について、同一ファイル名のＸＭＬ文書についてのＳＡＸイベント・セット情報がキャッシュに無いとき、又は（ｂ）アプリケーション・プログラム４１より今回、処理要求のあったＸＭＬファイル４８について、同一ファイル名のＸＭＬ文書についてのＳＡＸイベント・セット情報がキャッシュに有るものの、そのＳＡＸイベント・セット情報について、それが基にしているＸＭＬファイル４８の作成日時が現在のＸＭＬファイル４８の作成日時より古いとき、キャッシュ使用決定用パーサー３５は、キャッシュのＳＡＸイベント・セット情報は利用不可とし、処理要求対象のＸＭＬファイル４８についての以降の処理をキャッシュ・データ生成用パーサー３６へ委譲する。これに対して、（ｃ）アプリケーション・プログラム４１より今回、処理要求のあったＸＭＬファイル４８について、同一ファイル名のＸＭＬ文書についてのＳＡＸイベント・セット情報がキャッシュに有り、かつそのＳＡＸイベント・セット情報に対して、それが基にしているＸＭＬファイル４８の作成日時が現在のＸＭＬファイル４８の作成日時より古くないとき、すなわちＸＭＬファイル４８が更新されていないとき、キャッシュ使用決定用パーサー３５は、キャッシュのＳＡＸイベント・セット情報は利用可能とし、処理対象のＸＭＬファイル４８についての以降の処理をキャッシュ・データ再生用パーサー３７へ委譲する。
【００２４】
キャッシュ・データ生成用パーサー３６は、ＸＭＬデータ取得部５３、文字コード調整部５４、字句解析部５５、ＳＡＸイベント生成部５６、及びＳＡＸイベント記録部５８を有している。キャッシュ・データ生成用パーサー３６がキャッシュ使用決定用パーサー３５から処理を委譲されると、ＸＭＬデータ取得部５３は、処理対象のＸＭＬファイル４８を読込んで、ＸＭＬファイル４８のＸＭＬデータを取得する。文字コード調整部５４は、ＸＭＬデータ取得部５３が読込んだＸＭＬデータの文字コード（例：Ｓｈｉｆｔ　ＪＩＳ）をユニコード（Ｕｎｉｃｏｄｅ）へ変換する。字句解析部５５は、ＸＭＬファイル４８のユニコードに基づいて処理対象のＸＭＬファイル４８の字句解析を行う。字句解析部５５が、ＸＭＬファイル４８の字句解析においてエラーがないと判断したら、ＳＡＸイベント生成部５６は、ＸＭＬファイル４８に係る一連のイベントを生成する処理に移り、ＳＡＸイベント・ハンドラ５７を介して、今回、ＸＭＬファイル４８の処理を要求して来たアプリケーション・プログラム４１へ一連のイベントを順番に通知する。エラーがあるときは、アプリケーション・プログラム４１へは、一連のイベントは通知することなく、エラーがある旨を通知する。図１０はＳＡＸイベント生成部５６がアプリケーション・プログラム４１へ通知するＳＡＸイベントを示している。ＳＡＸイベント・ハンドラ５７を介するＳＡＸイベント生成部５６からアプリケーション・プログラム４１への一連のイベントの通知は、ＳＡＸイベント生成部５６に実装されるＯＯＰ（Ｏｂｊｅｃｔ　Ｏｒｉｅｎｔｅｄ　Ｐｒｏｇｒａｍ）のメソド（Ｍｅｔｈｏｄ）を介して行われる。或る種のメソドには、１個以上のパラメータ（引数）が付属し、パラメータには、ＸＭＬファイル４８の要素名（例：ＧＵＩＤｅｆ，Ｐａｒｔｓ）、及び属性名（例：ｎａｍｅ，ｃｌａｓｓ，ｖｐ）＝属性値（例：”Ｄｉｒｔｒｅｅ”，”ｅｄｉｔｏｒ．ＤｉｒＴｒｅｅ”）が含まれる。このようなメソドを実行するために、ＳＡＸイベント生成部５６，６３は、各種のインターフェースを実装する必要がある。ＳＡＸイベント生成部５６，６３が実装すべきインターフェースの例は、例えば、クラスｏｒｇ．ｘｍｌ．ｓａｘ．ＤｏｃｕｍｅｎｔＨａｎｄｌｅｒに定義されており、次の通りである。
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｓｅｔＤｏｃｕｍｅｎｔＬｏｃａｔｏｒ　（Ｌｏｃａｔｏｒ　ｌｏｃａｔｏｒ）；
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｓｔａｒｔＤｏｃｕｍｅｎｔ　（）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｅｎｄＤｏｃｕｍｅｎｔ　（）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｓｔａｒｔＥｌｅｍｅｎｔ　（Ｓｔｒｉｎｇ　ｎａｍｅ，　ＡｔｔｒｉｂｕｔｅＬｉｓｔ　ａｔｔｓ）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｅｎｄＥｌｅｍｅｎｔ　（Ｓｔｒｉｎｇ　ｎａｍｅ）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｃｈａｒａｃｔｅｒｓ　（ｃｈａｒ　ｃｈ［］，　ｉｎｔ　ｓｔａｒｔ，　ｉｎｔ　ｌｅｎｇｔｈ）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｉｇｎｏｒａｂｌｅＷｈｉｔｅｓｐａｃｅ　（ｃｈａｒ　ｃｈ［］，　ｉｎｔ　ｓｔａｒｔ，　ｉｎｔ　ｌｅｎｇｔｈ）
ｐｕｂｌｉｃ　ａｂｓｔｒａｃｔ　ｖｏｉｄ　ｐｒｏｃｅｓｓｉｎｇＩｎｓｔｒｕｃｔｉｏｎ　（Ｓｔｒｉｎｇ　ｔａｒｇｅｔ，　Ｓｔｒｉｎｇ　ｄａｔａ）
【００２５】
ＳＡＸイベント記録部５８は、ＳＡＸイベント生成部５６がアプリケーション・プログラム４１へ通知した一連のイベントをＳＡＸイベント・セット情報としてキャッシュ・データ管理部３８を介してキャッシュへ記録する。このＳＡＸイベント・セット情報には、ＸＭＬファイル４８の更新チェックのために、ＳＡＸイベント・セット情報が基にしているＸＭＬファイル４８の作成日時情報を含める必要がある。図１１及び図１２はキャッシュに記録するＳＡＸイベント・セット情報の第１及び第２のパートである。ＳＡＸイベント・セット情報の第１のパートでは、各レコードにはメソドとパラメータとが記述されている。パラメータは要素名と属性とを含む。メソド名と要素名とはコード化されている。第２のパートでは、要素名とコードとの対応関係が記述されている。メソドについてコードとメソド名との関係は次の通りである。メソドについてのコードとメソド名との関係は、ＸＭＬファイル４８に関係なく、定義されている。
ｓｔａｒｔＤｏｃｕｍｅｎｔ：１
ｓｔａｒｔＥｌｅｍｅｎｔ：２
ｅｎｄＥｌｅｍｅｎｔ：３
ｃｈａｒａｃｔｅｒｓ：４
ｅｎｄＤｏｃｕｍｅｎｔ：５
【００２６】
図１２の第２のパートでは、テーブルの１番目のレコードには、ＳＡＸイベント・セット情報が基にしているＸＭＬ文書の作成日時が記録される。テーブルの２番目以降のレコードには、ＸＭＬファイル４８の要素についてコードとタグ（要素名）との関係が記録される。ＸＭＬファイル４８の要素についてコードとタグ（要素名）との関係は、各ＸＭＬファイル４８ごとに定義される。キャッシュ使用決定用パーサー３５におけるＸＭＬファイル４８の前述の更新チェックは、現在のＸＭＬファイル４８の作成日時と図１２の１番目のレコードの日時と照合することにより行う。
【００２７】
キャッシュ・データ再生用パーサー３７はＳＡＸイベント生成部６３及びＳＡＸイベント再生部６４を有している。キャッシュ・データ再生用パーサー３７がキャッシュ使用決定用パーサー３５から処理対象のＸＭＬファイル４８についての処理を委譲されると、ＳＡＸイベント再生部６４は、キャッシュ・データ管理部３８に指示して、構造化文書におけるＳＡＸイベント・セット情報を自分に送らせ、一連のＳＡＸイベントを再生する（換言すると、例えば、一連のＳＡＸイベントの各イベントをその順番に対応付けて検出する。）。ＳＡＸイベント再生部６４がキャッシュ・データ管理部３８から受けるＳＡＸイベント・セット情報は図１１及び図１２のものである。ＳＡＸイベント再生部６４は、図１２におけるＸＭＬファイル４８の要素についてのコードとタグ（要素名）との関係に基づいて、図１１の要素コードを要素名に変換して、図１０のリストを再現し、ＳＡＸイベント生成部６３へ渡す。ＳＡＸイベント生成部６３は、これを基に、各メソドを図１１のリストの上から順番に実行し、一連のイベントの各々かＳＡＸイベント・ハンドラ５７を介してアプリケーション・プログラム４１へ通知される。
【００２８】
図１３は図９のキャッシュ使用決定用パーサー３５の処理手順のフローチャートである。Ｓ５１では、アプリケーション・プログラム４１が今回、処理要求したＸＭＬファイル４８に係るキャッシュ・データ（＝キャッシュにおけるＳＡＸイベント・セット情報）があるか否か、すなわち、該ＸＭＬファイル４８のファイル名に対応付けられているキャッシュ・データがあるか否かを判定し、判定がＹＥＳであれば、Ｓ５２へ進み、ＮＯであれば、Ｓ５４へ進む。Ｓ５１の判定は、ＸＭＬファイル４８の更新状況は調べておらず、処理対象のＸＭＬファイル４８のファイル名と同一のファイル名のＸＭＬファイルに係るキャッシュ・データがキャッシュに有るか否かのみを調べている。Ｓ５２では、処理対象のＸＭＬファイル４８に係るキャッシュ・データを読込み、すなわち図１２のデータを読込み、該データの日時、すなわちキャッシュにおけるＳＡＸイベント・セット情報の基にしたＸＭＬファイル４８の作成日時を検出する。Ｓ５３では、キャッシュにおけるキャッシュデータが、現在のＸＭＬファイル４８の更新前のＸＭＬ文書を基にしたデータか否かを調べる。Ｓ５３における判定がＹＥＳであれば、すなわち、キャッシュにおけるＳＡＸイベント・セット情報が基にしたＸＭＬ文書が更新前のものであるときは、Ｓ５４へ進む。Ｓ５３における判定がＮＯであれば、すなわち、キャッシュにおけるＳＡＸイベント・セット情報が基にしたＸＭＬ文書が現在のＸＭＬ文書であるときは、Ｓ５５へ進む。処理対象のＸＭＬファイル４８の処理について、Ｓ５４では、キャッシュ・データ生成用パーサー３６へ委譲し、Ｓ５５では、キャッシュ・データ再生用パーサー３７へ委譲する。
【００２９】
図１４は図９のキャッシュ・データ生成用パーサー３６の処理手順のフローチャートである。Ｓ６０では、処理対象のＸＭＬファイル４８の文字データを読込む。Ｓ６１では、Ｓ６０で読込んだ文字データをユニコードへ変換する。日本語ＸＭＬ文書の文字コードは例えばＳｉｆｔ　ＪＩＳに準拠している。Ｓ６２では、字句解析処理を行う。Ｓ６３では、処理対象のＸＭＬファイル４８において要素名定義のタグを見つけ次第、該要素名に対応の１個のＳＡＸイベントを生成する。生成されたＳＡＸイベントは、対応のメソドを使って、イベント・ハンドラを呼び出すことによりアプリケーション・プログラム４１へ通知される。Ｓ６５では、ＸＭＬファイル４８の最後（ＥＯＦ）に到達したか否かを判定し、該判定がＹＥＳであれば、この処理手順を終了し、ＮＯであれば、Ｓ６０へ戻り、次の文字データを読込む。
【００３０】
図１５は図９のキャッシュ・データ再生用パーサー３７の処理手順のフローチャートである。Ｓ６８では、処理対象のＸＭＬファイル４８に係るＳＡＸイベント・セット情報としてのキャッシュ・データの所定分をキャッシュから読込む。Ｓ６９では、Ｓ６８で読込んだ所定分のキャッシュ・データに基づいてＳＡＸイベントを生成する。生成されたＳＡＸイベントは、対応のメソドを使ってイベント・ハンドラを呼び出すことによりアプリケーション・プログラム４１へ通知される。Ｓ７０では、ＳＡＸイベント・セット情報（図１２）の最後（ＥＯＦ）に到達したか否かを判定し、該判定がＹＥＳであれば、この処理手順を終了し、ＮＯであれば、Ｓ６８へ戻る。
【００３１】
まとめとして本発明の構成に関して以下の事項を開示する。
（１）：アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用インターフェース装置において、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアするストア手段、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第１の通知手段、
を有していることを特徴とする構造化文書用インターフェース装置。
（２）：そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第２の通知手段を有し、
ストア手段は、第２の通知手段がアプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアすることを特徴とする（１）記載の構造化文書用インターフェース装置。
（３）：処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する第１の処理手段、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する第２の処理手段、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには第１の処理手段に処理対象の構造化文書についての処理を委譲し、また、そのイベント・セット情報がキャッシュに有るときには第２の処理手段に処理対象の構造化文書についての処理を委譲する制御手段、
を有していることを特徴とする構造化文書用インターフェース装置。
（４）：制御手段は、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことを特徴とする（３）記載の構造化文書用インターフェース装置。
（５）：制御手段は、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｉｄｅｎｔｉｆｉｅｒｓ）により通知されるパーサーであることを特徴とする（４）記載の構造化文書用インターフェース装置。
【００３２】
（６）：第１及び第２の処理手段はそれぞれ対応のパーサーに実装されるのに対し、制御手段は処理要求元のアプリケーション・プログラムに実装されていることを特徴とする（４）記載の構造化文書用インターフェース装置。
（７）：アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用処理方法において、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第１のステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第２のステップ、
を有していることを特徴とする構造化文書用処理方法。
（８）：そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第３のステップ、及び
第３のステップにおいてアプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第４のステップ、
を有していることを特徴とする（７）記載の構造化文書用処理方法。
（９）：処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する標準処理用ステップ、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する短縮処理用ステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには標準処理用ステップを実行するように制御し、また、そのイベント・セット情報がキャッシュに有るときには短縮処理用ステップを実行するように制御する制御ステップ、
を有していることを特徴とする構造化文書用処理方法。
（１０）：制御ステップは、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことを特徴とする（９）記載の構造化文書用処理方法。
【００３３】
（１１）：制御ステップは、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩにより通知されるパーサーにおいて実施されるものであることを特徴とする（１０）記載の構造化文書用処理方法。
（１２）：第１及び第２の処理ステップは、それぞれ対応のパーサーにおいて実施されるものであるのに対し、制御ステップは、構造化文書についての処理要求を出すアプリケーション・プログラムにおいて実施されるものであることを特徴とする（１０）記載の構造化文書用処理方法。
（１３）：アプリケーション・プログラムから処理要求のあった構造化文書について、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する構造化文書用処理プログラムにおいて、
アプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第１のステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るときは、該構造化文書に係る一連のイベントをキャッシュのイベント・セット情報に基づいて処理要求元のアプリケーション・プログラムへ順番に通知する第２のステップ、
をコンピュータに実行させるための構造化文書用処理プログラム。
（１４）：そのイベント・セット情報がキャッシュに無い構造化文書については、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理を実施する第３のステップ、及び
第３のステップにおいてアプリケーション・プログラムへ通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする第４のステップ、
をコンピュータに実行させるための（１３）記載の構造化文書用処理プログラム。
（１５）：処理要求対象の構造化文書について、それを読込んで、字句解析の処理と、該構造化文書に係る一連のイベントを処理要求元のアプリケーション・プログラムへ順番に通知する処理と、さらに該通知した一連のイベントをイベント・セット情報としてその構造化文書に対応付けてキャッシュにストアする処理とを実施する標準処理用ステップ、
処理要求対象の構造化文書についてのキャッシュのイベント・セット情報を読込んで、該イベント・セット情報に係る一連のイベントを順番に、処理要求元のアプリケーション・プログラムへ通知する短縮処理用ステップ、及び
処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを調べそのイベント・セット情報がキャッシュに無いときには標準処理用ステップを実行するように制御し、また、そのイベント・セット情報がキャッシュに有るときには短縮処理用ステップを実行するように制御する制御ステップ、
をコンピュータに実行させるための構造化文書用処理プログラム。
【００３４】
（１６）：制御ステップは、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに有るか無いかを判断するとき、処理対象の構造化文書と同一ファイル名の構造化文書に係るイベント・セット情報がキャッシュに有ったとしても、それが現在の構造化文書に対して更新前の構造化文書に係るイベント・セット情報であるならば、処理対象の構造化文書についてそのイベント・セット情報がキャッシュに無いとの判断を下すことをコンピュータに実行させるための（１５）記載の構造化文書用処理プログラム。
（１７）：制御ステップは、処理要求対象の構造化文書を処理要求元のアプリケーション・プログラムからＵＲＩにより通知されるパーサーにおいて実施されるものであることをコンピュータに実行させるための（１６）記載の構造化文書用処理プログラム。
（１８）：第１及び第２の処理ステップは、それぞれ対応のパーサーにおいて実施されるものであるのに対し、制御ステップは、構造化文書についての処理要求を出すアプリケーション・プログラムにおいて実施されるものであることをコンピュータに実行させるための（１６）記載の構造化文書用処理プログラム。
【００３５】
【発明の効果】
本発明によれば、処理要求のあった構造化文書についての一連のイベントを通知するとともに、該通知した一連のイベントをイベント・セット情報としてキャッシュにストアする。そして、次に、同一構造化文書について処理要求を再度、受付けたときは、キャッシュにストアされているイベント・セット情報に基づいて一連のイベントを検出し、通知するようになっているので、構造化文書用インターフェース装置の処理時間を大幅に短縮できる。
【図面の簡単な説明】
【図１】構造化文書入手のためにインターネット／イントラネットが利用されるシステムの構成図である。
【図２】本発明の第１の実施形態としての構造化文書用インターフェース装置の機能ブロック図である。
【図３】図２の構造化文書用インターフェース装置の処理手順のフローチャートである。
【図４】本発明の第２の実施形態としての構造化文書用インターフェース装置の機能ブロック図である。
【図５】図４の構造化文書用インターフェース装置の処理手順のフローチャートである。
【図６】本発明の第３の実施形態としての構造化文書用インターフェース装置の機能ブロック図である。
【図７】図６の構造化文書用インターフェース装置の処理手順のフローチャートである。
【図８】構造化文書の更新に対処してキャッシュのイベント・セット情報を利用する処理手順のフローチャートである。
【図９】構造化文書用インターフェース装置としてのＳＡＸパーサーの構成図である。
【図１０】ＳＡＸイベント生成部がアプリケーション・プログラムへ通知するＳＡＸイベントを示す図である。
【図１１】キャッシュに記録するＳＡＸイベント・セット情報の第１のパートである。
【図１２】キャッシュに記録するＳＡＸイベント・セット情報の第２のパートである。
【図１３】図９のキャッシュ使用決定用パーサーの処理手順のフローチャートである。
【図１４】図９のキャッシュ・データ生成用パーサーの処理手順のフローチャートである。
【図１５】図９のキャッシュ・データ再生用パーサーの処理手順のフローチャートである。
【符号の説明】
１０　　構造化文書用インターフェース装置
１１　　アプリケーション・プログラム
１２　　構造化文書
１５　　ストア手段
１６　　キャッシュ
１７　　第１の通知手段
２０　　構造化文書用インターフェース装置
２２　　第２の通知手段
２５　　構造化文書用インターフェース装置
２６　　第１の処理手段
２７　　第２の処理手段
２８　　制御手段
３５　　キャッシュ使用決定用パーサー
３６　　キャッシュ・データ生成用パーサー
３７　　キャッシュ・データ再生用パーサー
４１　　アプリケーション・プログラム
４８　　ＸＭＬファイル
【図１】
2004062716.tif 000004
【図２】
2004062716.tif 000005
【図３】
2004062716.tif 000006
【図４】
2004062716.tif 000007
【図５】
2004062716.tif 000008
【図６】
2004062716.tif 000009
【図７】
2004062716.tif 000010
【図８】
2004062716.tif 000011
【図９】
2004062716.tif 000012
【図１０】
2004062716.tif 000013
【図１１】
2004062716.tif 000014
【図１２】
2004062716.tif 000015
【図１３】
2004062716.tif 000016
【図１４】
2004062716.tif 000017
【図１５】
2004062716.tif 000018