Type
Sequences have types, types can have occurrence indicators + * ?
example:
xs:dateTime+
element(Series)
xs:anyAtomicType*
Testing types:
item() - test any item
void() - empty sequence
<xsl:sequence>
, xsl:sequence can return a sequence containing existing nodes, rather than constructing new nodes like <xsl:copy-of>. The items comprising the result sequence are selected using the select attribute. When xsl:sequence is used to add atomic values to a sequence, the effect is very similar to the xsl:copy-of instruction.
<xsl:variable name="values" as="xs:integer*">
<xsl:sequence select="(1,2,3,4)"/>
<xsl:sequence select="(8,9,10)"/>
</xsl:variable>
<xsl:value-of select="sum($values)"/>
output: 37
Testing Sequence
exists() empty()
Test whether a sequence is empty or not use
exists() or
empty()
instance of
Test whether a sequence is of a specific type
index-of()
If the sequence contains multiple instances of the specified value, then index-of() returns a sequence containing the positions in which the value appears. If the sequence doesn’t contain the given value, then index-of() returns an empty sequence.
The index-of() function is most useful when you’re using sequences to hold structured data.
Outputting Sequences
<xsl:for-each>
<xsl:apply-template>
<xsl:value-of>