如果文件的某些區段只應出現在特定環境定義中,您可以利用過濾標記來指定文件區段必須符合才能出現的準則。 如果不符合準則,使用者便無法見到文件的這個區段。 只要在處理之後標記仍有效,您可以在任何 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 產品 ID |
任何產品 ID(如 SDK 的 org.eclipse.sdk.ide) |
plugin |
外掛程式存在 |
任何外掛程式 ID(如 org.eclipse.help) |
category |
活動種類 |
任何活動種類 ID(如「團隊」種類的 org.eclipse.categories.teamCategory) |
activity |
活動(功能) |
任何活動 ID(如「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,便假設相符。
如果不應相符,請將修飾元設為 "!"
以下是上述第二種形式第一個範例:
<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>
當在 InfoCenter 模式中執行說明時,關閉過濾支援會使所有內容都成為可見,過濾的內容也包括在內。 如果您要文件同時在工作台和 InfoCenter 這兩種模式中,您在使用過濾器時,所用的方式應該是即使將過濾關閉,也有意義。
下列文件類型可以使用過濾:
* 附註:在 XHTML 文件中啟用動態內容需要一些額外步驟。
不論任何情況,您都不能將過濾器放在任何移除之後會造成無效 XML 的元素上。
例如,您不應將過濾器放在 XHTML 的 html 元素上,因為當這個元素不存在時,就不再是有效的 XHTML。