Uso de XPath en MobileTogether
El lenguaje XPath desempeña un papel crucial en el diseño de soluciones de MobileTogether. Este lenguaje se utiliza para encontrar y tener acceso a las estructuras de datos utilizadas en el diseño, para manipular y generar datos y para definir el funcionamiento de diferentes componentes de diseño. Más abajo explicamos algunos usos importantes del lenguaje XPath en los diseños de MobileTogether. En este resumen podrá comprobar la flexibilidad y potencia del lenguaje XPath y entender cómo se utiliza en los diseños de MobileTogether en general.
Para más información consulte la recomendación XPath 3.1 del W3C, que es la versión más reciente disponible de este lenguaje y es la versión compatible con MobileTogether Designer. También puede consultar estos documentos:
•Breve introducción a XPath del sitio web de Altova
•Curso sobre XPath 3.0 del sitio web de Altova
•Tutorial sobre XPath del sitio web del W3C
Expresiones localizadoras
Este tipo de expresiones del lenguaje XPath sirven para encontrar nodos en estructuras XML. Suelen estar compuestas de una ruta de acceso que localiza el nodo necesario. A continuación puede ver algunos ejemplos:
•/Company/Office: encuentra todos los elementos secundarios Office del elemento Company, que es el nodo de documento de nivel superior. Sabemos que este es el elemento de nivel superior porque aparece directamente bajo el nodo raíz, el que incluye la primera barra diagonal.
•/Company/Office[3]: encuentra el tercer elemento secundario Office del elemento Company.
•/Company/Office[3]/@location: encuentra el atributo location del tercer elemento secundario Office del elemento Company.
•//Office[@location='US']: encuentra todos los elementos Office que tengan el atributo location con valor US.
Estos ejemplos muestran expresiones localizadoras muy básicas, pero hay muchas más formas de construir expresiones localizadoras.
Operadores
Los operadores permiten aplicar filtros, crear condiciones y manipular selecciones y datos. Por ejemplo:
•if (Selection='US') then //Office[@location='US'] else //Office[@location!='US']: este operador if selecciona las oficinas US y no US dependiendo de cuál sea el contenido del elemento secundario Selection.
•for $i in //Office return $i[@location='US']: este operador for devuelve todos los elementos Office que tengan un atributo location con valor US.
Funciones XPath
Las funciones XPath permiten manipular, calcular y generar datos. Por ejemplo, una función XPath puede tomar una cadena de texto como entrada (el argumento de la función) y ponerla toda en minúsculas o eliminar parte de la cadena. Hay dos tipos de funciones XPath en MobileTogether:
El lenguaje XPath contiene una biblioteca de gran tamaño con funciones integradas con las que podrá extraer datos y metadatos relacionados con la estructura XML e incluso generar datos. Por ejemplo:
•count(Office): devuelve el número de elementos secundarios Office. •day-from-date("2015-04-26"): devuelve el número 26, que es la parte "día" del argumento "fecha" de la función.
En Internet encontrará multitud de guías y referencias para las funciones integradas del lenguaje XPath. También puede encontrar una lista completa de funciones en la recomendación XPath 3.1 del W3C.
|
Se trata de un conjunto de funciones de extensión XPath desarrolladas por Altova para ofrecer más opciones a la hora de trabajar con XPath. En la actualidad Altova ofrece 60 funciones de extensión, desde funciones para ofrecer información sobre geoubicaciones hasta funciones para convertir cadenas de enteros en cadenas hexadecimales y viceversa. Por ejemplo:
•format-geolocation(33.33, -22.22, 2) devuelve este xs:string: "33.33N 22.22W" •hex-string-to-integer('1') devuelve 1
Las funciones de extensión de Altova pueden utilizarse en todos los diseños de MobileTogether. Para más información consulte la sección Funciones de extensión de Altova de este manual.
|
Se trata de funciones de extensión XPath desarrolladas por Altova para utilizarlas específicamente en diseños de MobileTogether. Por ejemplo:
•mt-has-server-access(10) devuelve true si es posible acceder al servidor en el plazo de tiempo especificado en segundos en el argumento de la función. De lo contrario devuelve false. •mt-load-string('MyCourier') devuelve la cadena traducida MyCourier que está almacenada en el grupo de cadenas de la solución. El idioma de la traducción se selecciona automáticamente en función del idioma del dispositivo cliente.
Las funciones de extensión de MobileTogether pueden utilizarse en todos los diseños de MobileTogether. Para más información consulte la sección Funciones de extensión de MobileTogether de este manual.
|
Se trata de funciones de extensión XPath creadas por usted mismo, el usuario, y definidas en un proyecto para conseguir un diseño concreto o si no existe una función adecuada en las bibliotecas de funciones anteriores. Por ejemplo, puede definir una función que convierta la temperatura en grados centígrados a grados Fahrenheit. Este tipo de funciones definidas por el usuario se definen dentro de cada proyecto de MobileTogether y solamente se pueden usar en el proyecto donde están definidas. Para más información consulte la sección Funciones XPath/XQuery definidas por el usuario de este manual.
|
Variables globales
Las variables globales contienen información sobre el dispositivo móvil cliente. Por ejemplo, hay una variable que indica el tipo de dispositivo, otra que indica sus dimensiones y otra que indica su orientación actual (horizontal o vertical), etc. Los valores de todas estas variables se obtienen en tiempo de ejecución del dispositivo cliente mediante el proceso de comunicación móvil estándar. Puede utilizar estas variables en expresiones XPath y XQuery para conseguir que el procesamiento dependa de las propiedades inherentes al dispositivo (por ejemplo, su tamaño) o que dependa de sus propiedades dinámicas (por ejemplo, su orientación).
Las variables globales de MobileTogether están predefinidas y se enumeran en la sección Variables globales de este manual, donde también encontrará una descripción de cada variable y los valores que puede tomar. Por ejemplo, la expresión que aparece más abajo llama a la variable global MT_iPad (que puede tener estos valores: true(), false()). El símbolo $ sirve para indicar que lo que sigue es el nombre de una variable global (algo estándar en XPath).
if ( $MT_iPad=true() ) then "Apple" else ""