(57)【要約】【課題】  処理の省力化、パース処理と妥当性検証とを同時に行うことによる高速化、従来のＸＭＬパーサとのＡＰＩ互換性の維持を図る。【解決手段】  テンプレートＤＯＭ変換処理部２は、テンプレート１をテンプレートのＤＯＭ３へ変換する。オートマトン変換処理部４は、テンプレートのＤＯＭ３を介して、ＸＭＬ文書を受け取るためのオートマトン５へ変換する。パース処理部６は、作成したオートマトン５を利用してＸＭＬ文書のパース処理を行う。このとき、パース処理と妥当性検証とを同時に行うことになる。ＤＯＭ生成処理部１１は、パース処理を通して取得した、オートマトンの遷移情報９と、各状態で取得した値８と、オートマトン変換処理部４からの遷移条件データ１０とからＤＯＭツリー１２を生成する。【選択図】  図１
2005242912.tif 000002
【特許請求の範囲】
【請求項１】
タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化した定型部と、変化する部分を変数とで表したテンプレートと、
前記テンプレートをオートマトンに変換するオートマトン変換手段と、
入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出するパース処理手段と
を具備することを特徴とする電子文書処理装置。
【請求項２】
前記パース処理手段は、前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うことを特徴とする請求項１記載の電子文書処理装置。
【請求項３】
前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成する木構造生成手段を具備することを特徴とする請求項１または２記載の電子文書処理装置。
【請求項４】
タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化し、変化する部分を変数で表したテンプレートを作成し、前記テンプレートをオートマトンに変換し、入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出することを特徴とする電子文書処理方法。
【請求項５】
前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うことを特徴とする請求項４記載の電子文書処理方法。
【請求項６】
前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成することを特徴とする請求項４または５記載の電子文書処理方法。
【請求項７】
タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化し、変化する部分を変数で表したテンプレートを作成するステップと、
前記テンプレートをオートマトンに変換するステップと、
入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出するステップと
をコンピュータに実行させることを特徴とする電子文書処理プログラム。
【請求項８】
前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うステップをコンピュータに実行させることを特徴とする請求項７記載の電子文書処理プログラム。
【請求項９】
前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成するステップをコンピュータに実行させることを特徴とする請求項７または８記載の電子文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬ（eXtensible Markup Language）文書などのタグによりデータの属性情報や論理構造を定義可能な電子文書を処理する電子文書処理装置、電子文書処理方法および電子文書処理プログラムに関する。
【背景技術】
【０００２】
従来より、ＸＭＬ文書の持つ構造を正しく記述しているかどうかを解析するために、構文解析を行うパージング処理（ＸＭＬパーサ）が知られている。ＤＯＭ（Document Object Model）は、ＸＭＬ文書全体をメモリ上に読み込み、木構造を組み立てることにより文書を取り扱う。これに対して、ＳＡＸは、ＸＭＬ文書全体を先頭から順次読み込み、ＸＭＬ文書の中で処理対象となる部分を見つけた場合に処理を行う。
【０００３】
また、ＸＭＬ文書のパージングにおいては、通常、ＤＴＤ（文書型定義）、Ｗ３Ｃ  ＸＭＬ  Ｓｃｈｅｍａ等のＸＭＬのフォーマットを定義したスキーマに対し、ＸＭＬ文書のフォーマットが正しいかどうか妥当性検証を行う。このとき、ＸＭＬ文書の妥当性検証のための処理を簡略化し、処理速度を向上する技術が知られている（例えば特許文献１参照）。システムで利用するＸＭＬ文書として、フォーマットに沿った文書のみが利用されている場合、この妥当性検証処理を省略することにより、高速化を図ることができるようになっている。
【特許文献１】特開２００３−８４９８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＸＭＬ文書の用途が決まれば、そのフォーマットは多くの場合決まっており、殆ど同じＸＭＬ文書がシステムで利用される。例えば、図８に示すＸＭＬ文書の例であれば、ボールド部分の内容が変わるだけで、タグの値は同じである。アプリケーションに必要な値が書き込まれている部分（例えば、＜ｎａｍｅ＞特許太郎＜／ｎａｍｅ＞における、「特許太郎」の部分）は、ＸＭＬ文書全体に比べると少ない。しかしながら、従来技術のＸＭＬパース処理では、図９に示すように、全てのタグを１つ１つ解析する必要があった。
【０００５】
また、従来技術のＸＭＬ処理の妥当検証では、ＸＭＬ文書のタグ毎に、ＸＭＬのフォーマットを定義したＸＭＬＳｃｈｅｍａと一致しているかどうかを調べる必要があった。例えば、図１０に示す従来手法の妥当性検証を参照して説明する。「ＸＭＬ文書において、＜ｍｅｓｓａｇｅ＞、＜ｕｓｅｒ＞の順番でタグが出現し、これはＸＭＬスキーマにおいて、要素の名前が「ｍｅｓｓａｇｅ」であり、その次の要素の名前が「ｕｓｅｒ」であるという定義と一致している」といった、妥当性の検証をタグ毎に行っていた。
【０００６】
さらに、従来技術では、
（１）ＸＭＬ文書のタブの１つ１つを抽出してから、木構造を作成する（図１１参照）。
（２）ＸＭＬスキーマを用いて、木構造に対して妥当性の検証を行う。
という手順で行っていた。このように、従来技術では、ＸＭＬ文書のパース処理と妥当性検証とを別々に行うため、効率が悪いという問題があった。
【０００７】
本発明は、このような事情を考慮してなされたものであり、その目的は、タグを１つ１つ解析する処理を定型部分をとりまとめて行うことで省力化を図ることができ、タグ定型部の読み込み時点で妥当性検証を行うため、パース処理と妥当性検証とを同時に行うことによる高速化を図ることができ、また、従来のＸＭＬパーサとのＡＰＩ互換性の維持を図ることができる電子文書処理装置、電子文書処理方法および電子文書処理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
この発明は上記の課題を解決すべくなされたもので、本発明の第１の観点に係る電子文書処理装置は、タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化した定型部と、変化する部分を変数とで表したテンプレートと、前記テンプレートをオートマトンに変換するオートマトン変換手段と、入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出するパース処理手段とを具備することを特徴とする。
【０００９】
また、本発明は、請求項１記載の電子文書処理装置において、前記パース処理手段は、前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うことを特徴とする。
【００１０】
また、本発明は、請求項１または２記載の電子文書処理装置において、前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成する木構造生成手段を具備することを特徴とする。
【００１１】
また、本発明の第２の観点に係る電子文書処理方法は、タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化し、変化する部分を変数で表したテンプレートを作成し、前記テンプレートをオートマトンに変換し、入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出することを特徴とする。
【００１２】
また、本発明は、請求項４記載の電子文書処理方法において、前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うことを特徴とする。
【００１３】
また、本発明は、請求項４または５記載の電子文書処理方法において、前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成することを特徴とする。
【００１４】
また、本発明の第３の観点に係る電子文書処理プログラムは、タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化し、変化する部分を変数で表したテンプレートを作成するステップと、前記テンプレートをオートマトンに変換するステップと、入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出するステップとをコンピュータに実行させることを特徴とする。
【００１５】
また、本発明は、請求項７記載の電子文書処理プログラムにおいて、前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行うステップをコンピュータに実行させることを特徴とする。
【００１６】
また、本発明は、請求項７または８記載の電子文書処理プログラムにおいて、前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成するステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１７】
以上説明したように、本発明によれば、タグによりデータの属性情報や論理構造を定義可能に記述された電子文書中、値の変化しない部分を定型化した定型部と、変化する部分を変数とで表したテンプレートを作成し、オートマトン変換手段により、前記テンプレートをオートマトンに変換し、パース処理手段により、入力される電子文書と前記オートマトンとの文字列を比較して、電子文書中の値を抽出する。
したがって、タグを１つ１つ解析する処理を定型部分をとりまとめて行うことで省力化を図ることができるという効果が得られる。
【００１８】
また、本発明によれば、前記パース処理手段により、前記テンプレートの定型部との整合性を調べることにより、前記値の抽出と同時に妥当性検証を行う。
したがって、タグ定型部の読み込み時点で妥当性検証を行うため、パース処理と妥当性検証とを同時に行うことによる高速化を図ることができるという効果が得られる。
【００１９】
また、本発明によれば、木構造生成手段により、前記パース処理手段により抽出された値と、前記オートマトン変換手段により変換されたオートマトンの遷移パスに基づいて、前記パース処理手段により抽出された値の木構造を生成する。
したがって、従来のＸＭＬパーサとのＡＰＩ互換性の維持を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態について説明する。
【００２１】
Ａ．実施形態の構成
図１は、本発明の実施形態によるＸＭＬ文書処理装置の構成を示すブロック図である。図において、テンプレート１は、ＸＭＬ文書の中で値が変化する部分だけを抽出するために、処理対象となるＸＭＬ文書に基づいて予め用意されたものである。なお、テンプレート１の機能については後述する。
【００２２】
テンプレートＤＯＭ変換処理部２は、テンプレート１をテンプレートのＤＯＭ（Document Object Model）３へ変換する。より具体的には、テンプレート１のテキスト文書を入力文字列とし、テンプレート１のＤＯＭのデータ構造に変換する。このとき、タグの繰り返し情報は、各ノードに付加的な情報として持つものとする。すなわち、テンプレートのＤＯＭ３は、テンプレート１の各タグをノードとし、タグの繰り返し情報をノードの付加情報としたツリー構造となる。
【００２３】
オートマトン変換処理部４は、テンプレートのＤＯＭ３を介して、ＸＭＬ文書を受け取るためのオートマトン５へ変換する。オートマトン５を用いる理由は、ＸＭＬ文書に頻繁に見られるタグの繰り返しに対応するためである。ここで、ＸＭＬ文書のタグの繰り返し部分をオートマトン５に対応させると、ある状態から次の状態への遷移の繰り返しに置き換えることができる。よって、タグの繰り返しに対しても、１つのオートマトン５で表現できるため、テンプレート１を汎用的に用いることができる。
【００２４】
次に、パース処理部６は、作成したオートマトン５を利用してＸＭＬ文書のパース処理を行う。より具体的には、入力されるＸＭＬ文書７の形式を判断し、そのＸＭＬ文書形式に該当するオートマトン５を選択し、入力されたＸＭＬ文書７をオートマトン５へ入力してパース処理を行う。パース処理は、オートマトンで文字列を比較することによる状態遷移により行う。また、状態遷移時に妥当性検証と同等のことを行っているため、パース処理と妥当性検証とを同時に行うことになる。
【００２５】
次に、ＤＯＭ生成処理部１１は、パース処理を通して取得した、オートマトンが遷移したパス（オートマトンの遷移情報）９と、各状態で取得した値８と、オートマトン変換処理部４からの遷移条件データ１０とからＤＯＭツリー１２を生成する。通常のＸＭＬアプリケーション処理系では、ＸＭＬ文書をＤＯＭで用いる。そこで、従来の開発の利便性を考慮してＤＯＭツリー１２を生成している。これにより、従来のＸＭＬパーサとのＡＰＩの互換性を維持することが可能となる。
【００２６】
次に、上述したテンプレート１を用いる理由について説明する。
コンピュータシステムで利用されるＸＭＬ文書において、システムが処理に利用する情報は、その一部に過ぎない。前述したように、システムの処理に必要な情報は、ボールドの部分のみである（図８参照）。残りのタグ情報は、この文書構造を表すために利用されているだけであるので、システムには必要ない。
【００２７】
そこで、本実施形態では、ＸＭＬ文書の中で値が変化する部分だけを抽出する差分ベース処理を行う。具体的には、図２に示すように、ＸＭＬ文書７のテンプレート１を用意し、テンプレート１を利用することで、ＸＭＬ文書７の値８のみを抽出する。
【００２８】
ＸＭＬ文書７に着目すると、ＸＭＬ文書７のフォーマットは固定的であり、値が変化する部分はごく一部である。そこで、本発明は、ＸＭＬ文書７の中で値が変化しない部分を定型化し、変化する部分を変数で表現することにより、テンプレート１を作成する。テンプレート１は、実際に値が変化する部分を、記号「＄」と変数名とで表している。例えば、図２を参照すると、名前のタグを表す＜ｎａｍｅ＞タグの値であれば、「＄ｎａｍｅ」と表す。そして、このテンプレート１を用いて、入力のＸＭＬ文書７に対して、テンプレート１との比較を行い、「＄変数名」に該当する値８を取り出す（図２参照）。
【００２９】
このように、テンプレート１を用いることで、変数と変数との間にあるタグの文字列を定型とみなし、この定型部をまとめて解析することができる。このため、高速化を図ることが可能となる。また、本実施形態では、ＸＭＬスキーマを用いる代わりに、テンプレート１を用いて妥当性検証を行っている。テンプレート１は、上述したように、ＸＭＬ文書７の中で値が変化しない部分を定型化することにより作成される。よって、テンプレート１を用いることで、定型部をまとめて妥当性検証を行うことができるため、高速化を図ることが可能となる。
【００３０】
Ｂ．実施形態の動作
次に、上述した実施形態の動作について説明する。
Ｂ−１．初期化処理
ユーザは、テンプレート１を作成し、本ＸＭＬ文書処理装置に登録する。ＸＭＬ文書処理装置では、テンプレートＤＯＭ変換処理２により、入力されたテンプレート１を、テンプレート１のＤＯＭツリー３に変換し、オートマトン変換処理部４により、ＤＯＭツリー３を介してＸＭＬ文書７を受け取るためのオートマトン５へ変換する。
【００３１】
テンプレート１をオートマトン５に変換する方法は、図３に示すように、
（１）テンプレート１の各変数２０，２１…をオートマトンの各状態ｑ０，ｑ１，ｑ２…に対応させる。
（２）変数と変数との間にあるタグの文字列の不変部分をオートマトン５の遷移条件とする。図３では、例えば、タグ３０、タグ３１がオートマトン５の遷移条件となる。
【００３２】
図２に示す例では、＄変数名で表される部分が変数（状態）、＄変数名から、次の＄変数名の間の文字列が遷移条件となる。例えば、＄ｎａｍｅと＄ｉｄとの間の文字列である「＜／ｎａｍｅ＞＜ｉｄ＞」が遷移条件となる。なお、初期状態と終端状態とは、ＸＭＬ文書７の開始と終了を表す。
上述した処理は、システム起動時の初期化処理として実行する。
【００３３】
Ｂ−２．パース処理
次に、上述した処理により作成したオートマトン５を利用してＸＭＬ文書のパース処理を行う。
【００３４】
（１）現在受理しようとしているサービスのタイプや、ＵＲＬ等から、これからシステムへ入力されるＸＭＬ文書７の形式を判断し、そのＸＭＬ文書形式に該当するオートマトン５を選択する。
【００３５】
（２）入力されたＸＭＬ文書７を上記（１）で選択したオートマトン５へ入力してパース処理を行う。具体的には、文字列を受理、状態遷移を行ったあと、値４０，４１を読み込む。そして、次の状態へ遷移し、文字列を受理するといった操作を繰り返し、終端の状態へ辿り着けば、パース処理を終了とする（図４参照）。このとき、状態遷移時に妥当性検証と同等のことを行っているため、パース処理と妥当性検証とを同時に行うことができる。パース処理を通して、オートマトンが遷移したパスと各状態で取得した値とを取得する（図５参照）。
【００３６】
ここで、上記パース処理と妥当性検証とが同時に行われる理由について説明する。例えば、図２に示す例を用いて説明すると、＄ｎａｍｅに該当する値部分である「特許太郎」と、＄ｉｄに該当する部分である「１２３４５６」の間のタグの文字列「＜／ｎａｍｅ＞＜ｉｄ＞」を定型部とみなし、まとめて解析する（図６参照）。つまり、本実施形態では、テンプレートを用いることで、タグの定型部をまとめて読み込むと同時に、テンプレートの定型部とマッチングするかどうかを調べることにより、妥当性の検証を行うことが可能となる。つまり、本発明では、「ＸＭＬ文書のパース処理と妥当性検証とを分けずに同時に行うことが可能」であるため、高速化を図ることができる。
【００３７】
（３）上記（２）で取得したパスと値とから、遷移条件データ１０により得られるテンプレートＤＯＭ上での遷移経路を辿りながら、最下位のノードに、得られた値を加えることにより、ＤＯＭツリーを生成する（図７参照）。
【００３８】
上述した実施形態によれば、タグを１つ１つ解析する処理を定型部分をとりまとめて行うことで省力化を図ることができ、タグ定型部の読み込み時点で妥当性検証を行うため、パース処理と妥当性検証とを同時に行うことによる高速化を図ることができる。また、従来のＸＭＬパーサとのＡＰＩ互換性の維持を図ることができる。
【００３９】
より具体的には、例えば、公共／金融等の高トランザクションが要求される大規模システム等で、大量のＸＭＬ文書を高速に処理する必要がある場合に対して有効である。また、携帯電話等、低スペックの環境でも快適にＸＭＬ文書を処理することができる。
【００４０】
なお、上述した実施形態においては、上述したテンプレートＤＯＭ変換処理部２、オートマトン変換処理部４、パース処理部６、ＤＯＭ姿勢処理部１１などは、コンピュータシステム内で実行される。そして、上述したテンプレートＤＯＭ変換処理部２、オートマトン変換処理部４、パース処理部６、ＤＯＭ姿勢処理部１１による一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。すなわち、テンプレートＤＯＭ変換処理部２、オートマトン変換処理部４、パース処理部６、ＤＯＭ姿勢処理部１１における、各処理手段、処理部は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
【００４１】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態によるＸＭＬ文書処理装置の構成を示すブロック図である。
【図２】本実施形態によるテンプレートおよび該テンプレートを用いてＸＭＬ文書から値を抽出する様子を説明するための概念図である。
【図３】本実施形態によるオートマトン変換を説明するための概念図である。
【図４】本実施形態によるパース処理を説明するための概念図である。
【図５】本実施形態によるパース処理により取得される情報を示す概念図である。
【図６】本実施形態によるパース処理と同時に行われる妥当性検証を説明するための概念図である。
【図７】従来技術による問題点を説明するための概念図である。
【図８】ＸＭＬ文書の一例を示す模式図である。
【図９】従来技術によるＸＭＬパース処理を説明するための概念図である。
【図１０】従来技術による妥当性検証を説明するための概念図である。
【図１１】従来技術による木構造を示す概念図である。
【符号の説明】
【００４３】
１…テンンプレート
２…テンプレートＤＯＭ変換処理部（オートマトン変換手段）
３…テンプレートのＤＯＭ
４…オートマトン変換処理部（オートマトン変換手段）
５…オートマトン
６…パース処理部（パース処理手段）
７…ＸＭＬ文書（電子文書）
８…値
９…遷移情報
１０…遷移条件データ
１１…ＤＯＭ生成処理部（木構造生成手段）
１２…ＤＯＭツリー
【図１】
2005242912.tif 000003
【図２】
2005242912.tif 000004
【図３】
2005242912.tif 000005
【図４】
2005242912.tif 000006
【図５】
2005242912.tif 000007
【図６】
2005242912.tif 000008
【図７】
2005242912.tif 000009
【図８】
2005242912.tif 000010
【図９】
2005242912.tif 000011
【図１０】
2005242912.tif 000012
【図１１】
2005242912.tif 000013