Freigeben über


Schemakategorien im Assistenten zum Hinzufügen von Adapter-Metadaten

Übersicht

Hinweis

Dieses Thema gilt nur für statische Adapter, die die IStaticAdapterConfig-Schnittstelle implementieren.

Ein Adapter kann eines von Tausenden von Schemas verwenden, um Daten zu transformieren, bevor sie an BizTalk Server übergeben werden. Beim Hinzufügen von Metadaten zu einem BizTalk-Projekt können Sie mithilfe des Assistenten zum Hinzufügen von Adapter-Metadaten ein Schema aus einer Liste aller Schemas auswählen, mit denen der Adapter interagiert.

Im Beispieldateiadapter ist die Datei CategorySchema.xml eine Schemainstanz, die zusammen mit der Datei BiztalkAdapterFramework.xsd des Adapterframeworks verwendet wird, um eine Strukturansicht von Dienstschemas zu füllen. Die Datei BizTalkAdapterFramework.xsd befindet sich im Ordner \Programme (x86)\Microsoft BizTalk Server <VERSION>Developer Tools.

Die Datei sollte so erstellt werden, dass die Schemas auf eine für Ihre Lösung intuitive Weise organisiert werden. Bei den vorhandenen Kategorien in der Datei CategorySchema.xml handelt es sich nur um ein Beispiel dafür, wie Ihre eigene Struktur aussehen kann. Die Kategorien haben keine spezielle Relevanz in Bezug auf die Daten, die vom Beispieladapter übergeben werden. Die Organisation der Schemas ist besonders wichtig bei anwendungsspezifischen Adaptern, bei denen Tausende verschiedener Schemas zur Verfügung stehen. Für transportspezifische Adapter ist diese Organisation der Strukturansicht nicht erforderlich.

Die folgende Abbildung zeigt die Seite Zu importierende Dienste auswählen im Assistenten zum Hinzufügen von Adaptermetadaten.

Abbildung, die die Seite Zu importierende Dienste auswählen im Assistenten zum Hinzufügen von Adaptermetadaten zeigt.
Strukturansicht der Schemakategorien des Assistenten zum Hinzufügen von Adapter-Metadaten

Beispiel-XML

Im folgenden Code ist die Datei CategorySchema.xml dargestellt:

<?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>  

In dieser Schemainstanz werden die folgenden Knotentypen angezeigt:

  • CategoryTree. Struktur eines Modells von Systeminformationen auf oberster Ebene. Enthält keinen oder mehr Knoten vom Typ CategoryTreeNode, ExpandableCategoryTreeNode und ServiceTreeNode.

  • CategoryTreeNode. Enthält keinen oder mehr Knoten vom Typ CategoryTreeNode und ServiceTreeNode. Verwenden Sie den Knoten CategoryTreeNode, der auf der Benutzeroberfläche als Ordner angezeigt wird, um einen Satz verwandter Dienste zu gruppieren. Dieser enthält üblicherweise einen Anzeigenamen und eine Beschreibung der Dienste, die angezeigt werden sollen. Ein Knoten vom Typ CategoryTreeNode könnte von einem Adapter etwa verwendet werden, wenn die Anzahl untergeordneter Knoten gering ist.

  • ExpandableCategoryTreeNode. Ein Endknoten, der bei seiner Erweiterung dynamisch gefüllt wird. Der Knoten ExpandableCategoryTreeNode dient als Platzhalter und wird auf der Benutzeroberfläche als Ordner angezeigt. Er kann verwendet werden, um das Füllen eines Kategorieknotens mit Unterelementen zu verzögern, bis der Benutzer den Knoten durch Anklicken erweitert. Ein Knoten vom Typ ExpandableCategoryTreeNode könnte von einem Adapter etwa verwendet werden, wenn eine große Anzahl untergeordneter Knoten in einer Kategorie enthalten sind.

  • ServiceTreeNode. Ein Knoten vom Typ ServiceTreeNode wird auf der Benutzeroberfläche als Dokument oder als Endknoten angezeigt und repräsentiert eine WSDL-Datei (Web Services Description Language).

    Wenn ein Benutzer auf den Ordner klickt, um einen Knoten zu erweitern, ruft das Adapterframework die IStaticAdapterConfig.GetServiceOrganization-Methode auf dem Adapter auf und übergibt den Namen des Knotens als Wert des NodeIdentifier-Attributs . Der Adapter sollte einen CategoryTree mit den Unterknoten zurückgeben, die unter dem ExpandableCategoryTreeNode-Knoten hinzugefügt werden sollen. Das Adapterframework ersetzt den ExpandableCategoryTreeNode-Knoten durch einen CategoryTreeNode-Knoten und fügt diesem die Unterlemente vom zurückgegebenen CategoryTree hinzu.

Hinweis

Beim ersten Aufruf von IStaticAdapterConfig.GetServiceOrganization übergibt das Adapterframework NULL für den Knotenbezeichner. Der Adapter gibt daraufhin den CategoryTree auf Stammebene zurück.

Nachfolgend ist das aus der Datei BiztalkAdapterFramework.xsd extrahierte Kategoriestrukturschema aufgeführt. Dies wird vom Assistenten zum Hinzufügen von Adapter-Metadaten als Grundstruktur verwendet, die mit speziellen anwendungsabhängigen Entitäten aus einer XML-Datei gefüllt wird. Im vorliegenden Beispiel ist dies die Datei 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>  

Erstellen Sie nach der Bearbeitung der Datei CategorySchema.xml das AdapterManagement-Projekt neu, und führen Sie dann den Assistenten zum Hinzufügen von Adapter-Metadaten aus, um sicherzustellen, dass die in der Datei enthaltene Struktur ordnungsgemäß angezeigt wird.

Informationen zum Ausführen des Assistenten zum Hinzufügen von Adaptermetadaten finden Sie im Dialogfeld Assistent zum Hinzufügen von Adaptermetadaten in der Referenz zum API-Namespace für Benutzeroberflächen und Entwickler.