Problèmes d'espaces de noms XML - 7.3

Guide d'utilisation de Talend Data Mapper

Version
7.3
Language
Français
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Création de Jobs
Last publication date
2023-01-09

Avec l'utilisation d'espaces de nom, il arrive fréquemment que l'élément ou les éléments XML ne soient pas lus car leurs espaces de noms ne correspondent pas à l'espace de nom attendu. Lors de l'exécution d'une map, il peut ne pas y avoir de résultats, surtout si cela concerne l'élément racine de l'instance XML du document. Généralement, si vous utilisez des structures créées par l'import de Schéma XML/DTD (déprécié)/WSDL, vous ne devez pas rencontrer de problèmes si l'instance XML des documents contient les espaces de noms correspondants corrects.

Si vous ajoutez des éléments ou créez une structure manuellement, il est important de vérifier minutieusement que les définitions de votre espace de noms dans le conteneur de la structure et de l'espace de noms soient correctes.

Voici quelques éléments à vérifier :
  • espace de noms par défaut - La plupart du temps, un document XML utilise un espace de noms par défaut. Les éléments ne sont donc pas marqués par un préfixe, mais il existe un attribut xmlns qui défini l'espace de noms. Si c'est le cas, assurez-vous que les éléments dans la définition de la structure utilisent le même espace de noms. Pour ce faire, vérifiez les points suivants.

  • Représentation XML (Conteneur d'espaces de noms) - La représentation XML de la structure vers laquelle pointe la map contient-elle une référence au conteneur d'espaces de noms ? Vous pouvez déterminer cela en consultant la représentation XML de la structure et ses propriétés (double-cliquez dessus). Si non, créez un conteneur d'espaces de noms si nécessaire et faites pointer la représentation vers celui-ci.

  • Conteneur d'espaces de noms - L'espace de noms par défaut (ou autre) est-il défini dans le conteneur d'espaces de noms associé à la structure d'entrée de la map ? Si non, ajoutez-la avec le préfixe approprié. Dans le cas où c'est l'espace de noms par défaut, alors vous pouvez simplement utiliser le préfixe default. De plus, en ce qui concerne l'espace de noms par défaut, il vous faudra modifier les propriétés du conteneur d'espaces de noms (cliquez-droit sur Properties (Propriétés)) pour spécifier l'URL de l'espace de noms par défaut. Lorsque vous définissez l'URI de l'espace de noms comme URI par défaut, les préfixes associés avec cet espace de noms n'apparaissent pas dans les éditeurs de structure et de map.

  • espace de noms de l'élément - Chaque élément peut avoir un espace de noms associé. Cela s'effectue exactement de la même manière que pour un document XML, à l'aide d'un préfixe d'espace de noms. Par exemple, si l'URI de votre espace de noms par défaut est urn:default et le préfixe default, modifiez l'élément (appelé elementName par exemple) dans l'éditeur de la structure en changeant son nom en default:elementName. Vous constaterez dans les propriétés de l'élément (sur la droite de l'éditeur de structure) que l'élément possède désormais un URI d'espace de noms (utilisez la vue en lecture seule des propriétés de l'élément pour le voir).