GDL 体系结构
本主题介绍通用描述符语言 (GDL) 的体系结构。
对于每个 GDL 数据集,应定义 一个 GDL 架构 来描述数据的格式。 包含数据集的每个文件都引用 GDL 架构。 此架构允许 GDL 分析程序验证数据集是否符合架构,并在构造快照时执行任何指定的转换。 对于 GPD 中定义的所有数据,Microsoft 提供了标准架构。 此外,使用分析程序可将某些数据定义为可配置数据。 其他数据可以采用使其依赖于所用配置的方式进行描述。
该规范可以转换为 GDL 架构。 包含数据集的每个文件都引用 GDL 架构。 此架构使 GDL 分析程序能够验证数据集是否符合架构,并在构造快照时执行任何指定的转换。
定义数据集和架构后,客户端可以通过指定不同的配置从单个数据集创建多个视图或 快照。 对于 Unidrv 配置和呈现插件,客户端可以通过 IPrintCoreHelperUni 接口中的方法访问快照。 GDL 分析程序将加载数据集中指定的架构,并验证数据集是否符合其架构。 如果数据集不符合,分析程序将指示分析文件失败。
定义数据集和架构后,客户端可以通过指定配置来创建数据集的快照:
该插件通过 IPrintOemUI::P ublishDriverInterface 方法获取指向 IPrintCoreHelperUni 接口的指针。
插件通过调用 IPrintCoreHelperUni::CreateGDLSnapshot 或 IPrintCoreHelperUni::CreateDefaultGDLSnapshot 来请求访问快照。 如果插件调用 CreateGDLSnapshot,则调用方会提供一个 DEVMODE 结构,其中包含分析程序用于确定快照视图的配置。
GDL 分析程序加载数据集中指定的架构,并验证数据集是否符合其架构。 如果数据集不符合,将发出错误消息。
GDL 分析程序从 GDL 源文件创建内部数据结构,并根据提供的配置和架构中的处理指令确定适当的视图。
分析程序 (已处理数据条目的快照) 创建 XML 表示形式。 此 XML 快照作为流返回到插件。
如果省略架构,则分析程序将仅执行架构验证,快照值将在 快照 中表示为最初在 GDL 源文件中定义的字节字符串。
注意PublishDriverInterface 方法也是 IPrintOemUni 接口和其他接口的一部分。 因此,插件不一定从 IPrintOemUI::P ublishDriverInterface 获取帮助程序接口。 它可以从 IPrintOemUni::P ublishDriverInterface 或其他位置获取帮助程序接口,具体取决于插件实现的接口类型。