Altova MapForce 2025 Professional Edition

Partage le string d’entrée dans une séquence de strings. La taille de chaque string résultant est déterminé par le paramètre length.

mf-func-tokenize-by-length

 

Langages

Built-in, C++, C#, Java, XQuery, XSLT 2.0, XSLT 3.0.

 

Paramètres

Nom

Description

input

Le string d’entrée.

longueur

Détermine la longueur de chaque string dans la séquence générée des strings.

 

Exemple

Si le string d’entrée est ABCDEF et que la longueur est 2, alors la fonction retourne une séquence de trois strings : AB, CD, et EF.

 

mf-func-tokenize-by-length-example

 

Dans le mappage fictif illustré ci-dessus, le résultat de la fonction est une séquence de strings. Conformément au mappage général rules, pour chaque item dans la séquence de source, un nouvel item est créé dans le composant de cible. Par conséquent, la sortie de mappage ressemble à :

 

<items>
  <item>AB</item>
  <item>CD</item>
  <item>EF</item>
</items>

 

 

Pour un exemple plus complexe, voir le mappage tokenizeString2.mfd disponible dans le dossier <Documents>\Altova\MapForce2025\MapForceExamples\.

mf-func-tokenize-by-length-example2

tokenizeString2.mfd

Le fichier de source XML est affiché ci-dessous et est le même que celui utilisé dans l’exemple précédent. L’élément MissionKit a deux attributs : Edition et ToolCodes, mais pas de contenu d’élément MissionKit. Veuillez noter que le contenu XML non pertinent pour cet exemple a été supprimé.

 

<?xml version="1.0" encoding="UTF-8"?>
<AltovaTools xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AltovaTools.xsd">
  <Version>2010</Version>
  <Tool Name="XMLSpy" Code="XS"><!--...--></Tool>
  <Tool Name="MapForce" Code="MF"><!--...--></Tool>
  <Tool Name="StyleVision" Code="SV"><!--...--></Tool>
  <Tool Name="UModel" Code="UM"><!--...--></Tool>
  <Tool Name="DatabaseSpy" Code="DS"><!--...--></Tool>
  <Tool Name="DiffDog" Code="DD"><!--...--></Tool>
  <Tool Name="SchemaAgent" Code="SA"><!--...--></Tool>
  <Tool Name="SemanticWorks" Code="SW"><!--...--></Tool>
  <Tool Name="Authentic" Code="AU"><!--...--></Tool>
  <MissionKit Edition="Enterprise Software Architects" ToolCodes="XSMFSVUMDSDDSASW"/>
  <MissionKit Edition="Professional Software Architects" ToolCodes="XSMFSVUMDS"/>
  <MissionKit Edition="Enterprise XML Developers" ToolCodes="XSMFSVDDSASW"/>
  <MissionKit Edition="Professional XML Developers" ToolCodes="XSMFSV"/>
</AltovaTools>

 

L’objectif du mappage est de générer une liste montrant quels outils Altova font partie des éditions MissionKit respectives

 

Comment fonctionne le mappage :

 

Le composant d’entrée SelectMissionKit agit comme un paramètre dans le mappage, il reçoit sa valeur par défaut depuis une constante, dans ce cas "Enterprise XML Developers".

La fonction equal compare l’édition fournie en tant que paramètre avec l’itemEdition depuis le fichier XML de source et transmet le résultat vers le paramètre bool du filtre ToolCodes.

L’entrée node/row du filtre ToolCodes est fourni par l’item ToolCodes du fichier de source. La valeur pour l’édition "Enterprise XML Developers" est : XSMFSVDDSASW.

La valeur XSMFSVDDSASW est transmise dans le paramètre on-true, puis vers le paramètre input de la fonction tokenize-by-length .

La fonctiontokenize-by-length partage la valeur XSMFSVDDSASW en plusieurs blocs de deux caractères chacun. Le paramètre length est 2 ; c’est pourquoi 6 blocs sont créés.

Chaque bloc est comparé à la valeur Code de 2 caractères depuis le fichier de source (dont il y a 9 items au total). Le résultat de la comparaison (true/false) est transmis dans le paramètre bool du filtre. Veuillez noter que tous les blocs produits par la fonction tokenize-by-length sont transmis dans le paramètre node/row du filtre.

Les fonctions exists vérifient maintenant les nœuds existants/non-existants transmis vers le paramètre on-true du composant de filtre. Les nœuds existants sont ceux dans lesquels il y a une correspondance entre le bloc ToolCodes et la valeur de Code. Des nœuds non-existants se trouvent là où il n’y avait pas de bloc ToolCodes pour correspondre à une valeur Code.

Chaque résultat bool de la fonction exists est transmis dans le composant if-else qui génèer un "Y" dans la cible si le nœud existe, ou un "N" si le nœud n’existe pas.

 

Résultat du mappage :

 

Tool;MissionKit for Enterprise XML Developers
XMLSpy;Y
MapForce;Y
StyleVision;Y
UModel;N
DatabaseSpy;N
DiffDog;Y
SchemaAgent;Y
SemanticWorks;Y
Authentic;N

© 2018-2024 Altova GmbH