.. _idref: ===== idref ===== Busca os elementos que se referem a outros pelo ID Descrição ~~~~~~~~~ A função fn:idref devolve os nós (elementos ou atributos) que fazem referência a um dos IDs de uma sequência. Se $node não for informado, procura no mesmo documento do item de contexto atual. Se $node for informado, procura no mesmo documento de $node. Para fazer referência a um ID, o nó precisa estar marcado como IDREF ou IDREFS e conter aquele valor. Em geral, isso significa que foi declarado como xs:IDREF ou xs:IDREFS num schema em escopo. Se for IDREFS, basta um dos valores da lista corresponder ao ID. A collation padrão não é usada para comparar os IDs; a comparação é simples, pelos code points Unicode. A função devolve os nós na ordem do documento, e não na ordem dos valores de $arg. O resultado não tem elementos repetidos, mesmo que um ID apareça duas vezes em $arg. Mas pode haver no resultado vários elementos ou atributos que fazem referência ao mesmo ID. .. list-table:: :widths: 40 60 :header-rows: 1 * - **Parâmetros** - **Descrição** * - arg:string() - o valor de IDREF cujas referências se quer achar * - node:node() - um nó do documento onde procurar Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml ]>
This book introduces XQuery... The examples are downloadable...
...
...Expressions, introduced in , are...
...As described in , you can...
See http://datypic.com.
Supõe-se que o documento de entrada foi validado, que o tipo dos atributos id e fnid é xs:ID, o do atributo ref é xs:IDREF e o do atributo refs é xs:IDREFS. .. list-table:: :widths: 25 25 50 :header-rows: 1 * - **XPath** - **Resultado** - **Explicação** * - $book/idref('language')/string(.) - context language - O valor de string do atributo refs do segundo elemento secRef. * - $book/idref('context')/string(.) - ('context', 'context language') - O valor de string dos atributos refs dos dois elementos secRef. * - $book/idref(('context', 'language'))/string(.) - ('context', 'context language') - O valor de string dos atributos refs dos dois elementos secRef. * - $book//fn[1]/idref(@fnid)/string(.) - fn1 - O valor de string do atributo ref do elemento fnRef. * - $book/idref(('language', 'noMatch', 'in!valid'))/string(.) - context language - O valor de string do atributo refs do segundo elemento secRef. Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`id`. * :ref:`functx_id-untyped`. * :ref:`functx_id-from-element`.