[maven-release-plugin] prepare for next development iteration
[cql-java-moved-to-github.git] / etc / xslt / searchRetrieveResponse.xsl
1 <?xml version='1.0'?>\r
2 \r
3 <xsl:stylesheet version="1.0"\r
4      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
5      xmlns:srw="http://www.loc.gov/zing/srw/"\r
6      xmlns:dc="info:srw/schema/1/dc-v1.1"\r
7      xmlns:card="http://srw.o-r-g.org/schemas/ccg/1.0/">\r
8 \r
9 <xsl:import href="stdiface.xsl"/>\r
10 <xsl:import href="dublinCoreRecord.xsl"/>\r
11 <xsl:import href="adlibRecord.xsl"/>\r
12 \r
13 <xsl:variable name="title">Result of search: <xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:query"/></xsl:variable>\r
14 \r
15 <xsl:template match="/">\r
16 <xsl:call-template name="stdiface">\r
17 <xsl:with-param name="title" select="$title"/>\r
18 </xsl:call-template>\r
19 </xsl:template>\r
20 \r
21 <xsl:template match="srw:searchRetrieveResponse">\r
22 <xsl:apply-templates/>\r
23 </xsl:template>\r
24 \r
25 <xsl:template match="srw:numberOfRecords">\r
26   <p><b>Matches:</b><xsl:text> </xsl:text><xsl:value-of select="."/></p>\r
27 </xsl:template>\r
28 \r
29 <xsl:template match="srw:resultSetId">\r
30   Result Set Identifier:<xsl:text> </xsl:text><xsl:value-of select="."/>\r
31 </xsl:template>\r
32 \r
33 <xsl:template match="srw:resultSetIdleTime">\r
34   <xsl:text> </xsl:text>(Will last for<xsl:text> </xsl:text><xsl:value-of select="."/><xsl:text> </xsl:text>seconds)\r
35 </xsl:template>\r
36 \r
37 <xsl:template match="srw:records">\r
38   <h3 style="font-family: sans-serif; color: #F65500; text-indent: 20px; border-left: solid 1px #3333FF; border-top: solid 1px #3333FF; padding-top: 5px">Records</h3>\r
39   <xsl:call-template name="prev-nextRecord"/>\r
40   <xsl:apply-templates/>\r
41   <xsl:call-template name="prev-nextRecord"/>\r
42 </xsl:template>\r
43 \r
44 <xsl:template match="srw:record">\r
45   <p>\r
46     <xsl:apply-templates select="child::srw:recordPosition"/>\r
47     <xsl:apply-templates select="child::srw:recordSchema"/>\r
48     <xsl:apply-templates select="child::srw:recordData"/>\r
49   </p>\r
50 </xsl:template>\r
51 \r
52 <xsl:template match="srw:record/srw:recordSchema">\r
53   <b>Schema: </b>\r
54   <xsl:variable name="schema" select="."/> \r
55   <xsl:choose>\r
56       <xsl:when test="$schema = 'info:srw/schema/1/dc-v1.1'">\r
57               Dublin Core\r
58       </xsl:when>\r
59       <xsl:when test="$schema = 'info:srw/schema/1/marcxml-v1.1'">\r
60               MARC XML\r
61       </xsl:when>\r
62       <xsl:when test="$schema = 'info:srw/schema/1/mods-v3.0'">\r
63               MODS\r
64       </xsl:when>\r
65       <xsl:when test="$schema = 'http://srw.o-r-g.org/schemas/ccg/1.0/'">\r
66               Collectable Card Schema\r
67       </xsl:when>\r
68       <xsl:when test="$schema = 'http://www.adlibsoft.com/adlibXML'">\r
69               adlibXML\r
70       </xsl:when>\r
71       <xsl:otherwise>\r
72               <xsl:value-of select="$schema"/>\r
73       </xsl:otherwise>\r
74   </xsl:choose>\r
75 </xsl:template>\r
76 \r
77 <xsl:template match="srw:recordPosition">\r
78   <b>Position: </b> <xsl:value-of select="."/> <xsl:text> </xsl:text>\r
79 </xsl:template>\r
80 \r
81 <xsl:template match="srw:nextRecordPosition">\r
82   <!-- Not used -->\r
83 </xsl:template>\r
84 \r
85 <xsl:template match="srw:recordData">\r
86   <table width="100%" style="vertical-align: top; border: 1px solid; padding: 3px; border-collapse: collapse; background-color: #eefdff">\r
87 \r
88 <xsl:choose>\r
89 <xsl:when test="../srw:recordPacking = 'string'">\r
90 <tr><td style="border: 1px solid">\r
91 <pre><xsl:value-of select="."/></pre>\r
92 </td></tr>\r
93 </xsl:when>\r
94 <xsl:otherwise>\r
95 <xsl:apply-templates/>\r
96 </xsl:otherwise>\r
97 </xsl:choose>\r
98 \r
99 </table>\r
100 </xsl:template>\r
101 \r
102 \r
103 <xsl:template match="srw:echoedSearchRetrieveRequest"/>\r
104 <xsl:template match="srw:extraResponseData"/>\r
105 \r
106 \r
107 <xsl:template name="prev-nextRecord">\r
108   <xsl:variable name="startRecord"\r
109     select="number(/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:startRecord)"/>\r
110   <xsl:variable name="maximumRecords">\r
111     <xsl:value-of select="number(/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:maximumRecords)"/>\r
112     </xsl:variable>\r
113   <xsl:variable name="prev" select="$startRecord - $maximumRecords"/>\r
114   <xsl:variable name="recordSchema"><xsl:if test="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:recordSchema">&amp;recordSchema=<xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:recordSchema"/></xsl:if></xsl:variable>\r
115   <xsl:variable name="sortKeys" select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:sortKeys"/>\r
116 \r
117   <xsl:if test="$prev>0">\r
118   <a>\r
119     <xsl:attribute name="href">?operation=searchRetrieve&amp;version=1.1&amp;sortKeys=<xsl:value-of select="$sortKeys"/>&amp;stylesheet=searchRetrieveResponse.xsl&amp;startRecord=<xsl:value-of select="$prev"/>&amp;maximumRecords=<xsl:value-of select="$maximumRecords"/>&amp;resultSetTTL=<xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:resultSetTTL"/><xsl:value-of select="$recordSchema"/>&amp;query=<xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:query"/></xsl:attribute>Previous Record(s)</a>\r
120   </xsl:if>\r
121 <xsl:text> </xsl:text>\r
122   <xsl:if test="/srw:searchRetrieveResponse/srw:nextRecordPosition">\r
123   <a>\r
124     <xsl:attribute name="href">?operation=searchRetrieve&amp;version=1.1&amp;sortKeys=<xsl:value-of select="$sortKeys"/>&amp;stylesheet=searchRetrieveResponse.xsl&amp;startRecord=<xsl:value-of select="/srw:searchRetrieveResponse/srw:nextRecordPosition"/>&amp;maximumRecords=<xsl:value-of select="$maximumRecords"/>&amp;resultSetTTL=<xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:resultSetTTL"/><xsl:value-of select="$recordSchema"/>&amp;query=<xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:query"/></xsl:attribute>Next Record(s)</a>\r
125   </xsl:if>\r
126 </xsl:template>\r
127 \r
128 </xsl:stylesheet>\r