.. _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`.