BizTalk 編輯器的設計目的是允許支援替代實例訊息格式的延伸模組。 事實上,XML 格式是 BizTalk 編輯器中內建的唯一格式。 即使支援包含在 Microsoft BizTalk Server 中的平面檔案格式,也會以 BizTalk 編輯器延伸模組的形式實作,從而作為這類延伸模組可新增功能類型的良好範例。
一般而言,BizTalk 編輯器延伸模組會將其自定義數據保存為 XML 架構定義 (XSD) 語言批注,這些批注與對應至架構樹狀結構中節點的 XSD 元素相關聯。 再次,扁平文件擴充套件在 BizTalk 編輯器中添加的廣泛註釋集,是說明 BizTalk 編輯器擴充功能如何在架構中保留其自定義數據的好例子。
BizTalk 編輯器延伸模組是擴充 BizTalk 編輯器功能的 .NET 元件。 若要識別為延伸模組,元件必須有一個類別可實作 IExtension 介面,而且必須位於產品安裝目錄中的 [開發人員工具\架構編輯器延伸模組] 資料夾中。
延伸模組的開發人員必須具有其元件參考 Microsoft.BizTalk.SchemaEditor.Extensibility.dll,其中包含將擴充功能公開至 BizTalk 編輯器所需的所有介面定義。 這些介面定義於 Microsoft.BizTalk.SchemaEditor.Extensibility 命名空間底下。
IExtension 介面是延伸模組的進入點,BizTalk 編輯器會從中存取擴充功能,例如屬性管理員、自定義檢視、架構驗證、原生實例產生和原生實例驗證。
指定的架構可以有多個與其相關聯的延伸模組,但一次只能將一個設定為標準;這會在架構節點的 Standard 屬性中設定。 目前設定為標準的擴充功能是用於原生實例產生和驗證,以及用於架構驗證。
延伸模組可以藉由編輯架構節點的架構編輯器 Extensions 屬性,來與指定的架構相關聯。 與架構相關聯的延伸模組資訊會儲存在架構本身中,並儲存在架構元素的註釋元素內,如下列 XSD 片段所示。
<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns="http://BizTalk_Server_Project1.Schema11"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
targetNamespace="http://BizTalk_Server_Project1.Schema11"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<schemaEditorExtension:schemaInfo namespaceAlias="b"
extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension"
standardName="Flat File"
xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />
<b:schemaInfo schema_type="document" root_reference="Root"
is_receipt="no" schema_name="abc"
standard="Flat File"
count_positions_by_byte="false" />
</xs:appinfo>
</xs:annotation>
<xs:element name="Root">
...
具現化擴充對象之後,架構會叫用 IExtension 介面的 Initialize 方法,傳遞 ITree 物件,讓延伸模組可以存取架構樹狀結構的相關信息。 例如,延伸模組可以藉由存取 ITree.RootNode 屬性來周遊所有子節點。
本節說明 BizTalk 編輯器延伸模組可以整合到 BizTalk 編輯器環境中的方式,並將本身連結至現有的 BizTalk 編輯器命令。