新增配接器中繼資料精靈中的結構描述類別
概觀
注意
本主題僅適用于實作 IStaticAdapterConfig 介面的靜態配接器。
配接器可以使用數千個架構中的任何一個來轉換資料,然後再將其傳遞至BizTalk Server。 在將中繼資料新增到 BizTalk 專案時,請使用 [新增配接器中繼資料精靈],從配接器與其互動之所有結構描述的清單中,選取某個結構描述。
在範例檔案配接器中,CategorySchema.xml 檔案是與配接器架構的 BiztalkAdapterFramework.xsd 檔案搭配使用,以填入服務結構描述之樹狀檢視組織的結構描述執行個體。 BizTalkAdapterFramework.xsd 檔案位於 \Program Files (x86) \Microsoft BizTalk Server < VERSION > Developer Tools 資料夾中。
您應該建立這個檔案,以便以能夠從您解決方案直接取得的方式來組織結構描述。 CategorySchema.xml 中的現有類別只是您可以在自己的樹狀結構中做到的範例。 這些類別與範例配接器所傳遞的資料沒有任何特別關係。 結構描述的組織對於應用程式的特定配接器尤其重要,因為其中可能會有數千種不同的結構描述。 對於傳輸的特定配接器,這個樹狀檢視組織是不必要的。
下圖顯示 [新增配接器中繼資料精靈] 中的 [ 選取要匯入的服務 ] 頁面。
[新增配接器中繼資料精靈] 中結構描述類別的樹狀檢視
範例 XML
下列程式碼顯示 CategorySchema.xml 檔案:
<?xml version="1.0" encoding="utf-8" ?>
<CategoryTree>
<DisplayName>Services Organization</DisplayName>
<DisplayDescription>An organization of application services</DisplayDescription>
<CategoryTreeNode>
<DisplayName>Health Care</DisplayName>
<Description>Services under Health Care</Description>
<CategoryTreeNode>
<DisplayName>Administrative</DisplayName>
<Description>Administrative Health Care Services</Description>
<ServiceTreeNode>
<DisplayName>Eligibility</DisplayName>
<Description>Eligibility Verification Transactions</Description>
<WSDLReference>ANSI X 12 270</WSDLReference>
</ServiceTreeNode>
</CategoryTreeNode>
</CategoryTreeNode>
<CategoryTreeNode>
<DisplayName>Manufacturing</DisplayName>
<Description>Manufacturing Services</Description>
<CategoryTreeNode>
<DisplayName>Inventory</DisplayName>
<Description>Inventory Services</Description>
<ServiceTreeNode>
<DisplayName>Requisition</DisplayName>
<Description>Requisition</Description>
<WSDLReference>RequisitionService</WSDLReference>
</ServiceTreeNode>
</CategoryTreeNode>
</CategoryTreeNode>
</CategoryTree>
下列節點類型出現在此結構描述執行個體中:
CategoryTree: 系統資訊之模型的最上層結構。 包含零個或多個 CategoryTreeNode、ExpandableCategoryTreeNode 及 ServiceTreeNode 節點。
CategoryTreeNode: 包含零個或多個 CategoryTreeNode 和 ServiceTreeNode 節點。 使用在使用者介面 (UI) 中出現為資料夾的 CategoryTreeNode,將相關的一組服務編成群組。 通常這會包含顯示名稱和所要顯示之服務的描述。 如果子節點的數目不大,配接器便可以使用 CategoryTreeNode。
ExpandableCategoryTreeNode: 在展開時便會被動態地填入的分葉節點。 ExpandableCategoryTreeNode 具有預留位置的用途,並會在 UI 中以資料夾的形式出現。 在使用者按一下以展開節點前,這可以用來延遲以子項目填入類別節點。 如果類別包含大量子節點,配接器便可以使用 ExpandableCategoryTreeNode。
ServiceTreeNode: ServiceTreeNode 會出現為文件,或是 UI 中的分葉節點,並代表 Web 服務描述語言 (WSDL) 檔案。
當使用者按一下資料夾以展開節點時,Adapter Framework 會在配接器上呼叫 IStaticAdapterConfig.GetServiceOrganization 方法,並將節點的名稱當做 NodeIdentifier 屬性的值傳遞。 配接器應該會傳回一個 CategoryTree,其中包含要在 ExpandableCategoryTreeNode 下新增的子節點。 配接器架構會將 ExpandableCategoryTreeNode 取代為 CategoryTreeNode,並將其新增到傳回之 CategoryTree 的子系。
注意
在 IStaticAdapterConfig.GetServiceOrganization 的初始呼叫中,配接器架構會傳遞節點識別碼的 Null。 這樣便會告知配接器傳回根層級的 CategoryTree。
以下是從 BiztalkAdapterFramework.xsd 檔案中擷取的類別樹狀結構描述。 這會由 [新增配接器中繼資料精靈] 用來做為骨幹樹狀結構,並在其中填入 XML 檔案中的特定應用程式相依實體。 在我們的範例中,該檔案是 CategorySchema.xml 檔案。
<!-- Service Organization Tree schema used by Add Adapter Wizard -->
<xs:element name="CategoryTree" type="CategoryTree" />
<xs:complexType name="CategoryTree">
<xs:sequence>
<xs:element name="DisplayName" type="xs:string" />
<xs:element name="DisplayDescription" type="xs:string" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ExpandableCategoryTreeNode" type="ExpandableCategoryTreeNode" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="CategoryTreeNode" type="CategoryTreeNode" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ServiceTreeNode" type="ServiceTreeNode" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExpandableCategoryTreeNode">
<xs:sequence>
<xs:element name="DisplayName" type="xs:string" />
<xs:element name="Description" type="xs:string" />
</xs:sequence>
<xs:attribute name="NodeIdentifier" type="xs:string" use="required"></xs:attribute>
</xs:complexType>
<xs:complexType name="CategoryTreeNode">
<xs:sequence>
<xs:element name="DisplayName" type="xs:string" />
<xs:element name="Description" type="xs:string" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ExpandableCategoryTreeNode" type="ExpandableCategoryTreeNode" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="CategoryTreeNode" type="CategoryTreeNode" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ServiceTreeNode" type="ServiceTreeNode" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceTreeNode">
<xs:sequence>
<xs:element name="DisplayName" type="xs:string" />
<xs:element name="Description" type="xs:string" />
<xs:element name="WSDLReference" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
在修改過您的 CategorySchema.xml 檔案後,重新建置 AdapterManagement 專案,然後執行 [新增配接器中繼資料精靈],確定 CategorySchema.xml 中表示的樹狀結構有正確出現。
如需執行新增配接器中繼資料精靈的資訊,請參閱UI 指引和開發人員 API 命名空間參考中的新增配接器中繼資料精靈對話方塊。