过滤器

如果文档的某些小节只应该在特定上下文中出现,则可使用过滤标记来指定条件。仅当该条件满足时,该文档小节才会出现。如果未满足该条件,用户就看不到该文档小节。只要进行处理后的标记仍然有效,就可以在任何 XML 元素中指定过滤器。如果对某个元素进行过滤,则还将对该元素下包含的所有元素和文本进行过滤。

下表提供了过滤器的所有属性及其可能值的完整列表。

属性 含义 可能的值
os 操作系统 win32、win32、linux、macosx、aix、solaris、hpux 或 qnx
ws 窗口系统 win32、motif、gtk、photon 或 carbon
arch 处理器体系结构 x86、x86_64、ia64、ia64_32、ppc、PA_RISC 或 sparc
product Eclipse 产品标识 任何产品标识(例如,对于 SDK 来说,此值为 org.eclipse.sdk.ide
plugin 所在的插件 任何插件标识(例如,org.eclipse.help
category 活动的类别 任何活动类别标识(例如,对于小组类别来说,此值为 org.eclipse.categories.teamCategory
activity 活动(功能) 任何活动标识(例如,对于 CVS 支持活动来说,此值为 org.eclipse.team.cvs

如果名称与任何预定义的属性不匹配,则帮助系统将使用该名称的 JVM 系统属性。例如,可以在启动时传递任何用户定义的属性,比如 -Dlocation=paris,france 并按该属性进行过滤。

可以通过两种方法来对元素指定过滤器:使用属性或元素。

Filter 属性

第一种格式是在元素中添加 filter 属性。一般格式是:

   <element filter="[name][operator][value]">
      Some text.
   </element>

name 是过滤时所依据的属性名,例如,os 表示操作系统。operator=(表示匹配,完全匹配并区分大小写)或 !=(表示不匹配)。value 是属性应该(或不应该)匹配的内容。例如,对于 os,其中一个可能的值是 win32(Windows)。下表提供了过滤器属性及其值的完整列表。

以下示例说明在 Linux 上运行时如何在 XHTML 文档中显示文本段落。

   <p filter="os=linux">
      This message will only appear when viewed on Linux.
   </p>

在下一个示例中,仅当未安装插件 com.my.plugin 时才会显示链接:

   <a href="..." filter="plugin!=com.my.plugin">
      Click here to download plugin com.my.plugin.
   </a>

Filter 元素

第二种格式是将 filter 元素用作要过滤的元素的子代。此格式比属性格式略长,但由于可以对一个元素指定任意数目的过滤器,所以功能更强。一般格式是:

   <element attribute="value">
      <filter name="[name]" value="[modifier][value]"/>
   </element>

这里的 namevalue 与属性相同。但是,因为它们是分开的,所以需要用别的方法来指定它是否应该匹配。缺省情况下,如果未提供 modifier,则假定应该匹配。如果它应该匹配,请将 modifier 设置为 "!"

这是上面提供的第一个示例的第二种格式:

   <p>
      <filter name="os" value="linux"/>
      This message will only appear when viewed on Linux.
   </p>

第二个示例的第二种格式如下:

   <a href="...">
      <filter name="plugin" value="!com.my.plugin"/>
      Click here to download plugin com.my.plugin.
   </a>

信息中心

当以信息中心方式运行帮助时,过滤支持处于关闭状态,这导致所有内容(包括已过滤掉的内容)都可视。如果您打算同时以工作台方式和信息中心方式来主管文档,则即使过滤支持处于关闭状态,也应该以有意义的方式使用过滤器。

在何处使用过滤器?

可以在下列类型的文档中进行过滤:

* 注:要在 XHTML 文档中启用动态内容,您需要执行几个附加步骤

在任何情况下,不能在任何除去后将导致 XML 无效的元素中放置过滤器。例如,不能在 XHTML 中的 html 元素中指定过滤器,这是因为,如果没有该元素,XHTML 就会无效。