(57)【特許請求の範囲】
【請求項１】
構造化文書に係る予め記述内容が定まった定型部と、前記構造化文書のスキーマのデータ型定義の記述を用いて値の変化する部分を記述した非定型部と、が記述されているテンプレートを読み込むテンプレート読込手段と、
前記テンプレート読込手段で読み込まれたテンプレートの前記非定型部に差し込む差込データを前記データ型定義の記述を用いて検証するデータ型検証手段と、
前記テンプレート読込手段が前記テンプレートを読み込む際に、前記データ型検証手段で前記差込データの記述形式の妥当性を検証しながら前記構造化文書を生成するデータ生成手段と、
を有し、
前記テンプレート読込手段が読み込む前記テンプレートは、前記定型部の記述形式が検証されており、
前記定型部は、前記構造化文書のデータ構造を含むことを特徴とする電子文書処理装置。
【請求項２】
前記スキーマには、前記構造化文書のデータ構造定義と、前記構造化文書のデータ型定義と、が記述されており、
前記テンプレートは、前記スキーマのうち、前記構造化文書のデータ型定義の記述を用いて値の変化する部分を削除することにより得られるテンプレート検証用スキーマを用いて、前記定型部の記述形式が検証されていることを特徴とする請求項１記載の電子文書処理装置。
【請求項３】
前記データ生成手段は、前記データ型検証手段で前記差込データの記述形式が妥当であると検証された場合、前記差込データを前記非定型部に差し込み、前記構造化文書を生成することを特徴とする請求項１又は２記載の電子文書処理装置。
【請求項４】
電子文書処理装置における電子文書処理方法であって、
構造化文書に係る予め記述内容が定まった定型部と、前記構造化文書のスキーマのデータ型定義の記述を用いて値の変化する部分を記述した非定型部と、が記述されているテンプレートを読み込むテンプレート読込ステップと、
前記テンプレート読込ステップで読み込まれたテンプレートの前記非定型部に差し込む差込データを前記データ型定義の記述を用いて検証するデータ型検証ステップと、
前記テンプレート読込ステップで前記テンプレートを読み込む際に、前記データ型検証ステップで前記差込データの記述形式の妥当性を検証しながら前記構造化文書を生成するデータ生成ステップと、
を含み、
前記テンプレート読込ステップで読み込まれる前記テンプレートは、前記定型部の記述形式が検証されており、
前記定型部は、前記構造化文書のデータ構造を含むことを特徴とする電子文書処理方法。
【請求項５】
前記スキーマには、前記構造化文書のデータ構造定義と、前記構造化文書のデータ型定義と、が記述されており、
前記テンプレートは、前記スキーマのうち、前記構造化文書のデータ型定義の記述を用いて値の変化する部分を削除することにより得られるテンプレート検証用スキーマを用いて、前記定型部の記述形式が検証されていることを特徴とする請求項４記載の電子文書処理方法。
【請求項６】
前記データ生成ステップでは、前記データ型検証ステップで前記差込データの記述形式が妥当であると検証された場合、前記差込データを前記非定型部に差し込み、前記構造化文書を生成することを特徴とする請求項４又は５記載の電子文書処理方法。
【請求項７】
コンピュータを、請求項１乃至３何れか１項記載の電子文書処理装置の各手段として機能させるためのプログラム。
【請求項８】
請求項７記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書処理装置及び電子文書処理方法に関する。
【背景技術】
【０００２】
従来、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書の雛型であるテンプレートと、差込データと、からＸＭＬ文書を生成するＸＭＬ文書の作成方法があった。
【０００３】
また、ＸＭＬ文書をＸＭＬスキーマと呼ばれるＸＭＬ文書の文法定義と比較して、ＸＭＬ文書が文法にそっているか否かを確認する（妥当性検証）という技術があった。
【０００４】
【特許文献１】特開２００４−２８０３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術では、テンプレートから生成したＸＭＬ文書の妥当性検証を行う際、ＸＭＬ文書と、そのＸＭＬ文書の全文法を表すスキーマと、を比較する必要があった。
【０００６】
しかしながら、テンプレートからＸＭＬ文書を生成した場合、テンプレートがある程度ＸＭＬ文書全体のスキーマに沿って作成してあれば、必ずしも生成したＸＭＬ文書全体の検証は必要ではない。そこで、ＸＭＬ文書全体の妥当性検証を行わずに、部分的に必要な箇所の妥当性検証を行うことで処理の負荷を下げることが望まれる。
【０００７】
本発明はこのような問題点に鑑みなされたもので、構造化された電子文書の妥当性検証処理の高速化を実現することを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明の電子文書処理装置は、構造化文書に係る予め記述内容が定まった定型部と、前記構造化文書のスキーマのデータ型定義の記述を用いて値の変化する部分を記述した非定型部と、が記述されているテンプレートを読み込むテンプレート読込手段と、前記テンプレート読込手段で読み込まれたテンプレートの前記非定型部に差し込む差込データを前記データ型定義の記述を用いて検証するデータ型検証手段と、前記テンプレート読込手段が前記テンプレートを読み込む際に、前記データ型検証手段で前記差込データの記述形式の妥当性を検証しながら前記構造化文書を生成するデータ生成手段と、を有し、前記テンプレート読込手段が読み込む前記テンプレートは、前記定型部の記述形式が検証されており、前記定型部は、前記構造化文書のデータ構造を含むことを特徴とする。
【０００９】
係る構成とすることにより、構造化された電子文書の妥当性検証処理の高速化を実現することができる。なお、電子文書処理装置とは、例えば、後述するＸＭＬデータ生成装置等に対応する。
【００１０】
また、本発明は、電子文書処理方法、プログラム及び記憶媒体としてもよい。
【発明の効果】
【００１１】
本発明によれば、構造化された電子文書の妥当性検証処理の負荷を軽減し、高速化を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。
【００１３】
＜実施形態１＞
図１は、ＸＭＬデータ生成装置の一例を示す図である。図１においてＸＭＬデータ生成装置１００は、メモリ１１０と、記憶装置１３０と、ＣＰＵ１４０と、を含む。
【００１４】
記憶装置１３０には、ＸＭＬデータ生成装置１００が生成するＸＭＬデータのテンプレート１３１と、アプリケーション開発者がＸＭＬデータ設計時に定義した定型部、非定型部を合わせたＸＭＬデータ全体のスキーマ１３２と、が保存されている。
【００１５】
メモリ１１０上には、アプリケーション１２０からデータ生成命令を受け取ってＸＭＬデータを出力バッファ１１９に出力するデータ生成部１１１が存在する。また、メモリ１１０上には、データ生成部１１１からテンプレートの読込命令を受け取ってテンプレートを読み込むテンプレート読込部１１２が存在する。
【００１６】
また、メモリ１１０上には、テンプレート内のどの部分を処理しているかの状態を保存するコンテキスト保存表１１５と、テンプレートの可変部に差し込む実データが保存されている差込データ一覧表１１８と、が存在する。また、メモリ１１０上には、テンプレートの各可変部の記述形式が記述されているデータ型対応表１１７と、データ型対応表１１７に記述されているデータ記述方式を定義しているデータ型定義一覧表１１６と、が存在する。
【００１７】
また、メモリ１１０上には、データ型対応表１１７を参照して差込データ一覧表１１８の差込データの記述形式を検証するデータ型検証部１１４、テンプレートの定型部を検証するテンプレート検証部１２１と、が存在する。また、メモリ１１０上には、テンプレート検証部１２１がテンプレートの定型部の検証の際に参照するテンプレート検証用スキーマ１２２が存在する。
【００１８】
ここで、アプリケーション１２０、データ生成部１１１、テンプレート読込部１１２、データ型検証部１１４、テンプレート検証部１２１等は、例えば対応するプログラムがメモリ１１０上に存在する。そして、このプログラムをＣＰＵ１４０が実行することにより、各機能を実現させたり、後述するフローチャートに示すような処理を実行させたりする。
【００１９】
図２は、テンプレート１３１の記述の一例を示す図（その１）である。ここでは、テンプレートの可変部は、＄ＩＳＢＮ、＄ＴＩＴＬＥ等、＄をつけた変数として記述されている。
【００２０】
図３は、データ型定義一覧表１１６の記述の一例を示す図である。データ型３０１の欄には、テンプレートの可変部をどのように記述するのかを識別するための識別子が記述されている。基本データ型３０２、ファセット３０３の欄には、実際にデータ型の記述方法が指定されている。図３に示す例では、Ｗ３Ｃで策定されているスキーマ記述言語である「ＸＭＬ  Ｓｃｈｅｍａ  Ｐａｒｔ  ２：  Ｄａｔａｔｙｐｅｓ」に沿った記述がされているが、記述方法は他の形式を使ってもよい。
【００２１】
例えば、基本データ型：ｓｔｒｉｎｇ、ファセット：ｍａｘＬｅｎｇｔｈ＝３０が指定された場合は、３０文字以内の文字列であることを示している。基本データ型：ｉｎｔｅｇｅｒ、ファセット：ｔｏｔａｌＤｉｇｉｔｓ＝７が指定された場合は、０以上９，９９９，９９９以下の整数であることを表している。
【００２２】
デフォルト値３０４の欄は、テンプレートの可変部のデフォルト値が記述されている。不正差込データ指定時３０５の欄は、可変部のデータが基本データ型３０２と、ファセット３０３と、の組み合わせに一致しなかった場合に行われる処理が記述されている。
【００２３】
例えば、"検証エラー"の場合は、一致しない場合は検証エラーとし、"デフォルト値指定"の場合は、差込データ一覧表１１８の記述されている値の代わりにデフォルト値が使われる。
【００２４】
図４は、データ型対応表１１７の記述の一例を示す図である。ノード名４０１の欄には、テンプレートの可変部を表す記述子が記述されている。図４に示す例では、Ｗ３Ｃで策定されているＸＭＬ内の位置を記述する言語ＸＰａｔｈ式に沿った記述がされているが、記述方法は他の形式を使ってもよい。データ型４０２の欄には、テンプレートの可変部をどのように記述するのかを識別するための識別子が記述されている。
【００２５】
図５は、実際にテンプレートの可変部に代入する値の一覧を保存した差込データ一覧表１１８の記述の一例を示す図である。差込データ指定用変数５０１の欄には、テンプレートの中に記述されている可変部を表す変数名が記述されている。差込文字列５０２の欄には、変数に設定する値が記述されている。
【００２６】
図６は、データ生成部１１１により生成された生成文書の一例を示す図である。
図７は、データ生成部１１１が現在参照しているテンプレートの位置を上述のＸＰａｔｈ式で記述したコンテキスト保存表１１５の記述の一例を示す図である。
【００２７】
図８は、ＸＭＬデータの構造を定義した部分と、データ形式を定義した部分と、を合わせたＸＭＬデータ全体のスキーマを、スキーマ記述言語のＲｅｌａｘ  ＮＧで記述したスキーマ１３２の記述の一例を示す図である。
【００２８】
図９は、ＸＭＬデータの構造を定義した部分のみをスキーマ記述言語のＲｅｌａｘ  ＮＧで記述したテンプレート検証用スキーマ１２２の記述の一例を示す図である。
なお、テンプレート検証用スキーマ１２２は、ＸＭＬデータ全体のスキーマ１３２からＸＭＬデータ生成装置１００等が生成してもよい。図８、図９の記述例では、図８のスキーマ１３２から、データ型定義を表現する＜ｄａｔａ＞要素の内の記述を削除することによって、例えばＸＭＬデータ生成装置１００は、テンプレート検証用スキーマ１２２を生成することができる。
【００２９】
次に、図１０を参照して、非定型部の検証を行いながら電子データ生成処理を行う処理の流れについて説明する。図１０は、電子データ生成処理の一例を示すフローチャートである。なお、電子データ生成処理において使用するテンプレート１３１は、テンプレート作成時、テンプレート検証部１２１が、テンプレート検証用スキーマ１２２を使って検証することにより、生成する電子データの定型部を予め検証しておく。
【００３０】
まず、データ生成部１１１がアプリケーション１２０からデータ生成指示を受け取る（Ｓ８０１）。すると、データ生成部１１１は、テンプレート読込部１１２にテンプレート１３１の読込開始指示を行う（Ｓ８０２）。
【００３１】
次にテンプレート読込部１１２が、テンプレート１３１から次の開始タグを読み込み（Ｓ８０３）、もしテンプレート１３１の最後に到達して読み込める開始タグがそれ以上なかったら（Ｓ８０４においてＹｅｓ）、生成処理を終了する。
【００３２】
開始タグが読み込めたら（Ｓ８０４においてＮｏ）、テンプレート読込部１１２は、開始タグをデータ生成部１１１に渡す（Ｓ８０５）。
【００３３】
データ生成部１１１は、開始タグを受け取ると、コンテキスト保存表１１５に現在処理中のノード名（例えば、ｉｓｂｎタグを処理している場合は、／ｂｏｏｋ／ｉｓｂｎ）を書き出す（Ｓ８０６）。その後、データ生成部１１１は、開始タグを出力バッファ１１９に書き込む（Ｓ８０７）。
【００３４】
次に、テンプレート読込部１１２は、テンプレートから終了タグの前までの文字列（例えば、ｉｓｂｎタグを処理している場合は、＄ＩＳＢＮ）をデータ生成部１１１に渡す（Ｓ８０８）。テンプレート読込部１１２は、文字列に差込指定用の変数（例えば、＄ＩＳＢＮ）が含まれていたときは（Ｓ８０９においてＹｅｓ）、データ生成部１１１等にその変数を渡し、データ型検証処理を行わせる（Ｓ８０９）。
【００３５】
データ型検証処理（Ｓ８１０）の処理結果が、検証エラーであった場合は（Ｓ８１１においてＹｅｓ）、テンプレート読込部１１２（又はデータ生成部１１１）は、データ生成をエラー終了する。
【００３６】
データ型検証処理（Ｓ８１０）の処理結果が、成功であった場合は（Ｓ８１１においてＮｏ）、データ生成部１１１は、データ型検証処理から受け取った文字列を出力バッファに書き込む（Ｓ８１２）。
【００３７】
その後、テンプレート読込部１１２がテンプレートから終了タグを読み込むと、テンプレート読込部１１２は、データ生成部１１１にタグ名（例えば、ｉｓｂｎの終了タグを読み込んだ場合はｉｓｂｎ）を通知する（Ｓ８１３）。
【００３８】
タグ名を受け取ったデータ生成部１１は、コンテキスト保存表１１５の現在処理中のノード名を親要素のノード名に修正し（ｉｓｂｎが通知された場合は、／ｂｏｏｋ）、テンプレートから次の開始タグを読み込む処理を繰り返す（Ｓ８１４）。
【００３９】
次に、図１１を参照して、電子データ検証処理の流れについて説明する。図１１は、電子データ検証処理の一例を示すフローチャートである。
【００４０】
データ生成部１１１は、差し込み指定用の変数（例えば、＄ＩＳＢＮ）を受け取ると、差込データ一覧表１１８から変数名に対応する文字列（例えば、ＩＳＢＮ４−８７３１１−１２０−Ｘ）を差込文字列として取得する（Ｓ９０１）。
【００４１】
その後、データ生成部１１１は、コンテキスト保存表１１５から現在処理中のノード名（／ｂｏｏｋ／ｉｓｂｎ）を取得する（Ｓ９０２）。そして、データ生成部１１１は、ノードのデータ型定義一覧表１１６から現在処理中のノード名に該当するデータ型（ｉｓｂｎ）を取得する（Ｓ９０３）。
【００４２】
更に、データ生成部１１１は、データ型定義一覧表（１１８）からデータ型に該当する基本データ型と、ファセットと、の値を取得し、Ｓ９０１で取得した差込文字列と共にデータ型検証部１１４に渡す（Ｓ９０５）。
【００４３】
データ型検証部１１４は、差込文字列が、基本データ型及びファセットに一致した形式となっているか否かを比較する（Ｓ９０６）。比較した結果、一致した場合（Ｓ９０７においてＹｅｓ）、データ生成部１１１は、差込文字列を出力バッファ１１９に書き出す（Ｓ９１１）。そして、データ生成部１１１は、検証成功を結果として設定してデータ検証処理を終了する（Ｓ９１３）。
【００４４】
一方、比較した結果、一致しなかった場合（Ｓ９０７においてＮｏ）、データ生成部１１１は、データ型定義一覧表１１６の不正差込データ指定時欄の値を参照する（Ｓ９０８）。
【００４５】
そして、値が"デフォルト値指定"となっていれば（Ｓ９０９においてＹｅｓ）、データ生成部１１１は、データ型定義一覧表１１６のデフォルト値の欄の値を取得し、出力バッファ１１９に書き込む（Ｓ９１２）。そして、データ生成部１１１は、検証成功を結果として設定してデータ検証処理を終了する（Ｓ９１３）。
【００４６】
一方、値が"デフォルト値指定"となっていなければ（Ｓ９０９においてＮｏ）、データ生成部１１１は、検証エラーを処理結果として設定し、データ検証処理を終了する（Ｓ９１０）。
【００４７】
＜実施形態２＞
実施形態１において、テンプレート１３１の記述と、データ型対応表１１７の記述と、を分けた例を示しているが、図１２のように、この二つの定義をまとめて記述してもよい。
【００４８】
図１２は、テンプレート１３１の記述の一例を示す図（その２）である。図１２のような場合、データ生成部１１１は、データ型検証処理を行う際に、データ型対応表１１７を参照することなく、テンプレート１３１を参照するだけで、差込データ指定用変数がどのデータ型で定義されているのかを取得することができる。
【００４９】
以上、上述した各実施形態によれば、構造化された電子文書の妥当性検証処理の高速化を実現することができる。
【００５０】
ＸＭＬ  ＳｃｈｅｍａやＲＥＬＡＸ  ＮＧ等のスキーマ記述言語で定義されたスキーマを使って構造化された電子文書の妥当性を行う場合、その処理は大きく二つに分けられる。
・  文書のツリー構造の検証
・  ＸＭＬの要素内容や属性値等、文字列の記述形式
上述した実施形態では、テンプレートを使って作成した電子文書を交換する場合、テンプレートの定型部に相当するツリー構造の検証を、テンプレート生成時等に予め行っておく。そして、文書生成、解析時には、最低限必要なテンプレートの非定型部の検証を行うことで、ＸＭＬ等構造化された電子文書の妥当性検証処理の高速化を実現している。
【００５１】
＜他の実施形態＞
なお、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても、達成されることは言うまでもない。また、システム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００５２】
この場合、記憶媒体から読出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５４】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態が実現される場合も含まれることは言うまでもない。
【００５５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００５６】
【図１】ＸＭＬデータ生成装置の一例を示す図である。
【図２】テンプレート１３１の記述の一例を示す図（その１）である。
【図３】データ型定義一覧表１１６の記述の一例を示す図である。
【図４】データ型対応表１１７の記述の一例を示す図である。
【図５】実際にテンプレートの可変部に代入する値の一覧を保存した差込データ一覧表１１８の記述の一例を示す図である。
【図６】データ生成部１１１により生成された生成文書の一例を示す図である。
【図７】データ生成部１１１が現在参照しているテンプレートの位置を上述のＸＰａｔｈ式で記述したコンテキスト保存表１１５の記述の一例を示す図である。
【図８】ＸＭＬデータの構造を定義した部分と、データ形式を定義した部分と、を合わせたＸＭＬデータ全体のスキーマを、スキーマ記述言語のＲｅｌａｘ  ＮＧで記述したスキーマ１３２の記述の一例を示す図である。
【図９】ＸＭＬデータの構造を定義した部分のみをスキーマ記述言語のＲｅｌａｘ  ＮＧで記述したテンプレート検証用スキーマ１２２の記述の一例を示す図である。
【図１０】電子データ生成処理の一例を示すフローチャートである。
【図１１】電子データ検証処理の一例を示すフローチャートである。
【図１２】テンプレート１３１の記述の一例を示す図（その２）である。
【符号の説明】
【００５７】
１００  ＸＭＬデータ生成装置
１１０  メモリ
１１１  データ生成部
１１２  テンプレート読込部
１１４  データ型検証部
１１５  コンテキスト保存表
１１６  データ型定義一覧表
１１７  データ型対応表
１１８  差込データ一覧表
１１９  出力バッファ
１２０  アプリケーション
１２１  テンプレート検証部
１２２  テンプレート検証用スキーマ
１３０  記憶装置
１３１  テンプレート
１３２  スキーマ
１４０  ＣＰＵ
【図１】
0005201808.tif 000002
【図２】
0005201808.tif 000003
【図３】
0005201808.tif 000004
【図４】
0005201808.tif 000005
【図５】
0005201808.tif 000006
【図６】
0005201808.tif 000007
【図７】
0005201808.tif 000008
【図８】
0005201808.tif 000009
【図９】
0005201808.tif 000010
【図１０】
0005201808.tif 000011
【図１１】
0005201808.tif 000012
【図１２】
0005201808.tif 000013