doc

Abre um documento a partir de um URI

Descrição

A função fn:doc devolve o nó de documento do recurso que está no URI indicado.

Se você acessa documentos no sistema de arquivos, a implementação pode exigir que o nome do arquivo comece com file:///, que os diretórios sejam separados por barras e que cada espaço no nome seja escrito como %20.

URIs relativos também são aceitos. Se $uri for relativo, ele é resolvido a partir do URI base do contexto estático. Esse URI base pode ser definido pelo processador fora da consulta ou declarado no prólogo da consulta.

Repare que fn:doc devolve o nó de documento, e não o elemento raiz. Por isso, o elemento raiz precisa entrar no caminho (catalog, no exemplo).

Cada processador interpreta o URI passado a fn:doc de um jeito. Alguns, como o Saxon, vão até o endereço e buscam o recurso que está lá. Outros, como os embutidos em bancos de dados XML, tratam os URIs só como nomes: o processador pode procurar o nome num catálogo interno para achar o documento ligado a ele.

As implementações também têm liberdade em como tratam erros ao buscar documentos, como lidam com tipos MIME diferentes e se validam ou não os documentos contra um schema ou uma DTD.

A função fn:doc é estável: devolve o mesmo resultado sempre que é chamada dentro de uma consulta. Se você chamá-la mais de uma vez com o mesmo argumento, na mesma consulta, o resultado é o mesmo, mesmo que o recurso em $uri tenha mudado. Além disso, os nós de documento devolvidos em cada chamada são idênticos entre si.

Não confunda fn:doc com a função fn:document do XSLT, que não existe em XQuery. A fn:document se comporta de outro jeito: aceita vários URIs, permite indicar um URI base e tem um tratamento próprio para identificadores de fragmento.

Parâmetros

Descrição

uri:string()

o URI do documento

Exemplos

XPath

Resultado

doc('http://www.functx.com/input/order.xml')

the document node of the document at http://www.functx.com/input/order.xml.

Veja também