可以采用两种方式来打开扩展点模式编辑器:作为创建新的扩展点的副产品,或者通过打开现有扩展点模式。按照惯例,新模式与扩展点标识具有相同的名称,并且具有文件扩展名 .exsd。它们放置在插件目录树中的模式目录中。
在 PDE 中创建新扩展点时,还将创建初始模式文件, 并会打开模式编辑器以便进行编辑。可以立即定义模式,也可以关闭它,稍后再定义。制作完整的扩展点模式允许 PDE 为您的扩展点的用户提供自动帮助。
PDE 模式编辑器和插件清单编辑器基于相同的概念。它具有两个表单页面和一个源页面。由于 XML 模式很详细,并且它的源表单形式很难阅读,所以,应该使用表单页面来执行大部分的编辑工作。源页面对于阅读所获得的源代码很有用。
先前我们已经创建了“样本解析器”扩展点和初始模式。现在,可以通过进入项目的模式文件夹,并双击 parsers.exsd 文件来打开模式。这将打开模式编辑器。
我们想要执行下列操作:
每个扩展点模式都是以“扩展”元素的声明开始。我们将添加称为“解析器”的新 XML 元素。
至此,模式编辑器看起来应为如下所示:
现在,我们将添加一种附加属性,它采用离散选项列表中的值。这就意味着需要创建基本字符串类型的枚举限制。此外,还将设置该属性的缺省值。
限制对话框看起来应为如下所示:
关闭该对话框时,将“使用”属性更改为“缺省值”, 将“值”属性更改为“始终”。这将建立缺省值。注意,当您在输入值时,状态行显示了错误消息,原因是它将有效值限制为三个枚举选项。一旦完成了输入,错误消息就应该消失,原因是“始终”是有效值。
由于我们已经定义了所有元素和属性,因此需要定义语法。我们的目标是定义“扩展”元素可以有任意数目的“解析器”元素作为子代。
在定义语法之后,在语法部分下面的 DTD 模拟将显示所选元素的语法在 DTD 中看起来是什么样的。提供此信息是为了帮助仍然觉得使用 DTD 比使用 XML 模式更舒服的开发者。
由于我们已经定义了有效元素、属性和语法, 因此,需要提供一些有关扩展点的信息。有两种类型的模式文档片段:
第一种片段类型是在模式清单的“定义”页面中提供的。选择元素和属性时,可以在“描述”小节中添加关于它们的简短文本。期望的格式为原始 HTML(如同 Javadoc 一样),而文件将按原样复制到最终的参考文档中。
现在需要为扩展点本身提供简短的文本描述。为此,切换到“文档”页面:
The following is an example of the extension point usage: <p> <pre> <extension point="com.example.xyz.parsers"> <parser id="com.example.xyz.parser1" name="Sample Parser 1" class="com.example.xyz.SampleParser1"> </parser> </extension> </pre> </p>
按应用。
注意:提供示例时,有一些特殊的注意事项。通常,PDE 将把提供的文本当作原始 HTML 来对待, 并且将不考虑换行和超过一个字符的空白(即,可忽略的空白)。涉及常规文本时这样做是对的,但是在提供示例时却让人相当烦恼, 如果想要让示例看起来漂亮一点,则制表和垂直对齐是很重要的。PDE 对这种情况进行了妥善处理: 如果它检测到 HTML 标记 <pre>,则它将按原样采用内容(保留所有字符而不作修改), 直到看到关闭标记 </pre> 为止。这就是为何可以提供如上所示的示例,并确保它在最终参考文档中看起来比较漂亮的原因。
您可能已经注意到,当输入文档时, 编辑器“大纲”视图中越来越多的元素得到“pen”图像覆盖。此指示符告诉您上述元素有与它相关联的文本 — 这是检查文档中是否有某些地方丢失了说明的快速方法。
一旦完成了文档,就可以查看参考文档。可以采用两种方法来查看参考文档。在工作期间,都可以通过从弹出菜单中选择“预览参考文档”项来预览参考文档。或者,可以设置 PDE 首选项(“首选项 > 插件开发 > 编译器”,在“模式”选项卡下)来对每个模式文件更改自动创建参考文档。无论使用哪种方法来创建参考文档,此示例产生的文档看起来将如此。