如果文件的某些區段只應出現在特定環境定義中,您可以利用過濾標記來指定文件區段必須符合才能出現的準則。 如果不符合準則,使用者便無法見到文件的這個區段。 只要在處理之後標記仍有效,您可以在任何 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。