XPath 3 es la última versión del lenguaje de rutas XML , un lenguaje de consulta para seleccionar nodos en documentos XML . Sustituye a XPath 1.0 y XPath 2.0 .
XPath 3.0 se convirtió en una recomendación del W3C el 8 de abril de 2014, mientras que XPath 3.1 se convirtió en una recomendación del W3C el 21 de marzo de 2017.
Nuevas características en XPath 3.0
En comparación con XPath 2.0 , XPath 3.0 añade las siguientes características nuevas:
- expresiones de función en línea
- Se pueden crear funciones anónimas en un contexto de expresión . Por ejemplo, la expresión crea una función que devuelve el producto de sus dos argumentos. La expresión crea una secuencia de funciones, cada una de las cuales devuelve un nodo diferente de una colección.
function($aasxs:double,$basxs:double)asxs:double{$a*$b}collection()/(let$a:=.returnfunction(){$a}) - Llamadas a funciones dinámicas
- Los valores de las funciones pueden ser llamados sin ser referenciados por su nombre. Por ejemplo, se obtiene el segundo elemento de la secuencia y se invoca como una función, pasando la cadena como argumento.
$f[2]("Hi there")$f"Hi there" - Tipos de sindicatos
- Los tipos de unión , tal como se definen en el esquema XML , pueden utilizarse en conversiones de tipos y firmas de tipos de funciones .
- Literales de espacio de nombres
- Los espacios de nombres XML se pueden referenciar usando literales URI entre llaves . Por ejemplo, el nombre calificado se puede expandir a , incrustando el URI del espacio de nombres dentro del prefijo.
math:piQ{http://www.w3.org/2005/xpath-functions/math}pi - operador de concatenación de cadenas
- El nuevo
||operador puede utilizarse para la concatenación de cadenas :$a || $bes equivalente a .fn:concat($a,$b) - Operador de mapeo
- El nuevo
!operador realiza un mapeo simple: evalúa cada elemento de la secuencia y concatena los elementos resultantes. Esto es comparable al operador de ruta , pero no elimina duplicados ni ordena los resultados.E1 ! E2E2E1/!
Nuevas características en XPath 3.1
XPath 3.1 añade principalmente compatibilidad con los tipos de datos array y map ( array asociativo ). Estos tipos y su funcionalidad asociada están pensados para facilitar el trabajo con datos JSON .
Otra innovación es el operador flecha =>para encadenar funciones. Por ejemplo, la expresión XPath 2.0.
contiene ( mayúsculas ( subcadena-antes ( $ en , ' ' )), 'X' )
Ahora se puede escribir
$ en = > subcadena-antes ( ' ' ) = > mayúsculas () = > contiene ( 'X' )
Referencias
- "Lenguaje de rutas XML (XPath) 3.0" . Consorcio World Wide Web . 8 de abril de 2014.
- "Lenguaje de rutas XML (XPath) 3.1" . Consorcio World Wide Web . 21 de marzo de 2017.
- Acceso a datos XML
- Cálculo de stubs