annotate software/mpdl-services-new/mpiwg-mpdl-cms/src/de/mpg/mpiwg/berlin/mpdl/cms/transform/queryDocument.xsl @ 25:e9fe3186670c default tip

letzter Stand eingecheckt
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 21 May 2013 10:19:32 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 <?xml version="1.0"?>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
4
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 <xsl:output method="xhtml" encoding="utf-8"/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
6
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 <xsl:param name="query"></xsl:param>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 <xsl:param name="flags"></xsl:param>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 <xsl:param name="outputFormat"></xsl:param>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
10
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 <xsl:variable name="apos">'</xsl:variable>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 <xsl:variable name="xpathQuery">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
13 <xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 <xsl:when test="$flags = ''"><xsl:value-of select="concat('//*:s[matches(.,', $apos, $query, $apos, ')]', '|', '//*:head[matches(.,', $apos, $query, $apos, ')]')"/></xsl:when>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 <xsl:otherwise><xsl:value-of select="concat('//*:s[matches(.,', $apos, $query, $apos, ',', $apos, $flags, $apos, ')]', '|', '//*:head[matches(.,', $apos, $query, $apos, ',', $apos, $flags, $apos, ')]')"/></xsl:otherwise>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 </xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 </xsl:variable>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 <xsl:variable name="queryResult" select="saxon:evaluate($xpathQuery)" xmlns:saxon="http://saxon.sf.net/"/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
19 <xsl:variable name="queryResultSize"><xsl:value-of select="count($queryResult)"/></xsl:variable>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 <xsl:variable name="queryResultPageSize" select="20"/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 <xsl:variable name="queryResultPages">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 <xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
23 <xsl:when test="$queryResultSize = 0"><xsl:value-of select="count($queryResult)"/></xsl:when>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 <xsl:otherwise><xsl:value-of select="$queryResultSize idiv $queryResultPageSize + 1"/></xsl:otherwise>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 </xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 </xsl:variable>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
27 <xsl:variable name="pageBreaks" select="saxon:evaluate('//*:pb')" xmlns:saxon="http://saxon.sf.net/"/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
28 <xsl:variable name="queryResultHtml">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 <xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
30 <xsl:when test="$outputFormat = 'html'">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 <table>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 <thead>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
33 <tr>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 <th align="left" valign="top">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 <button name="order-by" value="author" style="padding:0px;font-weight:bold;font-size:14px;background:none;border:none;">No.</button>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 </th>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 <th align="left" valign="top">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
38 <button name="order-by" value="author" style="padding:0px;font-weight:bold;font-size:14px;background:none;border:none;">Path</button>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 </th>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 <th align="left" valign="top">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 <button name="order-by" value="author" style="padding:0px;font-weight:bold;font-size:14px;background:none;border:none;">Hit</button>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 </th>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
43 <th align="left" valign="top">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 <button name="order-by" value="author" style="padding:0px;font-weight:bold;font-size:14px;background:none;border:none;">Page</button>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
45 </th>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 </tr>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 </thead>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 <tbody>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
49 <xsl:for-each select="$queryResult">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 <xsl:variable name="hit" select="."/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
51 <tr>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 <td align="left" valign="top"><xsl:value-of select="position()"/></td>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 <td align="left" valign="top"><xsl:value-of select="saxon:path(.)" xmlns:saxon="http://saxon.sf.net/"/></td>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 <td align="left" valign="top"><xsl:value-of select="."/></td>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
55 <td align="left" valign="top"><xsl:value-of select="count(./preceding::*:pb)"/></td> <!-- better performance: count($pageBreaks[. << $hit]) -->
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 </tr>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 </xsl:for-each>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 </tbody>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 </table>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 </xsl:when>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 <xsl:otherwise>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 <result>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 <query><xsl:value-of select="$query"/></query>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 <flags><xsl:value-of select="$flags"/></flags>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 <size><xsl:value-of select="$queryResultSize"/></size>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 <page-size><xsl:value-of select="$queryResultPageSize"/></page-size>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
67 <pages><xsl:value-of select="$queryResultPages"/></pages>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
68 <pn>1</pn>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 <hits>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
70 <xsl:for-each select="$queryResult">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
71 <xsl:variable name="hit" select="."/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 <hit>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
73 <hitType><xsl:value-of select="'s'"/></hitType>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 <pos><xsl:value-of select="position()"/></pos>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 <pn><xsl:value-of select="count(./preceding::*:pb)"/></pn>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 <hitId>xmlId</hitId>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 <hitPos>4711</hitPos>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 <hitString><xsl:value-of select="."/></hitString>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
79 <hitSurroundsPB>false</hitSurroundsPB>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
80 </hit>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
81 </xsl:for-each>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
82 </hits>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
83 <query-forms></query-forms>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 <query-regularizations></query-regularizations>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 </result>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
86 </xsl:otherwise>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 </xsl:choose>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
88 </xsl:variable>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 <xsl:template match="/">
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 <xsl:sequence select="$queryResultHtml"/>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 </xsl:template>
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
92
e9fe3186670c letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff changeset
93 </xsl:stylesheet>