每個資料動作 Plug-in 都需要 plugin.xml 檔案,且每個 plugin.xml 檔案可以包含任意數目的資料動作。
plugin.xml 檔案包含 tns:obiplugin
、tns:resources
以及 tns:extension
這三個主要區段。
plugin.xml 範例
此範例顯示一個資料動作的典型 plugin.xml 檔案。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle" 3 id="obitech-currencyconversion" 4 name="Oracle BI Currency Conversion" 5 version="0.1.0.@qualifier@" 6 optimizable="true" 7 optimized="false"> 8 9 10 <tns:resources> 11 <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/> 12 <tns:resource-folder id="nls" path="resources/nls" optimizable="true"> 13 <tns:extensions> 14 <tns:extension name="js" resource-type="script"/> 15 </tns:extensions> 16 </tns:resource-folder> 17 </tns:resources> 18 19 20 <tns:extensions> 21 <tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0"> 22 <tns:configuration> 23 { 24 "host": { "module": "obitech-currencyconversion/currencyconversion" }, 25 "resourceBundle": "obitech-currencyconversion/nls/messages", 26 "properties": 27 { 28 "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction", 29 "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" }, 30 "order": 100 31 } 32 } 33 </tns:configuration> 34 </tns:extension> 35 </tns:extensions> 36 37 </tns:obiplugin>
tns:obiplugin
區段主要定義所有類型之 Plug-in 的通用特性。
Plug-in 特性
tns:obiplugin
區段會定義所有 Plug-in 類型通用的特性。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle" 3 id="obitech-currencyconversion" 4 name="Oracle BI Currency Conversion" 5 version="0.1.0.@qualifier@" 6 optimizable="true" 7 optimized="false">
tns
命名空間宣告。tns:resources
區段主要註冊計入 Plug-in 的所有檔案。
資源
1 <tns:resources> 2 <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/> 3 <tns:resource-folder id="nls" path="resources/nls" optimizable="true"> 4 <tns:extensions> 5 <tns:extension name="js" resource-type="script"/> 6 </tns:extensions> 7 </tns:resource-folder> 8 </tns:resources>
您需要在此處註冊每個 JavaScript、CSS、影像以及翻譯資源檔案。此區段包含在 <tns:resources>
元素內,其中包含下列任何數目的元素:
<tns:resource>
這些元素用來註冊單一檔案 (例如,JavaScript 或 CSS 檔案)。
<tns:resource-folder>
這些元素用來同時註冊指定資料夾底下的所有檔案。例如,影像資料夾或包含原生語言支援的資源檔案的資料夾。
以下各節提供如何註冊每個檔案類型的其他資訊。
JavaScript 檔案
Plug-in 中的每個 JavaScript 檔案必須使用類似下列所示的行註冊。
<tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>
其中:
將 ID 設為與沒有 .js 副檔名的 JavaScript 檔案名稱相同。
scripts
目錄底下。
請對 JavaScript 檔案全部使用小寫字元,不可包含特殊字元 (例如,底線、連字號)。
script
。base
。CSS 檔案
Plug-in 中的每個 CSS 檔案必須使用類似下列所示的行註冊。
<tns:resource id="currencyconversionstyles" path="resources/currencyconversion.css" type="css"/>
其中:
將 ID 設為與沒有 .css 副檔名的 CSS 檔案名稱相同。
resources
目錄底下。
請對 CSS 檔案全部使用小寫字元,不可包含特殊字元 (例如,底線、連字號)。
css
。影像資料夾
如果 Plug-in 具有您需要從 Javascript 程式碼內進行參照的影像,請將它們放置在 Plug-in 目錄結構內的 resources/images
目錄中,並將 <tns:resource-folder>
元素新增至 plugin.xml
檔案,如下所示:
<tns:resource-folder id="images" path="resources/images" optimizable="false"/>
如果只有 CSS 檔案參照您的影像,則您不需要將 <tns:resource-folder>
元素新增至 plugin.xml
檔案。在此情況下,您仍然必須將它們新增至 resources/images
目錄,以便可以從 CSS 檔案使用相對路徑參照它們。
原生語言支援資源資料夾
Oracle Analytics 實行原生語言支援。這需要開發人員將顯示在其使用者介面中的字串具體化成個別的 JSON 資源檔案。您可以接著在指定的目錄結構中提供這些檔案的各種本地化版本,Oracle Analytics 會針對使用者選擇的語言自動使用正確的檔案。您可以視需要提供資源檔案所需的翻譯版本。原生語言支援資源資料夾會將 Oracle Analytics 指向 Plug-in 所使用之指定的原生語言支援目錄結構的根。使用原生語言支援資源檔案的所有 Plug-in 必須具有與以下範例所示完全相同的 <tns:resource-folder>
項目。
1 <tns:resource-folder id="nls" path="resources/nls" optimizable="true"> 2 <tns:extensions> 3 <tns:extension name="js" resource-type="script"/> 4 </tns:extensions> 5 </tns:resource-folder>
請參閱產生的資料夾和檔案以瞭解檔案內容與應遵循的指定目錄結構詳細資訊。
對於您要 Plug-in 提供的每個資料動作,您必須使用 <tns:extension>
元素註冊資料動作擴充,類似以下所示:
<tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0"> <tns:configuration> { "host": { "module": "obitech-currencyconversion/currencyconversion" }, "resourceBundle": "obitech-currencyconversion/nls/messages", "properties": { "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction", "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" }, "order": 100 } } </tns:configuration> </tns:extension>
其中:
oracle.bi.tech.plugin.dataaction
。<tns:configuration>
元素包含進行下列定義的 JSON 字串:
%PluginID%/%ModuleName%
的格式,其中:
%PluginID%
必須取代為您在 <tns:obiplugin>
元素之 ID 屬性中指定的 Plug-in ID。%ModuleName%
必須取代為包含資料動作之 JavaScript 檔案的 <tns:resource>
元素 ID 屬性中指定的資源 ID。nls
目錄結構中,則請將此特性設為 %PluginID%/nls/messages
(其中 %PluginID%
必須取代為您在 plugin.xml
檔案頂端之 <tns:obiplugin>
元素的 ID 屬性中指定的 Plug-in ID)。%PluginID%/%ModuleName%.%ClassName%
的格式,其中:
%PluginID%
必須取代為您在 <tns:obiplugin>
元素之 ID 屬性中指定的 Plug-in ID。%ModuleName%
必須取代為包含資料動作之 JavaScript 檔案的 <tns:resource>
元素 ID 屬性中指定的資源 ID。%ClassName%
必須取代為您在 JavaScript 檔案中提供給資料動作類別的名稱。resourceBundle
內查尋資料動作的本地化顯示名稱。