(57)【要約】【課題】  所定の階層構造で定義されるデータから階層構造が異なるバリアブルプリントデータを自動生成する。【解決手段】    情報処理装置において、保持手段により保持されたデータからレコードレベルの要素を選択する。ここで、データを選択された要素よりも上の要素を前記バリアブルデータの要素に変換し、選択された要素よりも下の要素を前記バリアブルデータのメタデータに変換する。そして、変換された階層構造で構成される要素とメタデータとからバリアブルプリントデータを生成することを特徴とする。【選択図】  図８
2014002606.tif 000002
【特許請求の範囲】
【請求項１】
データ処理を行う情報処理装置であって、
階層構造を有するデータを保持する保持手段と、
前記保持手段により保持されたデータからレコードレベルの要素を選択する選択手段と、
前記データにおいて前記選択手段により選択された要素よりも上の要素をバリアブルプリントデータの要素に変換し、前記選択された要素よりも下の要素をバリアブルプリントデータのメタデータに変換する変換手段とを、備え、
前記変換手段により変換された階層構造で構成される要素とメタデータとから印刷すべきバリアブルプリントデータを生成することを特徴とする情報処理装置。
【請求項２】
前記変換手段は、選択されたレコードレベルより下の要素と判別された要素について、前記保持手段に保持されているデータの階層構造の各要素に付加されている情報をメタデータに変換し、さらに、当該要素の親要素のうち、選択されたレコードレベルの階層の要素に対応するデータが有する階層構造の要素に変換したメタデータを付加することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記変換手段は、前記データの階層構造の各要素の要素名の情報を、バリアブルプリントデータが有する階層構造の各要素に付加するメタデータに変換することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記変換手段は、前記データが有する階層構造の各要素に付加するメタデータのキー名の記述方法として、メタデータのうちで一意に表現可能な記述方法を用いることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
階層構造で構成されるバリアブルプリントデータを編集する編集手段と、
前記バリアブルプリントデータが有する階層構造及びメタデータの編集手順を保存する保存手段と、
前記編集手順が保存されているか判別する判別手段と、
前記編集手順が保存されていると判別した場合は、前記編集手順を用いてバリアブルプリントデータが有する階層構造及びメタデータを自動的に編集する手段と、
を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記データは、ＸＭＬであることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記バリアブルプリントデータは、ＰＤＦ／ＶＴであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
保持手段に保持される階層構造を有するデータにデータ処理を行う情報処理装置のデータ処理方法であって、
前記保持手段により保持されたデータからレコードレベルの要素を選択する選択ステップと、
前記データにおいて前記選択ステップにより選択された要素よりも上の要素をバリアブルプリントデータの要素に変換し、前記選択された要素よりも下の要素を前記バリアブルプリントデータのメタデータに変換する変換ステップと、を備え、
前記変換ステップにより変換された階層構造で構成される要素とメタデータとから印刷すべきバリアブルプリントデータを生成することを特徴とする情報処理装置のデータ処理方法。
【請求項９】
請求項８に記載の情報処理装置のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理を行う情報処理装置、情報処理装置のデータ処理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
バリアブルデータ印刷（Ｖａｒｉａｂｌｅ  Ｄａｔａ  Ｐｒｉｎｔｉｎｇ；以下、ＶＤＰと表記する）として知られる印刷方法が行われている。ＶＤＰの文書では、固定部分と可変部分を分け、可変部分のデータをＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）やＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）ファイルなどのデータソースから供給する。ここで、データソースの桁（フィールド）をテンプレート文書の可変部分と関連付け、データソースの行（レコード）ごとに適用することで、レコードごとに異なる内容の印刷を行う。
【０００３】
ＶＤＰでは、例えば顧客情報にしたがって提供する商品情報を変えるダイレクトメールなどを作成することができる。１つのＶＤＰに必要なページレイアウトやデータソースなどの論理的な情報の集まりをＶＤＰドキュメントと呼ぶ。
【０００４】
ＰＤＦ／ＶＴ等のＶＤＰドキュメントでは階層構造を追加して、ページの構造化をするとともに、各階層にメタデータとして受取人の情報（例：受取人を識別するためのＩＤ、性別、住所など）等の情報を付加することが可能となっている。
＜ＶＤＰドキュメントに対する印刷設定＞
【０００５】
ＰＤＦ／ＶＴ等のＶＤＰドキュメントを印刷する際の印刷設定を制御する方法としては、一般にＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）を利用する。ＪＤＦの仕様のうち、印刷の制御方法をデバイスに伝えるデータフォーマットとして、ＪＤＦ  ＪｏｂＴｉｃｋｅｔがある。
【０００６】
ＰＤＦ／ＶＴ等のＶＤＰドキュメントは、ＪＤＦ  ＪｏｂＴｉｃｋｅｔを用いる事によって、階層構造及びメタデータに応じて、印刷物の受取人に対して、個別の印刷設定行って、印刷するといった制御が可能である。
＜ＶＤＰドキュメントの生成方法＞
【０００７】
通常、ＶＤＰドキュメントは、ＶＤＰアプリケーションを用いて生成する。ユーザはＶＤＰアプリケーションを操作し、まず、ＶＤＰドキュメントの可変部分と固定部分のレイアウトを作成する。このレイアウトをＶＤＰテンプレートと呼ぶ。次に、データソースの桁（フィールド）と、ＶＤＰテンプレートの可変部分とを関連付ける。そして、ユーザがＶＤＰアプリケーションを操作してＶＤＰドキュメントの生成を指示すると、ＶＤＰアプリケーションは、データソースの行（レコード）ごとにデータをＶＤＰテンプレートに流し込む。これにより、ＶＤＰドキュメントが生成される。
【０００８】
ＶＤＰドキュメントを生成する方法としては様々な技術が提案されている。例えば、特許文献１では、レイアウト定義ファイルと、データ構造などが記述されたファイルを含むテンプレートを使用することで、バリアブル記述言語に依存しないＶＤＰドキュメントの作成方法が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−９３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＪＤＦ  ＪｏｂＴｉｃｋｅｔ等を使用して、ＶＤＰドキュメントが有している階層構造及びメタデータに応じた印刷設定を行う場合、ＶＤＰドキュメントの階層構造が適切な構造になっていなければならない。しかし、特許文献１では、階層構造及びメタデータの作成方法については考慮していない。そのため、ＶＤＰドキュメントの階層構造及びメタデータは専用の編集ツールやテキストエディタなどを使用して手動で作成しなければならず、ユーザの手間がかかる。また、上記作業は、ＶＤＰドキュメントを作成するたびに行わなければならない。
【００１１】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、所定の階層構造で定義されるデータから階層構造が異なるバリアブルプリントデータを自動生成できる仕組みを提供することである。
さらに、階層構造が異なるバリアブルプリントデータから所定の階層構造で定義されるデータに変換することで、変換されたバリアブルプリントデータからより編集し易い所定の階層構造で定義されたデータでデータ編集を行える仕組みを提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
データ処理を行う情報処理装置であって、階層構造を有するデータを保持する保持手段と、前記保持手段により保持されたデータからレコードレベルの要素を選択する選択手段と、前記データにおいて前記選択手段により選択された要素よりも上の要素を前記バリアブルデータの要素に変換し、前記選択された要素よりも下の要素を前記バリアブルデータのメタデータに変換する変換手段と、前記変換手段により変換された階層構造で構成される要素とメタデータとからバリアブルプリントデータを生成する生成手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、所定の階層構造で定義されるデータから階層構造が異なるバリアブルプリントデータを自動生成できる。
さらに、階層構造が異なるバリアブルプリントデータから所定の階層構造で定義されるデータに変換することで、変換されたバリアブルプリントデータからより編集し易い所定の階層構造で定義されたデータでデータ編集を行える。
【図面の簡単な説明】
【００１４】
【図１】本実施形態を示す印刷システムの構成例を示すブロック図である。
【図２】本実施形態における情報処理装置の構成の一例を示すブロック図である。
【図３】本実施形態を示す情報処理装置で処理するデータの構造例を説明する図である。
【図４】本実施形態を示す情報処理装置のデータ処理を説明するブロック図である。
【図５】本実施形態を示す情報処理装置で処理するデータの構造を示す図である。
【図６】本実施形態を示す情報処理装置のデータ処理を説明するフローチャートである。
【図７】図２に示したディスプレイに表示されるＵＩ画面の一例を示す図である。
【図８】本実施形態を示す情報処理装置のデータ処理を説明するフローチャートである。
【図９】本実施形態を示す情報処理装置のデータ処理例を示す図である。
【図１０】情報処理装置におけるデータ処理例を示す図である。
【図１１】データ処理装置のデータ処理方法を示すフローチャートである。
【図１２】図２に示したディスプレイに表示されるＵＩ画面の一例を示す図である。
【図１３】ＸＰａｔｈを利用してＤＰＭのキー名を生成する例を示す図である。
【図１４】情報処理装置におけるデータ処理例を示す図である。
【図１５】情報処理装置のデータ処理方法を説明するフローチャートである。
【図１６】図２に示したディスプレイに表示されるＵＩ画面の一例を示す図である。
【図１７】図２に示したディスプレイに表示されるＵＩ画面の一例を示す図である。
【図１８】情報処理装置のデータ処理方法を説明するフローチャートである。
【図１９】本実施形態を示す情報処理装置のデータ処理例を示す図である。
【図２０】本実施形態を示す情報処理装置のデータ処理例を示す図である。
【図２１】本実施形態を示すＰＤＦ／ＶＴ作成システムのブロック図である。
【図２２】クライアント装置のデータ処理方法を説明するフローチャートである。
【図２３】ＤＰａｒｔ構造の編集処理例を示す図である。
【発明を実施するための形態】
【００１５】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す印刷システムの構成例を示すブロック図である。本印刷システムでは、データベースサーバ１０２、クライアントＰＣ１０３、プリンタコントローラ１０４、プリンタ１０６を有し、それらがネットワーク１０１を介して接続されている。また、プリンタコントローラ１０４とプリンタ１０６は印刷機Ｉ／Ｆケーブルによって接続されている。また、本実施形態では、クラウドコンピューティング環境を利用して構築することも可能である。
【００１６】
図１において、クライアントＰＣ１０３はデータベースサーバ１０２から取得したデータを用いて、ＶＤＰドキュメントを生成する。この際、本発明に係る手法によりＶＤＰドキュメントが持つ階層構造を自動的に作成する。その後、クライアントＰＣ１０３でＶＤＰドキュメントに対する印刷設定を行い、印刷設定を記述したジョブチケットを生成する。更に、クライアントＰＣ１０３は該生成したＶＤＰドキュメントとジョブチケットを、プリンタコントローラ１０４に送信する。 
【００１７】
プリンタコントローラ１０４はＶＤＰドキュメントとジョブチケットを受信した後、該ジョブチケットを解釈し印刷機Ｉ／Ｆケーブル１０５を介してプリンタに印刷指示を行う。またプリンタコントローラ１０４ではＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）を行い、ＲＩＰ処理後のビットマップデータを印刷機Ｉ／Ｆケーブル１０５を介してプリンタ１０６に送信する。 
プリンタ１０６では、ビットマップデータを受信した後印刷を行う。 
【００１８】
本発明の実施の形態では、データベースサーバ１０２、クライアントＰＣ１０３、プリンタコントローラ１０４がネットワーク接続された構成となっている。ただし、本発明はこの構成に限定されるものでなく、データベースサーバ１０２、クライアントＰＣ１０３、プリンタコントローラ１０４は同一のコンピュータであっても良い。 
次に本発明の実施の形態に係るコンピュータ装置の構成を説明する。
図２は、本実施形態における情報処理装置の構成の一例を示すブロック図である。ここで、情報処理装置は、データベースサーバ１０２、クライアントＰＣ１０３を例とする。
【００１９】
図２において、２０１はＣＰＵで、ＲＡＭ２０２に格納されている制御プログラムに従って本装置全体の制御を行う。２０２は内部記憶部（ＲＡＭ）で、ＣＰＵ２０１が実行するプログラムや、文書画像等のデータを格納する。２０３はネットワークインタフェースで、ＣＰＵ２０１の制御の下にネットワークとの接続を行なってデータ等を送受信する。２０４は磁気ディスク等の外部記憶装置で、データを保存する。２０５はディスプレイ、２０６はキーボード、２０７はマウス等のポインティングデバイスである。
【００２０】
ＲＡＭ２０２に格納されているプログラムは、所定の動作を行うために、ＲＡＭ２０２に格納されているＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）の機能を必要に応じて使用する。また、ＲＡＭ２０２に格納されているプログラムは、ＲＡＭ２０２に一時記憶するデータの内容の読み書きを行なったり、外部記憶装置２０４上でデータの読み書きを行なったり、ネットワークインタフェース２０３を通じてデータの送受信を行なったりする。また、ＲＡＭ２０２に格納されているプログラムは、キーボード２０６やポインティングデバイス２０７からの入力を受け取ったり、ディスプレイ２０５に表示を行なったりする。 
【００２１】
図３は、本実施形態を示す情報処理装置で処理するデータの構造例を説明する図である。本例は、ＰＤＦ／ＶＴ（Ｖａｒｉａｂｌｅ  Ｔｒａｎｓａｃｔｉｏｎ）が持つＤＰａｒｔ階層構造例を示す。
図３において、ＰＤＦ／ＶＴではＤＰａｒｔ（Ｄｏｃｕｍｅｎｔ  Ｐａｒｔ）３０２からなる階層構造３０５を有しており、ＤＰａｒｔ階層構造の終端ノードがページオブジェクト３０４を参照するようになっている。ＤＰａｒｔ階層構造の最上位に存在するノードを特に、ＤＰａｒｔＲｏｏｔ（Ｄｏｃｕｍｅｎｔ  Ｐａｒｔ  Ｒｏｏｔ）３０１と呼ぶ。ＤＰａｒｔＲｏｏｔの子ノードである第１階層目のＤＰａｒｔは、ＰＤＦ／ＶＴの仕様により、ただ一つ存在する。 
【００２２】
各ＤＰａｒｔにはＤＰＭ（Ｄｏｃｕｍｅｎｔ  Ｐａｒｔ  Ｍｅｔａｄａｔａ）３０３とよばれるメタデータを設定できる機能を有している。ＤＰＭには任意のキーと値の組を設定することが可能であり、ＤＰａｒｔに対する意味付けをすることができる。これによって、ユーザは個々のページではなく、ＤＰＭに設定されたメタデータを条件にしてＤＰａｒｔに対する印刷設定が可能となっている。 
【００２３】
ＤＰａｒｔＲｏｏｔはＲｅｃｏｒｄＬｅｖｅｌと呼ばれるパラメータを持つことができ、該パラメータにＰＤＦ／ＶＴのどのＤＰａｒｔ階層がレコードレベルに対応するかを記録することができる。ここで、レコードレベルとは、各レコードを構成する階層であり、ＶＤＰ印刷を行う際に繰り返し処理される階層である。
図４は、本実施形態を示す情報処理装置のデータ処理を説明するブロック図である。本例は、印刷対象となる階層構造のソースデータの形式がＸＭＬの場合のＰＤＦ／ＶＴ作成システムによるデータ処理例である。 
図４において、ＸＭＬＤＢ４０１は、ＸＭＬ形式の印刷対象となる階層構造のソースデータが格納されているデータベースである。なお、ＸＭＬＤＢ４０１に格納されているＸＭＬデータの例は図５で後述する。
【００２４】
テンプレート４０２は、レイアウト等が記述されているファイルである。ＰＤＦ／ＶＴ作成部４０３は、ＸＭＬＤＢ４０１に格納されている印刷対象となる階層構造のソースデータとテンプレート４０２を入力として、該入力データを結合することでＰＤＦ／ＶＴ４０４を作成する部分である。
ＰＤＦ／ＶＴ作成部４０３では、本発明であるＸＭＬＤＢ４０１に格納されている印刷対象となる階層構造のソースデータの階層構造を利用したＤＰａｒｔ構造自動作成処理が実行される。ＰＤＦ／ＶＴ編集部４０５は、ＰＤＦ／ＶＴ４０４を入力として、ＤＰａｒｔ構造を編集し、編集済ＰＤＦ／ＶＴ４０６を出力する部分である。 
【００２５】
ＰＤＦ／ＶＴ作成部４０３では、ＸＭＬ形式のデータソースを入力とすることを前提としている。元のデータベースがＸＭＬ形式ではない場合について、図４の（ｂ）を使用して説明する。
図４の（ｂ）は印刷対象となる階層構造のソースデータの形式がＸＭＬ以外の場合のＰＤＦ／ＶＴ作成システム例である。図４の（ａ）からＤＢ４０７とＸＭＬデータ作成部４０８が追加される。ＤＢ４０７はＸＭＬ以外の形式の印刷対象となる階層構造のソースデータが格納されているデータベースである。ＸＭＬデータ作成部４０８はＤＢ４０７から印刷対象となる階層構造のソースデータを読み込んで、ＸＭＬ形式に変換した後、ＸＭＬＤＢ４０１に格納する部分である。ＸＭＬデータ作成部４０８の処理によって、元のデータベースがＸＭＬ形式以外であっても、ＰＤＦ／ＶＴ作成部４０３で本発明の処理が実行可能となる。 
【００２６】
図５は、本実施形態を示す情報処理装置で処理するデータの構造を示す図である。なお、本実施形態に示す情報処理装置は、所定の階層構造で定義されるソースデータのデータ構造を異なるオブジェクトで定義する特定の階層構造に変換して処理する。具体的には、利用するデータが、ＸＭＬＤＢ４０１に格納されているＸＭＬデータの例である。
図５において、５０１はＸＭＬデータであり、５０２はＸＭＬデータ５０１を木構造で表現したものである。ＸＭＬデータ５０１のルート要素は「Ｒｏｏｔ」である。
ＸＭＬのルート要素は仕様によりただ一つ存在する。「Ｒｏｏｔ」要素の子要素は「Ｃｕｓｔｏｍｅｒｓ」である。「Ｃｕｓｔｏｍｅｒｓ」要素では顧客の情報を住所(Ａｒｅａ属性)毎にまとめている。
「Ｃｕｓｔｏｍｅｒｓ」要素の子要素は「Ｃｕｓｔｏｍｅｒ」である。「Ｃｕｓｔｏｍｅｒ」要素には各顧客の情報として、ＩＤ（ＩＤ属性）、名前（テキスト）が記述されている。「Ｃｕｓｔｏｍｅｒ」要素の子要素は「Ａｇｅ」である。「Ａｇｅ」要素には顧客の年齢（テキスト）が記述されている。なお、以降の説明では、図５に示すＸＭＬデータを例にとって説明する。
【００２７】
本実施例では図６〜図１０を参照して、ＸＭＬＤＢの階層構造からＰＤＦ／ＶＴのＤＰａｒｔ階層構造を作成する方法について説明する。
【００２８】
図６は、本実施形態を示す情報処理装置のデータ処理を説明するフローチャートである。本例は、ＸＭＬＤＢからＤＰａｒｔ階層構造を作成するプログラムの処理例である。なお、図６のフローチャートで示す手順はクライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
Ｓ６０１で処理が開始され、Ｓ６０２では、ＣＰＵ２０１は、上記作成プログラムを実行してデータベースサーバ１０２の外部記憶装置２０４に格納されているＸＭＬ形式の印刷対象となる階層構造のソースデータを読み込む。次に、Ｓ６０３では、ＣＰＵ２０１は、ディスプレイ２０５に図７に示すレコードレベル指定を行うためのＵＩ画面を表示して、上記作成プログラムを実行してユーザからレコードレベルの指定を受け付ける。なお、本実施形態では、外部記憶装置２０４に記憶される階層構造のソースデータを、例えばクライアントＰＣ１０３から受信して保持する構成とするが、直接受信した階層構造のソースデータを処理する構成としてもよい。
【００２９】
図７は、図２に示したディスプレイ２０５に表示されるＵＩ画面の一例を示す図である。本例は、上記レコードレベル指定画面の一例である。
図７において、データ構造表示部８０１には、ＣＰＵ２０１がＳ６０２で読み込んだＸＭＬのデータ構造を表示する。レコードレベル入力部８０２は、ユーザからデータ構造表示部８０１に表示されているＸＭＬの要素のうち、レコードレベルとする要素の名称の入力を受け付ける。
ポインタ８０３は、ユーザからの操作を受け付け、データ構造表示部８０１からレコードレベルとする要素の選択を受け付ける。ＣＰＵ２０１は、レコードレベル入力部８０２もしくはポインタ８０３がレコードレベルの指定を受け付けた後、ＯＫボタン８０４がユーザの操作を受け付けた場合、Ｓ６０４に進む。なお、Ｃａｎｃｅｌボタン８０５がユーザの操作を受け付けた場合、以降の処理は行わず、本作成プログラムに基づくデータ処理を終了する。
【００３０】
Ｓ６０４では、プログラムがＸＭＬのルート要素を引数として、サブルーチン「ＸＭＬ要素をＤＰａｒｔに変換」を呼び出す処理である。なお、サブルーチン「ＸＭＬ要素をＤＰａｒｔに変換」の詳細説明は図８を用いて後述する。
Ｓ６０５では、ＣＰＵ２０１がＳ６０４で作成したＤＰａｒｔ構造を外部記憶装置２０４に保存して、Ｓ６０６で、本データ処理を終了する。
図８は、本実施形態を示す情報処理装置のデータ処理を説明するフローチャートである。本例は、ＸＭＬ要素をＤＰａｒｔに変換するサブルーチンの処理例である。なお、図８のフローチャートで示す手順はクライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
Ｓ７０１で、サブルーチン「対象のＸＭＬ要素をＤＰａｒｔに変換」に関わる処理を開始する。
【００３１】
Ｓ７０２では、ＣＰＵ２０１は、変換対象となっているＸＭＬの要素が、Ｓ６０３で指定したレコードレベル以上の階層に存在するか、もしくは下の階層に存在するかを判断する。ここで、対象要素がレコードレベル以上の階層に存在するとＣＰＵ２０１が判断した場合はＳ７０３に進む。一方、対象要素がレコードレベルより下の階層に存在するとＣＰＵ２０１が判断した場合は、Ｓ７０６に進む。
Ｓ７０３では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素について、ＸＭＬと同じ構造となるようにＤＰａｒｔを作成する。
【００３２】
Ｓ７０４では、ＣＰＵ２０１は作成プログラムを実行することにより、対象ＤＰａｒｔを、Ｓ７０３で作成したＤＰａｒｔと設定する。ここで、対象ＤＰａｒｔとは、対象要素に属性が存在する場合、または対象要素の内容にテキストが存在する場合に、該情報をＤＰＭとして付加する対象となるＤＰａｒｔである。
【００３３】
Ｓ７０５では、ＣＰＵ２０１は作成プログラムを実行することにより、Ｓ７０４で設定した対象ＤＰａｒｔに、対象要素の要素名の情報を付加する。なお、要素名の付加方法としては、例えば、ＸＭＬの要素名を示すキー名を予約しておき、ＤＰＭとして「（予約したキー名）=（ＸＭＬの要素名）」というデータを付加する。もしくは、ＰＤＦ／ＶＴでは、ＤＰａｒｔＲｏｏｔにＮｏｄｅＮａｍｅＬｉｓｔと呼ばれる、各ＤＰａｒｔ階層の名前を記述するパラメータがあるため、ＮｏｄｅＮａｍｅＬｉｓｔにＸＭＬの要素名を追加してもよい。 
【００３４】
Ｓ７０６では、対象要素がレコードレベルより下の階層に存在する場合、ＣＰＵ２０１は作成プログラムを実行することにより、対象ＤＰａｒｔを、対象要素の親要素のうち、レコードレベル要素が対象要素の時にＳ７０３で作成したＤＰａｒｔとする。
Ｓ７０７では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素が属性を持っているか判断する。ここで、対象要素が属性を持っているとＣＰＵ２０１が判断した場合はＳ７０８に進み、対象要素が属性を持っていないと判断した場合はＳ７０９に進む。
【００３５】
Ｓ７０８では、ＣＰＵ２０１は作成プログラムを実行することにより、Ｓ７０４またはＳ７０６で設定した対象ＤＰａｒｔに、対象要素の属性の情報をＤＰＭとして付加する処理である。例えば、「（属性名）=（属性値）」というデータを付加する。
【００３６】
Ｓ７０９では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素の内容にテキストが含まれているか判断する。ここで、対象要素の内容にテキストが含まれているとＣＰＵ２０１が判断した場合はＳ７１０に進み、対象要素の内容にテキストが含まれていないと判断した場合はＳ７１１に進む。 
【００３７】
Ｓ７１０では、ＣＰＵ２０１は作成プログラムを実行することにより、Ｓ７０４またはＳ７０６で設定した対象ＤＰａｒｔに、テキストの情報をＤＰＭとして付加する。例えば、「（要素名）=（テキスト）」というデータを付加する。 
【００３８】
Ｓ７１１では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素の内容に子要素が含まれているか判断する。ここで、対象要素の内容に子要素が含まれているとＣＰＵ２０１が判断した場合はＳ７１２に進み、対象要素の内容に子要素が含まれていないと判断した場合はＳ７１５に進む。
Ｓ７１２では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素に含まれる全ての子要素に対して、Ｓ７１３の処理を繰り返し行う処理である。 
【００３９】
Ｓ７１３では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素の子要素を引数として、サブルーチン「ＸＭＬ要素をＤＰａｒｔに変換」を再帰的に呼び出す処理である。該再帰呼び出しによって、末端の要素まで、全てのＸＭＬ要素をＤＰａｒｔに変換することが出来る。
Ｓ７１４では、ＣＰＵ２０１は作成プログラムを実行することにより、対象要素に含まれる全ての子要素に対して、Ｓ７１３の処理を完了した際にＳ７１５に進む処理である。 
Ｓ７１５ではサブルーチン「ＸＭＬ要素をＤＰａｒｔに変換」を終了して、図６に示したＳ６０６へリターンする。
【００４０】
次に図８のフローに従ってＸＭＬの要素や属性がどのように変換されるか、図９の例を用いて説明する。
【００４１】
図９は、本実施形態を示す情報処理装置のデータ処理例を示す図である。本例は、レコードレベルの指定Ｓ６０３においてＣｕｓｔｏｍｅｒ要素が指定されており、図８における対象要素がＣｕｓｔｏｍｅｒ要素である場合に、ＸＭＬをＤＰａｒｔに変換する例である。 
【００４２】
Ｓ７０２では、Ｃｕｓｔｏｍｅｒ要素はレコードレベルであるため、Ｓ７０３に進む。Ｓ７０３では、ＣＰＵ２０１は作成プログラムを実行することにより、ＤＰａｒｔ９０１を作成する。
Ｓ７０４では、作成したＤＰａｒｔ９０１を、ＤＰＭの追加対象ＤＰａｒｔとして設定する。Ｓ７０５では対象要素の要素名であるＣｕｓｔｏｍｅｒ（９０２）を、対象ＤＰａｒｔ９０１のＤＰＭに「ＥＮａｍｅ＝"Ｃｕｓｔｏｍｅｒ"」(９０３)というデータとして付加する。
ここで「ＥＮａｍｅ」は変換元のＸＭＬの要素名を保存するために予約されているＤＰＭのキー名の例である。なお、ＰＤＦ／ＶＴでは、ＤＰａｒｔＲｏｏｔにＮｏｄｅＮａｍｅＬｉｓｔと呼ばれる各ＤＰａｒｔ階層の名前を記述するパラメータがあるため、ＮｏｄｅＮａｍｅＬｉｓｔにＸＭＬの対象要素の要素名を追加してもよい。
【００４３】
図５に示したＸＭＬでは、対象要素であるＣｕｓｔｏｍｅｒ要素は、最上位の要素から順にＲｏｏｔ要素、Ｃｕｓｔｏｍｅｒｓ要素の下の要素である。Ｃｕｓｔｏｍｅｒ要素の要素名を追加することによって、ＮｏｄｅＮａｍｅＬｉｓｔには「Ｒｏｏｔ」、「Ｃｕｓｔｏｍｅｒｓ」、「Ｃｕｓｔｏｍｅｒ」と記述される。
【００４４】
Ｓ７０７では、Ｃｕｓｔｏｍｅｒ要素は属性「ＩＤ＝"１"」（９０４）を持っているため、Ｓ７０８に進む。Ｓ７０８では、属性「ＩＤ＝"１"」（９０４）の情報を、対象ＤＰａｒｔ９０１のＤＰＭに「ＩＤ＝"１"」(９０５)というデータとして付加する。 
【００４５】
Ｓ７０９では、Ｃｕｓｔｏｍｅｒ要素の内容にテキスト「Ｔａｎａｋａ」（９０６）が含まれているため、Ｓ７１０に進む。Ｓ７１０では、テキスト「Ｔａｎａｋａ」（９０６）の情報を、対象ＤＰａｒｔ９０１のＤＰＭに「Ｃｕｓｔｏｍｅｒ０１＝"Ｔａｎａｋａ"」（９０７）というデータとして付加する。ここで、同一要素の内容に複数のテキストが含まれていても、キー名の重複が発生しないように、キー名を「要素名＋カウンタ番号」としている。 
【００４６】
Ｓ７１１では、Ｃｕｓｔｏｍｅｒ要素の内容に子要素「Ａｇｅ」が含まれているため、Ｓ７１２に進む。Ｓ７１２−Ｓ７１４では、Ｃｕｓｔｏｍｅｒ要素の子要素である「Ａｇｅ」を引数として「対象のＸＭＬ要素をＤＰａｒｔに変換」を呼び出す。 
【００４７】
以下対象要素がＡｇｅ要素の時の処理となる。Ｓ７０２では、Ａｇｅ要素はレコードレベルであるＣｕｓｔｏｍｅｒ要素の下の階層に存在するため、Ｓ７０６に進む。Ｓ７０６では、ＤＰＭの追加対象ＤＰａｒｔを、レコードレベルであるＣｕｓｔｏｍｅｒ要素の変換時に作成したＤＰａｒｔ９０１とする。
【００４８】
Ｓ７０７では、Ａｇｅ要素は属性を持っていないので、Ｓ７０９に進む。Ｓ７０９では、Ａｇｅ要素の内容にテキスト「２０」（９０８）が含まれているため、Ｓ７１０に進む。Ｓ７１０では、対象ＤＰａｒｔ９０１のＤＰＭに「Ａｇｅ＝"２０"」（９０９）というデータとして付加する。Ｓ７１１ではＡｇｅ要素の内容に子要素は存在しないため、Ｓ７１５に進む。Ｓ７１５ではサブルーチンの呼び出し元である、対象要素がＣｕｓｔｏｍｅｒの時のＳ７１３に戻る。 
以下再び対象要素がＣｕｓｔｏｍｅｒ要素の時の処理となる。Ｓ７１４では、未処理の子要素は存在しないため、Ｓ７１５に進む。Ｓ７１５ではサブルーチンの呼び出し元に戻る。 
【００４９】
図１０は、本実施形態を示す情報処理装置におけるデータ処理例を示す図である。本例は、図５に示すＸＭＬに対して、図６，図８に示したフローチャートを実行した際に作成されるＤＰａｒｔ階層構造である。
なお、図１０は、Ｓ６０３においてレコードレベルをＣｕｓｔｏｍｅｒ要素に指定した場合の例である。
レコードレベル以上に存在する、Ｒｏｏｔ要素、Ｃｕｓｔｏｍｅｒｓ要素、Ｃｕｓｔｏｍｅｒ要素については、対応するＤＰａｒｔがＸＭＬの階層構造と同じ構造を持つように作成される。レコードレベルより下に存在するＡｇｅ要素については、レコードレベルであるＣｕｓｔｏｍｅｒ要素に対応するＤＰａｒｔのＤＰＭとして付加される。 
〔第２実施形態〕
【００５０】
第１実施形態では、レコードレベル階層を基準として処理を切り替えることで、ＸＭＬＤＢの階層構造からＰＤＦ／ＶＴのＤＰａｒｔ階層構造を作成する手法を示した。しかし、レコードレベル以下に同じ名前の要素または属性が存在する場合に、レコードレベルに対応するＤＰａｒｔに付加されるＤＰＭのキー名が重複する問題がある。本実施形態では、ＤＰＭのキー名にＸＰａｔｈを利用することで、ＤＰＭのキー名を一意に生成する手法を説明する。
【００５１】
図１１は、本実施形態を示すデータ処理装置のデータ処理方法を説明するフローチャートである。本例は、ＸＭＬＤＢの階層構造からＰＤＦ／ＶＴのＤＰａｒｔ階層構造を作成する作成プログラムのデータ処理例である。第１実施形態において同様の処理を行っていた図６のフローチャートの代わりに実行される。図６からの変更点はＳ１１０１〜Ｓ１１０３が追加されていることである。 
なお、図１１のフローチャートで示す手順はクライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００５２】
Ｓ１１０１は、ＣＰＵ２０１は作成プログラムを実行することにより、Ｓ６０２で読み込んだＸＭＬについて、Ｓ６０３で指定したレコードレベル以下に同じ名前の要素または属性が存在するか判断する。ここで、レコードレベル以下に同じ名前の要素または属性が存在するとＣＰＵ２０１が判断した場合はＳ１１０２に進み、レコードレベル以下に同じ名前の要素または属性が存在しないと判断した場合はＳ１１０３に進む。 
【００５３】
Ｓ１１０２では、ＣＰＵ２０１は作成プログラムを実行することにより、ＤＰＭのキー名の生成方法をＸＰａｔｈに設定する。図１２の（ａ）はＳ１１０２において、ＤＰＭのキー名を、ＸＰａｔｈを利用して生成することを示した画面の一例である。
図１２の（ａ）において、ＯＫボタン１２０１がユーザの操作を受け付けることでＳ６０４に進む。 
【００５４】
Ｓ１１０３ではＣＰＵ２０１は作成プログラムを実行することにより、ユーザからＤＰＭのキー名の生成方法の指定を受け付ける。図１２の（ｂ）は、Ｓ１１０３における、ＤＰＭキー名生成方法指定画面の一例である。
図１２の（ｂ）において、ＤＰＭキー名生成方法選択部１２０２は、ユーザからＤＰＭのキー名に要素名、属性名を利用するか、ＤＰＭのキー名にＸＰａｔｈを利用するかの選択を受け付ける。ここで、ラジオボタン１２０３の選択を受け付けたとＣＰＵ２０１が判断した場合、ＣＰＵ２０１は作成プログラムを実行することにより、ＤＰＭのキー名を、要素名、属性名を利用して生成するように設定する。
【００５５】
また、図１２の（ｂ）に示す画面において、ラジオボタン１２０４の選択を受け付けたとＣＰＵ２０１が判断した場合、ＣＰＵ２０１は作成プログラムを実行することにより、ＤＰＭのキー名を、ＸＰａｔｈを利用して生成するように設定する。
このようにして、ユーザからラジオボタン１２０３またはラジオボタン１２０４の選択を受け付けた後、ＯＫボタン１２０５がユーザの操作を受け付けた場合Ｓ６０４に進む。なお、図１２の（ｂ）に示す画面において、Ｃａｎｃｅｌボタン１２０６がユーザの操作を受け付けた場合、以降の処理は行わず、ＣＰＵ２０１は作成プログラムの実行を終了する。
【００５６】
以上の処理により、レコードレベル以下に同じ名前の要素または属性が存在する場合は、ＤＰＭのキー名の生成にＸＰａｔｈを利用する。ＤＰＭのキー名の生成にＸＰａｔｈを利用することで同じ名前の要素、または属性が存在している場合でも、一意に生成することが可能であるため、ＤＰＭのキー名が重複する問題は発生しない。また、同じ名前の要素、または属性が存在しない場合は、第１実施形態に示したように要素名、属性名を利用してＤＰＭのキー名を生成してもＤＰＭのキー名が重複する問題は発生しない。そのため、同じ名前の要素、または属性が存在しない場合には、ＤＰＭのキー名の生成方法として、要素名、属性名を利用することが可能となっている。
【００５７】
図１３は、図１１に示す処理に基づいてＸＰａｔｈを利用してＤＰＭのキー名を生成する例を示す図である。なお、図１３において、レコードレベルはＣｕｓｔｏｍｅｒ要素が指定されているものとする。
図１３に示すＸＭＬ１３０１では、レコードレベルであるＣｕｓｔｏｍｅｒ要素の下にＨｉｓｔｏｒｙ要素とＤｅｓｔｉｎａｔｉｏｎ要素が複数存在する。またｙｅａｒ属性も複数存在する。そのため、図１１に示したＳ１１０１及びＳ１１０２の処理によって、ＤＰＭのキー名を生成方法はＸＰａｔｈを利用するように設定される。ＤＰＭのキー名を生成方法がＸＰａｔｈの場合、図８に示したＳ７０８、Ｓ７１０の処理において、ＸＰａｔｈを利用してＤＰＭのキー名を生成する。
【００５８】
１３０３はＣｕｓｔｏｍｅｒ要素に対応するＤＰａｒｔ１３０２に付加されるＤＰＭである。ＤＰＭ１３０３の各データのキー名は、ＸＰａｔｈのロケーションパスによって生成されており、同じ名前の要素、または属性が存在する場合でも、一意に生成が可能となっている。なお、ロケーションパスの記述方法は、一意に要素、属性を指定できる記述方法であれば、どのような方法であってもよい。
図１３では、同名の要素が存在する場合は、出現した順番に通し番号を付加する方法で記述している。この場合、１３０１の１番目のＨｉｓｔｏｒｙ要素（属性ｙｅａｒ＝"２０１０"の要素）に関しては、１３０３ではＨｉｓｔｏｒｙ［１］と記述している。１３０１の２番目のＨｉｓｔｏｒｙ要素（属性ｙｅａｒ＝"２０１１"の要素）に関しては、１３０３ではＨｉｓｔｏｒｙ［２］と記述している。
〔第３実施形態〕
【００５９】
第１実施形態、第２実施形態では、ＸＭＬＤＢの階層構造からＤＰａｒｔ階層構造を作成する手法を示した。しかし、該ＤＰａｒｔ階層構造を編集する必要がある場合、ＰＤＦ／ＶＴを作成するたびに編集作業が発生する問題がある。本実施例では、ＤＰａｒｔ階層構造を編集した場合に、ＤＰａｒｔ階層構造からＸＭＬの構造を生成し、ＸＭＬＤＢに反映する手法について説明する。
【００６０】
図１４は、本実施形態を示す情報処理装置におけるデータ処理例を示す図である。
本例は、図４に示したＰＤＦ／ＶＴ編集部４０５において、図１０に示すＤＰａｒｔ構造を編集した例である。この例は、年代に対しての印刷設定を効率的に出来るようにするため、２階層目のＤＰａｒｔのＤＰＭを住所(Ａｒｅａ)から年代（ＡｇｅＧｒｏｕｐ）に変更したものである。なお、第３実施形態、第４実施形態では図１４の例を使用する。
以下、図１５〜図２０を参照して、ＰＤＦ／ＶＴのＤＰａｒｔ階層構造からＸＭＬの構造を作成する方法について説明する。
【００６１】
図１５は、本実施形態を示す情報処理装置のデータ処理方法を説明するフローチャートである。本例は、ＤＰａｒｔ階層構造をＸＭＬの構造に変換するプログラムに基づくデータ処理例である。なお、図１５のフローチャートで示す手順は、クライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
Ｓ１５０１では、ＣＰＵ２０１がＤＰａｒｔ階層構造をＸＭＬの構造に変換するプログラムを実行すると、本処理が開始される。 
【００６２】
Ｓ１５０２では、ＣＰＵ２０１がＤＰａｒｔ階層構造をＸＭＬの構造に変換するプログラムを実行することにより、ユーザからＤＰａｒｔ構造をＸＭＬＤＢに書き戻すか指定を受ける。図１６に示すＵＩ画面は、Ｓ１５０２において、ＣＰＵ２０１がディスプレイ２０５に表示するＤＰａｒｔ構造書き戻し指定画面の一例である。
【００６３】
図１６において、ユーザがはいボタン１７０１を操作したことを受け付けたとＣＰＵ２０１が判断した場合、ＣＰＵ２０１が変換プログラムを実行することにより、ＤＰａｒｔ構造をＸＭＬＤＢに書き戻すように設定する。
一方、いいえボタン１７０２がユーザの操作を受け付けたとＣＰＵ２０１が判断した場合、ＣＰＵ２０１が変換プログラムを実行することにより、ＤＰａｒｔ構造をＸＭＬＤＢに書き戻さないように設定する。 
【００６４】
Ｓ１５０３では、ＣＰＵ２０１が変換プログラムを実行することにより、ＤＰａｒｔ構造をＸＭＬＤＢに書き戻すか判断する。Ｓ１５０２において、ＤＰａｒｔ構造をＸＭＬＤＢに書き戻すことを設定したとＣＰＵ２０１が判断した場合はＳ１５０４に進み、Ｓ１５０２において、ＤＰａｒｔ構造をＸＭＬＤＢに書き戻さないことを設定したと判断した場合はＳ１５０８に進む。 
Ｓ１５０４では、ＣＰＵ２０１が変換プログラムを実行することにより、編集したＤＰａｒｔ構造を読み込む。 
【００６５】
Ｓ１５０５では、ＣＰＵ２０１が変換プログラムを実行することにより、ユーザからＤＰａｒｔ構造をＸＭＬに変換する際の要素名の設定と、ＸＭＬとしてのＤＰＭの表現方法の設定を受ける。
図１７は、図２に示したディスプレイ２０５に表示されるＵＩ画面の一例を示す図である。本例は、Ｓ１５０５において、ＣＰＵ２０１がディスプレイ２０５に表示する階層構造を有するＤＰａｒｔ構造をバリアブルプリントデータの一例であるＸＭＬに変換する際の要素名の設定と、ＸＭＬとしてのＤＰＭの表現方法を設定する画面の一例である。
【００６６】
図１７において、データ構造表示部１８０１には、ＣＰＵ２０１がＳ１５０４で読み込んだＤＰａｒｔのデータ構造を表示する。データ構造表示部１８０１に表示されるデータ構造の各ノードには、ＸＭＬに変換する際の要素名となる文字列が表示されている。ＸＭＬに変換する際の要素名については、第１実施形態を利用してＤＰａｒｔ構造を作成した場合、ＤＰＭにキー名ＥＮａｍｅの値に要素名の情報を記録している。
【００６７】
そのため、ＥＮａｍｅの値からＸＭＬに変換する際の要素名を決定出来る。また実施例２を利用してＤＰａｒｔ構造を作成した場合、ＸＰａｔｈのロケーションパスをＤＰＭのキー名にする。そのため、ＤＰＭのキー名には変換元のＸＭＬの要素名が記述されているため、該キー名の要素名からＸＭＬに変換する際の要素名を決定出来る。もしくは、ＰＤＦ／ＶＴでは、ＤＰａｒｔＲｏｏｔはＮｏｄｅＮａｍｅＬｉｓｔと呼ばれるパラメータを持ち、該パラメータには各ＤＰａｒｔ階層の名前を記述される。
例えば、３階層のＤＰａｒｔ構造に対して、第一階層目から「Ｒｏｏｔ」、「Ｃｕｓｔｏｍｅｒｓ」、「Ｃｕｓｔｏｍｅｒ」と名前を付けることが出来る。ＮｏｄｅＮａｍｅＬｉｓｔを利用して、ＸＭＬの要素名を決定してもよい。
上記の例では、ＸＭＬの要素名が一階層目から「Ｒｏｏｔ」、「Ｃｕｓｔｏｍｅｒｓ」、「Ｃｕｓｔｏｍｅｒ」となる。ポインタ１８０２はユーザの操作を受け付け、データ構造表示部１８０１に表示されるデータ構造の各ノードを選択する。その後、要素名入力部１８０３がユーザからの文字列の入力を受け付けることによって、選択したノードの要素名を入力した文字列に変更する。
【００６８】
さらに、ＤＰＭの表現方法設定部１８０４がユーザからの操作を受け付けることで、プログラムはＤＰＭをＸＭＬの形式で表現可能な方法を設定する。ＤＰＭをＸＭＬの形式で表現可能な方法として３つの方法があり、ＤＰＭの表現方法設定部１８０４がユーザからの操作を受け付けることで任意で決定できるようにする必要がある。
【００６９】
ＤＰＭの表現方法設定部１８０４において、ラジオボタン１８０５がユーザの操作を受け付けた場合、プログラムはＤＰＭを属性として表現するように設定する。ＤＰＭの表現方法設定部１８０４において、ラジオボタン１８０６がユーザの操作を受け付けた場合、プログラムはＤＰＭをテキストとして表現するように設定する。
【００７０】
ＤＰＭの表現方法設定部１８０４において、ラジオボタン１８０７がユーザの操作を受け付けた場合、プログラムはＤＰＭを子要素のテキストとして表現するように設定する。なお、第２実施形態を利用してＤＰａｒｔ構造を作成した場合、ＸＰａｔｈのロケーションパスをキー名にする。
【００７１】
キー名が属性を表すロケーションパスで記載されている場合は、変換元のＸＭＬの属性から作成されたことが判別でき、キー名がテキストを表すロケーションパスで記載されている場合は、変換元のＸＭＬの要素内のテキストから作成されたことが判別できる。そのため、ＤＰＭの表現方法を変換元のＸＭＬと同一となるように設定してもよい。
【００７２】
この場合、ＤＰＭの表現方法設定部１８０４における設定は不要となるため、ＤＰＭの表現方法設定部１８０４をグレーアウトするなどして、ユーザの操作を受け付けないようにする。ユーザから要素名の設定、及びＤＰＭの表現方法設定を受け付けた後、ＯＫボタン１８０８がユーザの操作を受け付けた場合、Ｓ１５０６に進む。Ｃａｎｃｅｌボタン１８０９がユーザの操作を受け付けた場合、以降の処理は行わずプログラムは終了する。 
【００７３】
Ｓ１５０６では、ＣＰＵ２０１が変換プログラムを実行することにより、第一階層目のＤＰａｒｔを引数として、サブルーチン「ＤＰａｒｔをＸＭＬ要素に変換」を呼び出す処理である。サブルーチン「ＤＰａｒｔをＸＭＬ要素に変換」の詳細説明は図１８を用いて後述する。
【００７４】
Ｓ１５０７では、ＣＰＵ２０１が変換プログラムを実行することにより、作成したＸＭＬを、データベースサーバ１０２の外部記憶装置２０４に格納する。そして、Ｓ１５０８で、ＣＰＵ２０１が実行した変換プログラムを終了する。 
【００７５】
図１８は、本実施形態を示す情報処理装置のデータ処理方法を説明するフローチャートである。本例は、図１５に示したＳ１５０６に対応するＤＰａｒｔをＸＭＬ要素に変換するサブルーチンの詳細処理例である。なお、図１８のフローチャートで示す手順は、クライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００７６】
Ｓ１６０１は、ＣＰＵ２０１がサブルーチン「ＤＰａｒｔをＸＭＬ要素に変換」を開始する。
Ｓ１６０２では、ＣＰＵ２０１が変換プログラムを実行することにより、対象ＤＰａｒｔについて、ＤＰａｒｔと同じ構造となるようにＸＭＬ要素を作成する。ここで、ＸＭＬの要素名はＳ１５０５で設定したものとする。
【００７７】
Ｓ１６０３では、ＣＰＵ２０１が変換プログラムを実行することにより、対象ＤＰａｒｔがＤＰＭを持っているか判断する。ここで、対象ＤＰａｒｔがＤＰＭを持っているとＣＰＵ２０１が判断した場合はＳ１６０４に進み、対象ＤＰａｒｔがＤＰＭを持っていないと判断した場合はＳ１６０５に進む。 
【００７８】
Ｓ１６０４では、ＣＰＵ２０１が変換プログラムを実行することにより、Ｓ１６０２において作成したＸＭＬ要素に、対象ＤＰａｒｔのＤＰＭの情報を付加する。具体的には、Ｓ１６０４において、Ｓ１５０５で設定した表現方法でＤＰＭの情報をＸＭＬ要素に付加する。 
【００７９】
図１９、図２０は、本実施形態を示す情報処理装置のデータ処理例を示す図である。
本例は、図１５に示したＳ１５０５で設定するＤＰＭの表現方法それぞれについて、ＤＰＭの情報を付加する処理を実行した結果の例である。
【００８０】
図１９の（ａ）はＳ１５０５において、ＤＰＭの表現方法を属性とした場合に、ＤＰＭの情報を付加する処理を実行した結果の例である。図１９の（ｂ）はＳ１５０５において、ＤＰＭの表現方法をテキストとした場合に、ＤＰＭの情報を付加する処理を実行した結果の例である。ここでは、テキストでは複数の値を表現できないため、カンマ（、）区切りで複数の値を表現している例を示している。
【００８１】
図１９の（ｃ）はＳ１５０５において、ＤＰＭの表現方法を子要素のテキストとした場合に、ＤＰＭの情報を付加する処理を実行した結果の例である。
また、図２０は、ＤＰＭのキー名がＸＰａｔｈのロケーションパスで表現されている場合に、ＤＰＭの情報を付加する処理を実行した結果の例である。キー名が属性を指すＸＰａｔｈの場合 （Ｃｕｓｔｏｍｅｒ／＠ＩＤ）は、ＤＰＭの値を作成した要素の属性とする。キー名が処理対象ＤＰａｒｔと同階層を指すＸＰａｔｈの場合 （Ｃｕｓｔｏｍｅｒ／）、ＤＰＭの値を、作成した要素内のテキストとする。キー名が処理対象ＤＰａｒｔよりも下の階層を指すＸＰａｔｈの場合 （Ｃｕｓｔｏｍｅｒ／Ａｇｅ，  Ｃｕｓｔｏｍｅｒ／Ａｒｅａ）、キー名に記載されている名前の子要素を作成する。その後、ＤＰＭの値を該子要素内のテキストとする。
【００８２】
Ｓ１６０５では、ＣＰＵ２０１が変換プログラムを実行することにより、対象ＤＰａｒｔが子のＤＰａｒｔを持っているか判断する。ここで、対象ＤＰａｒｔが子のＤＰａｒｔを持っていると判断した場合はＳ１６０６に進み、対象ＤＰａｒｔが子のＤＰａｒｔを持っていないと判断した場合はＳ１６０９に進む。
Ｓ１６０６はプログラムが、対象ＤＰａｒｔに含まれる全ての子のＤＰａｒｔに対して、Ｓ１６０７の処理を繰り返し行う処理である。
【００８３】
Ｓ１６０７では、ＣＰＵ２０１が変換プログラムを実行することにより、対象ＤＰａｒｔの子のＤＰａｒｔを引数として、サブルーチン「ＤＰａｒｔをＸＭＬ要素に変換」を再帰的に呼び出す処理である。該再帰呼び出しによって、末端の要素まで、全てのＤＰａｒｔをＸＭＬ要素に変換することが出来る。
Ｓ１６０８ではプログラムが対象ＤＰａｒｔに含まれる全ての子のＤＰａｒｔに対して、Ｓ１６０７の処理を完了した際にＳ１６０９に進む処理である。Ｓ１６０９では、ＣＰＵ２０１が変換プログラムを終了する。
【００８４】
以上の処理により、ＸＭＬＤＢにはＤＰａｒｔ構造の編集結果が反映されることとなる。したがって、次回以降、第１実施形態または第２実施形態で示した手法によってＤＰａｒｔ構造を作成した場合、該Ｄｐａｒｔ構造は、以前編集したＤＰａｒｔ構造と同様のものとなる。
〔第４実施形態〕
【００８５】
第３実施形態では、編集後のＤＰａｒｔをＸＭＬに変換した後、データベースに書き戻す手法を示した。第３実施形態を利用することによって、２回目以降のＰＤＦ／ＶＴ作成時では編集後のＤＰａｒｔ構造を自動的に作成出来るため、ＤＰａｒｔ編集作業の手間を低減することが出来る。しかし、データベースを他のアプリケーションでも使用している等の理由で、元のデータベースの構造を変更出来ない場合は第３実施形態の手法を利用できない。
図２１は、本実施形態を示すＰＤＦ／ＶＴ作成システムのブロック図である。図4からの変更点は編集手順２１０１が追加されていることである。 
【００８６】
２１０１はＰＤＦ／ＶＴ編集部４０５で利用される、ＤＰａｒｔ構造編集手順である。  図２３は、図１０に示したＤＰａｒｔ構造から、図１４に示したＤＰａｒｔ構造に編集した場合の編集手順２１０１の一例を示す図である。なお図２３では説明のため、編集手順が自然言語で記述されているが、実際にはＰＤＦ／ＶＴ編集部４０５が解釈可能な言語で記述されているものとする。 
【００８７】
図２２は、本実施形態を示すクライアント装置のデータ処理方法を説明するフローチャートである。本例は、使用するＤＰａｒｔ構造を編集するプログラムの処理例である。なお、図２２のフローチャートで示す手順はクライアントＰＣ１０３のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
Ｓ２２０１はＤＰａｒｔ構造編集の開始処理である。 
Ｓ２２０２はプログラムが、ＰＤＦ／ＶＴ４０４を読み込む処理である。 
【００８８】
Ｓ２２０３はプログラムが、編集手順２１０１が保存されているか判断する処理である。編集手順２１０１が保存されている場合はＳ２２０４に進む。編集手順２１０１が保存されていない場合はＳ２２０６に進む。 
Ｓ２２０４はプログラムが、編集手順２１０１を読み込む処理である。 
Ｓ２２０５はプログラムが、Ｓ２２０４で読み込んだ編集手順の通りにＤＰａｒｔ構造を編集する処理である。
【００８９】
Ｓ２２０４及びＳ２２０５の処理によって編集手順を再現した結果、ユーザが望む編集結果が得られた場合、Ｓ２２０６及びＳ２２０７の処理はスキップする。
Ｓ２２０６はプログラムがユーザからの操作を受け付けることによって、ＤＰａｒｔ構造を編集する処理である。 
【００９０】
Ｓ２２０７はプログラムが、Ｓ２２０６においてＤＰａｒｔ構造を編集した手順を保存する処理である。
Ｓ２２０８はプログラムが、ＤＰａｒｔ構造を編集したＰＤＦ／ＶＴを編集済ＰＤＦ／ＶＴ４０６として書き出す処理である。 
Ｓ２２０９は終了処理である。 
以上の処理により、ＸＭＬＤＢの構造を保持しつつ、以前編集したＤＰａｒｔ構造を同様の構造を自動的に作成することが出来る。
【００９１】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン（コンピュータ）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【００９２】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【００９３】
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ネットワークインタフェース
２０４  外部記憶装置
２０５  ディスプレイ
２０６  キーボード
２０７  ポインティングデバイス
【図１】
2014002606.tif 000003
【図２】
2014002606.tif 000004
【図３】
2014002606.tif 000005
【図４】
2014002606.tif 000006
【図５】
2014002606.tif 000007
【図６】
2014002606.tif 000008
【図７】
2014002606.tif 000009
【図８】
2014002606.tif 000010
【図９】
2014002606.tif 000011
【図１０】
2014002606.tif 000012
【図１１】
2014002606.tif 000013
【図１２】
2014002606.tif 000014
【図１３】
2014002606.tif 000015
【図１４】
2014002606.tif 000016
【図１５】
2014002606.tif 000017
【図１６】
2014002606.tif 000018
【図１７】
2014002606.tif 000019
【図１８】
2014002606.tif 000020
【図１９】
2014002606.tif 000021
【図２０】
2014002606.tif 000022
【図２１】
2014002606.tif 000023
【図２２】
2014002606.tif 000024
【図２３】
2014002606.tif 000025