[xquery-talk] Hashes

Michael Kay mhk at mhk.me.uk
Wed Sep 20 23:34:28 PDT 2006


XSLT has keys, which serve this purpose. The assumption is that your data is
in XML:

<animals>
  <animal code="a" name="aardvark"/> 
  <animal code="b" name="bandicoot"/>
</animals>

and then you declare

<xsl:key match="animal" use="code"/>

What this does is to tell the system to build an index. However, some
systems (such as Saxon-SA) will index the data automatically, so you can
just write /animals/animal[@code="b"] and you'll get a hash lookup without
asking for it.

Michael Kay
http://www.saxonica.com/



> -----Original Message-----
> From: talk-bounces at x-query.com 
> [mailto:talk-bounces at x-query.com] On Behalf Of Tim Finney
> Sent: 20 September 2006 21:10
> To: talk at x-query.com
> Subject: [xquery-talk] Hashes
> 
> Sometimes I wish that XQuery had hashes:
> 
> Clunky XQuery 1.0 way:
> 
> if ($n = "a") then "aardvark"
> else if ($n = "b") then "bandicoot"
> ...
> else if ($n = "z") then "zebra"
> else ()
> 
> Declunked way:
> 
> define variable $animals as xqy:hash {
>   "a" => "aardvark", "b" => "bandicoot", ... , "z" => "zebra"
> }
> 
> $animals[$n]
> 
> 
> 
> Best
> 
> Tim Finney
> 
> 
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk



More information about the talk mailing list