Subject: RE: Re: Benefits of xsl.sequence
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 30 Sep 2008 11:38:38 +0100
|
> I'am not sure that I don't understand, "returns references to
> existing nodes". Is it possible to give a more easy to
> understand example than "doing graph-manipulation operations
> like checking your data for cycles"?
I like to use functions for navigationr. For example, with genealogical
data, spouses(person) is a function that returns all the persons that the
given person has been married to. Then when I'm doing the processing, I can
do something like
<xsl:apply-templates select="g:spouses(.)"/>
or even
<xsl:value-of select="g:father(.)/g:spouses(.)/name/firstName"/>
without worrying about the detail of the XML structure. The actual function
might look something like
<xsl:function name="g:spouses" as="element(person)*">
<xsl:param name="person" as="element(person)"/>
<xsl:sequence
select="$person/(/)/*/marriage[(husband,wife)=$person/@id]/(husband,wife)
except $person"/>
</xsl:function>
You can't do that without xsl:sequence.
Michael Kay
http://www.saxonica.com/
|