statisticsInHTML.xq Example File
xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq
<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>