印刷システム上で印刷ジョブを印刷する方法であって:前記印刷システムについての、複数のエントリーを含むプリンタ記述ファイルであって、各エントリーはデバイス機能名およびデバイス機能設定名ならびに対応するデバイスコマンドストリングを関連付ける、プリンタ記述ファイルを提供する段階と;複数のエントリーをもつマッピングファイルであって、各エントリーは一つまたは複数のジョブ定義フォーマットJDF機能名を一つまたは複数のデバイス機能名に、および一つまたは複数のデバイス機能設定名にマッピングするマッピングファイルを提供する段階と;コンピューティングシステムにおいて前記プリンタ記述ファイルおよび前記マッピングファイルに基づいて、デバイス機能ファイルを提供する段階であって、前記デバイス機能ファイルは複数のジョブ定義フォーマットJDF機能名のそれぞれを、対応する一つまたは複数のデバイス機能設定名に関連付ける、段階と;前記プリンタ記述ファイルおよび前記マッピングファイルに基づいて、デバイスポストスクリプトテーブルを生成する段階であって、前記デバイスポストスクリプトテーブルは、一つまたは複数のJDF機能名を一つまたは複数のデバイス機能設定名と、および前記一つまたは複数のデバイス機能設定名に対応する一つまたは複数のデバイスコマンドストリングと関連付ける、段階と;前記コンピューティングシステムにおいて、前記デバイス機能ファイルに基づいて、印刷ジョブについてのJDFジョブチケットを生成する段階と;前記JDFジョブチケットと前記印刷ジョブに関連する印刷ジョブデータとを、前記コンピューティングシステムから前記印刷システムに送信する段階と;前記印刷システム内で、前記デバイスポストスクリプトテーブル内のエントリーに基づいて、前記JDFジョブチケットのエントリーを、対応するデバイスコマンドストリングに変換する段階と;前記印刷システム内で、前記対応するデバイスコマンドストリングおよび前記印刷ジョブデータを実行して前記印刷ジョブについての印刷された出力を生成する段階とを含む、方法。請求項1記載の方法であって、前記デバイス機能ファイルを生成する段階がさらに:前記コンピューティングシステムにおいて、前記の生成されたJDFジョブチケットを有効確認するための制約情報を含む前記デバイス機能ファイルを生成することを含み、前記JDFジョブチケットを生成する段階がさらに:前記制約情報に基づいて前記の生成されたJDFジョブチケットを有効確認して、前記の生成されたJDFジョブチケットによって同定される印刷ジョブが前記印刷システムの何らかの可能な構成で実行されうることを確認する段階を含む、請求項1記載の方法であって、前記デバイス機能ファイルを生成する段階がさらに:前記コンピューティングシステムにおいて、前記の生成されたJDFジョブチケットを有効確認するための制約情報を含む前記デバイス機能ファイルを生成することを含み、前記制約情報は前記印刷システムの現在の構成を判別するためのデバイス問い合わせを含み、前記JDFジョブチケットを生成する段階がさらに:前記デバイス問い合わせの実行に対する応答に基づいて前記印刷システムの現在の構成を判別する段階と;前記制約情報および前記現在の構成に基づいて前記の生成されたJDFジョブチケットを有効確認して、前記の生成されたJDFジョブチケットによって同定される印刷ジョブが前記印刷システムの前記現在の構成で実行されうることを確認する段階を含む、方法。請求項1記載の方法であって、前記デバイス機能ファイルを生成する段階がさらに:前記コンピューティングシステムにおいて、前記の生成されたJDFジョブチケットを有効確認するための制約情報を含む前記デバイス機能ファイルを生成することを含み、前記制約情報は前記印刷システムの現在の構成を判別するためのデバイス問い合わせを含み、前記JDFジョブチケットを送信する段階がさらに:前記デバイス問い合わせの実行に対する応答に基づいて前記印刷システムの現在の構成を判別する段階と;前記制約情報および前記現在の構成に基づいて前記の生成されたJDFジョブチケットを有効確認して、前記の生成されたJDFジョブチケットによって同定される印刷ジョブが前記印刷システムの前記現在の構成で実行されうることを確認する段階を含む、方法。請求項1記載の方法であって、前記デバイスポストスクリプトテーブルを生成する段階がさらに:前記コンピューティングシステムから受信されるJDFジョブチケットを有効確認するための制約情報を含む前記デバイスポストスクリプトテーブルを生成することを含み、当該方法はさらに:前記印刷システムにおいて、前記制約情報に基づいて前記の生成されたJDFジョブチケットを有効確認して、前記の受信されたJDFジョブチケットによって同定される印刷ジョブが前記印刷システム上で実行されうることを確認する段階を含む、方法。請求項1記載の方法であって、前記印刷システムがポストスクリプト印刷システムであり、前記プリンタ記述ファイルを提供する段階がさらに:前記ポストスクリプト印刷システムのためのポストスクリプトプリンタ記述PPDファイルを提供することを含む、方法。請求項6記載の方法であって、さらに:前記デバイスポストスクリプトテーブルが、前記ポストスクリプト印刷システムにおけるポストスクリプト辞書データ構造を含む、方法。請求項6記載の方法であって、さらに:前記デバイスポストスクリプトテーブルが、前記ポストスクリプト印刷システムにおけるポストスクリプトアレイデータ構造を含む、方法。印刷ジョブに関連付けられたジョブ定義フォーマットJDFジョブチケットを処理するためのポストスクリプト印刷システムコントローラにおいて機能できる方法であって:前記ポストスクリプト印刷システムコントローラ内に記憶されている、複数のエントリーをもつデバイスポストスクリプトテーブルであって、各エントリーは一つまたは複数のJDF機能名およびJDF設定名を、所望のJDF機能を呼び出すために前記印刷システムコントローラによって実行されるべきデバイスコマンドストリングにマッピングする、デバイスポストスクリプトテーブルを提供する段階と;JDFジョブチケットおよび関連する印刷ジョブデータを受け取る段階であって、前記JDFジョブチケットは一つまたは複数のJDF要素を有し、各JDF要素が所望されるJDF機能名および所望されるJDF機能設定名を指定する、段階と;一つまたは複数の所望されるJDF機能名および一つまたは複数の所望されるJDF機能設定名に基づいて前記デバイスポストスクリプトテーブル内でエントリーを位置特定する段階と;位置特定されたエントリーの値フィールドを処理して一つまたは複数のデバイスコマンドストリングを生成する段階と;前記一つまたは複数の生成されたデバイスコマンドストリングおよび前記印刷ジョブデータを処理して印刷された出力を生成する段階とを含む、方法。請求項9記載の方法であって、さらに:前記ポストスクリプト印刷システムコントローラ内に記憶されている前記デバイスポストスクリプトテーブルにおいて制約情報を提供する段階を含み、前記制約情報はJDF機能名およびJDF機能設定名の互いに相容れないグループを特定する、方法。請求項10記載の方法であって、さらに:前記ポストスクリプト印刷システムコントローラ内で、前記制約情報に基づいて、前記の受領されたJDFジョブチケットを有効確認する段階を含む、方法。請求項10記載の方法であって、前記制約情報がさらに、前記ポストスクリプト印刷システムの現在の構成を判別するためのデバイス問い合わせコマンドを含み、当該方法がさらに:前記JDFジョブチケットが前記ポストスクリプト印刷システムによってその現在の構成において実行されうることを検証する段階を含む、方法。請求項9記載の方法であって、前記デバイスポストスクリプトテーブルが、前記生成されたデバイスコマンドストリングの処理の順序を定義する順序付け情報を含み、前記処理する段階がさらに:前記一つまたは複数の生成されたデバイスコマンドストリングおよび前記印刷ジョブデータを、前記デバイスポストスクリプトテーブル内の前記順序付け情報によって定義される順序で処理して印刷された出力を生成することを含む、方法。コンピューティングシステムを有するシステムであって、前記コンピューティングシステムはさらに:複数のエントリーをもつマッピングファイルであって、各エントリーは、一つまたは複数のジョブ定義フォーマットJDF機能名を一つまたは複数のデバイス機能名に、および一つまたは複数のデバイス機能設定名にマッピングするマッピングファイルと;対応する印刷システムの利用可能なデバイス機能名およびデバイス機能設定名に関する情報を含むプリンタ記述ファイルと;前記プリンタ記述ファイルを受け取るよう結合された印刷システム初期化コンポーネントとを有しており、前記印刷システム初期化コンポーネントは、前記プリンタ記述ファイルおよび前記マッピングファイルに基づいてデバイス機能ファイルを生成するよう適応されており、前記デバイス機能ファイルは、一つまたは複数の利用可能なデバイス機能設定名を一つまたは複数の対応するJDF機能名と関連付けるエントリーを有し;前記印刷システム初期化コンポーネントはさらに、前記プリンタ記述ファイルおよび前記マッピングファイルに基づいてデバイスポストスクリプトテーブルを生成するよう適応されており、前記デバイスポストスクリプトテーブルは、一つまたは複数のデバイス機能設定名および一つまたは複数の対応するJDF機能名を、印刷システムによって実行されたときに前記デバイス機能設定名を呼び出す一つまたは複数のデバイスコマンドストリングと関連付けるエントリーを有し、前記初期化コンポーネントはさらに、前記デバイスポストスクリプトテーブルを前記印刷システムに送信するよう適応されており;前記コンピューティングシステムはさらに:前記デバイス機能ファイルを受け取るよう結合されたジョブ生成器コンポーネントを有しており、前記ジョブ生成器コンポーネントは、ユーザー入力に基づいて、かつ前記デバイス機能ファイル中の情報に基づいて、JDFジョブチケットを生成するよう適応されており、前記ジョブ生成器コンポーネントはさらに、前記デバイスポストスクリプトテーブルに従って印刷された出力を生成するために、生成されたJDFジョブチケットおよび関連する印刷ジョブデータを対応する印刷システムに送信するよう適応されている、システム。請求項14記載のシステムであって、さらに:前記デバイスポストスクリプトテーブルおよび前記JDFジョブチケットおよび前記関連する印刷ジョブデータを受け取るよう前記コンピューティングシステムと結合された印刷システムを有し、前記印刷システムがさらに:前記JDFジョブチケットの要素を前記デバイスポストスクリプトテーブルに基づいてデバイスコマンドストリングに変換することによって前記JDFジョブチケットを処理するよう適応されたJDFジョブチケット処理コンポーネントと;前記デバイスコマンドストリングおよび前記関連する印刷ジョブデータに基づいて前記の印刷された出力を生成するよう適応された印刷ジョブ処理コンポーネントとを有する、システム。請求項15記載のシステムであって、前記印刷システム初期化コンポーネントがさらに、前記プリンタ記述ファイルおよび前記マッピングファイルに基づいて制約情報を生成するよう適応されており、前記印刷システム初期化コンポーネントがさらに、前記制約情報を前記対応する印刷システムに送信するよう適応されており、前記JDFジョブチケット処理コンポーネントがさらに、前記制約情報に基づいて、前記JDFジョブチケットを有効確認するよう適応されており、前記JDFジョブチケット処理コンポーネントがさらに、前記JDFジョブチケットが無効であると判定することに応答してエラーを信号伝達するよう適応されている、システム。請求項16記載のシステムであって、前記制約情報が前記デバイスポストスクリプトテーブルと統合されている、システム。請求項14記載のシステムであって、前記印刷システム初期化コンポーネントがさらに、前記プリンタ記述ファイルおよび前記マッピングファイルに基づいて前記デバイス機能ファイル内の制約情報を生成するよう適応されており、前記ジョブ生成器コンポーネントがさらに、前記制約情報に基づいて前記JDFジョブチケットを有効確認するよう適応されている、システム。請求項18記載のシステムであって、前記制約情報が、前記印刷システムの現在の構成を判別するためのデバイス問い合わせを含み、前記ジョブ生成器がさらに、前記デバイス問い合わせの実行に対する応答に基づいて、前記印刷システムの現在の構成を判別するよう適応されており、前記ジョブ生成器コンポーネントがさらに、前記JDFジョブチケットを生成する際に、前記制約情報および前記現在の構成に基づいて、前記JDFジョブチケットを有効確認するよう適応されている、システム。請求項18記載のシステムであって、前記制約情報が、前記印刷システムの現在の構成を判別するためのデバイス問い合わせを含み、前記ジョブ生成器がさらに、前記デバイス問い合わせの実行に対する応答に基づいて、前記印刷システムの現在の構成を判別するよう適応されており、前記ジョブ生成器コンポーネントがさらに、前記JDFジョブチケットを送信するのに先立って、前記制約情報および前記現在の構成に基づいて、前記JDFジョブチケットを有効確認するよう適応されている、システム。JDFジョブチケットを直接処理するそのような印刷システムでは問題が生じることがある。ジョブチケットは、クライアントたとえば、ドライバおよび/またはアプリケーションプログラムによって生成されねばならない。これはチケットを、印刷システム上で利用可能な機能のJDF等価物に制限する。さらに、クライアントは、印刷システムによって処理されるべきジョブチケット中の機能の組み合わせに対するいかなる制約も守るよう注意を払うべきである。機能および/または設定のある種の組み合わせは、特定の印刷システムにとっては処理できないことがありうる。ジョブチケットを生成するホストベースのクライアントアプリケーションと該チケットを処理するプリンタベースのJDFインタープリタとでは、アプリケーションユーザーが信頼できる形で期待した印刷出力を得るために使うJDF要素および属性のデバイス機能へのマッピングが同じでないことがありうる。さらに、クライアントおよび印刷システムは、デバイスコマンドによって実装されない機能について一致しないことがありうる。たとえば、ページコンテンツスケーリングおよび変換は、いくつかの印刷システムではポストスクリプト手順によって実装されることがあるが、他の印刷システムではそうでないこともある。JDFジョブチケットは、文書の異なるセクションについて異なる属性を指定することがある。そのようなセクション固有のJDF属性特徴がデバイスコマンドおよびポストスクリプト手順に変換されるとき、その文書の印刷の間に印刷システム上で実行される必要があるデバイスコマンドが二組以上あることがある。さらにまた、文書の特定のセクションに対応する特定のコマンドの組がいつ実行されるべきかを決定するために、入力ページ記述および出力の印刷されたシートの適正なアカウンティング追跡が必要である。印刷ジョブ内の同じ点において複数のコマンドが必要とされるとき、それらのコマンドが印刷システム上で実行されるべき順序が決定的に重要なことがある。そのような順序付け情報は、典型的には、印刷システムのコントローラには一般にアクセスできないPPDファイル内の情報から決定される。ジョブチケットは、デバイスが特定の構成にあること、あるいは任意的なアクセサリーがインストールされていることを要求することがある。デバイス構成は典型的には、本解決策では、印刷システムに適用されPPDファイル――またもや印刷システムにとっては一般に利用可能でない――において提供される問い合わせコードを使うことによって検査される。ジョブチケットの属性は、JDF規格によればかちあわなくてもデバイスコマンドに変換されると印刷システムによって禁止されているコマンドの組み合わせを生じることがありうる。そのような禁止は、典型的にはPPDファイル内――またもや印刷システムにとっては一般に利用可能でない――の制約文によって定義されている。印刷システム内でJDFジョブチケットを処理することは、上記およびその他の問題を呈するものの、多様な理由により、そうすることはやはり望ましい。パフォーマンス上の理由により、印刷システムがポストスクリプトコンテンツをオリジナルの形で受け入れることが望ましいことがよくある。これは、ホストベースのクライアントアプリケーションから、コンテンツファイルによってはきわめて大きなものとなることがある一時印刷ファイルを書く必要を軽減する。こうして、ジョブを印刷システム内で処理することによって、クライアントアプリケーションは制御を素速くユーザーに返したり、あるいはすぐにプリンタ状態のモニタリングを開始したりすることができる。他のパフォーマンス上の理由により、印刷システムがコンテンツファイルを受け取るとき、コンテンツを、印刷システムに結合されたディスクドライブ上の一時ファイルに書き出すのではなく、入力チャネルからの直接のコンテンツを処理することが好ましい。この型の処理が達成できるのは、コンテンツファイルに含まれるページを並べ替える必要がない場合のみである。そのような並べ替えは、印刷システムがジョブチケット特徴に基づいて実行されるべき完全なジョブの知識を持つことに基づく。よって、印刷ジョブの印刷の際のジョブチケット処理の柔軟性および忠実性を維持しつつ上記の最適化を実現する印刷システムを提供することは、いまだ未解決の課題である。より一般には、印刷システム内でJDFジョブチケットおよび関連する印刷ジョブデータを堅牢かつ効率的に処理することは、いまだ未解決の課題である。本発明は、印刷システム内でのJDFジョブチケットの処理を改善するためにデバイス機能ファイルおよびデバイスポストスクリプトテーブルを生成および利用するための方法および関連する構造を提供することによって、上記およびその他の問題を解決し、それにより有用な現状技術を進歩させる。本発明の特徴および側面は、デバイスについてのPPDファイル内の情報からおよびマッピングファイルからデバイス機能ファイルおよびデバイスポストスクリプトテーブルを生成する。デバイス機能ファイルデバイス能力ファイルdevicecapabilityfileは、JDFジョブチケットを生成するために使用されうる。デバイスポストスクリプトテーブルdevicePostScripttableは印刷システムにおいて、JDFジョブチケット内の要素を対応するデバイスコマンドストリングに変換するためのルックアップテーブルとして使われる。本発明の任意的な特徴および側面は、プリンタ記述ファイルprinterdescriptionfileからおよびマッピングファイルmappingfileから制約情報を生成する。制約情報constraintinformationは、ジョブチケットを生成するコンピューティングシステムにおいて、および/または印刷システムにおいて、JDFジョブチケットを有効確認するvalidateために使われてもよい。ある例示的な実施形態では、デバイスポストスクリプトテーブルおよび制約情報は、ポストスクリプト辞書としてポストスクリプト印刷システムにおいて生成され、JDFジョブチケットの処理はポストスクリプトプログラムとして実装されてもよい。本発明の一つの側面は、印刷システム上で印刷ジョブを印刷する方法を提供する。本方法は、印刷システムについてのプリンタ記述ファイルを提供することを含む。プリンタ記述ファイルは複数のエントリーを含み、各エントリーはデバイス機能名デバイスフィーチャー名称devicefeaturenameおよびデバイス機能設定名デバイスフィーチャー設定名称devicefeaturesettingnameと対応するデバイスコマンドストリングとを関連付ける。本方法はさらに、複数のエントリーをもつマッピングファイルを提供することを含み、各エントリーは、一つまたは複数のジョブ定義フォーマットJDF機能名を一つまたは複数のデバイス機能名に、および一つまたは複数のデバイス機能設定名にマッピングし、コンピューティングシステムにおいてプリンタ記述ファイルおよびマッピングファイルに基づいてデバイス機能ファイルを生成することを含む。デバイス機能ファイルは、複数のジョブ定義フォーマットJDF機能名のそれぞれを、対応する一つまたは複数のデバイス機能設定名に関連付ける。本方法はまた、プリンタ記述ファイルおよびマッピングファイルに基づいてデバイスポストスクリプトテーブルを生成することも含む。デバイスポストスクリプトテーブルは、一つまたは複数のJDF機能名を一つまたは複数のデバイス機能設定名と、および前記一つまたは複数のデバイス機能設定名に対応する一つまたは複数のデバイスコマンドストリングと関連付ける。本方法はさらに、コンピューティングシステムにおいて、デバイス機能ファイルに基づいて印刷ジョブについてのJDFジョブチケットを生成し、該JDFジョブチケットおよび印刷ジョブに関連する印刷ジョブデータを、コンピューティングシステムから印刷システムに送信することを含む。本方法はまた、印刷システム内で、デバイスポストスクリプトテーブル内のエントリーに基づいて、JDFジョブチケットのエントリーを、対応するデバイスコマンドストリングに変換し、印刷システム内で、前記対応するデバイスコマンドストリングおよび前記印刷ジョブデータを実行して当該印刷ジョブについての印刷された出力を生成することも含む。本発明のもう一つの側面は、印刷ジョブに関連付けられたジョブ定義フォーマットJDFジョブチケットを処理するためのポストスクリプト印刷システムコントローラにおいて動作可能な方法を提供する。本方法は、ポストスクリプト印刷システムコントローラ内に記憶されているデバイスポストスクリプトテーブルを提供することを含む。デバイスポストスクリプトテーブルは複数のエントリーをもち、各エントリーは一つまたは複数のJDF機能名およびJDF設定名を、所望のJDF機能を呼び出すために印刷システムコントローラによって実行されるべきデバイスコマンドストリングにマッピングする。本方法はさらに、JDFジョブチケットおよび関連する印刷ジョブデータを受け取ることを含む。ここで、JDFジョブチケットは一つまたは複数のJDF要素を有し、それぞれが所望されるJDF機能名および所望されるJDF機能設定名を指定し、一つまたは複数の所望されるJDF機能名および一つまたは複数の所望されるJDF機能設定名に基づいてデバイスポストスクリプトテーブル内にエントリーを位置特定する。本方法はさらに、位置特定されたエントリーの値フィールドを処理して一つまたは複数のデバイスコマンドストリングを生成し、前記一つまたは複数の生成されたデバイスコマンドストリングおよび印刷ジョブデータを処理して印刷された出力を生成することを含む。本発明のさらにもう一つの側面は、コンピューティングシステムを有するシステムを提供する。コンピューティングシステムはさらに、複数のエントリーをもつマッピングファイルを有し、各エントリーは、一つまたは複数のジョブ定義フォーマットJDF機能名を一つまたは複数のデバイス機能名に、および一つまたは複数のデバイス機能設定名にマッピングする。コンピューティングシステムはさらに、対応する印刷システムの利用可能なデバイス機能名およびデバイス機能設定名に関する情報を含むプリンタ記述ファイルと、前記プリンタ記述ファイルを受け取るよう結合された印刷システム初期化コンポーネントとを有する。印刷システム初期化コンポーネントは、プリンタ記述ファイルおよびマッピングファイルに基づいてデバイス機能ファイルを生成するよう適応されている。デバイス機能ファイルは、一つまたは複数の利用可能なデバイス機能設定名を一つまたは複数の対応するJDF機能名と関連付けるエントリーを有する。印刷システム初期化コンポーネントはさらに、プリンタ記述ファイルおよびマッピングファイルに基づいてデバイスポストスクリプトテーブルを生成するよう適応されている。デバイスポストスクリプトテーブルは、一つまたは複数のデバイス機能設定名および一つまたは複数の対応するJDF機能名を、印刷システムによって実行されたときにデバイス機能設定名を呼び出す一つまたは複数のデバイスコマンドストリングと関連付けるエントリーを有する。初期化コンポーネントはさらに、デバイスポストスクリプトテーブルを印刷システムに送信するよう適応されている。コンピューティングシステムはさらに、デバイス機能ファイルを受け取るよう結合されたジョブ生成器コンポーネントを有する。ジョブ生成器コンポーネントは、ユーザー入力に基づいて、かつデバイス機能ファイル中の情報に基づいて、JDFジョブチケットを生成するよう適応されている。ジョブ生成器コンポーネントはさらに、生成されたJDFジョブチケットおよび関連する印刷ジョブデータを対応する印刷システムに送信するよう適応されている。デバイスポストスクリプトテーブルに従って印刷された出力を生成するためである。すべての図面において同じ参照符号は同じ要素または同じ型の要素を表す。図1ないし図5および以下の記述は、当業者に本発明をいかにして作成使用するかを教示するために本発明の個別的な例示的実施形態を記載する。本教示の目的のため、本発明のいくつかの通常の側面は単純化または省略している。当業者は、本発明の範囲内にはいるこれらの実施形態からの変形を認識するであろう。当業者は、以下に記述される特徴をさまざまな仕方で組み合わせて本発明の多数の変形を形成できることを認識するであろう。よって、本発明は、以下に記述される個別的な実施形態に限定されるものではなく、請求項およびその等価物によってのみ限定される。図1は、本願の特徴および側面に基づいて向上された、印刷システム内でのJDFジョブチケットの変換のための改善された処理を提供し、任意的にジョブチケットの有効確認を提供する、例示的なシステム100のブロック図である。システム100は、コンピューティングシステム150および印刷システム106を含む。コンピューティングシステム150は、JDFジョブチケット102および関連する印刷ジョブデータ104を含む印刷ジョブを生成するよう適応されている。コンピューティングシステム150は、印刷ジョブを、処理してもらうために印刷システム106に送信する。その結果、印刷ジョブ出力118たとえば、所望の印刷可能媒体基質に適用されたフォーマットされた印刷ジョブデータが生じる。印刷システム106は、マーキングエンジン116を含んでいてもよい。マーキングエンジン116は、電子写真式マーキングエンジン、インクジェットマーキングエンジンまたは一連のページイメージを紙などの印刷可能な媒体上に印するよう適応された他の任意の装置であってもよい。印刷システム106は印刷ジョブチケット102およびデータ104をコンピューティングシステム150から受信し、印刷ジョブを処理してマーキングエンジン116に加えられるページイメージを生成する。次いでマーキングエンジン116が生成されたページイメージを所望される印刷可能媒体上に印して出力118を生成する。印刷システム106はプリンタコントローラ108を含む。コントローラ108は、受け取った印刷ジョブを処理するよう適応された任意のコンピューティングデバイスであってよく、典型的には処理装置たとえば図示しないCPUおよびメモリ112を含む。メモリ112はいかなる好適なメモリデバイスであってもよく、たとえば磁気または光ディスクドライブ、DRAM、SDRAM、静的RAM、フラッシュメモリまたは印刷ジョブの処理において使用される情報を記憶するのに好適な他の任意のメモリデバイスを含みうる。ある例示的な実施形態では、印刷システム106は、ポストスクリプト印刷システムであり、プリンタコントローラ108はポストスクリプトコマンドストリングを解釈するよう適応されたポストスクリプトプリンタコントローラである。プリンタコントローラ108は、コンピューティングシステム150からJDFジョブチケット102を受け取るよう適応され、JDFジョブチケットの属性/要素たとえば、JDF機能および機能設定を解釈して対応するデバイスコマンドストリングを生成するよう適応されたJDFジョブチケット処理コンポーネント110を含んでいてもよい。上記で一般的に論じたように、JDFジョブチケット内の要素または機能は、機能名と、名付けられた機能についての設定についての設定名とを含む。さまざまな利用可能な設定の一つが、ジョブチケットの各要素についての所望されるデバイス機能設定名として選択されてもよい。一般に、JDFジョブチケット処理コンポーネント110は、受け取ったJDFジョブチケット102から各要素を取得し、そのJDF要素を、メモリ112に記憶されているデバイスポストスクリプトテーブル120の内容に基づいて、対応するデバイスコマンドストリングたとえばデバイス制御ストリングに変換するよう適応されている。後述するある例示的な実施形態では、デバイスポストスクリプトテーブル120はポストスクリプト辞書として実装される。そのような実施形態では、変換は、ポストスクリプト辞書において特徴名を表すキー値を見つけ出すことによって実行される。そのように位置特定された辞書エントリーは、そのエントリーに関連付けられたデバイス制御ストリング単数または複数を提供するたとえば位置特定されたエントリーの値から導出される。変換によってそのように生成されたたとえば、ポストスクリプト辞書検索によって同定されたデバイスコマンドストリングは次いで、印刷ジョブデータ104において具現されているデバイスコマンドストリングたとえばページイメージデータとともに、印刷コントローラ108内の印刷ジョブ処理コンポーネント114に加えられる。印刷ジョブ処理コンポーネント114は、そのようなすべてのデバイスコマンドストリングたとえば、デバイス制御ストリングおよびページイメージデータを処理して、マーキングエンジン116への印加のために所望されるページイメージを生成する。さらに、印刷ジョブ処理コンポーネント114は、デバイスコマンドストリングの互いに対する、また印刷ジョブデータ104に対する適正な順序付け/シーケンスを保証して、ジョブチケット102および印刷ジョブデータ104によって定義される適正な出力を生成するよう適応される。ある例示的な実施形態では、プリンタコントローラ108は、メモリ112に記憶された制約情報122をも含む。JDFジョブチケット処理コンポーネント110はさらに、制約情報122を利用して、ジョブチケット102内のJDF要素の何らかの特定の組み合わせが、JDF要素のそのような組み合わせが印刷システム106上で呼び出すことができないという衝突につながるかどうかを判定する。よって、制約情報122は、JDFジョブチケット処理コンポーネント110によって、JDFジョブチケット102の要素を有効確認するために使用されうる。JDFジョブチケット処理コンポーネント110の有効確認処理がJDFジョブチケット102の特定のJDF要素における衝突を検出する場合、与えられた印刷ジョブがうまく処理できない理由を示すエラー信号が生成されてもよい。そのようなエラー信号は、たとえばコンピューティングシステム150にエラーメッセージを返すこと、あるいはたとえば遭遇したエラー/衝突の性質を記述するエラーインジケータページを生成および印刷することを含んでいてもよい。後述するある例示的な実施形態では、制約情報は、ポストスクリプト辞書として実装されるデバイスポストスクリプトテーブル120の一部として、あるいは別個の辞書データ構造として。そのような実施形態では、機能名および/または機能設定名を表す一つまたは複数のキー値は、機能および設定名に関係する制約を指定する辞書のエントリーを位置特定するために使用される。位置特定された制約情報エントリーは次いで、印刷システム106についての衝突を生じるジョブチケット内に指定されている他の機能または設定名を判別するために使用される。より一般には、制約情報112は、JDF機能名およびJDF機能設定名の互いに相容れない両立できないグループを同定する。プリンタコントローラ108がポストスクリプトプリンタコントローラである例示的な実施形態では、JDFジョブチケット処理コンポーネント110および印刷ジョブ処理コンポーネント114は、ポストスクリプトプリンタコントローラ108のポストスクリプトインタープリタ図示せずの解釈によって実行されるポストスクリプトプログラムとして実装されてもよい。そのような実施形態では、メモリ112は、デバイスポストスクリプトテーブル120および任意的な制約情報122を記憶するための、かつポストスクリプトプログラムコマンドストリングと、JDFジョブチケット処理コンポーネント110および印刷ジョブ処理コンポーネント114の実行によって利用および生成される中間データとを記憶するための、ポストスクリプトインタープリタによって利用および管理されるポストスクリプトダイナミックメモリであってもよい。印刷システム106がポストスクリプト印刷システムではない他の例示的な実施形態では、プリンタコントローラ108内で動作可能なJDFジョブチケット処理コンポーネント110および印刷ジョブ処理コンポーネント114は、その特定のプリンタコントローラ108の機能に従って好適にプログラムされた命令として実装されてもよい。同様にして、メモリ112内のデバイスポストスクリプトテーブル120および任意的な制約情報122そのような非ポストスクリプト実施形態でのは、当業者には一般に既知の任意の好適なルックアップテーブルまたは配列データ構造として実装されてもよい。ある例示的な実施形態では、デバイスポストスクリプトテーブル120および任意的な制約情報122は、コンピューティングシステム150によって生成され、コンピューティングシステム150から印刷システム106に、プリンタコントローラ108による使用のために送信されてもよい。後述するように、デバイスポストスクリプトテーブル120および任意的な制約情報122は、プリンタ記述ファイルおよびマッピングファイル図1には示さず内の情報に基づいて生成される。当業者は、システム100および印刷システム106における数多くの追加的なおよび等価な要素を容易に認識するであろう。そのような追加的なおよび等価な要素は、議論の簡明のため、ここでは省略する。図2は、印刷システム106への送信のためのファイルを生成するよう適応されたコンピューティングシステム150の例示的な追加的詳細を与えるブロック図である。印刷システム初期化コンポーネント250は、与えられたプリンタ記述ファイル200たとえば、ポストスクリプト印刷システムのコンテキストではPPDファイルから情報を取得する。プリンタ記述ファイル200内の情報は一般に、対応する印刷システム106および関連するデバイスコマンドストリングにおいて利用可能な可能なオプション設定のそれぞれについてデバイス機能設定名を含む。たとえば、ポストスクリプト印刷システムのコンテキストにおいて、PPDファイルは、両面印刷オンまたはオフ、給紙トレイオプション設定、排紙トレイオプション設定などといったさまざまなオプションを示してもよい。PPDファイル200内の各デバイス機能設定名について、対応するデバイスコマンドストリングがそれに関連付けられており、印刷ジョブについての関連付けられた所望されるオプションを与えるために印刷システム106によって実行されるべき特定のデバイスコマンドを与える。さらに、プリンタ記述ファイル200は、対応する印刷システム106上で印刷ジョブを処理する際に一緒に呼び出せないデバイス設定機能名の特定の組み合わせを指定する制約情報を含んでいてもよい。たとえば、両面印刷機能は、印刷のために給紙トレイから封筒が選択されることを指定する他の機能とは両立しない。そのような場合、プリンタ記述ファイル200は、そのような機能の組み合わせが、印刷システム106に送られるべき有効な印刷ジョブにおいては一緒に呼び出せないことを示す制約指定を含んでいてもよい。印刷システム150はマッピングファイル204をも含む。マッピングファイル204は、JDFの機能および設定の名付け規約と、製造業者のPPDファイル200における機能および設定名との間の変換を支援するために、PPDファイル200との関連で使用される。マッピングファイル構造およびその使用の詳細は後述する。プリンタ記述ファイル200およびマッピングファイル204内の情報に基づいて、印刷システム初期化コンポーネント250は、JDFで定義された規格に基づくデバイス機能ファイル202を生成してもよい。デバイス機能ファイルdevicecapabilityfile202は一般に、所望される印刷ジョブを生成するためにユーザーに呈示されるべき印刷システム106のための利用可能なデバイス機能設定名のリストを与える。プリンタ記述ファイル200から導出されるそれぞれの利用可能なデバイス機能設定名は、デバイス機能ファイル202内の適切なフォーマットに変換されてもよい。印刷ジョブ生成器252が、特定の印刷ジョブに適用されるべき特定のオプションを定義するために、ユーザーと対話するために使用するためである。ある例示的な実施形態では、印刷システム初期化コンポーネント250は、デバイス機能ファイル202中の情報を生成する。その情報とは、印刷記述ファイル200内に位置される一つまたは複数のデバイス機能設定名を、一つまたは複数の対応するJDF機能名と関連付けて、それにより印刷ジョブ生成器252が、対応する印刷ジョブデータ104を印刷するときに適用されるべき特定の機能設定を指定するJDFジョブチケット102を生成できるようにする情報である。生成されたデバイス機能ファイルの例については後述する。印刷ジョブ生成器252は次いで、ユーザーインターフェースにおいて、印刷システム106の利用可能な特徴/機能のみを呈示して、ユーザーが所望のオプションを選択できるようにしてもよい。印刷ジョブ生成器252は次いで、関連する印刷ジョブデータ104の印刷のためのJDFジョブチケット102中に適切なJDF要素を生成する。ある例示的な実施形態では、印刷システム初期化コンポーネント250はまた、一緒に利用できないJDF機能の組み合わせを指定する、デバイス機能ファイル202内の制約情報206をも生成してもよい。制約情報206の例示的な追加的詳細については後述する。ある例示的な実施形態では、印刷システム初期化コンポーネント250は、プリンタ記述ファイル200およびマッピングファイル204中の情報を利用して、デバイスポストスクリプトテーブル120を生成してもよい。デバイスポストスクリプトテーブル120は、印刷ジョブ生成器252によって生成されるJDFジョブチケット102において与えられうる各機能についてのエントリーを含んでいてもよい。それらのエントリーは、次いで、印刷システムにおいて、JDF機能設定を対応するデバイスコマンドストリングに変換するために使用されてもよい。もう一つの例示的な実施形態では、印刷システム初期化コンポーネント250はまた、プリンタ記述ファイル200およびマッピングファイル204中で与えられる制約情報に基づいて、制約情報122を生成してもよい。制約情報122の例示的な追加的詳細については後述する。印刷システム初期化コンポーネント250によってそのようにして生成されたデバイスポストスクリプトテーブル120および任意的な制約情報122は次いで印刷システム106に送信されてもよい。図1を参照して上記したように、印刷システム106は、コンピューティングシステム150内の印刷ジョブ生成器252によって生成されたJDFジョブチケット102および印刷ジョブデータ104を受け取り、デバイスポストスクリプトテーブル120に従って、また任意的には制約情報122に従って、関連する印刷ジョブを処理する。当業者は、コンピューティングシステム150内の数多くの追加的および等価な要素を容易に認識するであろう。そのような追加的なおよび等価な要素は、議論の簡明のため、ここでは省略する。図3は、印刷システム内でのJDFジョブチケットの処理を改善するための本願の特徴および側面に基づく例示的な方法のフローチャートである。図3の方法は、図1および図2において記載されているようなシステムのコンポーネントにおいて実行できてもよい。後述するように、図3の処理の一部が印刷システムと結合されたコンピューティングシステム内で実行されてもよく、図3の他の処理は印刷システム内で実行されてもよい。ステップ300ないし306は、デバイス機能ファイルおよびデバイスポストスクリプトテーブルそれぞれ任意的に制約情報を含むを生成するための初期化処理を表す。ステップ300は、特定の印刷システムに対応するプリンタ記述ファイルprinterdescriptionfileたとえばPPDファイルおよびマッピングファイルを与える。上記のように、PPDファイルは一般に、デバイス機能設定名と、対応するデバイス機能設定名を呼び出すために印刷システムによって実行されるべき対応するデバイスコマンドストリングとを与える。さらに、上記のように、PPDファイルはまた、特定の印刷ジョブの処理において印刷システムによって一緒に呼び出せないデバイス機能設定名の組み合わせを示す制約情報を含んでいてもよい。与えられるマッピングファイルは、JDF機能および設定名と、対応するPPD機能および設定との間のマッピング/変換を支援する。マッピングファイルの構造および使用のさらなる詳細については後述する。ステップ302は、与えられたプリンタ記述ファイルおよびマッピングファイル内の情報に基づいてデバイス機能ファイルを生成する。デバイス機能ファイルdevicecapabilityfileの生成されたエントリーは、一つまたは複数のJDF機能名を、プリンタ記述ファイル内に位置される利用可能なデバイス機能設定名の一つまたは複数と、マッピングファイル内の情報に基づいて、関連付ける。ある例示的な実施形態では、生成されたデバイス機能ファイルは、生成されたJDFジョブチケットを有効確認するために使用される制約情報を含んでいてもよい。デバイス機能ファイル中の制約情報は、マッピングファイル中の情報に従ってマッピングされる/変換されるPPDファイル中の対応する制約情報から導出される。ステップ304は、与えられたプリンタ記述ファイルおよびマッピングファイル内の情報に基づいて、デバイスポストスクリプトテーブルを生成する。デバイスポストスクリプトテーブル内の生成されたエントリーは、JDF機能名および対応する機能設定名を、対応するJDF機能を実装するために印刷システムによって実行されるべき一つまたは複数のデバイスコマンドストリングにマッピングする。テーブルエントリーは、PPDファイルおよびマッピングファイル内の情報に基づいて定義される。ある例示的な実施形態では、生成されたデバイスポストスクリプトテーブルは、印刷システムにおいて受領される生成されたJDFジョブチケットを有効確認するために印刷システムにおいて使用される制約情報を含んでいてもよい。制約情報は、マッピングファイル中の情報に従ってマッピングされる/変換されるPPDファイル中の対応する制約情報から導出される。ステップ306は、生成されたデバイスポストスクリプトテーブルを印刷システムに送信する。印刷システムにおいて受け取ったJDFジョブチケットを有効確認および/または実行するために使うためである。デバイスポストスクリプトテーブルは、印刷システムすなわち、印刷システムコントローラによって、受け取られたJDFジョブチケット中のJDF要素を対応するデバイスコマンドストリングに変換するパフォーマンスを改善するために利用される。たとえば、デバイスポストスクリプトテーブルがポストスクリプト辞書データ構造として与えられる場合、印刷システム内のデバイスポストスクリプトテーブルを利用しての一つまたは複数のテーブル/辞書探索工程が、JDF機能名を位置特定し、それによりJDFジョブチケット中の所望されるJDF機能を、対応する一つまたは複数のデバイスコマンドストリングに変換する。ステップ300ないし306は、図1および図2を参照して上記したシステム150のような印刷システムに結合されたコンピューティングシステム上で実行される。ステップ320ないし324は、印刷ジョブデータおよび関連するJDFジョブチケットを含む印刷ジョブを生成し、生成された印刷ジョブチケットおよび関連データを印刷システムに実行のために転送する、印刷システムと結合されたコンピューティングシステム内での処理を表す。デバイス機能ファイルにおいて任意的な制約情報が与えられている場合には、生成されたJDFジョブチケットは、印刷システムによって実行されうることを保証するために、コンピューティングシステムによって有効確認されてもよい。ステップ320は、生成されたデバイス機能ファイルから所望されるオプションを選択するユーザー入力の受領に基づいて所望される印刷ジョブのためのJDFジョブチケットをコンピューティングシステムにおいて生成する。コンピューティングシステムは、デバイス機能ファイルのエントリーに基づいてユーザーに利用可能な機能を呈示してもよく、印刷ジョブを印刷するときに呼び出されるべき所望される機能の組を選択するユーザー入力を受け取ってもよい。デバイス機能ファイルの一部として制約情報が与えられる例示的な実施形態では、ステップ320は、JDFジョブチケットを、ステップ320の処理によって生成されるときに有効確認してもよい。デバイス機能ファイル内の制約情報は、印刷システムによって実行される単一の印刷ジョブにおいて組み合わせることのできないJDF機能および設定の組み合わせを示す。よって、ステップ320は、制約情報を使用して、生成されたJDFジョブチケットが印刷システムの何らかの可能な構成およびそのさまざまな任意的な構成によって実行されうることを検証できる。さまざまな理由のいずれかにより、生成されたジョブチケットによって表される印刷ジョブは、印刷システムに後で提出するために待ち行列に入れておくことができる。たとえば、生成された印刷ジョブは単に、待ち行列に入れられたジョブの長いリストの末尾に置かれることもできる。あるいは、たとえば、新たに生成された印刷ジョブは、何らかの将来の時刻に実行を開始するよう指定されることもできる。こうして、印刷システムの構成は、ジョブチケットが最初に生成された時と印刷システムが実際に印刷ジョブの実行を開始する準備ができた時とで変化することがある。そこで、ステップ322は、生成された印刷ジョブチケットを印刷システムに送る直前に生成されたジョブチケットを再び有効確認するための任意的な処理を表す。次いで、ステップ324は生成されたJDFジョブチケットおよび関連する印刷ジョブデータを印刷システムに送信する。それにより、JDFジョブチケット要素に従って印刷システムによって定義された印刷ジョブが印されることができる。当業者は、ジョブチケットを生成する際にたとえばステップ320において実行される有効確認は単に、生成されるジョブチケットが印刷システムの何らかの可能な構成で処理できることを検証するのでよいことに気づくであろう。これに対し、ステップ322によって実行されるチケット有効確認は、生成されたジョブチケットが印刷システムの現在の構成で実行できることを検証しうる。したがって、デバイス機能ファイル中の制約情報は、生成された印刷ジョブチケットを印刷システムに送る直前の印刷システムの現在の構成を判別するために印刷システムによって実行されるべき問い合わせ動作を含んでいてもよい。次いで、ステップ330ないし334が、印刷ジョブの受領すなわち、印刷ジョブチケットおよび関連する印刷データの受領に応答して印刷システムによって実行される。ステップ330は、受領したジョブチケットを再び有効確認して、ジョブチケットにおいて指定されている機能/設定が印刷システムによってその現在の構成およびその現在の動作状態において実行されうることを確認してもよい。もしそうであれば、ステップ332は、JDFジョブチケットの要素を対応するデバイスコマンドストリングに、印刷システムに記憶されているデバイスポストスクリプトテーブルのエントリーに基づいて、変換する。JDFジョブチケット内の各要素について、ステップ330は、JDFジョブチケットにおいて与えられている機能名を処理して、デバイスポストスクリプトテーブルの一つまたは複数の対応するエントリーを位置特定する。次いでステップ334は、デバイスポストスクリプトテーブルを使ってJDFジョブチケット変換から導出されたデバイスコマンドストリングたとえばデバイス制御ストリングと、受領した印刷ジョブデータ中のデバイスコマンドストリングたとえば、ページイメージデータを実行して、印刷されるべきページイメージを生成する。JDFジョブチケット変換工程から導出されたデバイスコマンドストリングは、デバイスコマンドストリングを実行する適正な時を、ジョブチケットと一緒に供給された印刷データに対して、また受領したジョブチケットの処理によって生成された他のデバイスコマンドストリングに対して決定するために印刷システムによって使用される、順序付け/シーケンシング情報を含んでいてもよい。一般に、実施形態によっては、デバイスポストスクリプトテーブルからの位置特定されたデバイスコマンドストリングすなわち、ステップ332のは、デバイスポストスクリプトテーブルから抽出されたとえばポストスクリプト辞書探索に基づいて、印刷ジョブデータおよびジョブチケット処理から生成された他のデバイスコマンドストリングとの関連で適正なシーケンスにおいてのちに処理するために保存されるという意味で、並進されてもよい。他の実施形態では、JDF機能‐設定値は、保存され、のちにすなわちステップ334で、ページイメージをレンダリングするために印刷ジョブが処理される際に実行されるべき対応するデバイスコマンドストリングを処理するたとえば位置特定するまたは変換するために使用されてもよい。デバイスポストスクリプトテーブル中の制約情報に基づいて印刷システムにおいて実行される有効確認工程は、そのような制約情報の簡単な例によってより十全に理解されうる。プリンタ記述ファイルたとえばPPDファイルは、デバイス機能名およびデバイス機能設定名のうち、デバイス機能名とデバイス機能設定名の別の組み合わせとは組み合わせられないものについてのエントリーを含みうる。たとえば、プリンタ記述ファイルは、UI制約機能A設定B機能C設定DUI制約機能A設定B機能E設定Fのような二つの例示的なエントリーを含むことがありうる。これらのエントリーは、デバイス機能設定名設定Bに設定されているときのデバイス機能名機能Aは、設定名設定Dに設定されているときの機能名機能Cをもつ、あるいは設定名設定Fに設定されているときの機能名機能Eをもつ印刷ジョブにおいて組み合わせることができないことを示している。この情報は、次いで、上で論じたように、またのちに詳述するように、デバイスポストスクリプトテーブルの一部として印刷システムに送られるべき制約情報を生成するために、使用されうる。ある例示的な実施形態において記されるように、制約情報は、デバイスポストスクリプトテーブルにおいて、ポストスクリプト辞書たとえば、キー‐値テーブル構造の例として実装されてもよい。プリンタ記述ファイルにおいて遭遇される衝突する機能‐設定値の各対について、制約情報において対応するエントリーが生成または更新される。たとえば、エントリーは、第一の機能‐設定値をキーフィールドとして含み、第一のキー値機能‐設定組み合わせと衝突する他のすべての機能‐設定値の配列である値フィールドを含んでいてもよい。いくつかの実施形態では、第二の機能‐設定値がキーフィールドとして使用され、対応する値フィールドが衝突する他のすべての機能‐設定値の配列を含む追加的なエントリーたとえば、最初に前記第一の機能‐設定値、すなわち、最初に生成されたエントリーの逆が生成されてもよい。そのような逆エントリーの使用は、チケットにおいて機能および設定が与えられる順序に依存して、無効なジョブチケットの認識における処理を高速化できる。よって、上記の例示的なプリンタ記述ファイル制約エントリーは、機能A設定B機能C設定D機能E設定F機能C設定D機能A設定B機能E設定F機能A設定Bのような例示的なポストスクリプト辞書エントリーに変換されうる。上記の例示的な辞書エントリーは、抽象的な形での単純な制約を示している。より一般には、印刷システム内で使用される制約情報は、JDF機能名およびJDF機能設定名の互いに相容れないグループを同定する。下記の抜粋は、典型的なプリンタ記述ファイルたとえばPPDファイルに記憶される情報のさらなる例を与える。これは、任意的な制約情報におけるエントリーを生成するために使用されうるものである。[UI制約給紙スロットマルチ手差しトレイ両面両面長辺綴じUI制約給紙スロットマルチ手差しトレイ両面両面短辺綴じUI制約両面両面長辺綴じ給紙スロットマルチ手差しトレイUI制約両面両面短辺綴じ給紙スロットマルチ手差しトレイUI制約両面両面長辺綴じページサイズA6UI制約両面両面長辺綴じページサイズB6UI制約両面両面長辺綴じページサイズハーフレターUI制約両面両面長辺綴じページサイズ12×18UI制約両面両面長辺綴じページサイズ封筒10Env10UI制約両面両面長辺綴じページサイズ封筒モナークEnvMonarchUI制約両面両面長辺綴じページサイズ封筒5Env5UI制約両面両面長辺綴じページサイズ封筒6Env6UI制約両面両面長辺綴じページサイズDL封筒DLEnvUI制約両面両面長辺綴じ給紙スロットマルチ手差しトレイUI制約両面両面長辺綴じ用紙種類ラベルUI制約両面両面長辺綴じ用紙種類OHPUI制約両面両面長辺綴じ用紙種類厚紙2UI制約両面両面長辺綴じ用紙種類厚紙3UI制約両面両面長辺綴じ用紙種類薄紙UI制約両面両面長辺綴じページ領域A6UI制約両面両面長辺綴じページ領域B6UI制約両面両面長辺綴じページ領域ハーフレターUI制約両面両面長辺綴じページ領域12×18]下記の抜粋は、上記の例示的なプリンタ記述ファイルの諸部分からポストスクリプト辞書データ構造として生成される例示的な制約情報の諸部分を示す。上記のように、デバイスポストスクリプトテーブルは、ジョブチケットの変換によって生成されたデバイスコマンドストリングの実行の適正なシーケンシングを保証するための順序付け情報を含んでいてもよい。ジョブチケットにおける機能‐設定の組み合わせは、対応するデバイスコマンドストリングの実行の適正なシーケンシングを保証するために並べ替えられてもよい。これは、のちに実行されるデバイスコマンドストリング不適切な順序で実行されるが先に実行されたデバイスコマンドストリング前記不適切な順序で実行されるのオプションをオーバーライドするために、デバイスコマンドストリングの実行が所望されるオプションを不適切に打ち負かしてしまうことがないことを保証する助けとなる。ある例示的な実施形態では、順序付け情報は、プリンタ定義ファイルにおいて提供されてもよい。この順序付け情報は、たとえば、記述ファイルによって指定される利用可能なデバイス機能名についての処理の、要求される順序を表していてもよい。たとえば、プリンタ記述ファイルはのようなエントリーを含んでいてもよい。プリンタ記述ファイルにおけるそのようなエントリーは、JDFジョブチケットのプリンタの処理において使用するための別のテーブルたとえばポストスクリプト辞書を生成するために使用されてもよい。印刷システム内の印刷ジョブプロセッサは、ひとたびジョブチケットのJDF要素を処理することによって連結された機能‐設定名のリストを構築したら、機能‐設定名がデバイスポストスクリプトテーブルから呼び出されるべき順序を決定するために、単に機能名を使ってこのテーブルを参照することになる。プリンタ記述ファイルの上記の例示的なエントリーから生成される例示的なテーブル構造たとえばポストスクリプト辞書は次のようになる。当業者は、図3に例示されている方法において存在しうる多様な追加的なおよび等価な方法ステップを容易に認識するであろう。そのような追加的なおよび等価なステップは、議論の簡明のため、ここでは省略する。さらに、当業者は、図3の方法が、設計上の選択の問題としてたとえば図1および図2のシステムのコンポーネント内の汎用または特殊目的のプロセッサによって実行される好適にプログラムされた命令として実装されてもよく、あるいは指定された機能を提供するための好適に設計されたカスタム回路として実装されてもよいことを認識するであろう。マッピングファイルマッピングファイル図2の204は図3の方法のステップの機能にとって重要である。図4は、マッピングファイルの構造を概括的に記述するブロック図である。マッピングファイル204は好ましくはXMLフォーマットを使って実装される。これは、JDF規格もXMLフォーマットを使っており、XML処理のために利用可能な多くのツールやプログラミング言語設備があるので、便利である。当業者は、マッピングファイルについての他のフォーマットが可能であることをすぐ認識するであろう。同じ理由で、まずPPDファイルを、マッピングファイルとの関連で、処理する前に、等価なXMLフォーマットに構文解析することが便利である。こうして、図3のプロセスへの二つの入力はいずれもXMLファイルである。図4のマッピングファイル204はPDFジョブチケットに対して、ある程度の類似性をもつ構造をもつ。マッピングファイルの最上位のタグエレメントはJDF400であり、次のような五つのサブエレメント子要素を含んでいてもよい:ProcessPoolプロセスプール402――印刷システムによってサポートされるべきJDFプロセスをリストし、各JDFプロセスによってどの機能が必要とされるかを示す;デバイスポストスクリプトテーブルを生成するために使用される。MacroPoolマクロプール406――デフォルトのデバイス独立なマクロを含み、PPDが処理されるときにデバイス依存マクロによって補足される。AuditPool監査プール410――作業フローを追跡するためにジョブチケット中にコピーされるデータ構造。ResourcePool資源プール404――JDFResourcePoolの構造をPPD機能フィーチャーにマッピングする。ResourceLinkPool資源リンクプール408――JDFResourceLinkPoolの構造をPPD機能にマッピングする。ResourcePool404およびResourceLinkPool408は、JDFジョブチケット中と同じ名をもつ子要素を有していてもよいが、JDFジョブチケット中のエレメントの属性はその代わりにマッピングファイル中のサブエレメントとして表現されてもよい。JDF属性に対応するこれらのサブエレメントは、それ自身、PPDFeatureまたはJDFFeatureと名付けられた一つまたは複数のサブエレメントを含んでいてもよい。ProcessPool402内のサブエレメント422はやはりPPDFeatureおよびJDFFeatureエレメントを含んでいてもよく、これらはResourcePoolサブエレメント424またはResourceLinkPoolサブエレメント428における対応するPPDFeatureおよびJDFFeatureエレメントを指す。サブエレメント422、424または428中のPPDFeatureエレメントは、PPDファイル中で生起しうるデバイス固有機能featureを記述する。PPDFeatureエレメントサブエレメントは二つの属性名前NameおよびOEMを有する。名前属性はPPDファイル中で生起するPPD機能の名前である。OEMはデバイスの製造業者元の装置製造業者[OriginalEquipmentManufacturer]を指し、名前空間宣言として機能する。このOEM属性指示は、一般的なデバイス機能についてPPDファイルにおいて使用される名前が製造業者の間で、あるいは単一の製造業者からのデバイスモデルのセットまたは世代の間で異なりうるが一般に名付け規約のファミリーにはいる場合に有用となることがある。PPDFeatureエレメントのOEM属性は、このPPDFeatureが属する名前のファミリーを示す。よって、複数のPPDFeature要素を各位置に含めることによって、マッピングファイルは、PPD名の複数のファミリーについて、PPDからJDFへのマッピングを記述できる。PPDFeatureエレメントは、PPD、JDFと名付けられた属性をもつ設定Settingと名付けられた子要素を有していてもよい。これらの設定エレメントは、JDF値を一つまたは複数のPPDデバイス設定に、または必要に応じてポストスクリプト手順にマッピングする。図5は、印刷システム内でのJDFジョブチケットの処理を改善するための本願の特徴および側面に基づくもう一つの例示的な方法を描くフローチャートである。図5の方法は、図4で上に論じたマッピングファイル構造の諸部分に関係する、いくつかのステップを記述する。図5の方法は、図1および図2に記載されたようなシステムのコンポーネントにおいて動作可能であってもよい。本稿でさらに後述するように、図5の処理の一部は、印刷システムと結合されたコンピューティングシステム内で実行されてもよく、図5の他の処理は印刷システム内で実行されてもよい。ステップ500は、XMLフォーマットにされたマッピングファイルとの関連でのPPDの処理を容易にするために、与えられたPPDファイルをXMLフォーマットに変換して、XMLフォーマットのデバイス機能ファイルを生成する。ある例示的な実施形態では、変換されたPPDファイルは、XML木構造としてメモリ内で表現されてもよい。ステップ502は、PPDファイルたとえば、メモリ内XML木構造に変換されているにおいてOEMがもしあればどのOEMが指定されているかを判別する。OEM識別子は、使用されるべき特定の印刷システムのための適切なデバイス機能ファイルおよびデバイスポストスクリプトテーブルの生成において使用するためにマッピングファイルのさまざまなエントリーの間で選択するために使われてもよい。次いでステップ504は同定された印刷システムのための新しいデバイス機能ファイルを生成する。ステップ506ないし510は、マッピングファイルの対応する諸セクションにおける情報を処理する。具体的には、ステップ506はAuditPool図4のエレメント410を処理し、ステップ508はResourcePool図4のエレメント404を処理し、ステップ510はResourceLinkPool図4のエレメント408を処理する。ステップ512はPPDファイルおよびマッピングファイルを処理してデバイス機能ファイル中のTestPool試験プール後述を生成する。ステップ514はPPDファイルおよびマッピングファイルを処理してデバイス機能ファイル中のMacroPool後述を生成する。ステップ516はPPDファイルおよびマッピングファイルを処理してデバイス機能ファイル中のModulePoolモジュールプール後述を生成する。ステップ518は、生成されたデバイスポストスクリプトテーブルを記憶するための出力ファイルを生成する。ステップ520は、マッピングファイルのProcessPool図4のエレメント402中の各エレメントのために出力ファイル中の新しいポストスクリプト辞書データ構造を開始する。次いでステップ522は、マッピングファイルのProcessPoolにおいて参照される各PPD機能またはJDF機能のための辞書木構造を追加する。一つまたは複数のポストスクリプト辞書のような生成されたデバイスポストスクリプトテーブルを含む生成された出力ファイルは、印刷システムに送られる。印刷システムにおいてJDFジョブチケットの処理のために使われるためである。ステップ524は、ユーザーによって入力されたマクロ選択に基づいてデバイス機能ファイルのエントリーを調整する。こうして印刷システムに送られるデバイス機能ファイルおよびデバイスポストスクリプトテーブルを生成したところで、ステップ526は、生成されたデバイス機能ファイルを使った印刷ジョブのためのジョブチケットを生成するための、ユーザー/アプリケーションによる処理を表す。生成されたJDFジョブチケットおよび関連付けられた印刷ジョブデータは次いでステップ528での処理のために組み合わされ、ステップ530で印刷システムに送られる。次いで、ステップ532はJDFジョブチケットおよび関連付けられた印刷ジョブデータを処理して所望の印刷出力を生成するための印刷システム内の処理を表す。デバイス機能ファイルおよびデバイスポストスクリプトテーブルを生成するためのマッピングファイルおよびPPDファイルのエレメントおよび使用は、マッピングファイルのエントリーの例および関連する例示的なPPDおよびJDFジョブチケットエントリーを参照しても理解されうる。下記は、OEM2製造業者印刷システムにおける丁合collate機能のための例示的なPPDファイルからの抜粋である。下記のXMLは、OEM2丁合機能および別の例示的なOEMたとえばOEM1のものを含む丁合機能のためのマッピングファイルの例示的な部分を表す。各OEMのPPD機能についての設定Setting属性は、対応する丁合機能のためのポストスクリプトコマンドストリングPS属性を指定する。例示的なJDFジョブチケットは、下記のJDジョブチケット抜粋におけるような丁合機能の使用を指定しうる。図3の方法によって使用されるとき上記の例示的なPPD抜粋と関連して上記に与えた例示的なマッピングファイル抜粋は、次いで、OEM2プリンタによって実行されるべき下記のポストスクリプトコードを生成する。デバイス機能を呼び出す上記の例示的な生成されたポストスクリプトコードは、OEM2デバイスのためのPPDFeatureのPS属性からのコードと組み合わされていることを注意しておく。PS属性におけるデバイス独立コードは、典型的には、ページレイアウトに影響する設定をレイアウトエンジンに知らせ、それによりレイアウトエンジンを、設定を判別するためにプリンタハードウェアにデバイス固有問い合わせをする必要から解放するために使われる。これは、すべてのデバイスについて展開されるべき、デバイス独立なレイアウトエンジンを許容する。いくつかのPPD機能は、JDF機能と一対一にマッピングしない。場合によっては、複数のPPD機能オプションが単一のJDF属性値にマッピングされる。場合によっては、複数のJDF属性値が同じPPD機能オプションにマッピングされる。マッピングファイルは、設定エレメントのPPD属性が複数のPPD機能オプション名を含むことを許容し、マッピングファイル中の複数の位置におけるPPDFeatureエレメントが同じPPD機能を参照することを許容することによって、そのための備えをする。下記の例は、ResourcePool中の三つのJDF属性およびResourceLinkPool中の一つのJDF属性がOEM1プリンタのStapleLocationステープル位置機能にマッピングする様子を示している。正しいデバイス設定を判別するために、ジョブチケットプロセッサは、ジョブチケット中の四つすべての属性を調べねばならない。マッピングファイルは、特定のジョブチケットのための単一のステープル設定を判別するために、相互排除を許容する情報を含む。たとえば、StitchType=Corner綴じ型=隅、Angle=90角度=90、NumberOfStitches=1綴じ数=1、Orientation=Rotate0配向=回転0の場合、PPD機能StapleLocationステープル位置に対する適切なオプションはUpperLeft左上である。PPDFeatureエレメントがいかなるSetting設定子要素も含まない場合、これは、許容されるJDF機能設定のリストがPPDファイルにおいて指定されている機能設定のリストから、同じ名前および値型をもって、直接生成されるべきであることを示す。マッピングファイルの解釈におけるこの規約は、PPDに固有の名前のセットが自動的に特定のJDF属性にマッピングされることを許容する。たとえば、PPDからのMediaTypeメディア型エントリーを下記のマッピングファイル抜粋で例示されるところではJDFノードJDFResourcePoolMediaのMediaTypeDetailsメディア型詳細にマッピングするために使うことができる。このマッピングファイル構造は、メディア型の名前のような、プリンタモデルの間で大きく変動があり、JDF規格がすべての場合における同等物を定義していない大きなオプションセットのために有用である。JDF規格は特に、カスタム属性値のそのようなセットを許容し、よってマッピングファイルは上記の例示的な構造をもってこれを受け入れる。PPDFeatureエレメントは、マッピングファイルのProcessPool中にも生起しうる。この場合、これらのエレメントはマッピングファイルによってサポートされる各プロセスのためにどのPPD機能が呼び出されねばならないかを示す。次のマッピング例抜粋は、ColorSpaceConversion色空間変換プロセスがOEM1プリンタについてはPPD機能ColorModel色モデルを呼び出し、OEM2プリンタについてはPPD機能EFColorModeEF色モードを呼び出すことを指定している。JDFFeatureエレメントサブエレメントは、PPDファイルにリストされていないがその代わりポストスクリプト手順によって実装されるデバイス独立な機能を記述する。これは、その機能のためのデバイスコマンドを補足するものであるPPDFeatureエレメントのPS属性に含まれるポストスクリプトとは異なる。マッピングファイル内のResourcePoolまたはResourceLinkPool中に現れるJDFFeatureエレメントは、ジョブチケット内の等価な位置に現れるJDF機能に対応する。これらのJDFFeatureエレメントは、JDF属性および任意的にPS属性を有するSetting子要素を含んでいてもよい。JDF属性は、JDF機能についての許容される設定値を示し、任意的なPS属性は二つの要素をもつポストスクリプト配列アレイを含んでいてもよい。二つの要素とは、整数およびその機能を実装する手順である。整数は、コマンド順序番号であり、PPD機能のためのコマンド順序番号と同じように機能する。整数順序番号は、ポストスクリプト手順が他のコマンドおよび手順に対していつ実行されるべきかを示す。次の例示的なマッピングファイル抜粋では、順序番号はSetSizePolicyサイズ設定ポリシー手順について1000である。JDFFeatureエレメントのJDF属性の値がINTEGER整数である場合、それは、ジョブチケットに見出される値が、ポストスクリプトスタック上のパラメータとして配列中の手順に渡されねばならない単一の整数であろうことを示す。JDF属性の値がXYPAIRXY対である場合、それはジョブチケット中に見出される値が、パラメータとして配列中のポストスクリプト手順に渡されねばならない実数の対であることを示す。JDF属性の値がSTRING文字列である場合、それはジョブチケットからのストリング値がポストスクリプト手順に渡されることを示す。次の例示的なマッピングファイル抜粋は、コピーの数が整数属性値を用いてどのように設定されるかを示す。JDFFeatureエレメントがPS属性をもたない場合、このことは、印刷時に実行されるべき手順がないことを示す。しかしながら、JDF属性の値は、システム中の別のモジュールによって使用されてもよい。次の例示的なマッピングファイル抜粋では、ComponentTypeコンポーネント型属性がジョブチケットプロセッサによっては必要とされないが、印刷システム中の、ジョブスケジューラのような別のモジュールによって参照されうる。JDFFeatureエレメントは、マッピングファイルのProcessPool中にも現れることがある。この場合、それらの要素はSettingという子はもたず、ただ一つの属性、つまりジョブチケット中の対応する属性を同定するJDFパス名の値をもつPathパス属性をもつ。これは、チケットプロセッサに、そのJDFFeatureエレメントが現れたProcessPoolのプロセス子要素に対応するプロセスを実行するときにその属性が参照されねばならないことを通知する。次の例示的なマッピングファイル抜粋は、マッピングファイルが、DigitalPrintingデジタル印刷プロセスの一部としてSetNumCopies部数を設定手順上に例示したようなが呼び出されねばならないことを示す様子を示している。デバイス機能ファイルJDF文書において規定されているデバイス機能記述フォーマットDevCapsはいくつかの目的の役に立つことができる。DevCapsファイルは、デバイス上で利用可能な機能のセットを、APIとして、クライアントのために呈示することができ、これらの機能をJDFジョブチケット中の構造体constructsにマッピングするための論理を含むことができるMacroPool。さらに、衝突があるかどうか機能設定を検査するための試験のセットを含んでいてもよいTestPool。さらに、DevCapsファイルは、どの機能が利用可能でありModulePool最終的かに影響するデバイスの任意的な構成の記述を含んでいてもよい。さらに、ジョブチケット生成のためのテンプレートの役を果たすこともできるCurrentValue現在値属性の使用を通じて。ここに記載されるマッピングファイルは、デバイス機能ファイルを生成するためのこれらの使用事例すべてをサポートする。PPD機能は、一般に、ジョブチケットのResourcePoolにおける要素にマッピングされる。そのような要素は、属性Contextコンテキストを値Resource資源に設定して、DevCaps要素によってDevCapsファイルにおいてモデル化される。ResourceLinkPoolエレメントは、ContextをLinkリンクに設定してDevCaps要素によってモデル化される。これら二つの要素のセットは、PPDファイルおよびマッピングファイルを入力として使うソフトウェアモジュールによって生成できる。これらのモジュールのアルゴリズム論理は以下に述べる。PPDファイルの特性を調べることによって、あるいは構成ファイルコンフィギュレーションファイルこれものちに論じるアルゴリズムへの入力として使われる中の値を直接設定することによって、OEMがすでに判別されていると想定する。CIP4デバイス機能ファイルは、DeviceInfoデバイス情報ルートノードで始まる。このルートノードはDeviceデバイスエレメントを子としてもち、このエレメントはDeviceCap子要素をもち、これは一つまたは複数のDevCapsエレメントを含む。各DevCapsエレメントはDevCap子要素をもち、これはジョブチケット中の属性を表す一つまたは複数の子要素EnumerationState列挙状態またはIntegerState整数状態のようなをもつ。ResourcePoolのためのDevCaps次の例の抜粋は、Mediaメディアエレメントについての単一のDevCapsエレメントと、そのLocation位置属性についてのその子DevCapエレメントを示している。このようにして、JDFジョブチケットはデバイス上で使用されるべき入力トレイを指示する。上記のDevCapsの例の抜粋は、次のマッピングファイルの例示的な抜粋によってマッピングされる。これがDevCap中に実際に現れるよりも多くの入力トレイ名を指定していることに注意。上記のように、マッピングファイルにおけるトレイ名のすべてがデバイス機能ファイルに現れるわけではなく、例示的なPPDファイル抜粋における対応する機能において見出された名前に一致するものだけが示されている。上記の例示的な抜粋は、デバイス機能ファイルが、マッピングファイルに従ってPPDファイルからマッピングおよびフィルタリング情報を使ってどのように構築されるかを示す。次のアルゴリズムは、マッピングファイルおよびPPDファイルを使ってResourcePoolエレメントについてデバイス機能ファイル中の要素を生成するための方法をより十全に記述する。1.マッピングファイルノードJDFResourcePoolの子ノードすべてについて反復2.各子ノードについて、出力XMLファイル中でDevCapsエレメントを開始3.Name属性を子の名前に設定し、Context属性をResourceに設定4.IDおよびStatus属性を、所望に応じてデフォルト設定に設定5.DevCapsエレメントのDevCap子ノードを同じ名前属性をもって開始6.マッピングファイルからの子ノードを渡し、出力ファイルを再帰的機能へのパラメータとして渡す。再帰的機能は:a.渡されたノードパラメータのすべての子ノードについて、反復b.子ノードがPPDFeatureエレメントであれば、Name属性の値を使ってPPDファイル中のその機能を見出し、PPDがその機能について何のオプションももたない場合にはアボートするc.PPDFeatureマップノードの最初の子要素Settingを得、みつかったら:i.SettingエレメントのJDF属性を調べ、それが1.単一の整数であれば、DevCapのIntegerState子を開始し、Listに設定された属性ListTypeを追加し、2.スペースによって区切られた二つの整数であれば、XYPairState子を開始し、3.名前であれば、EnumerationState子を開始ii.その機能についてのデフォルトオプションがあるかどうかPPDファイルを調べ、みつかったら:1.マッピングファイル中の対応するJDF名を判別し、2.それをStateエレメントのDefaultValueデフォルト値属性として出力iii.EnumerationStateであれば、マップ中のPPDFeatureエレメントの各Setting子要素のPPD属性におけるPPDファイルから各機能オプションの名前を探し、関連付けられたJDF属性の値をリストに追加することによって、出力中にStateエレメントのAllowedValues許容される値属性のリストを生成iv.出力中のStateエレメントを終了d.PPDFeatureエレメントが子をもたなければ、PPDオプションからの出力を生成:i.出力中にEnumerationStateエレメントを開始ii.その機能についてのPPDファイル中にリストされているオプションから直接にAllowedValues属性についてのリストを生成iii.PPDファイル中でデフォルトオプションが指定されていれば、DefaultValue属性を追加iv.出力中のStateエレメントを終了e.渡されたノードの子がPPDFeatureでなくJDFFeatureであれば、子Settingエレメントおよび可能性としてはDefaultエレメントを反復i.第一のSetting子において、型を判別するためにJDF属性の値を調べ、出力中の新しいエレメントを開始:適宜IntegerState、XYPairStateまたはEnumerationStateii.EnumerationStateであれば、マップ中のJDFFeatureエレメントのSetting子のJDF属性からAllowedValues属性についてのリストを構築iii.SettingエレメントのDefaultエレメント兄弟に遭遇したら、その値をStateエレメントのDefaultValue属性として出力iv.出力中のStateエレメントを終了f.渡されたノードの子がJDFFeatureでもPPDFeatureでもない場合、それは中間ノードであり、よって現在の関数への再帰的な呼び出しをする。再帰は、PPDFeatureまたはJDFFeatureエレメントが見出されるまで続けられる7.DevCapエレメントを終了8.DevCapsエレメントを終了。ResourceLinkPoolのためのDevCapsジョブチケットのResourceLinkPool中のエレメントをモデル化するDevCapsエレメントは、マッピングファイルのResourceLinkPoolから直接に、そしてマッピングファイルのResourcePoolから間接的にという二通りの仕方で導出できる。DevCaps要素は、マッピングファイル中のノードJDFResourceLinkPoolのすべての子を通じて、名前PPDFeatureまたはJDFFeatureのいずれかをもつ子孫ノードがみつかるまで再帰的に反復することによって、マッピングファイルのResourceLinkPoolから直接導出される。次のアルゴリズムは、マッピングファイルおよびPPDファイルを使って、ResourceLinkPoolエレメントのためのデバイス機能ファイル中の要素を生成するための方法をより十全に記述する。1.最初の再帰すなわちJDFResourceLinkPoolの直接の子であれば:a.出力DevCapsファイルにおいて新しいDevCapsエレメントを開始し、マップノードからName属性をコピーし、Context属性をLinkに設定b.新しいDevCapエレメントDevCapsの子を開始し、同じName属性を設定2.PPDFeatureエレメントに遭遇した場合:a.Name属性を取得し、それがPPDファイル中の機能に現れなければアボートb.このPPDFeatureのSetting子がなければ、スキップc.第一のSetting子要素からデータ型を判別し、ResourcePool処理についてアウトラインポイント6cで上記したように出力において新しいStateエレメントを開始d.Setting子要素を通じて反復、JDF属性値をリスト中に集めるe.集められたリストをStateエレメントのAllowedValuesList属性として出力f.Stateエレメントを終了3.JDFFeatureエレメントに遭遇した場合:a.このJDFFeatureの子がなければ、スキップb.上記のように、第一のSettingまたはDefault子要素からデータ型を判別c.このJDFFeatureのすべてのSetting子および可能性としては単一のDefault子を通じて反復、JDF属性値をリスト中に集めるd.集められたリストをStateエレメントのAllowedValuesList属性として出力e.JDFFeatureのDefault子に遭遇した場合には、そのJDF属性の値をStateエレメントのDefaultValue属性として出力f.Stateエレメントを終了4.すべての再帰の完了後、DevCapエレメントを終了5.DevCapsエレメントを終了。MacroPoolMacroPoolは生成されるデバイス機能ファイルにおいてDeviceCapエレメントの子要素であり、ResourcePoolおよびResourceLinkPoolエレメントの兄弟要素である。MacroPoolは一つまたは複数のmacro子要素を含み、そのそれぞれがchoice要素を含み、これは一つまたは複数のwhen要素を含む。when要素は、IntegerEvaluationまたはEnumerationEvaluationのような評価要素と、一つまたは複数のset設定要素を含み、そのそれぞれがジョブチケット中でのエレメントの属性を指し、その属性が設定されるべき値を指定する。評価要素は、マクロに渡されたパラメータを処理し、適切な設定要素を選択するはたらきをする。典型的には、設定要素は、ジョブチケット中でターゲット要素をモデル化するDevCapsにおけるCurrentValue属性を設定する。ジョブチケットについての値を選択するためにDevCaps要素におけるCurrentValue属性の値が使われるので、これは、ジョブチケットの生成を容易にする。下記のマクロの例の抜粋は、ジョブチケット中のResourcePoolの子であるLayoutPreparationParamsレイアウト準備パラメータエレメントのRotate回転属性に格納されている、印刷ジョブについてのポートレート縦置きportraitまたはランドスケープ横置きlandscapeの配向を選択する。上記の例におけるマクロは、指定されているページ回転はいかなるポストスクリプト対応プリンタ上でもポストスクリプトコマンドによって実装できるので、デバイス独立である。したがって、このマクロは、マッピングファイルのMacroPool中に含めることができ、これは、PPDファイルからの案内の必要なしにマッピングファイルから生成されるすべてのデバイス機能ファイル中にコピーされる。デバイス依存のPPD機能のためのマクロはPPDおよびマッピングファイルから導出される。これは、デバイス機能記述がPPD機能のインターフェースをクライアントに呈示し、次いでユーザーの選択を反映するJDFジョブチケットを生成することができる一次機構である。次のマクロの例の抜粋は、マッピングファイルによってステープル機能について生成される単純なマクロ選択肢choiceが一つのみを示している。こうして、デバイス独立およびデバイス依存という二つ以上のクラスのマクロがありうる。デバイス独立なマクロはマッピングファイルによって指定され、生成されるデバイス機能ファイル中に直接コピーされる。デバイス依存マクロはPPD機能を実装し、PPDおよびマッピングファイル中の情報から生成される。MacroPoolエレメントが出力デバイス機能ファイルにおいて開始されているとすると、これは次のアルゴリズムによって達成されうる:1.すべてのPPDFeatureエレメントを見出すために、マッピングファイル中のResourcePoolおよびResourceLinkPoolエレメントのすべての子孫を通じて再帰的に反復2.PPDFeatureエレメントのName属性すべての値を集める。これは生成されるべきマクロの名前のリストをなす3.ステップ2で生成されたリスト中のそれぞれの名前について:a.出力中で新しいmacroエレメントMacroPoolの子を開始b.ID属性を、リストから逐次反復されている名前に設定c.出力中で新しいchoiceエレメントmacroの子を開始d.リストされる各オプションについて、PPDファイル中で当該機能を位置特定:i.出力中でwhenエレメントを開始ii.出力中でEnumerationEvaluationエレメントを追加iii.PPDファイル中でのオプションの名前に等しい値をもつValueList属性を追加。これはEnumerationEvaluationエレメントを終了するiv.PPD機能名に等しいName属性をもつすべてのPPDFeatureエレメントそのようなエレメントは複数あることがありうるを見出すために、マッピングファイル中のResourcePoolおよびResourceLinkPoolエレメントのすべての子孫を通じて再帰的に反復。みつかった一つ一つについて:1.PPDFeatureのSetting子要素を通じて反復。PPDファイルからのオプションの名前との一致を探してPPDFeatureのPPD属性中の一つまたは複数の名前を探索。一致がみつかったら:a.出力中でsetエレメントを開始b.マッピングファイル中のPPDFeatureの位置に対応するJDFパスの値をもつrRef属性を追加。たとえばJDFStitchingParamsStitchTypec.出力中でFeatureAttributeエレメントを開始d.反復中のSettingエレメントのJDF属性の値をもつCurrentValue属性を追加e.FeatureAttributeエレメントを終了f.setエレメントを終了v.whenエレメントを終了e.choiceエレメントを終了f.macroエレメントを終了。マクロプロセッサマクロ処理は、本特許出願において論じられるマッピングファイルに直接依存しないものの、その概念についてここで手短に説明しておく。CIP4文書が、マクロ選択がジョブチケット生成のためのプロセスにどのように提出されるかについて明確でないからである。印刷ジョブについてのマクロ設定を決定するために、クライアントアプリケーションはユーザーに、デバイス機能ファイル中のMacroPoolに基づいて選択肢のセットを呈示してもよいし、あるいは自分自身の内部論理を使ってもよい。いずれにせよ、なされた選択は、生成されるデバイス機能ファイルにおける値を設定するマクロプロセッサに渡される必要がある。すると設定値はその後、チケット生成器によって、実際のジョブチケットを出力するために使用できる。選択肢はSettingエレメントを含むXML構造によって簡単に記述できる。各Settingエレメントは、マクロのID属性に等しいMacroRef属性と、所望される設定を指定するsetエレメントを含むwhenエレメントのEnumerationEvaluation子要素のValueList属性に等しいMacroChoice属性とを有する。次は、九つのパラメータの選択を表す例示的なマクロの抜粋である。ユーザーの選択を指定するXMLは、デバイス機能ファイルと一緒にマクロ処理機能に提出される。マクロ処理機能は次のアルゴリズムを実行する:1.MacroSettingsエレメントのそれぞれのSetting子要素について:a.反復中のSettingエレメントのMacroRef属性に一致するID属性をもつマクロがみつかるまで、デバイス機能ファイルのMacroPool中のmacroエレメントを通じて反復b.マクロのchoice子要素を取得c.choiceエレメントのwhen子を反復。それぞれについて:i.EnumarationEvaluation子要素を取得し、ValueList属性の値をステップ1.aにおいて反復中のSettingエレメントのMacroChoice属性と比較し、一致があれば:1.ステップ1.c.iにおいて同定されたwhenエレメントのset子要素のrRef属性中のJDFチケット位置に対応するデバイス機能ファイル中のエレメントまでナビゲート2.デバイス機能エレメントのCurrentValue属性を追加存在しない場合または設定存在する場合して、ステップ1.c.iにおいて同定されたMacroPool中のset子要素のFeatureAttribute子要素のCurrentValue属性の値にする。TestPoolPPDファイルは、互いに相容れない機能およびオプション名の二つの対をリストするUIConstraintという名称の構造体constructを含んでいてもよい。換言すれば、第一の機能名が第一のオプション名に設定されると、第二の機能名は第二のオプション名に設定されないよう制約される。これは、ポストスクリプトプリンタドライバが印刷ジョブについての設定における衝突を回避できる一次的な機構である。次は11×17の用紙レジャーledgerサイズが用紙トレイ1にロードされるのを禁止するたとえば物理的に収まらないので禁止例示的なPPDの抜粋である。制約を表すCIP4の方法は、一つまたは複数のTest試験エレメントを含むTestPoolと呼ばれるXMLデータ構造の使用によるものである。各Testエレメントは、EnumerationEvaluationのような、ValueListおよびrRefという名称の属性をもつ単一の評価エレメントを含んでいてもよい。第一のValueListは値であり、第二のrRefはJDFジョブチケット中の位置である。名指しされた位置における属性が名指しされた値をもつ場合、Testエレメントは真であると評価され、そうでなければ偽であると評価される。あるいはまた、Testエレメントは複数の評価エレメントを含んでいてもよい。それらの評価エレメントがandエレメントのもとにグループ化されていれば、その評価子要素のすべてが真であると評価される場合にかつその場合にのみ真であると評価されるそれ以外の場合には偽。あるいは、それらの評価エレメントがorエレメントのもとにグループ化されていれば、その評価子要素のうちのいずれかが真であると評価されれば真であると評価される。上記の例示的なPPD制約抜粋のCIP4等価物は次のようになろう。TestID属性として使われるテキストストリングについて標準的な規約はないが、ここに記載される諸方法はIDを機能およびオプション名から構築し、次いでその機能が名指しされたオプションに設定されている場合に禁止される設定を記述する他のTestsへの一つまたは複数の参照をリストする。これらの方法はTestPoolデータ構造におけるスペースを節約する。マッピングファイルは、PPD制約条件において指定される機能およびオプションのJDF等価物を導出するために使われる。この方法において、TestPoolは、二つの部分をもって生成されうる:第一の部分は機能‐設定の組み合わせについての試験のセットを定義し、第二の部分は第一のセクションにおける試験を参照する禁止のセットを定義する。第一の部分における試験は、ANDエレメントのもとにグループ化された複数の評価エレメントを含んでいてもよい。これは、いくつかの場合において、単一のデバイス設定がJDFジョブチケットにおける複数の設定にマッピングされるからである。たとえば、この複数マッピングは、デジタルプリンタ上のステープル仕上げ器フィニッシャーのための設定の場合に当てはまる。この場合、個々の各設定は、JDFジョブチケット中で設定されねばならない四つの異なる値にマッピングされる。よって、特定のステープラー設定に関係するPPD制約をCIP4規格を使って表すためには、まず、四つの異なる評価エレメントを含むANDエレメントからなる、そのステープラー設定についての試験を記述することが必要である。次いで、制約条件は、そのステープラー設定試験への参照および禁止される条件を表す他の任意の試験を含む試験として構築できる。これらの試験参照は、そのいずれも許容されないので、ORエレメントのもとにグループ化されることになる。よって、それらのいずれか一つが真であると評価されれば、親試験は真であると評価され、これは、衝突がみつかり、そのジョブチケットは無効であるということである。第二のグループにおけるこれらの試験は排除exclusionsと称される。第一のグループからリストされる試験によって表される条件のいずれをも排除するからである。PPDファイル中のUIConstraint文のいくつかは、JDF等価物にマッピングできる機能設定を参照しない。むしろ、PPDファイルのInstallableOptionsインストール可能オプショングループにおいて指定されているポストスクリプト問い合わせの結果を参照する。そのような制約はTestPoolの第二の部分において参照されることになるが、TestPoolの第一の部分には定義をもたない。むしろ、これらの制約についての機能名はModulePool後述に現れる。これは、デバイスポストスクリプトファイルが機能名によって参照される問い合わせをもつことを示す。そのような場合には、ホストベースのクライアントはプリンタにその問い合わせを実行して結果をホストに返すよう依頼し、該結果において返される名前が機能名と結合たとえば名前の間にアンダースコアをセパレータとしてもつようにして連結できるようにする。次いで、TestPoolの処理は、この機能‐設定名が真であると評価されたTestPoolの第一の部分における試験の名前であったかのように、続くことができる。次の例は、第一の部分において定義されている三つの試験および第二の部分において定義されている四つの排除試験をもつ二部からなるTestPoolを示している。第二の部分における名前の一つFinisherNone仕上げ器_なしは、インストール可能なオプションがあるかどうかの問い合わせの結果なので、第一の部分には定義されていない。次のアルゴリズムは、デバイス機能ファイル出力におけるTestPoolを生成するための処理を記述する。1.出力デバイス機能ファイル中のTestPoolエレメントを、DeviceCapエレメントの子DevCapsエレメントの兄弟として開始する。2.PPDファイル中の各UIConstraint文におけるそれぞれの一意的な機能/オプション対について:a.マッピングファイルのResourcePoolおよびResourceLinkPool中で、Name属性の値としての機能名と、PPDFeatureエレメントのSetting子のいずれかのPPD属性に含まれるオプション名とをもつPPDFeatureエレメントがいくつあるかを数えるために再帰関数を呼び出す。b.PPDFeatureの計数値が0より大きければ、出力デバイス機能ファイルにおいて新しいTestエレメントを開始すなわち、マッピングされない機能についての試験は出力されないi.TestエレメントのID属性を、アンダースコアを用いて結び合わされた機能およびオプションの名前に設定ii.PPDFeatureの計数値が1より大きければ、出力中で新しいandエレメントを開始iii.ステップ2.aで関連するPPDFeatureエレメントを計数するのに使われたのと同様の再帰関数を呼び出すが、今回は、探索される機能/オプション対との一致を含むPPDFeatureエレメントのName属性およびSetting子要素のPPD属性のそれぞれについて、SettingエレメントからのJDF属性の値に設定されたValueList属性とマッピングファイル中のPPDFeatureの位置のパス名に設定されたrRef属性とをもつ評価エレメントを出力iv.ステップ2.b.iにおけるPPDFeatureの計数値が1より大きかった場合、出力におけるandエレメントを終了v.出力中でTestエレメントを終了3.PPDファイル中の各UIConstraint文におけるそれぞれの一意的な機能/オプション対について:a.出力中でTestエレメントを開始i.試験エレメントのID属性を、アンダースコアを用いて結び合わされた機能およびオプションの名前に設定し、末尾にExclusionsをアペンドii.この機能/オプション対を禁止する他のすべてのUIConstraint文のリストを構築iii.リスト中の項目数が1より大きければ、出力中でorエレメントを開始iv.リスト中の各UIConstraint文について、同じUIConstraintについてステップ2.b.iで生成されたID属性に一致するよう、アンダースコアを用いてUIConstraintからの機能およびオプションの名前を結び合わせることによって形成されたストリングに設定されたrRef属性をもつTestRefエレメントを出力v.ステップ3.a.iiiにおいてorエレメントが開始された場合には、そのorエレメントを終了vi.Testエレメントを終了4.TestPoolエレメントを終了。ModulePoolCIP4デバイス機能ファイルにおけるモジュールエレメントは、インストールされている特定のハードウェアまたはソフトウェア機能に依存する機能を指定する。デジタルプリンタの場合、これはたとえば、ステープル、パンチ、折りといった機能を提供する仕上げ器を含みうる。モジュールの利用可能性現在インストールされているか否かは、デバイス機能記述において、モジュールそのものとは異なる位置に記述される。モジュールエレメントはDeviceエレメントの子であり、DeviceCapエレメントの兄弟である。各モジュールの利用可能性はModuleCapエレメントによって記述される。ModuleCapエレメントはModulePoolエレメントの子であり、ModulePoolエレメントはDeviceCapエレメントの子である。次は、デバイス機能ファイルにおいて生成されるModuleエレメントの例示的な抜粋である。Module、ModulePoolおよびModuleCapエレメントの構築はマッピングファイルを必要としないが、ModuleIDはUIConstraint文によって参照され、このUIConstraint文はステープルおよびパンチ機能といったマッピングされる機能をも参照しうる。モジュールは、まずPPDファイル内でInstallableOptionsというグループを位置特定し、PPDファイル中に見出された各インストール可能オプションについて出力デバイス機能ファイルにModuleエレメントを追加することによって生成される。PPDにリストされている任意的な構成それぞれについて子Moduleエレメントがある。親ModuleエレメントのModuleID属性はPPD中の機能名の値をもち、子ModuleエレメントのModuleID属性はPPDファイル中に与えられた個々のオプション名の値をもつ。ModulePoolエレメントは、第一ステップにおいて生成されたそれぞれの最上位のModuleエレメントについて、必要に応じて同じModuleID属性およびAvailability利用可能性属性が設定された利用可能性がデジタル問い合わせまたは手動のユーザー介入によってのちに判定される場合にはUnavailable利用不能に設定されるModuleCap子要素を生成することによって生成される。AuditPoolAuditPoolは、MacroPool、ResourcePoolおよびResourceLinkPoolと同じレベルのJDFジョブチケット中のXMLデータエレメントである。これは、ジョブチケットが生成、修正および実行された日時のようなプロダクションデータを記録するために使われる。これはPPDファイルからマッピングされる要素は含まないが、AuditPoolについてのテンプレートが、MacroPoolのデバイス独立マクロと同じ仕方ですなわちResourcePool、ResourceLinkPoolおよびProcessPoolの兄弟として、マッピングファイルに含められる。デバイス機能生成器上記の諸セクションは、デバイス機能ファイルを生成するために必要な機能のすべてを記述している。デバイス機能ファイルを生成するために、諸方法は、DeviceInfoDeviceDeviceCapというXMLルートで始まり、次いでResourcePoolおよびResourceLinkPoolについてのDevCapsエレメントをDeviceCapの子として追加し、エレメントMacroPool、TestPool、ModulePoolおよびAuditPoolをDeviceの子そしてDeviceCapの兄弟として追加する。チケット生成器デバイス機能ファイルは、デバイス機能XMLをメモリにロードし、次いでMacrosまたは直接編集を使ってジョブチケット中の要素をモデル化するデバイス機能エレメントについて所望されるようにCurrentValue属性を設定することによって、ジョブチケット生成のためのテンプレートのはたらきをするよう用意されてもよい。Context属性がElementに設定されたデバイス機能エレメントは、JDFルートエレメントの直接の子であるジョブチケットエレメントにつながる。Context属性がResourceに設定されたデバイス機能エレメントは、ジョブチケット中のResourcePoolの子要素を生成し、Context属性がLinkに設定されたデバイス機能エレメントは、ジョブチケット中のResourceLinkPoolの子を生成する。生成されたデバイス機能ファイルに基づくジョブチケットの生成のための例示的なアルゴリズムは次のようになる:1.デバイス機能ファイル中のDeviceCapエレメントの各DevCaps子について:a.Context属性がElementであれば、出力ジョブチケットにおいてノードJDFに移動し;そうでなければ、もしContext属性がResourceであれば、出力中のノードJDFResourcePoolに移動し;そうでなければ、もしContext属性がLinkであればノードJDFResourceLinkPoolに移動b.DevCapsエレメントのDevCap子を取得し、以下を行う再帰関数を呼び出す:i.DevCapエレメントのName属性の値に等しい名前をもつ、出力ジョブチケット中の新しいエレメントを開始ii.DevCapエレメントの各子エレメントについて:1.それがもう一つのDevCapエレメントであれば、再帰2.そうでなければ、それがStringState、EnumerationState、IntegerState、DateTimeStateまたはXYPairStateであれば、a.デバイス機能記述中の状態エレメントの名前をもつ、出力ジョブチケット中の現在のエレメントの属性を開始b.ジョブチケット中のその属性の値を、状態エレメントのCurrentValue属性の値に設定;そうでなければi.状態エレメント中にCurrentValue属性がなければ、DefaultValue属性を使用;そうでなければ1.状態エレメント中にDefaultValue属性がなければ、状態エレメント中のAllowedValueList属性において見出された最初の値を使用;そうでなければa.値が一つも決定できなければエラーにするc.出力ジョブチケットにおいてその属性を終了iii.1.b.iで開始した出力ジョブチケット中のエレメントを終了2.ジョブチケットを終了。チケット有効確認validationジョブチケットが有効確認されうる印刷ジョブプロダクションの種々のフェーズがあり、検査されうる有効確認の種々のレベルがある。プロダクションのフェーズは、ジョブチケット生成、ジョブ待ち行列提出およびジョブ実行を含む。チケット生成時の印刷ジョブチケット有効確認は、ホストベースのクライアントアプリケーションによって実行される可能性が高く、一方、実行時の有効確認はホストクライアントによって実行されうる。印刷ジョブチケット生成の時点でのこの有効確認は、上で論じたような生成されたデバイス機能ファイルのTestPoolおよびModulePoolを使用しうる。ジョブチケット生成の時点での有効確認は、生成されたジョブチケットが、同定された印刷デバイスによって実行されうる印刷ジョブについての有効な印刷ジョブチケットを表すことを検証しうる。換言すれば、同定された印刷システムは、現在構成設定されているか否かによらず、生成された印刷ジョブチケット中の機能を実行する能力をもつ。さらに、いくつかの理由により、ホストシステムは、後刻印刷されるべきジョブについての印刷ジョブチケットを生成することがある。たとえば、生成される印刷ジョブチケットは、のちの何らかの時点で印刷システムに送信するために待ち行列から出されるスプール解除されるよう待ち行列たとえばスプールに入れられてもよい。あるいは、たとえば、ユーザーは、何らかの指定された時刻にまたは指定された時刻より後に印刷システムに送られるべきであることを示す印刷ジョブチケットを生成してもよい。あるいは、さらなる例として、印刷ショップの運営者は、何らかの共通の仕上げ器コンポーネント構成設定をみな必要とする複数の印刷ジョブの実行を保留することがある。そのようなすべてのジョブが、運営者オペレーターがその特定の仕上げオプションを組み込むよう印刷システムを構成し直すつもりの後刻にバッチ実行されうるようにするためである。そのような場合、クライアントソフトウェアたとえば印刷待ち行列/スプール管理モジュールは、その生成後、二度目に、生成されたジョブチケットを有効確認してもよい。生成されたジョブチケットの二度目の有効確認は、生成されたジョブチケットによって表されるジョブが、その印刷ジョブの実行のために印刷システムに送られる直前に実行されてもよい。この第二のジョブチケット有効確認において、有効確認プロセスは、印刷システムの現在の構成を判別するために、印刷システムに問い合わせをしてもよい。こうして、生成されたジョブチケットの第二の有効確認は、印刷システムが、生成されたジョブチケットによって表される印刷ジョブの実行を許容するよう、現在構成されていることを検証する。印刷システム内で、ジョブチケットが有効確認されるもう一つの機会がある。印刷システムはジョブチケットを受領し、処理するので、ジョブチケットは、印刷システム内でのその受領および/または実行と関連して三度目に有効確認されてもよい。この第三の可能な有効確認において、デバイスポストスクリプトファイルは、ジョブチケットにおいて指定されているJDF機能が現在の動作状態にある印刷システムの現在の構成について適切であることを検証するために使用されうる。制約情報もデバイスポストスクリプトファイル内にエンコードされうる。機能の組み合わせが、印刷システムによって、その現在の構成およびその現在の動作状態において実行されることができることを検証するためである。こうして、ジョブチケット有効確認のさまざまなレベルは、製造業者によってサポートされる印刷装置のあらゆる可能な構成を含んでいてもよいし、あるいは現場で利用可能なオプションのアクセサリーおよび用紙種別の特定のセットで可能な構成のサブセットのみを含んでいてもよいし、あるいは現在構成されており現在動作的な印刷装置の現在デバイス構成のみを含んでいてもよい。現在デバイス構成に対するジョブチケット有効確認は、次のようにしてホストベースのクライアントアプリケーションによって実行できる:1.PPDファイルから生成されたDevCapsファイルのModulePool中で定義されるようなインストール可能なオプションについてデバイス問い合わせストリングをプリンタに送る。インストール可能なオプションの名前についての値として応答を記録するよう注意を払い、それらが制約文によって参照されうるようにするたとえば、返答が期待されるなしはいいいえ真偽などとして記録されることを保証する2.Exclusionsで終わる名前をもつTestPool内のすべてのTestエレメントを処理。いずれかの試験が真の値を返す場合、それは衝突がみつかったことを意味する3.衝突がみつかったら、衝突が解決できるよう衝突の記述を呼び出し者に渡す4.衝突がみつからなかったら、チケットが有効であることを示す結果を呼び出し者に返す。現在の構成だけよりも幅広い範囲の構成について検査するために、上記のアルゴリズムのステップ1は、現時点においてデバイスに問い合わせを送信することによって得られる単一の応答だけではなく、DevCapsファイル中にリストされている可能な問い合わせ応答の二つ以上に対して制約が検査されることを許容するよう修正されてもよい。プリンタ常駐JDFインタープリタによるデバイス上で実行されるジョブチケット有効確認は、次節で、デバイスポストスクリプトファイルの側面として記述される。デバイスポストスクリプトファイルDevicePostScriptFilePPDファイルおよびマッピングファイルから導出されたデバイス機能ファイルから生成されたジョブチケットのプリンタベースの処理は、チケットプロセッサとデバイス機能生成器との間での、JDFエレメントおよび属性がPPDファイルにおいて指定されるデバイス機能にどのようにマッピングされるかについての合意を必要とする。これは、PPDおよびマッピングファイルを使って、チケットプロセッサすなわち印刷システムが、同じPPDによって記述されるデバイスについて生成されたいかなるジョブチケットについても適切なデバイスコマンドシーケンスを曖昧さなく決定するために必要な情報すべてを含むデバイスポストスクリプトテーブルを生成することによって最も容易に達成される。PPDからの他の情報もデバイスポストスクリプトファイルに書き込まれてもよい。それには、たとえば:デバイスコマンド順序および機能設定制約が含まれる。これは、デバイスポストスクリプトテーブルdevicePostScripttableあるいは等価にデバイスポストスクリプトファイルと呼ばれる。ポストスクリプトデバイス上でジョブチケットを処理するために必要な印刷プロダクション機能は二つの範疇にはいりうる:デバイスコマンドによって実装されるもの両面を設定するコマンドなどとポストスクリプト回転コマンドのようなデバイス独立なポストスクリプトコマンドによって実装されるものである。デバイスコマンドはPPDファイルによって指定される。デバイス独立なポストスクリプトコマンドは、マッピングファイルにおいて一般的な形で指定されることができる。PPDファイルにおいて指定される各デバイスコマンドには、コマンドが他のコマンドに対していつ実行されるべきかを整数によって指示するOrderDependency順序依存性文が伴う。いくつかのデバイスコマンドは、それが制御するパラメータをそのデフォルト値に戻すことによって以前のコマンドを無効にすることがあるので、これは有用である。たとえば、新しいページサイズの設定は、両面モードを片面すなわち両面オフにリセットすることがある。そのような場合、ページサイズ設定コマンドを両面設定コマンドより前に実行することが有用であろう。そのようなデバイスについてのPPDファイルでは、ページサイズのための順序値は、両面のための順序値よりも小さな数でありうる。それは、ページサイズが両面より前に設定されるべきであることを示す逆に、大きな番号のコマンドが小さな番号のコマンドより前に実行されることもできる。デバイス独立コマンドも、特定の順序で実行されることができるよう、順序値を割り当てられることができる。コマンド順序値は、デバイスポストスクリプトテーブルにコピーされ、コマンド順序値はジョブチケットプロセッサすなわち印刷システムによって、ジョブチケット中のあるパーティションを出力文書のあるセクションについて適正な順序で実行されるべきデバイスコマンドのセットに変換した後、そのデバイスポストスクリプトテーブルから使用されることができる。デバイスコマンドについてのコマンド順情報はPPDからデバイスポストスクリプトテーブルに直接コピーされることができる。デバイス独立なポストスクリプトコマンドについてのコマンド順情報は、マッピングファイルによって供給されてもよい。PPD中の制約情報たとえば、どの機能設定対が互いに両立できないかを示す制約情報は、ジョブチケット有効確認における使用のためにデバイスポストスクリプトファイルに直接コピーされることはできない。ジョブチケット中で使われるJDF名ではなくPPD名を参照するからである。制約を表すデバイスポストスクリプトファイル中の結果として得られるデータ構造がジョブチケットを有効確認するためにジョブチケットプロセッサによって使用できるよう、PPD名をJDF名にマッピングするためにマッピングファイルが使用されねばならない。JDFジョブチケットを有効確認するためのデバイスポストスクリプトファイル中の制約および他の情報の構造および使用に関するさらなる情報について以下に呈示する。JDFプロセスは常に必要とするリソースと同じ名前をもつわけではないたとえばプロセスColorSpaceConversion色空間変換はリソースColorantControl着色剤制御を使う。チケットプロセッサはパーティション分割されたリソースこれは出力文書の異なる諸部分を表すを認識するべきなので、パーティション分割可能なリソースの名前の指示をもつことも助けになる。JDFジョブチケットでは、パーティション分割可能なリソースは、リソース自身と同じ名前をもちうる。このリソース/パーティション名は、マッピングファイルから供給されて、チケットプロセッサによる使用のためにデバイスポストスクリプトファイル中にコピーされてもよい。チケットプロセッサは次いで、出力中のさまざまなセクションについてのデバイス設定を示す、JDFリソース中のさまざまなパーティションを解釈する。ProcessPoolに基づくデバイスポストスクリプトマッピングファイル中のProcessPoolエレメントは、デバイスポストスクリプトファイルの構成について適切な構造を提供する。JDF規格が印刷ジョブをチケットプロセッサによって実行されるべき一連のプロセスとして記述するからである。特定のジョブについてのプロセスのリストは、ジョブチケットにおいて、最上位のJDFノードのTypes属性のストリング値として、供給されてもよい。チケットプロセッサに有用なデバイスポストスクリプトテーブルは、PPDおよびマッピングファイルの組み合わせによって決定されるところのプロセスリストに現れうるあらゆる名前についての項目をもつポストスクリプト辞書を有していてもよいすべてのプロセスがすべてのデバイス上で利用可能でなくてもよい、たとえば綴じ。各プロセス項目の値は、そのプロセスを実行するのに必要な情報を含んでいてもよい。この情報は、JDFジョブチケット中の特定の属性へのパス名、各属性についての特定の値をデバイスコマンドおよびデバイス独立手順に関連付けるサブ辞書ならびにコマンド順序付け情報ならびに出力文書を異なる設定をもつ異なるセクションにどのようにして分割するかを指示する潜在的なパーティションの名前を含んでいてもよい。また、属性パス名情報は、JDFジョブチケットにおいて現れるリソース参照についての何らかの規約をサポートしてもよい。たとえば、DigitalPrintingParamsエレメントの子であるMediaRefエレメントのrRef属性など。そのようなプロセス辞書はチケットプロセッサによって、ジョブチケットの最上位のJDFノードのTypes属性におけるプロセスのリストを通じて逐次反復する際に使われてもよい。リストされる各プロセスの名前は、プロセス辞書において見出すことができ、位置特定された項目の値はそのプロセスを駆動するために必要な情報を含むサブ辞書であってもよい。このサブ辞書情報は、このプロセスについてのパーティション分割可能なリソースの名前を含むストリング値をもつPartitionNameのようなキーと、一つまたは複数のさらなるサブ辞書とを含みうる。さらなるサブ辞書のそれぞれは、一つまたは複数のJDF属性からデバイスコマンド、デバイス独立ポストスクリプト手順または両者の組み合わせとそれに加えてコマンド順番号とを含むコマンドアレイへのマッピングを記述する。マッピングは、単一のコマンドアレイにマッピングされるJDF属性の数の2倍に等しいノード深さをもつ階層的木構造によって記述できる:各属性のパス名を含む単一のノードと、属性の許容される値についての子ノードのサブレベルである。JDF属性がマッピングされる最後のものである場合、その子ノードはそれぞれ、適切なコマンドアレイを含む子ノードをもつことになる。実際のジョブチケットにおいて当該属性が設定されうる値をもつ属性子ノードを選択することによって、チケットプロセッサは処理されるべきコマンドを同定できる。JDF属性がマッピングされる最後のものでない場合、その子ノードはそれぞれ、マッピングされるべき次の属性を含む子ノードをもつことになる。多くの場合、次の単純化された例示的なデバイスポストスクリプトテーブル項目に示される丁合collate機能のように、マッピングされる一つの属性しかない:チケットプロセッサは、次のアルゴリズムに従って上記の例を使用しうる:1.ジョブチケットがDigitalPrintingプロセスを指定する場合、a.JDFResourcePoolDigitalPrintingParamsまでナビゲートb.現在のページまたはシートに一致するDigitalPrintingParamsパーティションをみつけるc.一致したDigitalPrintingParamsノードからCollate属性の値をロードd.Noneなしの場合、i.200未満の順序番号をもつすべてのコマンドの実行後、ii.200を超える順序番号をもつ何らかのコマンドを実行する前に、iii.手順setpagedeviceを実行e.Sheetシートの場合、i.200未満の順序番号をもつすべてのコマンドの実行後、ii.200を超える順序番号をもつ何らかのコマンドを実行する前に、iii.手順setpagedeviceを実行。そのようなプロセス辞書は、チケットプロセッサを実装するのを比較的容易にする。すべてのプロセスについてすべての機能を完了したとき、辞書は、特定のデバイス上でジョブチケットを解釈および実行するために必要なすべてのJDFおよびPPD情報を含む。このプロセス辞書は、ページレイアウトおよびXML構文解析のようなタスクのためのデバイス独立な手順定義をも含むデバイスポストスクリプトファイルの一部であってもよい。このプロセス辞書は、PPDおよびマッピングファイルから直接生成できる。プロセス辞書中の属性パス名および許容される値は、同じPPDおよびマッピングファイルから生成されるデバイス機能ファイル中のパス名および許容される値に一致する。パス名および許容される値は、DevCapsエレメントおよびMacroPool中のマクロの両方によってデバイス機能ファイル中で参照される。こうして、マッピングファイルは、いかなる印刷デバイス上でも該印刷デバイスについてのPPDファイルが存在すれば完全なJDF作業フローシステムの自動化された生成をサポートする。PPDおよびマッピングファイルから生成された情報は、ジョブパーティション、リソース参照、複数製造業者およびカスタマイズ可能な機能性をもサポートしうる。下記の例示的なマッピングファイル抜粋は単一のプロセスおよびそれが必要とするリソースを記述する:下記の例は、OEM1プリンタについてのマッピングファイルおよびPPDファイルの組み合わせから生成されたデバイスポストスクリプトテーブル中のポストスクリプト辞書木構造である。このポストスクリプト辞書は、ジョブチケットのプロセスベースの解釈をサポートするよう設計される。ここで、最上位のJDFノードのTypes属性にリストされているプロセスが順番通りに逐次実行され、各プロセスによって必要とされるリソースはポストスクリプト辞書によって指定される。この例において記述されている単一のプロセスはColorSpaceConversionであり、上記のマッピングファイルの例と同じである。木構造の二つの葉がキー/値の対であることを注意しておく。ここで、キーはJDF設定の名前であり、値は順序番号および関連するデバイスコマンドを含む手順を含むアレイである。ポストスクリプト辞書木構造は、PPDコマンドがJDFジョブチケット中の複数の位置にマッピングされるときはより複雑になる。Stitchingプロセスについての下記の例示的な辞書項目は、ステープルのためのデバイスコマンドの10通りの異なる変形がそれぞれ、四つの異なるJDF属性値三つはResourcePool中、一つはResourceLinkPool中の一意的な組み合わせにマッピングされる様子を示している:先の例におけるデバイスポストスクリプトは、印刷システムチケットプロセッサによって、次の例示的なアルゴリズムに従ってジョブチケットからデバイスステープル設定を確立するために使用されてもよい:1.出力される文書の現在のセクションに適用されるジョブチケット中のStitchingParamsパーティションを判別2.このパーティションにおいて、属性JDFResourcePoolStitchingParamsStitchTypeの値を取得3.この属性の値Corner隅、Side横またはSaddle中綴じを使ってマッピングファイル構造において一レベル下にナビゲート4.ジョブチケットから属性JDFResourcePoolStitchingParamsAngleの値を取得5.この属性の値0、45または90を使ってマッピングファイルにおいて一レベル下にナビゲート6.属性JDFResourcePoolStitchingParamsNumberOfStitchesの値を取得7.この属性の値1または2を使ってマッピングファイルにおいて一レベル下にナビゲート8.属性JDFResourceLinkPoolComponentLinkOrientationの値を取得9.この属性の値Rotate0回転0、Rotate90回転90、Rotate180回転180を使ってアレイを選択し、次いでa.50未満の順序番号をもつすべてのコマンドの実行後、b.50を超える順序番号をもつ何らかのコマンドを実行する前に、c.アレイに含まれる手順を実行。こうして、デバイスポストスクリプトテーブルは、ジョブチケット中の属性値から、印刷ジョブ中の各プロセスについて実行されるべきデバイス依存コマンドおよびデバイス独立手順の両方へのマッピングを指定する。上記の諸例のポストスクリプトコードのすべては、次の例示的なアルゴリズムを使ってPPDファイルおよびマッピングファイルから生成できる:1.新しい出力ファイル中で新しいポストスクリプト辞書JDFProcessDictを開始2.マッピングファイルのProcessPool中の各プロセスについて:a.プロセスと同じ名前をもって出力ファイル中の新しい辞書を開始b.ProcessPool中のプロセスエレメントのPartition子要素のName属性の値をもってキーPartitionNameを出力c.プロセスエレメントの子孫であるすべてのJDFFeatureエレメントのすべてのPath属性の値を集めるために再帰関数を呼び出すd.集められた各Path属性値について:i.そのパス値をポストスクリプト名に変換してそれを出力において開始された新しい辞書の名前として出力1.パスがパーティション名を含まない場合、そのパスはパーティションから参照されねばならないので、ポストスクリプト名に変換する前に、パス中のトップリソース名の前にパーティション名にを加えたもの挿入し、パス中のトップリソース名の終わりにRefrRefを加えるii.マッピングファイルにおいてパスの位置までナビゲートし、そこにJDFFeatureエレメントを見出し、このエレメントの各Setting子について:1.ポストスクリプトキーがSettingエレメントのJDF属性の値に等しく、ポストスクリプト値がSettingエレメントのPS属性の値に等しいポストスクリプトキー/値対を出力iii.2.d.iで開始されたポストスクリプト辞書を終了e.マッピングファイルにおけるプロセスエレメントの子孫であり、PPDファイルによって記述されるデバイスの製造業者の名前に等しいOEM属性をもつすべてのPPDFeatureエレメントを集めるために再帰関数を呼び出すf.集められたプロセスエレメントの子孫である各PPDFeatureについて:i.マッピングファイルのResourcePoolおよびResourceLinkPoolにおける同じNameおよびOEM属性をもつすべてのPPDFeatureエレメントを見出し、これらのPPDFeatureエレメントのXMLパスを集めるために再帰関数を呼び出すii.六つのパラメータをもつ別の再帰関数を呼び出す。六つのパラメータは:PPD機能の名前、前のステップで集められたXMLパスのリスト、リスト中のパスの数、リスト中の最初のパスに対応するマッピングファイルノード、0に初期化された現在の再帰レベルを示す整数、空のリストに初期化されたPPDオプションのリストである。この関数の各再帰について:1.PPDファイル中にリストされているこの機能についてのすべてのオプションを集める2.PPDからこの機能についてのOrderDependency数を得る3.見出されたPPD機能がSetting子要素をもたない場合:a.XMLパス名に等しい名前をもって出力中の新しいPS辞書を開始PSシンタックスのためにスラッシュは別の文字で置き換える必要がある場合があるb.この機能についてのPPDファイル中にリストされたすべてのオプションについて:i.オプション名をキーとしてもつ出力中のキー/値対を開始し、出力中の値としてアレイを開始ii.アレイの第一の要素としてOrderDependency数を出力iii.呼び出し値からPSコードを取得し、それをカーリーブレース中括弧に入れてそれをPS手順にするアレイの第二の要素として出力iv.アレイを終了c.2.f.ii.1で開始されたPS辞書を終了4.そうでない場合、PPDFeatureがSetting子要素をもつ場合、a.各Settingエレメントについて:i.新しいリストを開始ii.SettingエレメントのPPD属性からオプション名のリストを取得iii.見出された各オプション名について、現在の再帰レベルパラメータが0であれば、あるいはそのオプション名がPPDオプションパラメータのリスト中に現れれば、それを新しいリストに追加iv.新しいリストが空でなければ、1.これがステップ2.f.ii.4で逐次反復される最初のSettingエレメントである場合、現在の再帰レベル数によってインデックスされるXMLパスパラメータ中のXMLパス名から形成される名前をもって出力中の新しい辞書を開始し、a.そのパスがパーティション名を含まない場合、パーティションから参照されねばならず、よってポストスクリプト名に変換する前に、パーティション名にを加えたものをパス中のトップリソース名の前に挿入し、パス中のトップリソース名の終わりにRefrRefを追加2.現在の再帰レベルがXMLパスパラメータ中のパスの数より1小さいものより小さい場合、a.SettingエレメントのJDF属性の値から形成された名前をもって出力中の新しい辞書を開始b.ステップ2.f.ii.4.a.iで開始された新しいリストが空でなければ:i.六つのパラメータをもつステップ2.f.iiにおける関数への再帰呼び出しをする。六つのパラメータは:PPD機能の名前、XMLパスのリスト、リスト中のパスの数、リスト中の現在の再帰レベルによってインデックスされるパスに対応するマッピングファイルノード、現在の再帰レベルを示す整数、2.f.ii.4.a.iで開始された新しいリストであるc.辞書を終了3.そうでない場合、最後の再帰レベルに到達しており、ステップ2.f.ii.4.a.iで開始された新しいリストが空でなければ、a.リストが二つ以上の名前をもてば、エラー条件を生じさせて関数を抜けるb.そうでなければ、PPDファイル中の機能を探索して、リスト中のオプション名を探すi.SettingエレメントのJDF属性の値をキーとしてもつキー/値の対を出力し、値として出力中のアレイを開始ii.アレイ中の第一の項目としてOrderDependency数を出力iii.出力中の新しい手順を開始するを出力iv.ステップ2.f.ii.4.a.iv.3.bにおいて同定されたPPD中のオプションの呼び出し値invocationvalueからPSコードを出力v.SettingエレメントがPS属性をもてば、その値に含まれているPSコードを出力vi.手順およびアレイを終了するを出力4.ステップ2.f.ii.4.a.iv.1で開始された辞書を終了g.ステップ2.aで開始された辞書を終了3.ステップ1で開始された辞書を終了。制約、インストール可能オプションおよびプリンタベースのジョブチケット有効確認プリンタベースのJDFインタープリタは、相互に両立できない機能設定およびインストールされていない必須ハードウェアオプションによって引き起こされるジョブチケット中のエラーに対する最終防衛ラインである。PPDファイルにおけるUIConstraintsで始まるテキスト行は、両立できない機能設定の対をリストする。そのいくつかはOpenGroupInstallableOptionsのもとにリストされるオプションのハードウェアを参照しうる。PPD制約データを表すデバイスポストスクリプトファイル中のデータ構造は、制約中で名指しされている単一のPPD機能に複数のJDF機能がマッピングされうるという事実を考慮しなければならない。一つの例示的な実施形態は、二つのポストスクリプト辞書を設ける。第一の辞書は、PPD機能設定が一つまたは複数のJDF機能設定と関連付けられることを許容し、第二の辞書はPPD機能設定がそれと両立できない一つまたは複数の他のPPD機能設定と関連付けられることを許容する。第一の辞書を生成するためにはマッピングファイルが使用されねばならない。第二の辞書はPPDファイルから直接生成されうる。インストール可能なオプションを表す第三のポストスクリプト辞書がPPDファイルから直接生成されてもよい。次は、アンダースコアを用いて機能および設定の名前を結び合わせて単一の名前を形成する技術を使って、デバイスポストスクリプトファイル中に生成されるべき三つの辞書の例である。上の例において、三つのPPD機能設定名の対が与えられている。機能‐設定名は、辞書OEM1ConstraintNamesにおけるJDF機能設定名と、辞書OEM1Installablesにおいて定義されるFinisherについてのデバイス問い合わせとを用いて定義される。ポストスクリプトにおいて実装されるチケットプロセッサは、デバイスポストスクリプトファイル中のこの情報を使って、次のアルゴリズムに従ってジョブチケットを有効確認する:1.辞書OEM1Constraintsにおける各キー値対についてa.キーが辞書OEM1ConstraintNames内に存在する場合、その辞書を取得しi.辞書中の各キー値対について、キーによって同定されるJDFジョブチケット位置を探して、値によって同定される設定をもつかどうかを検査する;JDF位置のすべてが示された設定をもつ場合には、制約は検査されねばならない。そうでなく、辞書にリストされるJDF位置のいずれかが示される設定をもたない場合には、制約は検査される必要がないb.そうでない場合、アンダースコアの前のキーの第一の部分が辞書OEM1Installables内に存在する場合、値であるポストスクリプト手順を取得し、i.それを実行する。結果として得られるスタック上の名前ストリングがキー中のアンダースコアに続く名前と同じであれば、制約は検査されねばならない。そうでなければ、制約は検査される必要がない2.ステップ1における試験が制約が検査されねばならないと決定する場合、OEM1Constraints辞書におけるキーに関連付けられた値である名前のアレイを取得しアレイ中の各名前について:a.ステップ1におけるようにOEM1ConstraintNamesまたはOEMInstallablesのいずれかにおいてその名前を検索し、ステップ1aまたは1bによって設定一致settingmatchが見出される場合には、衝突が同定されたことになり、ジョブチケットは有効ではない;逐次的評価プロセスを停止して逐次反復されたOEM1Constraints中のキーと衝突を同定したアレイ中の名前との両方をもつエラーを返す。b.そうでない場合、前のステップにおいて評価されたアレイ中の名前のいずれもジョブチケットの機能設定の一つに一致する機能設定につながらない場合には、制約は破られておらず、衝突は同定されていない。よって、辞書OEM1Constraints中のキー値対についての逐次反復を続ける。上記のポストスクリプト辞書OEM1Installablesは、次のようにして、マッピングファイルを使うことなく、PPDファイルから直接生成できる:1.出力デバイスポストスクリプトファイル中のOEM1Installablesと名付けられた新しいポストスクリプト辞書を開始2.PPDファイル中のOpenGroupInstallableOptions文とCloseGroupInstallableOptions文の間の各OpenUI文について:a.OpenUI文とCloseUI文との間にで始まる文である問い合わせがあれば、OEM1Installables辞書にキー値対を追加する。ここで、キーはOpenUIキーワードに続く名前で先頭のアステリスクを除去したものであり、値はストリングのシーケンスに続くポストスクリプト問い合わせコードの引用されたストリングにキーワードを加えコロン文字を加えたものを含むポストスクリプト手順である3.ステップ1で開始された辞書を終了。二つのポストスクリプト辞書OEM1ConstraintNamesおよびOEM1Constraintsは、DevCapsファイル中の二つの部分からなるTestPoolデータ構造と同様の構造および内容をもち、同様の仕方でPPDおよびマッピングファイルから生成できる:1.出力デバイスポストスクリプトファイル中のOEM1ConstraintNamesと名付けられた新しい辞書を開始2.PPDファイル中の各UIConstraint文における一意的な機能/オプション対それぞれについて:a.マッピングファイルのResourcePoolおよびResourceLinkPool中のPPDFeatureエレメントのいくつが、Name属性の値としての機能名と、そのPPDFeatureエレメントのSetting子のいずれかのPPD属性に含まれるオプション名とを有するかを計数するための再帰関数を呼び出すb.PPDFeatureの計数値が0より大きければ、機能および設定の名前をアンダースコア文字によって結び合わせたものをキーとして出力辞書OEM1ConstraintNames中の新しいキー‐値の対を開始し、値として新しいサブ辞書を開始すなわち、マッピングされない機能についてのキー‐対は出力されないc.ステップ2.aで関連するPPDFeatureエレメントを計数するのに使われたのと同様の再帰関数を呼び出すが、今回は、探索される機能/オプション対との一致を含むPPDFeatureエレメントのName属性およびSetting子要素のPPD属性のそれぞれについて、現在のサブ辞書中のキー‐値の対を出力。キーはマッピングファイル中のPPDFeatureの位置のパス名から形成され、値はSettingエレメントのJDF属性の値と同じ内容をもつストリングであるd.ステップ2bにおいて開始されたサブ辞書を終了3.ステップ1で開始された辞書OEM1ConstraintNamesを終了4.出力デバイスポストスクリプトファイル中のOEM1Constraintsと名付けられた新しい辞書を開始5.ステップ2でキー‐値の対が出力された、または機能名に等しいキーをもつキー‐値の対がOEM1Installables辞書中に存在する、PPDファイル中の各UIConstraint文における一意的な機能/オプション対それぞれについて:a.機能および設定の名前をアンダースコア文字によって結び合わせたものをキーとして出力のOEM1Constraints辞書中の新しいキー‐値の対を開始し、値として新しいアレイを開始b.この機能/オプション対を禁止する他のすべてのUIConstraint文のリストを構築c.リスト中の各文について、禁止する機能および設定の名前をアンダースコアを用いて結び合わせることによって名前を生成d.リストから形成された各名前について、それがOEM1ConstraintNames辞書に存在するかどうか、あるいはその名前の最初の部分禁止する機能名がOEM1Installables辞書に存在するかどうかを検査e.ステップ5dにおけるいずれかの存在検査が真という結果になれば、形成された複合名を出力アレイに追加f.ステップ5aで開始されたアレイを終了6.ステップ4で開始されたOEM1Constraints辞書を終了。OEMOEM1OEM2およびOEM3について三つの値をサポートする完全なマッピングファイルの例が付録Aとして収録されている。図8は、デバイス機能ファイルおよびデバイスポストスクリプトテーブルを生成および利用する、本願の特徴および側面に基づくもう一つの例示的な方法を記述するフローチャートである。ステップ800ないし816は、与えられたPPDファイルおよびマッピングファイルからデバイス機能ファイルを生成するよう、図1および図2に関して論じたようなコンピューティングシステム上で機能できてもよい。ステップ800はまず、構文解析および処理を単純にするために、与えられたPPDファイルをXMLフォーマット木構造に変換する。上で論じたように、マッピングファイルは好ましくはすでにXMLフォーマットで記されており、よって処理を単純にするためにやはりXML木データ構造中に読み込まれてもよい。次いでステップ802は、マッピングファイル中のさまざまなオプションのうちで選択するべきOEM識別子を決定する。OEMは、与えられたPPDファイルにおいて指定されてもよいし、あるいは管理ユーザーによって手動で入力されてもよい。次いでステップ804は新しい装置機能出力ファイルを開始する。ステップ806はマッピングファイル中のAuditPool情報を対応するDevCapsフォーマットに変換し、変換された情報を新たに開始されたデバイス機能出力ファイルに追加する。ステップ808および810はそれぞれResourcePoolおよびResourceLinkPoolというマッピングファイル中の情報から、PPDファイル情報XMLフォーマットに変換されたものと関連させて、対応するDevCaps項目を生成する。ステップ812は、PPDファイル情報と関連させてマッピングファイル中のTestPool情報に基づいてデバイス機能ファイル中の制約情報を生成する。ステップ814は、マッピングファイルおよびPPDファイルの情報に基づいてデバイス機能ファイル中に入れるMacroPool情報を生成する。ステップ816は、印刷システムのインストール可能なオプションに関し、マッピングファイル情報およびPPDファイル情報に基づいてデバイス機能ファイル中に入れるModulePool情報を生成する。ステップ818ないし822は、マッピングファイルおよびPPDファイル中の情報に基づいてデバイスポストスクリプトテーブルを生成するよう、たとえば図1および図2のコンピューティングシステム上で機能できてもよい。ステップ818は、生成デバイスポストスクリプトテーブル情報を含むための新しい出力ファイルを生成する。気づかれるように、デバイスポストスクリプトテーブルは、ポストスクリプト辞書構造として、あるいは印刷システムに送信され、印刷システムによって処理されるべき他の好適なデータ構造としてエンコードされうる。こうして、コンピューティングシステムによって生成されたファイルは、印刷システムに送られるべきデバイスポストスクリプトファイルを含むことになる。ステップ820は、マッピングファイルのProcessPool中の各要素について新しいポストスクリプト辞書構造を開始する。次いでステップ822はマッピングファイルのProcessPool項目によってマッピングされる各PPD機能またはJDF機能について辞書木を追加する。完成したデバイスポストスクリプトテーブルを含むファイルは次いで記憶および利用のために印刷システムに送信される。次いでステップ824は生成されたデバイス機能ファイルを、特定の印刷システムの適正な動作のための選択肢を手動で選択するためにユーザーによって提出されるマクロ選択に従って修正する。次いでステップ826ないし832は、生成されたデバイスポストスクリプトテーブルに従って印刷システムによって実行されるべき、生成されたデバイス機能ファイルに基づく印刷ジョブを生成するための処理を表す。ステップ826は、生成されたデバイス機能ファイルに基づいて、ユーザーにより供給されたオプションからJDFジョブチケットを生成する。次いでステップ828は生成されたジョブチケットを任意の必要とされるコンテンツ印刷データファイルと組み合わせ、ステップ830は組み合わされたジョブチケットおよび印刷ジョブデータコンテンツファイルを印刷システムに送信する。するとステップ832は、受信されたJDFジョブチケット中の選択されたパーティションおよびプロセスに基づいて、かつデバイスポストスクリプトテーブル中に見出されるデバイスコマンドストリングに従って、ジョブを処理するための印刷システムにおける処理を表す。本稿では個別的な実施形態について記述したが、本発明の範囲はそうした個別的な実施形態に限定されるものではない。本発明の範囲は、付属の請求項およびその任意の等価物によって定義される。付録OEMについての3つの値:OEM1、OEM2およびOEM3をサポートする完全なマッピングファイルの例。