# EXSLT - set:distinct - Implementer Page

Version: 1 Status: stable User Page: index.html XML Definition: set.distinct.xml Function Package: set.distinct.zip #### Function Syntax
    node-set set:distinct(node-set)
#### Template Syntax
    <xsl:call-template name="set:distinct">
       <xsl:with-param name="nodes" select="node-set" />
    </xsl:call-template>
The `set:distinct` function returns a subset of the nodes contained in the node-set NS passed as the first argument. Specifically, it selects a node N if there is no node in NS that has the same string value as N, and that precedes N in document order. The `set:distinct` template applies templates to these nodes in `set:distinct` mode. By default, the nodes are copied by this template, so that a result tree fragment consisting of the nodes is returned. An implementation of this extension function in the EXSLT set namespace must conform to the behaviour described in this document. ## Implementations Built-in support for `set:distinct` is available in the following XSLT processors:
Processor | Processor Version | Implemented Version
--- | --- | ---
4XSLT, from 4Suite. | 0.12.0a3 | 1
SAXON from Michael Kay | 6.3 | 1
jd.xslt from Johannes Döbler | 1.0.9 | 1
Xalan-J from Apache | 2.4.D1 | 1
The following implementations of `set:distinct` are available:
Language | Implemented Version | Creator | Date | Download
--- | --- | --- | --- | ---
XSLT Template | 1 | Jeni Tennison | 2001-03-28 | set.distinct.template.xsl
EXSLT Function | 1 | Jeni Tennison | 2001-03-28 | set.distinct.function.xsl
## Use Cases Use Case Package: set.distinct.use-cases.zip The following use cases illustrate the functionality of `set:distinct`.
Details | Calling Stylesheet | XML Data | Expected Result | Category | Template
--- | --- | --- | --- | --- | ---
1 | set.distinct.1.xsl | set.distinct.data.1.xml | set.distinct.result.1.xml | example | N
## Change History Submitted: 2001-03-28 Creator: Jeni Tennison(http://www.jenitennison.com) Returns the nodes within the node set that have unique values.
Version | Modified | By | Details
--- | --- | --- | ---
1.1 | 2001-04-25 | Jeni Tennison | Updated the description of the function to be more comprehensible (following Mike Kay's suggestion).
1.2 | 2001-05-08 | Jeni Tennison | Added a description of how the template-equivalent to the function works.
1.3 | 2001-05-22 | Jeni Tennison | Added vendor implementations in Saxon and 4XSLT Changed status to stable
1.4 | 2001-06-11 | Jeni Tennison | Added vendor implementation in jd.xslt.
1.5 | 2002-08-20 | Craig Stewart | Added Xalan-J implementation to the list.
1.6 | 2002-11-12 | Craig Stewart | Updated 4XSLT version to 0.12.0a3.
## Copyright This material is in the public domain.

http://www.exslt.org/set/functions/distinct/set.distinct.html last modified 2002-11-12