yetanotheruser: Konvertiere xml in html mit XQuery

Beitrag lesen

Hallo at all,

ich habe ein kleines Problem mit XQuery. Folgende xml-Datei ist gegeben:
*********************

  
<?xml version="1.0"?>  
<text>  
   <untertest>Blabla</untertest>  
   <weiteres>  
      <blub>1234</blub>  
      <blubber>5542</blubber  
   </weiteres>  
</text>  

*********************

Das ganze soll jetzt nach bestimmten Regeln in html konvertiert werden und das ganze mit XQuery.
Z.B. so:
*********************

  
<html>  
   <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
      <title>Blabla</title>  
   </head>  
   <body>  
      <h1>Email von Alan Mathison Turing</h1>  
      <hr />  
      <p>1234 , 5542</p>  
   </body>  
</html>  

*********************

Folgendes XQuery habe ich momentan:
*********************

  
xquery version "1.0" encoding "utf-8";  
declare boundary-space preserve;  
  
declare function local:convert-children ($x)  
{  
  for $y in $x/node() return local:convert-node($y)  
};  
  
declare function local:convert-node ($x)  
{  
   typeswitch($x)  
      case element(text) return  
         <html>  
            <head>  
               <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
               <title>{data($x/untertest)}</title>  
            </head>  
            <body>  
               <h1>Email von {data($x/absender)}</h1>  
               {local:convert-children($x)}  
            </body>  
         </html>  
      case element(weiteres) return  
         <hr />  
         {local:convert-children($x)}  
      default return ($x)  
};  
  
let $doc := doc("beispiel.xml")  
return local:convert-children($doc)  

*********************

In Beispiel.xml stehen die xml Angaben von weiter oben drin. Wenn ich das ganze z.B. vom XML Spy überprüfen lasse, dann bekomme ich folgenden Fehler:

XQuery Execution Error!
Unexpected Token - {local:convert-children($

Was genau mache ich falsch, bzw. worauf habe ich nicht geachtet?

Gruß Ben