XMLFragmenter
Appaire des éléments d'un document XML en fragments XML et optionnellement aplatit le contenu des éléments XML permettant aux enfants des éléments correspondants de devenir des attributs.
Configuration
Ports de sortie
Chaque fragment est produit comme une entité FME séparée via le port Fragments. Chaque entité du port aura un attribut xml_fragment contenant le fragment. Le fragment est un document XML valide qui peut être traité ultérieurement par des Transformers basés sur XML et/ou XQuery.
Trois attributs supplémentaires sont ajoutés aux entités Fragments.
- xml_matched_element - enregistre l'élément qui a été mis en correspondance. Cet attribut peut être utilisé pour identifier l'élément correspondant à l'expression, si le dernier composant de l'expression correspondante est un caractère générique (*).
- xml_id - contient un ID pour cet élément. Il n'est pas garanti que cet attribut soit unique au niveau mondial, mais il sera unique uniquement dans le contexte du document d'entrée.
- xml_parent_id - contient un ID pour le parent de cet élément. Si le parent de l'élément ne correspond pas ou s'il n'a pas de parent, cet attribut est vide.
- xml_parent_child_pos - contient la position de l'élément par rapport à son parent. Si le parent de l'élément ne correspond pas ou s'il n'a pas de parent, cet attribut est vide. L'attribut xml_parent_child_pos commence son compte à 0.
Si les Options d'aplatissement sont activées, alors les Fragments auront des attributs supplémentaire relatifs au contenu des éléments XML appairés.
Si Rejeter les entités sans fragments vaut Oui, les entités qui ne produisent aucun fragment ressortent via ce port.
Les entités qui n'ont pas pu être traitées avec succès sont également sorties par ce port. Cela se produit généralement lorsque l'attribut spécifié dans le paramètre Attribut XML n'a pas de valeur, ou a une valeur qui n'est pas un XML valide.
Paramètres
Type de XML source : fichier XML/Attribut XML |
Le fichier source XML est soit un fichier XML soit un attribut dont la valeur est le document entier XML. |
Éléments à apparier |
Ce paramètre spécifie les fragments à mettre en correspondance. Les chemins d'entité sont soit des expressions de correspondance xfMap séparées par des espaces, soit chaque expression peut être spécifiée sur une nouvelle ligne. Ce paramètre peut être saisi directement dans le champs approprié ou cliquez sur le bouton parcourir pour afficher l'éditeur ou choisir un attribut. Exemples <dc:metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:subject>Utah</dc:subject> <dc:subject>boundaries</dc:subject> <dc:subject>County</dc:subject> <dc:subject>Administrative</dc:subject> <dc:subject>geoscientificInformation</dc:subject> <dc:description>This data set represents county boundaries in Utah at 1:24,000 scale.</dc:description> <dc:date>2004-04-20T00:00:00.000</dc:date> <dc:type>dataset</dc:type> <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/">{42AE2814-FCC1-4BC2-BAF4-CA3E55514997}</dc:identifier> <dc:language>en</dc:language> <dc:spatial> <dcmiBox:Box name="Geographic" projection="EPSG:4326" xmlns:dcmiBox="http://dublincore.org/documents/2000/07/11/dcmi-box/"> <dcmiBox:northlimit units="decimal degrees">42.01</dcmiBox:northlimit> <dcmiBox:eastlimit units="decimal degrees">-109.21</dcmiBox:eastlimit> <dcmiBox:southlimit units="decimal degrees">36.98</dcmiBox:southlimit> <dcmiBox:westlimit units="decimal degrees">-114.1</dcmiBox:westlimit> </dcmiBox:Box> </dc:spatial> <dc:rights></dc:rights> </dc:metadata> Il y a quelques expressions xfMap permettant de cibler le document d'entrée <dc:metadata> ci-dessus :
|
||||||||
Eléments à exclure |
Si un chemin d'entité dans 'Elements to Match' correspond à plusieurs éléments, ce paramètre peut être utilisé pour spécifier quels éléments doivent être exclus des résultats. L'entrée de ce paramètre prend également la forme des expressions xfMap du chemin des entités décrites dans le paramètre "Elements to Match". Dans l'exemple ci-dessus, si les 'éléments à apparier' sont définis à 'dcmi:Box/*' et les 'éléments à exclure' sont définis à 'dcmi:northlimit dcmi:eastlimit' alors seulement deux fragments seront générés correspondront uniquement aux éléments <dcmi:southlimit> et <dcmi:westlimit>. |
||||||||
Rejeter les entités sans fragments |
Si Oui, les entités qui ne produisent aucun fragment ressortent via le port <Rejected>. |
Regrouper les attributs des entités entrantes |
Définir ce paramètre à Oui regroupe les attributs de l'entité en entrée dans les entités en sortie. |
||||||||||||||||||||||||||||||||||||||||||||
Eléments comme fragments XML |
Le paramètre peut être spécifié pour extraire les enfants des éléments appariés en tant que fragments XML. Exemples La même entrée XML que celle de l'exemple ci-dessus - avec l'expression xfMap Feature Paths définie sur "dcmiBox:Box", les options par défaut acceptées dans Flatten Options et les Elements As XML Fragments définis sur 'dcmi:northlimit dcmi:southlimit' - produira l'entité suivante. (Les différences par rapport à l'exemple précédent sont mises en évidence en gras). +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Feature Type: `XMLFragmenter_FRAGMENTS' Attribute(encoded: utf-16): `eastlimit' has value `-109.21' Attribute(encoded: utf-16): `eastlimit.units' has value `decimal degrees' Attribute(string) : `fme_type' has value `fme_no_geom' Attribute(encoded: utf-16): `northlimit' has value `42.01' Attribute(encoded: utf-16): `northlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `southlimit' has value `36.98' Attribute(encoded: utf-16): `southlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `westlimit' has value `-114.1' Attribute(encoded: utf-16): `westlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `xml_fragment' has value `?<?xml version="1.0" encoding="UTF- 16"?><dcmiBox:Box name="Geographic" projection="EPSG:4326" xmlns:dcmiBox="http://dublincore.org/documents/2000/07/11/dcmi-box/"> <dcmiBox:northlimit units="decimal degrees">42.01</dcmiBox:northlimit> <dcmiBox:eastlimit units="decimal degrees">-109.21</dcmiBox:eastlimit> <dcmiBox:southlimit units="decimal degrees">36.98</dcmiBox:southlimit> <dcmiBox:westlimit units="decimal degrees">-114.1</dcmiBox:westlimit> </dcmiBox:Box>' Attribute(encoded: utf-16): `xml_fragment_northlimit{0}' has value `<?xml version="1.0" encoding="UTF-16"?><dcmiBox:northlimit units="decimal degrees" xmlns:dcmiBox="http://dublincore.org/documents/2000/07/11/dcmi-box/">42.01</dcmiBox:northlimit>' Attribute(encoded: utf-16): `xml_fragment_southlimit{0}' has value `<?xml version="1.0" encoding="UTF-16"?><dcmiBox:southlimit units="decimal degrees" xmlns:dcmiBox="http://dublincore.org/documents/2000/07/11/dcmi-box/">36.98</dcmiBox:southlimit>' Attribute(encoded: utf-16): `xml_id' has value `id-Box-1.2.1.11.1' Attribute(encoded: utf-16): `xml_matched_element' has value `Box' Attribute(string) : `xml_type' has value `xml_no_geom' Type de géométrie : Inconnu (0) ================================================= |
||||||||||||||||||||||||||||||||||||||||||||
Options d'aplatissement |
Le bouton Options ouvre la boîte de dialogue Options d'aplatissement XML. Ces options contrôlent les enfants des éléments correspondants à aplatir comme attributs/listes d'attributs sur les entités produites. La vue par défaut est le mode basique où de nombreuses options sont disponibles :
Le bouton Avancé ouvre l'éditeur avancé, qui fournit des options supplémentaires pour personnaliser les attributs de l'entité. La fonctionnalité de chaque option est décrite dans le tableau ci-dessous. Les options proposées ici permettent de personnaliser les attributs et les listes d'attributs du sous-arbre XML correspondant qui sera ajouté aux entités FME.
Toutes les options ont des exemples et des descriptions plus détaillés dans le manuel FME Readers/Writers : XML (Extensible Markup Language) Reader/Writer. Exemples Le XML en entrée ci-dessous et l'expression xfMap valant "dcmiBox:Box" avec les options d'applatissement par défaut produit l'entité suivante : +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Feature Type: `XMLFragmenter_FRAGMENTS' Attribute(encoded: utf-16): `eastlimit' has value `-109.21' Attribute(encoded: utf-16): `eastlimit.units' has value `decimal degrees' Attribute(string) : `fme_type' has value `fme_no_geom' Attribute(encoded: utf-16): `northlimit' has value `42.01' Attribute(encoded: utf-16): `northlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `southlimit' has value `36.98' Attribute(encoded: utf-16): `southlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `westlimit' has value `-114.1' Attribute(encoded: utf-16): `westlimit.units' has value `decimal degrees' Attribute(encoded: utf-16): `xml_fragment' has value `?<?xml version="1.0" encoding="UTF- 16"?><dcmiBox:Box name="Geographic" projection="EPSG:4326" xmlns:dcmiBox="http://dublincore.org/documents/2000/07/11/dcmi-box/"> <dcmiBox:northlimit units="decimal degrees">42.01</dcmiBox:northlimit> <dcmiBox:eastlimit units="decimal degrees">-109.21</dcmiBox:eastlimit> <dcmiBox:southlimit units="decimal degrees">36.98</dcmiBox:southlimit> <dcmiBox:westlimit units="decimal degrees">-114.1</dcmiBox:westlimit> </dcmiBox:Box>' Attribute(encoded: utf-16): `xml_id' has value `id-Box-1.2.1.11.1' Attribute(encoded: utf-16): `xml_matched_element' has value `Box' Attribute(string) : `xml_type' has value `xml_no_geom' Type de géométrie : Inconnu (0) ================================================= |
Attributs à exposer : |
Expose tous les attributs afin qu'ils puissent être utilisés par d'autres Transformers. Taper directement dans la zone de texte ou cliquer sur le bouton Parcourir pour afficher l'éditeur et y ajouter des attributs. |
É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 du 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 d'espace de travail. 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 projet 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 iest 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.
Rechercher des exemples et informations à propos de ce Transformer dans FME Community.
Mots clefs : XMLExploder