次の方法で共有


GDL アーキテクチャ

このトピックでは、汎用記述子言語 (GDL) のアーキテクチャについて説明します。

GDL データ セットごとに、データの形式を記述する GDL スキーマを定義する必要があります。 データ セットを含む各ファイルは、GDL スキーマを参照します。 このスキーマを使用すると、GDL パーサーはデータ セットがスキーマに準拠していることを検証し、スナップショットの構築時に指定された変換を実行できます。 GPD で定義されているすべてのデータについて、マイクロソフトは標準スキーマを提供しています。 さらに、パーサーを使用すると、一部のデータを構成可能として定義できます。 他のデータは、使用される構成に依存する方法で記述できます。

仕様は GDL スキーマに変換できます。 データ セットを含む各ファイルは、GDL スキーマを参照します。 このスキーマを使用すると、GDL パーサーはデータ セットがスキーマに準拠していることを検証し、スナップショットの構築時に指定された変換を実行できます。

データ セットとスキーマを定義した後、クライアントは、異なる構成を指定することで、1 つのデータ セットから複数のビュー (スナップショット) を作成できます。 Unidrv 構成およびレンダリング プラグインの場合、クライアントは IPrintCoreHelperUni インターフェイスのメソッドを使用してスナップショットにアクセスできます。 GDL パーサーは、データ セットで指定されたスキーマをロードし、データ セットがそのスキーマに準拠していることを確認します。 データ セットが適合しない場合、パーサーはファイルの解析に失敗したことを示します。

データ セットとスキーマが定義された後、クライアントは構成を指定してデータ セットのスナップショットを作成できます。

  1. このプラグインは、IPrintOemUI::PublishDriverInterface メソッドを使用して、IPrintCoreHelperUni インターフェイスへのポインターを取得します。

  2. プラグインは、IPrintCoreHelperUni::CreateGDLSnapshot または IPrintCoreHelperUni::CreateDefaultGDLSnapshot の呼び出しを通じて、スナップショットへのアクセスを要求します。 プラグインが CreateGDLSnapshot を呼び出す場合、呼び出し元は、パーサーがスナップショットのビューを決定するために使用する構成を含む DEVMODE 構造体を提供します。

  3. GDL パーサーは、データ セットで指定されたスキーマをロードし、データ セットがそのスキーマに準拠していることを確認します。 データ セットが準拠していない場合は、エラー メッセージが出されます。

  4. GDL パーサーは、GDL ソース ファイルから内部データ構造を作成し、スキーマで指定された構成と処理命令に基づいて適切なビューを決定します。

  5. パーサーは、処理されたデータ エントリの XML 表現 (スナップショット) を作成します。 この XML スナップショットは、ストリームとしてプラグインに返されます。

スキーマが省略された場合、パーサーは単純にスキーマ検証を実行し、スナップショット値は、GDL ソース ファイルで元々定義されていたバイト文字列としてスナップショット内に表されます。

注:PublishDriverInterface メソッドは、IPrintOemUni インターフェイスおよびその他のインターフェイスの一部です。 そのため、プラグインは必ずしも IPrintOemUI::PublishDriverInterface からヘルパー インターフェイスを取得するとは限りません。 プラグインが実装するインターフェイスの種類に応じて、IPrintOemUni::PublishDriverInterface または他の場所からヘルパー インターフェイスを取得できます。