examples/xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq
changeset 0 1918ee327afb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,58 @@
+<html>
+  <head>
+    <title></title>
+  </head>
+  <body>
+    <p>In total the tree has {count($root//QObject)} QObject instances.</p>
+    <p>Order by occurrence, the QObjects are:</p>
+
+    <ol>
+    {
+      for $i in $root/preceding-sibling::metaObjects/metaObject
+      let $count := count($root//QObject[@className eq $i/@className])
+      stable order by $count descending
+      return if($count > 1)
+             then <li>{string($i/@className), $count} occurrences</li>
+             else ()
+    }
+    </ol>
+
+    <h1>Properties</h1>
+    {
+      (: For each QObject, we create a table listing
+       : the properties of that object. :)
+      for $object in $root//QObject
+        return (<h2>{let $name := string($object/@objectName)
+                     return if(string-length($name))
+                            then $name
+                            else "[no name]",
+                     '(', string($object/@className), ')'}</h2>,
+                <table border="1">
+                  <thead>
+                    <tr>
+                      <td>Property Name</td>
+                      <td>Value</td>
+                    </tr>
+                  </thead>
+                  <tbody>
+                  {
+                    $object/@*/<tr>
+                                 <td>
+                                 {
+                                   name()
+                                 }
+                                 </td>
+                                 <td>
+                                 {
+                                   if(data(.))
+                                   then string(.)
+                                   else "N/A"
+                                 }
+                                 </td>
+                               </tr>
+                  }
+                  </tbody>
+                </table>)
+    }
+  </body>
+</html>