Types dérivés
Cette rubrique explique comment utiliser les types dérivés dans les mappages. Les types dérivés sont définis dans la Spécification de schéma W3C XML (la section 2.5.2). Pour un bref aperçu des types dérivés et primitifs, voir la documentation Microsoft. Pour utiliser les types dérivés dans un mappage, vous devez spécifier l’attribut xsi:type dans votre fichier XML (par ex., <Address xsi:type="UK-Address">).
Scénarios possibles
Cette sous-section décrit un scénario possible d’utilisation d’un type dérivé. Par exemple, nous avons une entreprise avec deux filiales : une au Royaume-Uni et l’autre aux États-Unis d’Amérique. Maintenant, nous voulons avoir deux listes (UKCustomers et USCustomers), dont chacune inclura des informations sur l’adresse de la filiale respective et tous les clients associés à cette filiale.
Définition des types dérivés
Les captures d’écran ci-dessous illustrent la définition des types dérivés appelés US-Address et UK-Address (XMLSpy mode Schéma). Les éléments UK-Address et UK-Address ont le même type de base appelé AddressType qui inclut les éléments Name, Street et City. Dans l’élément US-Address, le type de base a été élargi pour inclure Zip et State, tandis que l’élément UK-Address inclut le type de base et l’élément Postcode. À des fins d’illustration, nous mapperons uniquement l’élément UK-Address vers le fichier cible.
![xsi1](./images/xsi1.png)
![UKAddress](./images/ukaddress.png)
Type dérivé dans un mappage
Les instructions ci-dessous montrent comment mapper les données depuis le type dérivé. Notre objectif est de mapper l’information sur les bureaux au UK vers l’élément UKCustomers. Les exemples de fichiers sont disponibles dans le dossier Tutoriel.
1.Dans le menu Insérer, cliquez sur Schéma XML/Fichier et ouvrez DerivedTypeSource.xml. Ce fichier XML est basé sur DerivedTypeSource.xsd.
2.Insérez le fichier cible appelé DerivedTypeTarget.xsd. Notez que le schéma cible ne doit pas inclure l’attribut xsi:type.
3.Cliquez sur la touche à côté de l’élément Address dans le composant source. Cette touche indique que les types dérivés existent pour cet élément dans le schéma.
4.La boîte de dialogue Types dérivés (voir la capture d’écran ci-dessous) vous permet de sélectionner tous types dérivés disponibles pour cet élément spécifique. Dans notre modèle de mappage, nous voulons que seule UK-Address soit mappée.
![derived_type02](./images/derived_type02.png)
5.Dès que vous sélectionnez la case à cocher à côté du type dérivé UK-Address, un nouvel élément appelé Address xsi:type="UK-Address" apparaît dans le composant.
6.Maintenant, connectez les nœuds tel qu’affichés dans le mappage ci-dessous.
![DerivedTypeMapping](./images/derivedtypemapping.png)
Sortie
Cliquez sur le volet Sortie vous montrera le résultat suivant :
<UKCustomers>
<BranchOffice>Sleuth Corp. UK</BranchOffice>
<Street>222 Baker St</Street>
<City> London</City>
<Postcode>NW1 6XE</Postcode>
</ UKCustomers>
Le modèle de mappage est enregistré sous Tutorial\DerivedType.mfd. Vous pouvez également ajouter un autre fichier XML source qui comprend des informations sur les clients au UK et mapper ces données au nœud Customers dans le composant cible. De cette manière, l’élément UKCustomers inclura l’information sur l’adresse UK et tous les clients associés à cette filiale.