.. _distinct-values: =============== distinct-values =============== Os valores atômicos distintos de uma sequência Descrição ~~~~~~~~~ A função fn:distinct-values devolve uma sequência com os valores atômicos únicos de $arg. Os valores são comparados pelo valor tipado. Valores de tipos numéricos diferentes podem ser iguais: por exemplo, o xs:integer 1 é igual ao xs:decimal 1.0, e a função devolve só um deles. Se dois valores forem de tipos que não se comparam, como xs:string e xs:integer, eles são considerados distintos, em vez de dar erro. Valores sem tipo são tratados como strings. A sequência $arg pode ter valores atômicos, nós ou os dois. Dos nós é extraído o valor tipado, pelas regras normais de conversão de funções. Ou seja, só o conteúdo dos nós é comparado, e não outras propriedades, como o nome. Como a especificação não diz qual dos repetidos fica de fora, a ordem e o tipo dos itens do resultado podem variar entre implementações. .. list-table:: :widths: 40 60 :header-rows: 1 * - **Parâmetros** - **Descrição** * - arg:string() - a sequência de valores atômicos * - collation:string() - a collation usada para comparar strings Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml 3 5 3 .. list-table:: :widths: 50 50 :header-rows: 1 * - **XPath** - **Resultado** * - distinct-values( ('a', 'b', 'a') ) - ('a', 'b') * - distinct-values( (1, 2, 3) ) - (1, 2, 3) * - distinct-values( ('a', 2, 3) ) - ('a', 2, 3) * - distinct-values((xs:integer('1'), xs:decimal('1.0'), xs:float('1.0E0') ) ) - 1 * - distinct-values($in-xml/\*) - (3, 5) * - distinct-values( () ) - () Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`functx_distinct-deep`. * :ref:`functx_are-distinct-values`. * :ref:`functx_non-distinct-values`. * :ref:`functx_distinct-nodes`.