Funciones XSLT y XPath

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

doc

XPath

 

La función fn:doc devuelve el nodo documento del recurso encontrado bajo el URI indicado en el argumento. Si el documento procede de un sistema de ficheros, es posible que la aplicación requiera que el URI comience con file:///, que la separación entre los nombres de carpeta se marquen mediante una barra inclinada (/), y que se sustituyan los espacios en blanco en los nombres de carpetas y documentos por %20.

Es posible utilizar especificaciónes de ruta relativas. Así, si el URI es relativo, se añadirá al URI base del contexto actual. El URI base se establece mediante el procesador con independencia de la transformación XSLT (p.ej. el URI del documento), o bien al principio de la misma. Se debe observar que la función sólo devolverá el nodo documento, no el nodo raíz. Si se desea seleccionar el nodo raíz, se deberá especificar el mismo en la correspondiente expresión XPath (p.ej. doc('URI')/elementoraiz).

Los distintos procesadores interpretan de diferente modo el URI que se introduce en la función fn:doc. Por ejemplo, Saxon busca directamente el URI e invoca el recurso requerido en el lugar correspondiente. Por el contrario, otras aplicaciones, sobre todo los procesadores que trabajan con bases de datos XML, buscan el URI dentro de un catálogo interno prefijado, de donde extraen el documento que se corresponde con el URI. El comportamiento de los distintos procesadores puede también variar en lo que respecta a los errores que surgen al invocar documentos, en la relación con distintos tipos MIME, o dependiendo de si un documento es validado mediante una DTD o un Schema.

La función fn:doc es estable. Esto significa que, durante una transformación XSLT, la función devolverá siempre el mismo nodo documento en caso de que se introduzca repetidas veces el mismo argumento. Aun en el caso de que cambie el recurso invocado por el URI que se ha introducido en el argumento, la función devolverá siempre el mismo nodo documento si se realizan repetidas llamadas de la misma. Varios URIs relativos se transformarán en un mismo URI absoluto.

La función fn:doc no debe confundirse con la función de XSLT fn:document, que no se puede invocar en XQuery. Otra diferencia es que la función fn:document admite varias URIs y la especificación de un URI base, además, acepta procesos definidos para tratar con identificadores de fragmentos.

 

Argumentos

URI de un documento

Es obligatorio, pero puede ser una secuencia vacía.

Tipo: xs:anyURI

 

Valor de salida

Nodo documento

Tipo: node()

 

Ejemplo

doc('ejemplos/ejemplo1.xml')/funciones/funcion[4]/nombre

Resultado: fn:resolve-QName

 

 

Ejemplo

doc(())

Resultado:

  > Volver a la referencia alfabética de XSLT y XPATH