過濾器

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

第一個形式是在元素中加上 filter 屬性。一般格式如下:

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

name 是用來過濾的內容名稱,如 os 代表作業系統。 operator=(表示相符,完全相符,區分大小寫)或 !=(表示不符合)。 value 是內容所應(不應)符合的值。 比方說,如果是 oswin32 (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,便假設相符。 如果應相符,請將修飾元設為 "!"

以下是上述第二種形式第一個範例:

      <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 模式中執行說明時,關閉過濾支援會使所有內容都成為可見,過濾的內容也包括在內。 如果您要文件同時在工作台和 InfoCenter 這兩種模式中,您在使用過濾器時,所用的方式應該是即使將過濾關閉,也有意義。

哪裡可以使用過濾器?

下列文件類型可以使用過濾:

* 附註:在 XHTML 文件中啟用動態內容需要一些額外步驟

不論任何情況,您都不能將過濾器放在任何移除之後會造成無效 XML 的元素上。 例如,您不應將過濾器放在 XHTML 的 html 元素上,因為當這個元素不存在時,就不再是有效的 XHTML。