Altova MobileTogether Designer

Las acciones Cargar desde cadena y Guardar en cadena se encargan respectivamente:

 

de cargar datos JSON o XML desde una cadena en una fuente de página JSON o XML y

de serializar una fuente de página JSON/XML en una cadena y guardar la cadena serializada en una ubicación especificada mediante una expresión XPath.

 

Estas acciones son de gran ayuda si se reciben o envían datos XML serializados como parte de una cadena JSON serializada. A partir de los datos XML serializados que contiene la cadena JSON serializada se puede crear una fuente de página XML. Igualmente, se puede serializar una fuente de página XML como contenido de cadena de un nodo.

 

Cargar desde cadena

Esta acción analiza la cadena a la que apunta la expresión XPath del Nodo de origen (imagen siguiente) y genera la estructura y los datos de la fuente de página seleccionada. Seleccione la fuente de página del cuadro combinado Fuente de página o una expresión XPath que ubique el nodo raíz de la fuente de página (por ejemplo $XML1).

MTActionLoadFromString

El tipo de fuente de página seleccionado (JSON o XML) debe corresponder a la serialización de la cadena. De modo que, si la cadena del nodo de origen es una cadena JSON, entonces se generará un documento JSON. Si la cadena del nodo de origen es una cadena XML, entonces esta cadena se carga en la fuente de página, que debe ser una fuente de página XML; a partir del elemento raíz de la cadena serializada se creará el elemento raíz de la fuente de página XML.

 

Cadena de origen: en el ejemplo de la imagen, en el nodo $SERIALIZEDSTRINGS/Strings/XML_String se encuentra una cadena XML. Esta es la cadena que se cargará en la fuente de página seleccionada. Para que esto funcione correctamente la fuente de página debe ser de tipo XML. La expresión XPath de la opción Nodo de origen no necesita tomar una cadena de un nodo, también se puede introducir la cadena en la expresión XPath directamente.

Código de la cadena de origen: la cadena de origen debe estar cifrada en uno de los códigos compatibles con los clientes: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE, US-ASCII, ISO 8859-1.

Fuente de página JSON/XML: para poder seleccionar la fuente de página primero debe crearla. A partir del documento JSON/XML que se carga desde la cadena se crea una fuente de página dentro del nodo de documento. Si en tiempo de ejecución la estructura del documento cargado no coincide con la estructura de la fuente de página (tal y como se definió en el diseño), la solución no se ejecutará correctamente. Esto se debe a que el diseño funciona con los nombres de nodo de una estructura de fuente de página esperada, pero los nodos de la fuente de página que se crea tienen otro nombre.

 

Guardar en cadena

Esta acción serializa la fuente de página especificada en la opción Fuente de la página y guarda la cadena serializada en la ubicación que especifica la expresión XPath de la opción Nodo de destino (imagen siguiente).

MTActionSaveToString

Debe tener en cuenta que:

 

La fuente de página y su estructura deben existir en tiempo de diseño para poder seleccionarla en la acción.

Se serializa en una cadena el contenido de toda la fuente de página, sin importar el tipo (empezando por el primer carácter y terminando por el último).

La cadena que se obtenga de la serialización se guardará en el nodo que especifique la expresión XPath.

 

Archivo de ejemplo

El archivo de ejemplo LoadSaveString.mtd demuestra cómo se usan estas dos acciones. Este archivo está ubicado en la carpeta Altova\MobileTogetherDesigner10\MobileTogetherDesignerExamples\Tutorials\Actions. Este ejemplo contiene dos fuentes de página ($JSON1 y $XML1), que contienen respectivamente datos JSON y XML fijos (imagen siguiente). Gracias a la acción Guardar en cadena cada fuente de página se puede serializar como cadena y guardarse en un nodo. Después revertimos esta acción con la acción Cargar desde cadena para cargar las cadenas que se acaban de serializar en fuentes de página nuevas ($JSONFROMSTRING y $XMLFROMSTRING).

Clic para ampliar

 

El archivo de diseño contiene una fuente de página JSON ($JSON1) y una fuente de página XML ($XML1), cuyos datos y estructuras están definidos en el archivo (imagen anterior). Ambas estructuras son bastante básicas.

El diseño contiene botones que sirven para guardar cada tipo de fuente de página como cadena serializada (Guardar cadena JSON o XML) en un nodo distinto de otra fuente de página llamada $SERIALIZEDSTRINGS. Ambos botones usan la acción Guardar en cadena.

Las serializaciones generadas sirven para crear nuevas fuentes de página: $JSONFROMSTRING y $XMLFROMSTRING. Esto se consigue desencadenando las acciones Cargar desde cadena del tercer y cuarto botón (Cargar cadena JSON o XML).

 

Este ejemplo utiliza en efecto dos acciones (Guardar en cadena y Cargar desde cadena) para hacer un viaje de ida y vuelta desde una fuente de página a otra a través de una cadena serializada. Las fuentes de página de origen y destino tendrán los mismos datos y la misma estructura.

 

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.

 

mt-load-json-from-string()

mt-load-string()

mt-save-json-to-string()

mt-string-to-hexBinary()

© 2018-2024 Altova GmbH