Eclipse 平台外掛程式 Manifest

3.2 版 - 前次修訂 2006 年 5 月 9 日

以下處理標記定義會利用各種命名記號和 ID。 如果要消除語義不明確的情形,以下是些這方面的生產規則 [下文中會參照它們]。 一般而言,所有 ID 都會區分大小寫。

SimpleToken := sequence of characters from ('a-z','A-Z','0-9','_')
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)
QualifiedId := ComposedToken '.' SimpleToken
ExtensionId := SimpleToken | QualifiedId
ExtensionPointId := SimpleToken | QualifiedId
ExtensionPointReference := SimpleToken | QualifiedId

這一節的其餘部分以一系列的 DTD 片段來說明 plugin.xml 檔結構。plugin.dtd 檔案在整體中呈現 DTD 定義。

<?xml encoding="US-ASCII"?> 
<?eclipse version="3.2"?>
<!ELEMENT plugin (extension-point*, extension*)>

<plugin> 元素定義處理的本體。它選用性地包含外掛程式所引進的任何新延伸點的宣告,以及能夠運作之延伸規格的配置(配置到其他外掛程式所定義或這個外掛程式所引進的延伸點中)。

XML DTD 建構規則 element* 表示元素出現零或多次;element? 表示元素出現零或一次;element+(以下使用)表示元素出現一或多次。例如,根據上述 <plugin> 定義,這表示外掛程式未包含有效的延伸點宣告或延伸規格配置(例如,其他外掛程式所依賴的共用程式庫)。 同樣地,只包含延伸規格配置而沒有本身的延伸點的外掛程式也無效(例如,將其他外掛程式遞送的類別配置到其他外掛程式所宣告的延伸點中)。

Eclipse 架構的基礎觀念是可配置的延伸點。 平台本身會預先定義一組涵蓋了延伸平台和桌面之作業(如新增功能表動作,提供內嵌的編輯器)的延伸點。 除了預先定義的延伸點之外,每個提供的外掛程式都可以宣告其他延伸點。 藉由宣告延伸點,外掛程式基礎上會將使用外部提供的延伸來配置外掛程式功能的能力突顯出來。 例如,頁面建置器外掛程式可以宣告一個將新的「設計時間控制」(DTC) 新增至其建置器選用區的延伸點。 這表示頁面建置器已定義它要作為其 DTC 的架構,且已實作程式碼來尋找已配置到延伸點中的 DTC 延伸。

<!ELEMENT extension-point EMPTY>
<!ATTLIST extension-point
 name                CDATA #REQUIRED
 id                  CDATA #REQUIRED
 schema              CDATA #IMPLIED
>

<extension-point> 元素有下列屬性:

實際的延伸會配置到 <extension> 區段中的延伸點(預先定義或在這個外掛程式新宣告者)。配置資訊指定為包含在 <extension> 和 </extension> 標示之間形式完整的 XML。平台不指定配置標記的實際形式(但要求它必須是形式完整的 XML)。 標記由偵測延伸點之外掛程式的供應商定義。 平台不會實際解譯配置標記。 它只會將配置資訊傳遞到外掛程式,以作為延伸點處理程序的一部分(在延伸點邏輯查詢所有配置的延伸之時)。

<!ELEMENT extension ANY>
<!ATTLIST extension
 point               CDATA #REQUIRED
 id                  CDATA #IMPLIED
 name                CDATA #IMPLIED
>

<extension> 元素有下列屬性:

重要事項: <extension> 元素的內容是使用 ANY 規則來宣告的。 這表示任何形式完整 XML 都可以在延伸配置區段內指定(在 <extension> 和 </extension> 標示之間)。

片段

片段是用來增加外掛程式的範圍。 範例是用來納入資料,如其他語言中的訊息或標籤。

<?xml encoding="US-ASCII"?> 
<?eclipse version="3.2"?>
<!ELEMENT fragment (extension-point*, extension*)>

片段的 <extension-point> 和 <extension> 元件會邏輯地加到代管的外掛程式中。

ExtensionId 和 ExtensionPointId 的附註

新增了特殊處理來支援在 3.2 版之前,用來包含點 ('.') 的 ExtensionId 和 ExtensionPointId 的舊版相容性。 依 <?eclipse version?> 標示所指定的版本而定:

這個規則只適用於包含點 ('.') 字元的 ExtensionId 和 ExtensionPointId。


您可以在這裡找到舊版的外掛程式 Manifest: