扩展点模式

扩展是插件用来将新功能部件添加到平台中的一种重要机制。不能随意创建扩展。它们是使用由扩展点定义的明确规范来声明的。

每个扩展必须符合它正在扩展的扩展点的规范  每个扩展点定义属性和期望的值,它们必须由扩展来声明。此信息是在平台插件注册表中进行维护的。扩展点供应商从注册表中查询这些值,因此,确保插件提供了期望的信息是很重要的。

扩展点声明最初是很简单的。它只定义扩展点的标识和名称。扩展点期望的其它任何信息都特定于该扩展点,并且是在别处说明的。(参见平台扩展点参考,以获取平台扩展点定义。)

参考文档是很有用的,但是它不允许任何程序上的帮助来验证扩展的规范。为此,PDE 引入了一种扩展点模式,它以适合自动处理的格式来描述扩展点。

扩展点模式是有效的 XML 模式,正如 W3C 规范所定义的那样。然而,完整的 XML 模式规范是很复杂的,而对于此特殊用途来说基本上是不需要的。为此,PDE 只使用 XML 模式功能部件的子集。每个扩展点模式都是有效的 XML 模式,但是 PDE 并不使用所有可用的功能部件。

扩展点模式的好处

使用 PDE 扩展点 XML 模式来描述扩展点有很多好处:

  1. 扩展点语法允许正式地表达元素、属性和类型。在创建扩展期间,工具可以使用此信息来验证扩展或者提供帮助。
  2. XML 模式提供了类似于 Java 源中的 Javadoc 的文档注释。此机制使有效元素和属性的简短文本与这些元素和属性的声明紧紧连在一起。这样就使文档更容易保持同步,原因是除去属性也将除去该属性的文档。不需要更改参考文档。
  3. 可以生成参考文档。PDE 提供了一种工具来跟踪扩展点模式中的更改,并在进行时更新参考文档。
  4. 可以提供关于由处理模式的工具可以使用的扩展点的附加元数据。PDE 使用此机制来添加关于元素和属性的附加信息。例如,如果属性被标记为“Java”,则在通过与 Java 平台功能部件交互作用设置此属性的值时,PDE 可以提供帮助。

对“PDE XML 模式”支持的限制

PDE 使用 XML 模式的很小的子集。在此特定情况下,使用完整的 XML 模式功能部件集显得有些多余。子集允许从 DTD 到模式的一对一映射,但是没有 DTD 限制。以下是对 PDE 扩展点模式的主要限制:

  1. 只允许全局元素声明。
  2. 只允许局部属性声明。不能声明全局属性。
  3. 下列组合器是受支持的:全部序列选项
  4. 没有全局类型支持。必须声明类型并立即使用。
  5. 属性只能具有字符串布尔类型。
  6. 如果属性属于字符串类型,则只支持枚举限制。

如果使用这些限制来编写 XML 模式,则您将注意到生成的文件看起来非常类似定义相同语法的等价 DTD。模式的优点在于注释(既是文档又是元数据)。另一优点是,XML 模式本身是用 XML 编写的,这使得它更容易处理和阅读。

以上列表仅供参考。您很可能使用 PDE 模式编辑器来定义 XML 模式,它将负责生成正确的文件。

 
Copyright IBM Corporation and others 2000, 2003