扩展是插件用来将新功能部件添加到平台中的一种关键机制。不能随意创建扩展。它们是使用由扩展点定义的明确规范来声明的。
每个扩展必须符合它正在扩展的扩展点的规范。每个扩展点定义属性和期望的值,它们必须由扩展来声明。此信息是在平台插件注册表中进行维护的。扩展点供应商从注册表中查询这些值,因此,确保插件提供了期望的信息是很重要的。
扩展点声明最初是很简单的。它只定义扩展点的标识和名称。扩展点期望的其它任何信息都特定于该扩展点,并且是在别处说明的。(请参阅平台扩展点参考,以获取平台扩展点定义。)
参考文档是很有用的,但是它不允许任何程序上的帮助来验证扩展的规范。为此,PDE 引入了一种扩展点模式,它以适合自动处理的格式来描述扩展点。
扩展点模式是有效的 XML 模式,正如 W3C 规范所定义的那样。但是,完整的 XML 模式规范是很复杂的,而对于此特殊用途来说基本上是不需要的。为此,PDE 只使用 XML 模式功能部件的子集。每个扩展点模式都是有效的 XML 模式,但是 PDE 并不使用所有可用的功能部件。
使用 PDE 扩展点 XML 模式来描述扩展点有很多好处:
PDE 使用 XML 模式的很小的子集。在此特定情况下,使用完整的 XML 模式功能部件集显得有些多余。子集允许从 DTD 到模式的一对一映射,但是没有 DTD 局限性。以下是 PDE 扩展点模式的主要局限性:
如果使用这些限制来编写 XML 模式,则您将注意到生成的文件看起来非常类似定义相同语法的等价 DTD。模式的优点在于注释(既是文档又是元数据)。另一优点是,XML 模式本身是用 XML 编写的,这使得它更容易处理和阅读。
以上列表仅供参考。您很可能使用 PDE 模式编辑器来定义 XML 模式,它将负责生成正确的文件。