共用方式為


新增配接器中繼資料精靈中的結構描述類別

概觀

注意

本主題僅適用于實作 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 命名空間參考中的新增配接器中繼資料精靈對話方塊