XQuery nested return flower

I'm stuck with a seemingly simple XQuery exercise. Below a piece of the XML file.\[code\]<Ships><Class name = "Kongo" type = "bc" country = "Japan" numGuns = "8" bore = "14" displacement = "32000"> <Ship name = "Kongo" launched = "1913" /> <Ship name = "Hiei" launched = "1914" /> <Ship name = "Kirishima" launched = "1915"> <Battle outcome = "sunk">Guadalcanal</Battle> </Ship> <Ship name = "Haruna" launched = "1915" /></Class></Ships>\[/code\]I'm trying to transform the XML into an XHTML with the Class name attributes (Kongo) as header and an enumerated list of the child ship names and launch-years:\[code\]<h1>Kongo</h1><table><tr><th>Name</th><th>Launched</th><tr><tr><td>Kongo</td><td>1913</td></tr><tr><td>Hiei</td><td>1914</td></tr><tr><td>Kirishima</td><td>1915</td></tr><tr><td>Haruna</td><td>1915</td></tr><h1>Next Class name</h1>....\[/code\]I'm stuck with the following nested return-FLOWR XQuery:\[code\]declare option output "method=xml";declare option output "doctype-public=-//W3C//DTD XHTML 1.0 Strict//EN";declare option output "doctype-system=http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";declare option output "omit-xml-declaration=no";declare option output "indent=yes";<html xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>XQ-7</title> </head> <body> {for $class in doc("xml/battleships.xml")/Ships/Class let $cname := data($class/@name) let $sname := data($class/Ship/@name) let $slaunched := data($class/Ship/@launched) return <h1>{$cname}</h1> <table> {for $ship in doc("xmlbattleships.xml")/Ships/Class/Ship where data($ship/../@name) eq $cname let $sname := data($ship/@name) let $slaunched := data($ship/@launched) return <tr><td>{$sname}</td><td>{$slaunched}</td></tr> }</table> } </body></html>\[/code\]
 
Back
Top