summaryrefslogtreecommitdiffstats
path: root/examples/xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq
blob: 14a7a14cb730c038b616147769fec1a38340e5c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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>