Altova MobileTogether Designer

Cuando se desencadena el evento, la acción Insertar nodo(s) inserta nodos nuevos antes de los nodos seleccionados por medio de la expresión XPath del campo Insertar antes del nodo. La acción puede insertar un solo nodo, una secuencia de nodos o un fragmento entero de una estructura. Estos nodos insertados se construyen con la sintaxis constructora XML de XQuery. Con esta sintaxis XQuery se pueden construir los siete tipos de nodos XML: element, attribute, text, document, comment, processing-instruction y namespace.

MTDInsertNode01
Nota:La diferencia entre la acción Insertar nodo(s) y Anexar nodo(s) es que Insertar nodo(s) añade los nodos antes de los nodos seleccionados, mientras que Anexar nodo(s) añade los nodos como secundarios de los nodos seleccionados (pueden ser sus primeros secundarios o sus últimos secundarios).

 

Ubicación de los nodos insertados

Los nodos nuevos se insertan antes de los nodos que devuelve la expresión XPath del campo Insertar antes del nodo. En la imagen anterior los nodos nuevos ser insertan antes del primer elemento Product (seleccionado con la expresión XPath Product[1]). El nodo de contexto es el primario de Product, un nodo llamado Products. Si no se usa el predicado [1], entonces la expresión XPath devolverá todos los secundarios Product de Products y los nodos nuevos se insertarán después de cada elemento Product.

 

Nodos nuevos

Los nodos nuevos se pueden introducir como constructores XML directos, tal y como se puede ver más arriba en la imagen:

<MyElement-01 myatt="value">Element Content</MyElement-01>

 

Esto inserta el elemento MyElement-01 antes del primer elemento Product:

MTDInsertNode02

También se puede usar una expresión de localización XPath para insertar un nodo (y todos sus descendientes) desde una fuente de página. Por ejemplo:

$XML2/Row

 

 

Además, también se pueden usar constructores de nodos calculados de XQuery. Por ejemplo:

element MyElement-01 {xs:string("Element Content")}

attribute myatt{"value"} 

 

La expresión XPath que aparece a continuación produce el resultado que puede verse más abajo, que se inserta antes del primer elemento Product.

 

<MyElement-01 myatt="value">Element Content</MyElement-01>,

element MyElement-02 {"Element Content"},

element MyElement-03 {element MyElement-04 {"Element Content"}},

element MyElement-05{attribute myatt{"value"}, element MyElement-06{}} 

MTDInsertNode03

 

Quitar nodos insertados de su ubicación original

Si los nodos insertados se obtienen de una de las fuentes de página del proyecto, puede eliminar los nodos de su ubicación original. Para ello marque la casilla quitar nodos insertados de su ubicación actual. Si se construyen nodos nuevos directamente (es decir, sin hacer referencia a las fuentes de página del proyecto) y se marca esta casilla, no se producirá cambio alguno en las fuentes de página.

 

Variable $MT_TargetNode

El nodo de la definición de la acción Insertar nodo(s) antes del cual se deben insertar nodos secundarios se guarda automáticamente en la variable integrada $MT_TargetNode de MobileTogether Designer. Esta variable se puede usar en la segunda expresión XPath de la definición, tal y como se hizo en esta imagen:

MTDInsertNode04

La segunda expresión XPath crea el nodo nuevo usando el mismo nombre que el nodo de destino ($MT_TargetNode) como parte del nombre del nodo nuevo.

element {concat("MyNew"name($MT_TargetNode))} {"Element Content"} 

 

El resultado de la acción Insertar nodo(s) se puede ver en esta imagen:

MTDInsertNode05

 

Funciones de extensión de MobileTogether

MobileTogether cuenta con distintas funciones de extensión XPath creadas específicamente para usarlas en los diseños de MobileTogether. Algunas de ellas son especialmente útiles para ciertas acciones en concreto. Por ejemplo, mt-available-languages() devuelve los idiomas en que está disponible la solución y se podría usar, por ejemplo, con la acción Cuadro de mensaje. Si alguna función es especialmente relevante para esta acción, aparece a continuación. Para ver una lista completa de funciones de extensión y sus descripciones consulte Funciones de extensión de MobileTogether.

© 2018-2024 Altova GmbH