Altova MapForce 2025 Professional Edition

El resultado es la cadena de entrada dividida en una secuencia de cadenas, El parámetro length determina el tamaño de las cadenas resultantes.

mf-func-tokenize-by-length

 

Lenguajes

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

 

Parámetros

Nombre

Descripción

input

La cadena de entrada.

length

Determina la longitud de cada una de las cadenas que forman la secuencia de cadenas generada.

 

Ejemplo

P. ej., si la cadena input es ABCDEF y el parámetro length es 2, entonces la función devuelve una secuencia de tres cadenas: AB, CD y EF.

 

mf-func-tokenize-by-length-example

 

En la asignación de prueba de más arriba, el resultado de la función es una secuencia de cadenas. Según las reglas generales de asignación de datos, por cada elemento de la secuencia de origen, se crea un nuevo item en el componente de destino. En consecuencia, el resultado de la asignación tiene este aspecto:

 

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

 

 

En el diseño de asignación de datos tokenizeString2.mfd de la carpeta <Documentos>\Altova\MapForce2025\MapForceExamples\ puede ver un ejemplo de uso de la función tokenize-by-length.

mf-func-tokenize-by-length-example2

tokenizeString2.mfd

El archivo XML de origen se puede ver más abajo y es el mismo que el del ejemplo anterior. El elemento MissionKit tiene dos atributos: Edition y ToolCodes, pero no contenido del elemento MissionKit. Hemos eliminado la parte del contenido XML no relevante para este ejemplo.

 

<?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>

 

El objetivo de la asignación es generar una lista que muestre qué herramientas de Altova forman parte de cada edición de MissionKit.

 

Características de esta asignación de datos:

 

El componente de entrada SelectMissionKit recibe su entrada predeterminada de una constante ("Enterprise XML Developers").

La función equal compara el valor de entrada con el valor Edition y pasa el resultado al parámetro bool del filtro ToolCodes.

La entrada node/row del filtro ToolCodes viene dada por el elemento ToolCodes del archivo de origen. El valor para la edición "Enterprise XML Developers" es: XSMFSVDDSASW.

El valor XSMFSVDDSASW se pasa al parámetro on-true y, posteriormente, al parámetro input de la función tokenize-by-length .

La función tokenize-by-length divide el valor XSMFSVDDSASW en varios trozos de dos caracteres cada uno. (definidas por el parámetro length que es 2, lo cual da lugar a 6 secciones).

Cada sección (situada en el parámetro b) de la función equal se compara con el valor Code de dos caracteres del archivo de origen (del cual existen 9 entradas en total). El resultado de la comparación (true/false) se envía al parámetro bool del filtro. Tenga en cuenta que todos los trozos producidos por la función tokenize-by-length se pasan al parámetro node/row del filtro.

La función exists busca los nodos que existen o que faltan que recibió del parámetro on-true del componente de filtrado. Los nodos que existen son aquellos en los que la sección ToolCodes y el valor Code coinciden. Los nodos que faltan son aquellos donde ninguna sección ToolCodes coincide con ningún valor Code.

Los resultados bool de la función exists se pasan a la función if-else que pasa una Y al destino si el nodo existe y una N si no existe.

 

Resultado de la asignación:

 

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