4.2.3  XML per XQuery

Es ist aber auch möglich XML zu erzeugen, wobei natürlich für eine Transformation XSLT vorzuziehen ist. Dazu werden Tags direkt in die Expression geschrieben, wie z.B. hier:

declare variable $nachname as xs:string external;
<buecher autor="{$nachname}">
{
  let $bibliothek := .
  for $x in $bibliothek/buecher//buch,
      $y in $bibliothek/autoren//autor
  where starts-with($y, $nachname)
      and $x/@autorId = $y/@id
  order by $x/ausgabe
  return
  <buch ausgabe="{$x/ausgabe}">
    {$x/titel}
  </buch>
}
</buecher>
Plain Text

Speichert man dieses Schnippsel in einer Datei buecher.xquery ab, so kann man mit der folgenden Kommandozeile auf einer buecher.xml Datei als Eingabe suchen:

java -cp usr/lib/saxon/saxon.jar net.sf.saxon.Query -t -s:buecher.xml 
                                                       -q:buecher.xquery 
                                                       -o:ergebnis.xml 
                                                       nachname=grass
Plain Text