Espaces de noms personnalisés
Lorsqu’un mappage produit une sortie XML, MapForce dérive automatiquement l’espace de nom (ou définit des espaces de noms) de chaque élément et attribut depuis le schéma cible. Il s’agit du comportement par défaut approprié pour la plupart des scénarios de la génération de sortie XML. Toutefois, il existe des cas pour lesquels vous voulez déclarer manuellement l’espace de nom d’un élément directement depuis le mappage.
Déclarer des espaces de noms personnalisés est uniquement pertinent pour les composants XML cible, et s'applique uniquement aux éléments. La commande Add Namespace n’est pas disponible pour les attributs, nœuds du caractère générique et pour les nœuds qui reçoivent les données de la connexion copy-all .
Pour comprendre comment les espaces de noms personnalisés fonctionnent, suivez les instructions dans la sous-section ci-dessous.
Déclarer l’espace de nom manuellement
Pour cet exemple, vous allez avoir besoin du mappage suivant : BasicTutorials\Tut1-SchemaToSchema.mfd.
Ajouter un espace de nom
Ouvrez le mappage, cliquez avec la touche de droite sur le nœud bibliothèque dans le composant BooksOutput et sélectionnez Add Namespace depuis le menu contextuel. Désormais, deux nouveaux nœuds sont disponibles dans l’élément bibliothèque : namespace et prefix (voir la capture d’écran ci-dessous).
Fournir les valeurs d’espace de noms
La prochaine étape est de fournir les valeurs aux nœuds namespace et prefix. À cette fin, nous utiliserons les deux constantes avec les valeurs de string suivantes : altova.library et lib (voir la capture d’écran ci-dessous).
Note : | les deux connecteurs d'entrée namespace et prefix doivent être mappés, même si vous leur fournissez des valeurs vides. |
Sortie
Dans la sortie générée, un attribut xmlns:<prefix>="<namespace>" est ajouté à l'élément, où <prefix> et <namespace> sont des valeurs qui proviennent du mappage. La sortie générée ressemblera à l'exemple suivant(notez la partie en surbrillance) :
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lib="altova.library" xsi:noNamespaceSchemaLocation="Library.xsd">
...
Vous pouvez aussi déclarer plusieurs espaces de noms pour le même élément, si nécessaire. À cette fin, cliquez une nouvelle fois sur la touche de droite dans le nœud et sélectionnez Ajouter espace de noms depuis le menu contextuel. Une nouvelle paire de nœuds d'espace de noms et de préfixe deviennent disponibles, auxquels vous pouvez connecter les valeurs du nouveau préfixe et de l'espace de noms.
Déclarer un espace de nom par défaut
Si vous voulez déclarer un espace de noms par défaut, mappez une valeur de string vide à prefix. La sortie ressemblera alors à l'exemple suivant (notez la partie en surbrillance):
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="altova.library" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Library.xsd">
...
Si vous souhaitez créer des préfixes pour les noms d'attribut, par exemple <number prod:id="prod557">557</number>, vous pouvez le faire soit en utilisant l'accès dynamique aux attributs d’un nœud (voir Mapper des noms de nœud), soit en éditant le schéma de manière à ce qu'il ait un attribut prod:id pour <number>.
Supprimer l’espace de noms
Pour supprimer une déclaration d'espace de noms précédemment ajoutée, cliquer avec la touche de droite dans le nœud ns:namespace et choisissez Supprimer espace de noms du menu contextuel.