如果文档的某些小节只应该在特定上下文中出现,则可使用过滤标记来指定条件。仅当该条件满足时,该文档小节才会出现。如果未满足该条件,用户就看不到该文档小节。只要进行处理后的标记仍然有效,就可以在任何 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 就会无效。