XMLUpdater
Ce Transformer modifie des documents XML en effectuant une ou plusieurs des actions suivantes :
- Remplace un élément ou un attribut XML.
- Remplace le contenu d'un élément ou d'un attribut.
- Efface un élément ou un attribut XML.
- Efface le contenu d'un élément ou d'un attribut XML.
- Renomme un élément ou un attribut.
- Insère un nouvel élément ou un attribut.
Pour chaque mise à jour de document, une expression de chemin d'accès XML est utilisée pour identifier l'emplacement des éléments à modifier. Notez que le chemin peut faire référence à plus d'un élément. Si c'est le cas, tous les éléments seront modifiés.
Pour les modifications qui remplacent des éléments existants ou insèrent de nouveaux éléments, deux paramètres sont donnés qui spécifient la valeur à ajouter au document. Cette valeur peut être donnée sous la forme d'un simple texte, ou d'une expression XQuery.
Les entités Update fournissent les valeurs des attributs utilisés dans les opérations de mise à jour des documents. L'entité Document est uniquement utilisée pour fournir le document XML qui doit être mis à jour.
Pour chaque entité qui entre dans le port Update, toutes les opérations de mise à jour listées dans le Transformer seront appliquées à chaque entité qui est entrée dans le Transformer via le port Document. Par conséquent, aucune modification ne sera apportée au document XML si aucune entité n'entre dans le Transformer par le port Update.
Noter que si le document est entré directement dans les paramètres du Transformer, il peut être traité de deux manières différentes :
- Si aucune entité Document n'est donnée au Transformer, une nouvelle entité sera créée pour stocker le document. Chacune des mises à jour sera appliquée au document, et il sera ensuite sorti par le port Document.
- Si des entités DOCUMENT sont fournies au Transformer, chacune des mises à jour sera appliquée au document, puis il sera copié sur chaque entité du port d'entrée DOCUMENT avant que ces entités ressortent du Transformer.
Configuration
Ports en entrée
Les entités d'entrée contiennent les documents XML à modifier. Les documents peuvent être contenus dans un attribut, saisis directement dans le Transformer, ou contenus dans un fichier référencé par une valeur d'attribut.
Pour chaque entité qui entre dans ce port d'entrée, chacune des mises à jour énumérées dans le Transformer sera exécutée sur chaque document qui est entré via le port d'entrée Document. Ces entités contiendront les valeurs des attributs qui sont utilisés dans les mises à jour du document.
Ports de sortie
Les entités en entrée Document seront produites par ce port. Ces entités contiendront le document mis à jour, qui sera stocké dans l'attribut nommé dans le paramètre Attribut résultat. Le document mis à jour sera toujours enregistré en tant que valeur d'attribut encodée en utf-8, quel que soit l'encodage du document original.
Paramètres
Regrouper les entités de mise à jour par |
Ce paramètre est utilisé pour indiquer quelles entités de mise à jour modifieront un document. Lorsque ce paramètre est défini comme une liste d'attributs, les entités du Document ne seront modifiées que par les entités Update qui partagent les mêmes valeurs pour ces attributs. Le document sera modifié par toutes les entités de mise à jour ayant les mêmes valeurs d'attribut. Notez qu'un document ne sera pas mis à jour si aucune entité Update ayant les mêmes valeurs pour les attributs "Regrouper par" n'est fournie au Transformer. |
||||
Traitement des regroupements |
Sélectionnez le moment du traitement où les groupes sont traités :
Considérations sur l'utilisation de Regrouper par
Il y a deux raisons typiques d'utiliser Quand le groupe change (avancé). La première concerne les données entrantes qui sont destinées à être traitées en groupes (et qui sont déjà classées ainsi). Dans ce cas, c'est la structure qui dicte l'utilisation de Regrouper par - et non des considérations de performance. La seconde raison possible est le potentiel gain de performances. Les gains de performance sont plus visibles quand les données sont déjà triées (ou lues en utilisant une déclaration SQL ORDER BY) puisque moins de travail est requis de la part de FME. Si les données doivent être ordonnées, elles peuvent être triées dans le traitement (bien que la surcharge de traitement supplémentaire puisse annuler tout gain). Le tri devient plus difficile en fonction du nombre de flux de données. Il peut être quasiment impossible de trier des flux de données multiples dans l'ordre correct, car toutes les entités correspondant à une valeur Regrouper par doivent arriver avant toute entité (de tout type d'entité ou jeu de données) appartenant au groupe suivant. Dans ce cas, l'utilisation de Regrouper par avec Lorsque toutes les entités sont reçues peut être une approche équivalente et plus simple. Note De multiples types d'entités et entités de multiples jeux de données ne vont généralement pas arriver dans l'ordre correct.
Comme pour beaucoup de scénarios, tester différentes approches dans votre traitement avec vos données est le seul moyen sûr d'identifier le gain de performance. |
XML en entrée |
Ce paramètre est utilisé pour spécifier le type de document XML qui doit être modifié. Le XML peut provenir des entités d'entrée (Valeur du paramètre : Texte ou attribut), ou il peut provenir d'un fichier externe. (Valeur du paramètre : fichier XML) |
Texte XML |
Lorsque le paramètre XML Input est défini sur Texte ou attribut, ce paramètre est utilisé pour spécifier le fichier XML. Le paramètre peut être défini sur une valeur d'attribut, ou le document XML peut être saisi directement dans le paramètre. |
Fichier XML |
Lorsque le paramètre XML en entrée est défini sur Fichier XML, ce paramètre est utilisé pour spécifier l'emplacement du fichier. Le chemin d'accès au fichier peut être saisi directement dans le paramètre, ou le chemin d'accès peut provenir d'une valeur d'attribut. |
Type de mise à jour |
Ce paramètre spécifie le type de modification à appliquer au document XML. Les mises à jour possibles sont :
|
||||||||||||||||||||||
Chemin XML |
Ce paramètre spécifie l'emplacement des nœuds XML qui doivent être mis à jour. Toute expression XQuery peut être utilisée ici, tant qu'elle renvoie les nœuds contenus dans le document d'entrée. Si l'expression de chemin d'accès évalue plus d'un élément, ils seront tous modifiés. La valeur la plus simple du paramètre est une expression chemin, par exemple : /data/record/name Avec cette expression de chemin, le Transformer modifiera chaque élément <name> qui est contenu dans un élément <record> qui est contenu dans un élément <data> racine. Un prédicat peut être utilisé pour restreindre cette sélection. Par exemple, pour modifier l'élément <name> dans le premier <record> uniquement, le chemin suivant pourrait être utilisé : /data/record[1]/name De même, un prédicat peut également être utilisé pour affiner la sélection basée sur la valeur d'un attribut : /data/record[@id = "A-123"]/name De plus, comme il s'agit d'une expression XQuery, les fonctions FME XQuery peuvent être utilisées. Note Les fonctions XQuery de niveau entité (comme fme:get-attribute) utilisé dans le paramètre Chemin s'appliqueront à l'entité Update traitée et non pas à l'entité Document mis à jour.
/data/record[@id=fme:get-attribute("record_id")]/name. Le Transformer modifiera uniquement les éléments <name> contenus dans un élément <record> dont l'attribut id est égal à l'attribut d'entité record_id. Cela fonctionne également avec les attributs de liste. L'expression de chemin suivante modifiera tous les éléments <name> contenus dans un élément <record> dont l'attribut id est contenu dans l'attribut d'entité _ids. /data/record[@id=fme:get-list-attribute("_ids{}")]/name L'expression du chemin doit être correcte du point de vue de l'espace de nom. C'est-à-dire que les préfixes (ou l'absence de préfixes) doivent correspondre exactement aux préfixes utilisés dans le document XML d'entrée. Un caractère générique (*) peut être utilisé comme préfixe d'espace de nom. Le chemin /*:data correspondra à un élément <data> dans n'importe quel espace de nom, y compris l'espace de nom par défaut et l'espace de nom vide. De même, un caractère générique peut être utilisé pour un nom d'élément. Le chemin gml:* correspondra à tout élément dans l'espace de noms lié au préfixe gml. Pour combiner ces approches, la syntaxe *:* ne peut pas être utilisée. Il faut plutôt utiliser un seul caractère *. |
||||||||||||||||||||||
Type de valeur |
Ce paramètre est utilisé pour indiquer comment la valeur du paramètre Valeur doit être interprétée. Les effets des différentes valeurs de ce paramètre sont expliqués dans la description du paramètre Valeur. En général, ce paramètre devrait être réglé sur Texte brut si le Transformer est destiné à insérer du contenu textuel dans le document, tandis qu'il devrait être réglé sur XML/XQuery si le Transformer est destiné à insérer des éléments XML dans le document. |
||||||||||||||||||||||
Valeur |
Ce paramètre est utilisé pour spécifier les nouvelles valeurs qui doivent être insérées dans le document. Si le paramètre Value Type est défini sur Plain Text, le contenu de ce paramètre sera codé pour une utilisation sûre dans un document XML. C'est-à-dire que les caractères < seront codés en < ;, les caractères > seront codés en > ; et ainsi de suite. Si le paramètre Type de valeur est défini sur XML/XQuery, le contenu de ce paramètre sera interprété comme une expression XQuery. Cela permet d'insérer des éléments XML dans le document. Cela permet également d'utiliser les fonctions XQuery de FME. Par exemple, un modèle XML (par exemple, à partir de XMLTemplater) pourrait être entré comme valeur de paramètre. Il serait ensuite évalué avant d'être inséré dans le document. Voici quelques exemples d'utilisation du mode XML/XQuery de XMLUpdater : Étant donné l'exemple du document racine Copier
Pour insérer un fragment <record> dans le document, on peut utiliser ce qui suit dans l'éditeur de texte ou comme attribut. Copier
Cela peut également être fait en utilisant les fonctions XQuery de FME : Copier
Note Toutes les fonctions FME XQuery utilisées dans le paramètre Nouvelle valeur accéderont à l'entité Update, pas à l'entitéDocument.
|
Validation de noms d'attributs |
Ce paramètre indique si FME Workbench doit ou non essayer de valider les noms d'attributs transmis à toute fonction XQuery utilisée dans la colonne XML Path et la colonne Valeur. |
Écrire l'en-tête XML |
Ce paramètre indique si le document XML mis à jour doit commencer par une déclaration d'en-tête XML. Par défaut, la sortie contiendra un en-tête XML. Omettre l'en-tête peut être utile lorsque la sortie doit être concaténée avec d'autres valeurs dans un document XML plus important. |
XML mis à jour |
Nomme l'attribut dans lequel le document XML mis à jour sera écrit. La valeur par défaut est _result. |
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Voir tous les résultats à propos de ce Transformer sur FME Community.