(57)【要約】【課題】ダイナミックに変化するデータを埋め込まれた文書を手軽に作成することができる技術を提供することを目的とする。【解決手段】データを取得する手順を示したクエリーを組み合わせて、クエリーの実行順序を規定するスクリプトを指定するスクリプト指定手段と、スクリプト指定手段において指定されたスクリプトに規定されている実行順序に基づいて、クエリーを実行し、データを取得するデータ取得手段と、文書の生成仕様を記述した文書生成仕様を指定する文書生成仕様指定手段と、データ取得手段において取得されたデータと、文書生成仕様指定手段において指定された文書生成仕様と、に基づいて、文書を生成する文書生成手段と、を有することによって前記課題を解決する。【選択図】図３
2007293621.tif 000002
【特許請求の範囲】
【請求項１】
データを取得する手順を示したクエリーを組み合わせて、クエリーの実行順序を規定するスクリプトを指定するスクリプト指定手段と、
前記スクリプト指定手段において指定されたスクリプトに規定されている実行順序に基づいて、前記クエリーを実行し、データを取得するデータ取得手段と、
文書の生成仕様を記述した文書生成仕様を指定する文書生成仕様指定手段と、
前記データ取得手段において取得されたデータと、前記文書生成仕様指定手段において指定された文書生成仕様と、に基づいて、文書を生成する文書生成手段と、
を有することを特徴とする文書生成装置。
【請求項２】
前記スクリプトには、前記クエリーの実行時刻が規定されており、
前記データ取得手段は、前記実行時刻に応じて、前記クエリーを実行し、データを取得することを特徴とする請求項１に記載の文書生成装置。
【請求項３】
前記スクリプトには、前記クエリーの実行間隔が規定されており、
前記データ取得手段は、前記実行間隔に応じて、前記クエリーを実行し、データを取得することを特徴とする請求項１に記載の文書生成装置。
【請求項４】
前記データ取得手段において取得されたデータに対して、どのクエリーの実行で取得されたデータかを識別する識別情報を付与する識別情報付与手段を更に有することを特徴とする請求項１乃至３の何れか１項に記載の文書生成装置。
【請求項５】
文書生成装置における文書生成方法であって、
問い合わせ言語を用いてデータを取得する手順を示したクエリーを組み合わせて、クエリーの実行順序を規定するスクリプトを指定するスクリプト指定ステップと、
前記スクリプト指定ステップにおいて指定されたスクリプトに規定されている実行順序に基づいて、前記クエリーを実行し、データを取得するデータ取得ステップと、
文書の生成仕様を記述した文書生成仕様を指定する文書生成仕様指定ステップと、
前記データ取得ステップにおいて取得されたデータと、前記文書生成仕様指定ステップにおいて指定された文書生成仕様と、に基づいて、文書を生成する文書生成ステップと、
を有することを特徴とする文書生成方法。
【請求項６】
請求項５に記載の文書生成方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書生成装置及び文書生成方法に関する。
【背景技術】
【０００２】
ワードプロセッサ・アプリケーションには、データベース等から取得した表データを、メイン文書と呼ばれるデータを差し込むべき場所を指定した文書に挿入して新たな文書を作成して印刷するいわゆる差し込み印刷機能を持っているものがある。
【０００３】
差し込む表データは表計算ソフトのファイルや、データベースのテーブル、データ取得のためのクエリーによって指定される。
【０００４】
メイン文書のデータを差し込む場所は、差し込み印刷フィールドとして指示される。この差し込み印刷フィールドは差し込みデータの表のカラムを特定できるデータを持っている。
【０００５】
差し込み印刷処理がＰＣ等において開始されると、文書データから、印刷するためにプリンターに送られる印刷データが生成される。その際、ＰＣは、文書データを読み込んで、差し込み印刷フィールドを検出する。そして、ＰＣは、差し込み印刷フィールドに設定されているカラム特定情報から表データのカラムを特定し、データを取得する。ＰＣは、取得したデータを差し込み印刷フィールドと置き換えて印刷データを生成する（例えば、特許文献１参照。）。
【０００６】
また、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎがオープンソースとして提供している汎用テンプレートエンジンＶｅｌｏｃｉｔｙを用いて、データと、テンプレートと、をマージして文書を作成する方法もある。ＶｅｌｏｃｉｔｙにはＶｅｌｏｃｉｔｙ  Ｔｅｍｐｌａｔｅ  Ｌａｎｇｕａｇｅ（ＶＴＬ）が存在する。テンプレートをこのＶＴＬを使用して記述すると、テンプレート外で定義されたデータをテンプレートにマージして文書を作成することができる（例えば、非特許文献１参照。）。
【０００７】
また、ＸＭＬデータを取得したときに、スタイルシートを指定して文書に変換するＸＳＬＴ及びＸＳＬ−ＦＯ技術が標準化されている（例えば、非特許文献２、非特許文献３参照。）。
【０００８】
【特許文献１】特開平５−２７４３１１号公報
【非特許文献１】Ｖｅｌｏｃｉｔｙ  Ｕｓｅｒ  Ｇｕｉｄｅ（ｈｔｔｐ：／／ｊａｋａｒｔａ．ａｐａｃｈｅ．ｏｒｇ／ｖｅｌｏｃｉｔｙ／ｄｏｃｓ／ｕｓｅｒ−ｇｕｉｄｅ．ｈｔｍｌ）
【非特許文献２】Ｅｘｔｅｎｓｉｂｌｅ  Ｓｔｙｌｅｓｈｅｅｔ  Ｌａｎｇｕａｇｅ  （ＸＳＬ）  Ｖｅｒｓｉｏｎ  １．０  Ｗ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  １５  Ｏｃｔｏｂｅｒ  ２００１  （ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／２００１／ＲＥＣ−ｘｓｌ−２００１１０１５／）
【非特許文献３】ＸＳＬ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ  （ＸＳＬＴ）  Ｖｅｒｓｉｏｎ  １．０  Ｗ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  １６  Ｎｏｖｅｍｂｅｒ  １９９９  （ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／１９９９／ＲＥＣ−ｘｓｌｔ−１９９９１１１６）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
データを取得し、テンプレートやメイン文書（以降、テンプレートと総称する）に埋め込んで文書を作成する文書処理装置において、データを取得するデータ取得手段と、テンプレートとの組み合わせを指定して文書作成を行うものがある。
【００１０】
このような装置においては、指定できるデータ取得手段は高々一つであり、差し込み指示があった時点でのみ、そのデータ取得手段を用いてデータが取得される。
【００１１】
ここで、図１は、本発明が解決しようとする課題を説明するための図である。工場等において、１時間単位でその時間の生産高を示す文書を生成する装置があるものとする。
この場合、この装置は、１時間おきに、累積生産高を取得し、この累積生産高から１時間前の累積生産高を引いて、その時間の生産高を計算し、表を作成するという処理を行わなければならない。
【００１２】
このようにダイナミックに変化するデータを、異なる時間に取得し、取得したデータ群を一つの文書に埋め込みたい場合、上述したような文書処理装置の機能だけでは実現することができない。この文書処理装置で生成できる文書は、埋め込み指示を出した時点のデータ群が一組だけ埋め込まれた文書でしかない。
【００１３】
上述したようなデータ群を一つの文書に埋め込むためには、決められた時間間隔でダイナミックに変化するデータ群を取得し、時刻情報と共に蓄積しておく。そして、時刻を指定されると蓄積されていたデータ群から指定された時刻のデータ群を取得できるようなデータ管理機能が必要となる。このデータ管理機能を用いて、所望の異なる時刻のデータ群を取得し、このデータ群と、それに対応したテンプレートとを用いて、初めて所望の文書を得ることができる。
【００１４】
この文書に必要なデータは１日の内の数時点であるのに対し、データを要求される時刻が特定できない場合には、要求される可能性があるため実際には使用されない時刻でのデータも蓄積しておく必要がある。例えば、１分間隔でデータを取得できるようにするためには、１日で１４４０時点のデータが必要になり、それらのデータを記憶するためのメモリ資源が無駄になってしまう。もっと間隔を広げて１時間間隔でデータを取得できるようにすると、データを取得した時点の間の時刻を指定された場合、指定された時刻のデータがないことになってしまう。このような場合、例えば前後のデータから類推したデータを返す構成とすると、精度の悪いデータになってしまう。
【００１５】
若しくは、上述したようなデータ群を一つの文書に埋め込むためには、ダイナミックに変化するデータを取得して、表形式のデータに変換して文書処理装置に入力するようなプログラム（機能又は装置）を新たに設けなくてはならない。
【００１６】
このように、ダイナミックに変化するデータを埋め込まれた文書を手軽に作成できる技術がなかった。
【００１７】
本発明はこのような問題点に鑑みなされたもので、ダイナミックに変化するデータを埋め込まれた文書を手軽に作成することができる技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
そこで、前記問題を解決するため、本発明は、データを取得する手順を示したクエリーを組み合わせて、クエリーの実行順序を規定するスクリプトを指定するスクリプト指定手段と、前記スクリプト指定手段において指定されたスクリプトに規定されている実行順序に基づいて、前記クエリーを実行し、データを取得するデータ取得手段と、文書の生成仕様を記述した文書生成仕様を指定する文書生成仕様指定手段と、前記データ取得手段において取得されたデータと、前記文書生成仕様指定手段において指定された文書生成仕様と、に基づいて、文書を生成する文書生成手段と、を有することを特徴とする。
【００１９】
係る構成とすることにより、例えば複雑なデータ問い合わせを断片化して簡単なデータ問い合わせ（クエリー）の組合せとすることができる。したがって、データ取得定義を簡便にすることができる。また、断片化した簡単なデータ問い合わせを再利用することもでき、データ取得定義の作成工数を削減することができる。また、複数のデータ問い合わせの結果を統合して一つのデータとして扱うことができる。よって、ダイナミックに変化するデータを埋め込まれた文書を手軽に作成することができる技術を提供することができる。
【００２０】
また、前記問題を解決するため、本発明は、文書生成方法及びプログラムとしてもよい。
【発明の効果】
【００２１】
本発明によれば、ダイナミックに変化するデータを埋め込まれた文書を手軽に作成することができる技術を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施例について図面に基づいて説明する。
【００２３】
図２は、文書生成装置の一例のハードウェア構成図である。図２において、１０１０は、プログラムを実行する処理部である。１０２０は、プログラムやデータを一時的に記憶しておく一次記憶部である。１０３０は、プログラムやデータを永続的に記憶しておく二次記憶部である。１０４０は、キーボード、マウス、タッチパネル等の文書生成装置のオペレータが処理を指示するための入力部である。
【００２４】
１０５０は、ディスプレー等の出力部である。１０６０は、データ等を紙に印刷するための印刷部である。１０７０は、ネットワークによって他の装置と通信を行うためのネットワーク部である。１０８０は、各部を接続するバスである。
【００２５】
図３は、文書生成装置（処理部１０１０）において実行されるソフトウェアの一例を示す構成図である。図３に示されるソフトウェアは、プログラムとして二次記憶部１０３０に記憶される。文書生成装置が起動されると、プログラムが、二次記憶部１０３０から一次記憶部１０２０にロードされ、処理部１０１０において実行される。
【００２６】
図３において、２０１０は、データベースやＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）にアクセスしてデータを取得するデータ取得部である。２０２０は、データ取得部２０１０で取得されるデータ（取得データ）で、一次記憶部１０２０又は二次記憶部１０３０に格納される。２０３０は、データ取得部２０１０がデータベースやＡＳＰからデータを取得する際の取得方法を記述したデータ取得定義である。
【００２７】
２０４０は、取得データ２０２０を文書に変換する際の文書のレイアウト定義である。２０５０は、データ取得定義２０３０と、レイアウト定義２０４０と、を内包し、組として管理するためのファイルであるドキュメントセットである。２０６０は、データ取得部２０１０が取得したデータ２０２０と、レイアウト定義２０４０と、からレイアウトされるべきデータを生成するデータマージ部である。
【００２８】
２０７０は、データマージ部によって生成されたデータを実際の文書イメージとして配置するレイアウト部である。２０８０は、レイアウト部２０７０によってレイアウトされたデータを印刷する際のデータ形式に変更するレンダリング部である。２０９０は、レンダリング部２０８０が生成した印刷データ、若しくはレイアウト部２０７０が生成した文書である文書データである。
【００２９】
図４は、データ取得定義２０３０においてＸＭＬで記述されているスクリプトの構文を定義したＸＭＬ  Ｓｃｈｅｍａの一例を示す図である。
【００３０】
図４に示されるＸＭＬ  Ｓｃｈｅｍａに従い、文書生成装置は、図５に示されるようなスクリプトを記述することができる。図５は、スクリプトの一例を示す図（その１）である。
【００３１】
図５に示されるスクリプトは、ｑ１という識別子を持ったクエリーを、午前１時に実行してその結果をｑ１＿１というプリフィックスを付けて保存し、更に午前２時にも実行して得られた結果をｑ１＿２というプリフィックスを付けて保存することを示している。更に図５に示されるスクリプトは、午前３時にｑ２という識別子を持つクエリーを実行することを示している。以下、図５に示されるスクリプトをスクリプト１と呼ぶ。
【００３２】
更に、図４に示されるＸＭＬ  Ｓｃｈｅｍａに従い、文書生成装置は、図６に示されるようなスクリプトを記述することができる。図６は、スクリプトの一例を示す図（その２）である。
【００３３】
図６に示されるスクリプトは、最初にｑ１という識別子を持ったクエリーを実行し、その３時間後にｑ２という識別子を持ったクエリーを実行することを示している。以下、図６に示されるスクリプトをスクリプト２と呼ぶ。
【００３４】
更に、図４に示されるＸＭＬ  Ｓｃｈｅｍａに従い、文書生成装置は、図７に示されるようなスクリプトを記述することができる。図７は、スクリプトの一例を示す図（その３）である。
【００３５】
図７に示されるスクリプトは、ｑ１という識別子を持ったクエリーと、ｑ２という識別子を持ったクエリーと、ｑ３という識別子を持ったクエリーと、を並行して実行することを示している。以下、図７に示されるスクリプトをスクリプト３と呼ぶ。
以上のように、スクリプトは、データを取得する手順を示したクエリーの実行順序を規定している。
【００３６】
図８は、ドキュメントセット２０５０のファイル構成の一例を示した図である。本実施形態において、ドキュメントセット２０５０は、ＺＩＰ形式のアーカイブファイルとして構成されるものとする。図８において、３０１０は、ファイル内部の構成要素を示す構成情報エントリである。３０２０は、構成情報エントリ以外の一般エントリである。
【００３７】
図９は、構成情報エントリ３０１０内に格納される構成情報を記述するためのＸＭＬの構文の一例を示すＸＭＬ  Ｓｃｈｅｍａの図である。
【００３８】
図１０は、図９に示したＸＭＬ  Ｓｃｈｅｍａに合致した、構成情報エントリ３０１０に格納される構成情報の一例を示す図である。構成情報には、０個以上のスクリプトと、０個以上のクエリー（スクリプトと、クエリーとによってデータ取得定義２０３０が形成される）と、１個のレイアウト定義２０４０を格納するエントリと、が名前定義と共に記述されている。
【００３９】
図１１は、ドキュメントセット２０５０に対して、印刷処理が指示された場合の処理手順の一例を示すフローチャートである。印刷指示は、印刷すべきドキュメントセット２０５０のファイル名と、その中に格納されているスクリプトのスクリプト名と、を指定することによって行われる。
【００４０】
ステップ６０１０において、データ取得部２０１０は、ドキュメントセット２０５０を、指定されたファイル名を基に、二次記憶部１０３０からＺＩＰファイルとして取り出す。また、データ取得部２０１０は、取り出したＺＩＰファイルの構成情報エントリ３０１０から構成情報を取り出す。
【００４１】
ステップ６０２０において、データ取得部２０１０は、構成情報から、指定された名前を持つスクリプトが格納されているエントリ名を得る。データ取得部２０１０は、ＸＭＬ  Ｑｕｅｒｙ若しくはＸＭＬ  Ｐａｔｈ等の技術を使用して構成情報からｓｃｒｉｐｔ要素のｅｎｔｒｙ属性を調べることによってエントリ名を得ることができる。データ取得部２０１０は、得られたエントリ名を持つエントリ（スクリプト）を、ドキュメントセット２０５０から取り出す。
【００４２】
指定された名前を持つスクリプトが格納されているエントリ名が構成情報に登録されていない場合や、得られた名前を持つエントリ（スクリプト）がドキュメントセット２０５０に存在しない場合、データ取得部２０１０は、エラー処理等を行う。そして、データ取得部２０１０は、図１１に示す処理を終了する。
【００４３】
ステップ６０３０において、データ取得部２０１０は、ステップ６０２０で得られたスクリプトを実行する。
【００４４】
スクリプト実行の詳細を、図１２を用いて説明する。図１２は、スクリプト実行の処理の一例の流れをＵＭＬのシーケンス図を用いて表した図である。図１２を用いて、データ取得部２０１０を構成するプログラムとして実行されるオブジェクト間の振る舞いを説明する。
【００４５】
７０１０は、データ取得部２０１０全体を管理し、スクリプト実行の制御を行うＣｏｎｔｒｏｌｌｅｒオブジェクトである。７０２０は、スクリプトの実行を行うＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクトである。７０３０は、スクリプトの実行開始時間を管理するＴｉｍｅＭａｎａｇｅｒオブジェクトである。７０４０は、クエリーを発行しサーバー等からＸＭＬデータを取得するＱｕｅｒｙＩｎｉｔｉａｔｏｒオブジェクトである。７０５０は、ＱｕｅｒｙＩｎｉｔｉａｔｏｒオブジェクト７０４０が取得したＸＭＬデータを蓄積するＤａｔａＭｅｒｇｅｒオブジェクトである。
【００４６】
Ｃｏｎｔｒｏｌｌｅｒオブジェクト７０１０は、図１１のステップ６０２０で得られたスクリプトをＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０に渡す。
【００４７】
ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、ＤａｔａＭｅｒｇｅｒオブジェクト７０５０を生成した後、スクリプトを解析して全てのｒｕｎ要素を取り出す。ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、取り出したｒｕｎ要素に識別子を付けて管理する。取り出したｒｕｎ要素に属性として実行時刻を示すａｔ属性が指定されていると、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、ｒｕｎ要素の識別子と、ａｔ属性に指定された実行時刻と、をＴｉｍｅＭａｎａｇｅｒオブジェクト７０３０に登録する。取り出したｒｕｎ要素に属性として実行時刻を示すａｔ属性が指定されている例としては、例えばスクリプト１等がある。
【００４８】
ＴｉｍｅＭａｎａｇｅｒオブジェクト７０３０は、時計を管理しており、登録された実行時刻に到達したときにＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０に対して登録されたｒｕｎ要素識別子を含んだ時刻イベントを発行する。時刻イベントを受けた時点から、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、時刻イベントに指定された識別子で記録されているｒｕｎ要素を処理する。
【００４９】
なお、ａｔ属性を持たないｒｕｎ要素は出現順に、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０において処理される。
【００５０】
ｒｕｎ要素は以下のように処理される。
【００５１】
ｍｏｄｅ属性が、シーケンシャルな処理を行うことを示すｓｅｑｕｅｎｔｉａｌ値を持つときは、各クエリーは、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０において、実現順に処理される。スクリプト２に示すように、ｑｕｅｒｙ要素と、ｑｕｅｒｙ要素と、の間にｉｎｔｅｒｖａｌ要素がある場合は、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、ｉｎｔｅｒｖａｌ要素の内容が示す時間だけクエリー実行の間隔をあける。ここで、クエリー実行の間隔とは、前のクエリーの結果を得てから次のクエリーを発行するまでの時間のことである。
【００５２】
ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、ｑｕｅｒｙ要素のｉｄ属性が示す文字列をエントリ名とするドキュメントセット２０５０のエントリに格納されているクエリーを取得する。ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、取得したクエリーと、ＤａｔａＭｅｒｇｅｒオブジェクト７０５０の識別子と、ｑｕｅｒｙ要素にｐｒｅｆｉｘ属性がある場合はその値と、を引数として、ＱｕｅｒｙＩｎｉｔｉａｔｏｒオブジェクト７０４０のクエリー発行メソッドを呼び出す。
【００５３】
ＱｕｅｒｙＩｎｉｔｉａｔｏｒオブジェクト７０４０のクエリー発行メソッドは、クエリーデータに示された問い合わせを行い、ＸＭＬデータを取得する。スクリプト１に示すようにｐｒｅｆｉｘ属性としてプリフィックスが指定されている場合、前記クエリー発行メソッドは、取得したＸＭＬデータを、指定されたプリフィックスを要素名とした要素の子要素とし、ＤａｔａＭｅｒｇｅｒオブジェクト７０５０に渡す。プリフィックスが指定されていない場合、前記クエリー発行メソッドは、取得したＸＭＬデータを、そのままＤａｔａＭｅｒｇｅｒオブジェクト７０５０に渡す。
【００５４】
ＤａｔａＭｅｒｇｅｒオブジェクト７０５０は、渡されたＸＭＬデータを、ｄａｔａ要素の子要素として、渡された順に格納していく。
【００５５】
スクリプト３に示すようにｍｏｄｅ属性が並列処理を示すｃｏｎｃｕｒｒｅｎｔ値を持っている場合、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、全てのクエリーを並行に実行する。
【００５６】
スクリプトを全て処理した後、ＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０は、ＤａｔａＭｅｒｇｅｒオブジェクト７０５０のデータ取得メソッドを呼び出す。このメソッドの戻り値としてｄａｔａ要素で包まれたクエリーによって取得されたＸＭＬデータがＳｃｒｉｐｔＥｘｅｃｕｔｏｒオブジェクト７０２０に戻る。
【００５７】
例えば、スクリプト１を実行して得られたＸＭＬデータは図１３のようになる。図１３は、ＸＭＬデータの一例を示す図である。
【００５８】
図１１のステップ６０４０において、データマージ部２０６０は、構成情報から、指定された名前を持つレイアウト定義２０４０が格納されているエントリ名を得る。データマージ部２０６０は、ＸＭＬ  Ｑｕｅｒｙ若しくはＸＭＬ  Ｐａｔｈ等の技術を使用して構成情報からｌａｙｏｕｔ要素のｅｎｔｒｙ属性を調べることによってエントリ名を得ることができる。データマージ部２０６０は、得られたエントリ名を持つエントリ（レイアウト定義２０４０）をドキュメントセット２０５０から取り出す。
【００５９】
指定された名前を持つレイアウト定義２０４０が格納されているエントリ名が構成情報に登録されていない場合、データマージ部２０６０は、エラー処理を行う。また、得られた名前を持つエントリ（レイアウト定義２０４０）がドキュメントセット２０５０に存在しない場合も、データマージ部２０６０は、エラー処理を行う。そして、データマージ部２０６０は、図１１に示す処理を終了する。
【００６０】
本実施形態ではレイアウト定義２０４０は、文書生成仕様であって、ＸＳＬＴで変換仕様を定義しているスタイルシートとして実現されているものとする。このスタイルシートはＸＭＬデータをＸＳＬ−ＦＯデータに変換するためのものである。
【００６１】
データマージ部２０６０は、ステップ６０３０においてデータ取得部２０１０が取得したＸＭＬデータを入力とし、レイアウト定義２０４０をスタイルシートとして変換を行い、ＸＳＬ−ＦＯデータを生成する。
【００６２】
ステップ６０５０において、レイアウト部２０７０及びレンダリング部２０８０は、ステップ６０４０で生成されたＸＳＬ−ＦＯデータを入力として受け取り、印刷が行えるＰｏｓｔＳｃｒｉｐｔ等のＰＤＬに変換する。なお、ＰＤＬとは、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅの略である。
【００６３】
ここで、ＸＭＬデータをＸＳＬＴによって変換し、ＰＤＬデータを得る処理はＡｐａｃｈｅプロジェクトのＦＯＰ等のツールを使用して行うこともできる。
【００６４】
ステップ６０６０において、レイアウト部２０７０及び／又はレンダリング部２０８０は、ステップ６０５０で生成したＰＤＬデータを印刷部１０６０に送り印刷を行う。
【００６５】
以上の処理を行うことによって、指定されたスクリプトを実行して得られたデータを印刷することができる。
【００６６】
本実施形態ではＸＭＬデータを印刷可能な文書に変換するためにＸＳＬＴを使用した。しかし、Ｖｅｌｏｃｉｔｙのようなテンプレートエンジンを用いて、取得したＸＭＬデータの中から必要なデータを取り出して、テンプレートとマージして印刷可能文書を生成するよう構成することもできる。
【００６７】
また、本実施形態ではクエリーを発行して得られるデータはＸＭＬデータであるとした。しかしながら、取得したデータがＸＭＬ形式でない場合にも取得データをＸＭＬ形式に変換して処理するよう構成することもできる。
【００６８】
以上、本実施形態によれば、時間軸上で離れた時点のデータを取得して同一文書上に表現することができる。よって、文書表現の自由度を増すことができる。また、本実施形態によれば、例えば複雑なデータ問い合わせを断片化して簡単なデータ問い合わせ（クエリー）の組合せとすることができる。したがって、データ取得定義を簡便にすることができる。また、断片化した簡単なデータ問い合わせを再利用することもでき、データ取得定義の作成工数を削減することができる。また、複数のデータ問い合わせの結果を統合して一つのデータとして扱うことができる。よって、ダイナミックに変化するデータを埋め込まれた文書を手軽に作成することができる技術を提供することができる。
【００６９】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７０】
【図１】本発明が解決しようとする課題を説明するための図である。
【図２】文書生成装置の一例のハードウェア構成図である。
【図３】文書生成装置（処理部１０１０）において実行されるソフトウェアの一例を示す構成図である。
【図４】データ取得定義２０３０においてＸＭＬで記述されているスクリプトの構文を定義したＸＭＬ  Ｓｃｈｅｍａの一例を示す図である。
【図５】スクリプトの一例を示す図（その１）である。
【図６】スクリプトの一例を示す図（その２）である。
【図７】スクリプトの一例を示す図（その３）である。
【図８】ドキュメントセット２０５０のファイル構成の一例を示した図である。
【図９】構成情報エントリ３０１０内に格納される構成情報を記述するためのＸＭＬの構文の一例を示すＸＭＬ  Ｓｃｈｅｍａの図である。
【図１０】図９に示したＸＭＬ  Ｓｃｈｅｍａに合致した、構成情報エントリ３０１０に格納される構成情報の一例を示す図である。
【図１１】ドキュメントセット２０５０に対して、印刷処理が指示された場合の処理手順の一例を示すフローチャートである。
【図１２】スクリプト実行の処理の一例の流れをＵＭＬのシーケンス図を用いて表した図である。
【図１３】ＸＭＬデータの一例を示す図である。
【符号の説明】
【００７１】
１０１０  処理部
１０２０  一次記憶部
１０３０  二次記憶部
１０４０  入力部
１０５０  出力部
１０６０  印刷部
１０７０  ネットワーク部
２０１０  データ取得部
２０６０  データマージ部
２０７０  レイアウト部
２０８０  レンダリング部
【図１】
2007293621.tif 000003
【図２】
2007293621.tif 000004
【図３】
2007293621.tif 000005
【図４】
2007293621.tif 000006
【図５】
2007293621.tif 000007
【図６】
2007293621.tif 000008
【図７】
2007293621.tif 000009
【図８】
2007293621.tif 000010
【図９】
2007293621.tif 000011
【図１０】
2007293621.tif 000012
【図１１】
2007293621.tif 000013
【図１２】
2007293621.tif 000014
【図１３】
2007293621.tif 000015