如果文档的某些小节只应该在特定上下文中出现,则可使用过滤标记来指定条件。仅当该条件满足时,该文档小节才会出现。如果未满足该条件,用户就看不到该文档小节。只要进行处理后的标记仍然有效,就可以在任何 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 属性。一般格式是:
<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 元素用作要过滤的元素的子代。此格式比属性格式略长,但由于可以对一个元素指定任意数目的过滤器,所以功能更强。一般格式是:
<element attribute="value">
<filter name="[name]" value="[modifier][value]"/>
</element>
这里的 name 和 value
与属性相同。但是,因为它们是分开的,所以需要用别的方法来指定它是否应该匹配。缺省情况下,如果未提供
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 就会无效。