Tâche XML
La tâche XML est utilisée pour travailler avec des données XML. À l'aide de cette tâche, un package peut extraire des documents XML, appliquer des opérations aux documents en utilisant des feuilles de style XSLT (Extensible Stylesheet Language Transformations) et des expressions XPath, fusionner plusieurs documents, ou bien valider, comparer et enregistrer les documents mis à jour dans des fichiers et des variables.
Cette tâche permet à un package Integration Services de modifier de manière dynamique des documents XML au moment de l'exécution. Vous pouvez utiliser la tâche XML pour :
remettre en forme un document XML. Cette tâche peut ainsi accéder à un rapport se trouvant dans un fichier XML et appliquer de manière dynamique une feuille de style XSLT afin de personnaliser la présentation du document ;
sélectionner des sections d'un document XML. Cette tâche peut ainsi accéder à un rapport se trouvant dans un fichier XML et appliquer de manière dynamique une expression XPath afin de sélectionner une section du document. Cette opération peut également permettre d'obtenir et de traiter des valeurs dans un document ;
fusionner des documents provenant de différentes sources. Cette tâche peut par exemple télécharger des rapports à partir de sources multiples et les fusionner de manière dynamique dans un document XML global unique.
Vous pouvez inclure des données XML dans un flux de données en utilisant une source XML pour extraire des valeurs d'un document XML. Pour plus d'informations, consultez Source XML.
La première action de la tâche XML consiste à extraire un document XML spécifique. Cette action est intégrée à la tâche XML et est effectuée automatiquement. Le document XML récupéré est utilisé comme source de données de l'opération réalisée par la tâche XML.
Les opérations XML Diff, Merge et Patch requièrent deux opérandes. Le premier opérande spécifie le document XML source. Le second opérande spécifie également un document XML, dont le contenu dépend de ce dont l'opération a besoin. Par exemple, l'opération Diff compare deux documents. Le second opérande spécifie donc un autre document XML similaire auquel le document XML source est comparé.
La tâche XML peut utiliser une variable ou un gestionnaire de connexions de fichiers comme source ou inclure les données XML dans une propriété de tâche.
Si la source est une variable, la variable spécifiée contient le chemin d'accès du document XML.
Si la source est un gestionnaire de connexions de fichiers, ce gestionnaire fournit les informations sources. Le gestionnaire de connexions de fichiers est configuré séparément de la tâche XML et est référencé dans la tâche XML. La chaîne de connexion du gestionnaire de connexions de fichiers spécifie le chemin d'accès du fichier XML. Pour plus d'informations, consultez Gestionnaire de connexions de fichiers.
La tâche XML peut être configurée pour enregistrer les résultats de l'opération dans une variable ou un fichier. En cas d'enregistrement dans un fichier, la tâche XML utilise un gestionnaire de connexions de fichiers pour accéder au fichier. Vous pouvez également enregistrer les résultats du Diffgram généré par l'opération Diff dans des fichiers et des variables.
Opérations XML prédéfinies
La tâche XML comprend un ensemble prédéfini d'opérations permettant de travailler avec des documents XML. Le tableau suivant décrit ces opérations.
Opération |
Description |
---|---|
Diff |
Compare deux documents XML. Si le document XML source est utilisé comme document de base, l'opération Diff la compare à un second document XML, détecte leurs différences et écrit ces différences dans un document XML Diffgram. Cette opération inclut des propriétés permettant de personnaliser la comparaison. |
Merge |
Fusionne deux documents XML. Si le document XML source est utilisé comme document de base, l'opération Merge ajoute le contenu d'un second document dans le document de base. Cette opération peut spécifier un emplacement de fusion dans le document de base. |
Patch |
Applique la sortie de l'opération Diff, appelée document Diffgram, à un document XML afin de créer un document parent qui inclut le contenu du document Diffgram. |
Validate |
Valide le document XML par rapport à un schéma DTD (Document Type Definition) ou XSD (XML Schema definition). |
XPath |
Effectue des requêtes et des évaluations XPath. |
XSLT |
Effectue des transformations XSL sur des documents XML. |
Opération Diff
L'opération Diff peut être configurée pour utiliser un algorithme de comparaison différent selon que la comparaison doive être rapide ou précise. Elle peut également être configurée pour sélectionner automatiquement une comparaison rapide ou précise en fonction de la taille des documents comparés.
L'opération Diff comprend un ensemble d'options permettant de personnaliser la comparaison XML. Ces options sont décrites dans le tableau ci-dessous.
Option |
Description |
---|---|
IgnoreComments |
Valeur indiquant si les nœuds de commentaires sont comparés. |
IgnoreNamespaces |
Valeur indiquant si les URI (Uniform Resource Identifier) d'espace de noms des noms d'un élément et de son attribut sont comparés. Si cette option a pour valeur true, deux éléments ayant le même nom local mais un espace de noms différent sont considérés comme identiques. |
IgnorePrefixes |
Valeur indiquant si les préfixes des noms d'élément et d'attribut sont comparés. Si cette option a pour valeur true, deux éléments ayant le même nom local mais des URI d'espaces de noms et des préfixes différents sont considérés comme identiques. |
IgnoreXMLDeclaration |
Valeur indiquant si les déclarations XML sont comparées. |
IgnoreOrderOfChildElements |
Valeur indiquant si l'ordre des éléments enfants est comparé. Si cette option a pour valeur true, les éléments enfants qui diffèrent uniquement par leur position dans la liste des frères sont considérés comme identiques. |
IgnoreWhiteSpaces |
Valeur indiquant si les espaces blancs sont comparés. |
IgnoreProcessingInstructions |
Valeur indiquant si les instructions de traitement sont comparées. |
IgnoreDTD |
Valeur indiquant si le schéma DTD est ignoré. |
Opération de fusion
Lorsque vous utilisez une instruction XPath pour identifier l'emplacement de fusion dans le document source, cette instruction est supposée retourner un nœud unique. Si elle retourne plusieurs nœuds, seul le premier est utilisé. Le contenu du deuxième document est fusionné sous le premier nœud que la requête XPath retourne.
Opération XPath
L'opération XPath peut être configurée pour utiliser différents types de fonctionnalités XPath.
Sélectionnez l'option Évaluation pour implémenter des fonctions XPath telles que sum().
Sélectionnez l'option Liste de nœuds pour renvoyer les nœuds sélectionnés sous forme de fragment XML.
Sélectionnez l'option Valeurs pour renvoyer les valeurs de texte de tous les nœuds sélectionnés, concaténées en une chaîne.
Opération de validation
L'opération de validation peut être configurée pour utiliser un schéma DTD (Document Type Definition) ou XSD (XML Schema definition).
Codage de document XML
La tâche XML prend en charge la fusion de documents Unicode uniquement. Cela signifie que la tâche peut appliquer l'opération de fusion uniquement aux documents ayant un codage Unicode. L'utilisation d'autres codages provoquera l'échec de la tâche XML.
[!REMARQUE]
Les opérations Diff et Patch comprennent une option qui ignore la déclaration XML dans les données XML du deuxième opérande, ce qui permet d'utiliser des documents avec d'autres codages dans ces opérations.
Pour vérifier que le document XML peut être utilisé, vérifiez la déclaration XML. Celle-ci doit explicitement indiquer UTF-8, qui représente le codage unicode sur 8 bits.
La balise suivante montre le codage Unicode sur 8 bits.
<?xml version="1.0" encoding="UTF-8"?>
Messages de journalisation personnalisés disponibles dans la tâche XML
Le tableau suivant décrit l'entrée de journal personnalisée de la tâche XML. Pour plus d'informations, consultez Implémentation de la journalisation dans les packages et Messages personnalisés pour la journalisation.
Entrée du journal |
Description |
---|---|
XMLOperation |
Fournit des informations sur l'opération que la tâche effectue. |
Configuration de la tâche XML
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.
Pour plus d'informations sur les propriétés que vous pouvez définir dans le Concepteur SSIS, cliquez sur une des rubriques suivantes :
Pour plus d'informations sur la définition des propriétés dans le concepteur SSIS, cliquez sur la rubrique suivante :
Configuration de la tâche XML par programme
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur la rubrique suivante :
|