Catégories de schémas dans l'Assistant Ajouter les métadonnées de l'adaptateur

Vue d’ensemble

Notes

Cette rubrique concerne uniquement les adaptateurs statiques qui implémentent l’interface IStaticAdapterConfig .

Un adaptateur peut utiliser l’un des milliers de schémas pour transformer des données avant de les transmettre à BizTalk Server. Lorsque vous ajoutez des métadonnées à un projet BizTalk, utilisez l'Assistant Ajouter les métadonnées de l'adaptateur pour sélectionner un schéma dans la liste avec lequel l'adaptateur va interagir.

Dans l'adaptateur File donné en exemple, le fichier CategorySchema.xml est une instance de schéma utilisée conjointement avec le fichier BiztalkAdapterFramework.xsd de l'infrastructure d'adaptateurs pour renseigner l'arborescence des schémas de service. Le fichier BizTalkAdapterFramework.xsd se trouve dans le dossier \Program Files (x86)\Microsoft BizTalk Server <VERSION>Developer Tools.

Vous devez créer ce fichier de sorte qu'il organise les schémas d'une façon intuitive pour votre solution. Les catégories qui se trouvent déjà dans le fichier CategorySchema.xml ne sont que des exemples de ce que vous pouvez faire dans votre propre arborescence. Les catégories ne présentent pas de pertinence particulière par rapport aux données transmises par l'exemple d'adaptateur. L'organisation des schémas se révèle particulièrement importante avec les adaptateurs spécifiques des applications, car des milliers de schémas différents peuvent être disponibles. Dans le cas des adaptateurs propres au transport, cette organisation en arborescence est inutile.

L’illustration suivante montre la page Sélectionner les services à importer dans l’Assistant Ajout de métadonnées d’adaptateur.

Image montrant la page Sélectionner les services à importer dans l’Assistant Ajout de métadonnées d’adaptateur.
Arborescence des catégories de schémas dans l'Assistant Ajouter les métadonnées de l'adaptateur

Exemple XML

Le code suivant montre le fichier 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>  

Les types de nœuds suivants s'affichent dans cette instance de schéma :

  • CategoryTree : structure de premier niveau d'un modèle d'informations système. Contient aucun ou plusieurs nœuds CategoryTreeNode, ExpandableCategoryTreeNode et ServiceTreeNode.

  • CategoryTreeNode : contient aucun ou plusieurs nœuds CategoryTreeNode et ServiceTreeNode. Servez-vous du nœud CategoryTreeNode qui s'affiche sous forme de dossier dans l'interface utilisateur pour grouper un ensemble de services associés. Il contient généralement le nom et la description des services à afficher. Un adaptateur peut utiliser un nœud CategoryTreeNode si le nombre de nœuds enfants est restreint.

  • ExpandableCategoryTreeNode : un nœud inférieur qui est dynamiquement renseigné lorsqu'il est développé. Le nœud ExpandableCategoryTreeNode sert d'espace réservé et s'affiche sous forme de dossier dans l'interface utilisateur. Il permet de reporter la saisie automatique des sous-éléments d'un nœud de catégorie au moment où un utilisateur clique sur le nœud pour le développer. Un adaptateur peut utiliser un nœud ExpandableCategoryTreeNode si une catégorie contient un nombre de nœuds enfants conséquent.

  • ServiceTreeNode : ce nœud s'affiche sous forme de document, ou nœud inférieur, dans l'interface utilisateur et représente un fichier WSDL (Web Services Description Language).

    Lorsqu’un utilisateur clique sur le dossier pour développer un nœud, Adapter Framework appelle la méthode IStaticAdapterConfig.GetServiceOrganization sur l’adaptateur en passant le nom du nœud comme valeur de l’attribut NodeIdentifier . L'adaptateur doit retourner une structure CategoryTree contenant les sous-nœuds à ajouter au nœud ExpandableCategoryTreeNode. L'infrastructure d'adaptateurs remplace le nœud ExpandableCategoryTreeNode par un nœud CategoryTreeNode et lui ajoute les enfants de la structure CategoryTree retournée.

Notes

Dans l’appel initial à IStaticAdapterConfig.GetServiceOrganization , l’infrastructure d’adaptateur passe la valeur Null pour l’identificateur de nœud. L'adaptateur retourne alors la structure CategoryTree racine.

Le schéma ci-après est le schéma d'arborescence de catégories extrait du fichier BiztalkAdapterFramework.xsd. L'Assistant Ajouter les métadonnées de l'adaptateur s'en sert comme arborescence squelette pour la saisie automatique des entités dépendantes d'une application à partir d'un fichier XML. Dans l'exemple ci-dessous, il s'agit du fichier 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>  

Après modification du fichier CategorySchema.xml, recréez le projet AdapterManagement, puis exécutez l'Assistant Ajouter les métadonnées de l'adaptateur afin de vérifier que l'arborescence représentée dans le fichier CategorySchema.xml s'affiche correctement.

Pour plus d’informations sur l’exécution de l’Assistant Ajout de métadonnées d’adaptateur, consultez la boîte de dialogue Assistant Ajouter des métadonnées d’adaptateur dans les instructions de l’interface utilisateur et les informations de référence sur l’espace de noms d’API des développeurs.