Las funciones de extensión XPath/XQuery para trabajar con imágenes son compatibles con la versión actual de RaptorXML Server y se pueden utilizar en (i) expresiones XPath en contextos XSLT o (ii) expresiones XQuery en documentos XQuery.
Puede utilizar todas las funciones de extensión de Altova en sus expresiones XPath/XQuery. Con ellas conseguirá funciones adicionales no disponibles en la biblioteca de funciones estándar de XPath, XQuery y XSLT. Las funciones de extensión de Altova están en el espacio de nombres http://www.altova.com/xslt-extensions y en esta sección se presentan con el prefijo, que se supone estará enlazado al espacio de nombres señalado. Tenga en cuenta que en futuras versiones del producto algunas funciones pueden dejar de ser compatibles o su comportamiento puede cambiar. Por tanto, consulte siempre la documentación del producto para conocer el funcionamiento de estas funciones en cada versión del producto.
altova:suggested-image-file-extension(CadenaBase64 como string) como string?XP3.1XQ3.1
Toma la codificación base64 de un archivo de imagen como argumento y devuelve la extensión de archivo de la imagen registrada en la codificación base64 de la imagen. El valor devuelto es una sugerencia basada en la información sobre el tipo de imagen disponible en la codificación. Si esta información no está disponible, entonces devuelve una cadena vacía. Esta función es muy práctica a la hora de guardar una imagen base64 como archivo y recuperar de forma dinámica una extensión de archivo adecuada.
En los ejemplos anteriores, se da por hecho que los nodos suministrados como argumento de la función contienen una imagen codificada en base64. El primer ejemplo recupera jpg como tipo de imagen y como extensión de archivo. En el segundo ejemplo, la codificación base64 dada no ofrece información sobre la extensión del archivo.
altova:image-exif-data(CadenaBinariaBase64 como string) como element?XP3.1XQ3.1
Toma una imagen JPEG codificada en base64 como argumento y devuelve un elemento llamado Exif que contiene los metadatos Exif de la imagen. Los metadatos Exif se crean como pares atributo-valor del elemento Exif. El nombre de los atributos son las etiquetas de datos Exif encontradas en la codificación base64. La lista de etiquetas Exif aparece más abajo. Si en lo datos Exif hay etiquetas de terceros, estas etiquetas y sus valores también se devuelven en un par atributo-valor. Además de las etiquetas de metadatos Exif estándar (lista más abajo), también se generan pares atributo-valor de Altova. Estos atributos Exif de Altova también se enumeran más abajo.
•Para acceder a un atributo, utilice la función de esta manera: image-exif-data(//MisImágenes/Imagen20141130.01)/@GPSLatitude image-exif-data(//MisImágenes/Imagen20141130.01)/@Geolocation
•Para acceder a todos los atributos, utilice la función de esta manera: image-exif-data(//MisImágenes/Imagen20141130.01)/@*
•Para acceder al nombre de todos los atributos, utilice esta expresión: for$i inimage-exif-data(//MisImágenes/Imagen20141130.01)/@* returnname($i) Esto es muy práctico a la hora de averiguar el nombre de los atributos que devuelve la función.
El motor XPath/XQuery de Altova genera el atributo personalizado Geolocation a partir de las etiquetas de metadatos Exif estándar. Este atributo es una concatenación de cuatro etiquetas Exif (GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef) seguidas de unidades:
El motor XPath/XQuery de Altova genera el atributo personalizado OrientationDegree a partir de la etiqueta de metadatos Exif Orientation.
Este atributo transforma el valor entero de la etiqueta Exif Orientation (1, 8, 3 o 6) en el correspondiente valor en grados (0, 90, 180, 270), tal y como describe el diagrama más abajo.
Debe tener en cuenta que los valores 2, 4, 5, 7 de Orientation no se pueden traducir. Estas orientaciones se obtienen invirtiendo la imagen 1 en su eje central vertical para obtener la imagen con un valor de 2 e invirtiendo después esta imagen por pasos de 90 grados en el sentido de las agujas del reloj para obtener los valores de 7, 4 y 5, respectivamente.