Altova MapForce 2023 Enterprise Edition

Suministrar metadatos del nodo a funciones de nodo

Inicio Anterior Inicio Siguiente

Es posible que existan casos en los que quiera que una función de nodo haga algo basándose en metadados del nodo. Por metadatos del nodo entendemos información diversa sobre el nodo en el que se aplica la función (por ejemplo, un nombre de nodo, la longitud de su valor y su precisión), que se almacena en el esquema. En la tabla siguiente puede ver todos los parámetros de metadatos que puede usar en una función de nodo. Recuerde que algunos parámetros de metadatos afectan solamente a ciertos tipo de datos. MapForce le avisa si intenta usar unos metadatos que son incompatibles con el nodo actual.

 

Parámetros de los metadatos

Descripción

node_name

Da el nombre del nodo en cuestión. Estos metadatos se aplican a todos los nodos. En el caso de XML, node_name es el nombre del elemento o atributo actual. En el caso de CSV, node_name es el campo CSV. En el caso de bases de datos, node_name es el nombre de la columna de tabla.

node_annotation

Da la anotación de texto que aparece junto al valor del nodo en los resultados. Estos metadatos se aplican a todos los nodos.

node_minLength

Da el valor del aspecto minLength del tipo de datos del nodo. Se aplica a los nodos XML y de texto con los tipos correspondientes. Para más información consulte la recomendación de XML Schema.

node_maxLength

Da el valor del aspecto maxLength del tipo de datos del nodo. Se aplica a nodos XML y de texto con los tipos correspondientes. Para más información consulte la recomendación de XML Schema.

node_totalDigits

Da el valor del aspecto totalDigits del tipo de datos del nodo. Se aplica a los nodos XML con los tipos correspondientes. Para más información sobre el aspecto totalDigits consulte la recomendación de XML Schema.

node_fractionDigits

Da el valor del aspecto fractionDigits del tipo de datos del nodo. Se aplica a nodos XML con los tipos correspondientes. Para más información sobre el aspecto totalDigits consulte la recomendación de XML Schema.

node_length

Da a longitud del tipo de datos del nodo. Se aplica a los campos de BD con los tipos correspondientes. Para más información consulte la documentación de Microsoft.

node_precision

Da la precisión del tipo de datos del nodo. Se aplica a los campos de BD con los tipos correspondientes. Consulte la documentación de Microsoft para obtener más información.

node_scale

Da la el número máximo de dígitos a la derecha del punto decimal. Se aplica a los campos de BD con los tipos correspondientes. Consulte la documentación de Microsoft para obtener más información.

 

Nota:el tipo de datos del parámetro de metadatos debe coincidir con el tipo de datos del nodo correspondiente. De lo contrario no se puede ejecutar la función.

 

Suministrar metadatos a una función de nodo

Para suministrar metadatos a una función de nodo comience por crear una nueva función de nodo y después haga clic en la opción Agregar detalles del nodo, que se encuentra bajo la ventana Funciones de nodo. Esta acción abre el cuadro de diálogo Insertar componente de entrada, donde puede seleccionar los parámetros de los metadatos. En vez de la opción Agregar detalles del nodo, también puede elegir una de estas:

 

Haga clic con el botón derecho en un área vacía de la asignación y seleccione Insertar componente de entrada en el menú contextual.

Haga clic en el comando de la barra de herramientas mf_ic_udf_input.

Haga clic en Insertar componente de entrada en el menú Función.

 

Metadatos no compatibles con nodos

Si un parámetro de metadatos no es compatible con un nodo, puede indicar a MapForce que devuelva una secuencia vacía o que no aplique la función de nodo (puede encontrar ambas opciones en el cuadro de diálogo Insertar componente de entrada con nodo específico). Ahora debe ocuparse de la secuencia vacía; de lo contrario la función de nodo no devolverá ningún valor. Normalmente tendría que usar funciones de secuencia (como substitute-missing y exists) u otros tipos de componente para seguir procesando la secuencia vacía.

 

Ejemplo

En el ejemplo siguiente puede ver cómo suministrar un texto de anotación a una función de nodo. Para este ejemplo necesita la asignación: <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\MissingFields.mfd. En MissingFields.xsd (en la que se basa MissingFields.xml) hemos añadido esta anotación para el elemento Name: Article name from catalog Spring 2022. Nuestro objetivo es pasar esta anotación a una función de nodo y verla en el resultado. Siga las instrucciones a continuación.

 

1.Cree una función de nodo para el elemento Name del componente ArticlesOfClothing.

2.Replique la función de más abajo. Para agregar un parámetro node_annotation haga clic en Agregar detalles del nodo (encuadrado en rojo más abajo) y seleccione este parámetro de la lista. Para averiguar cómo agregar y manipular funciones consulte Fundamentos de las funciones.

mf_nodefunc_16

 

Nota:por defecto, las estructuras anidadas con mucha profundidad no se escanean completamente para ahorrar memoria y mejorar la experiencia del usuario. Si el componente al que está aplicando la función tiene este tipo de estructuras anidadas profundas, puede expandir los nodos relevantes en la asignación para que MapForce los tenga en cuenta. En este caso la aplicación incluirá los nodos expandidos cuando agregue un parámetro de metadatos nuevo y la advertencia desaparecerá. La función de nodo debe estar conectada para que funcione; los elementos expandidos pero no conectados no se tienen en cuenta.

 

Resultados

A continuación puede ver que la anotación se ha añadido a los valores de los elementos Name.

 

T-Shirt (Article name from catalog Spring 2022)   25.5  20    Available in black, blue, and red

Shirt (Article name from catalog Spring 2022)     70.3  60                                  

Pants (Article name from catalog Spring 2022)                 Limited stock              

Jacket (Article name from catalog Spring 2022)    57.5  40

 

© 2017-2023 Altova GmbH