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 |
|---|---|
the document node of the document at http://www.functx.com/input/order.xml. |