RE: [xsl] Re: Benefits of xsl.sequence

Subject: RE: [xsl] 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/

Current Thread