New from Hedzer Westra <hedzer@NL.ADLIBSOFT.COM>
[cql-java-moved-to-github.git] / etc / xslt / searchRetrieveResponse.xsl
diff --git a/etc/xslt/searchRetrieveResponse.xsl b/etc/xslt/searchRetrieveResponse.xsl
new file mode 100644 (file)
index 0000000..08c3168
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version='1.0'?>\r
+\r
+<xsl:stylesheet version="1.0"\r
+     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+     xmlns:srw="http://www.loc.gov/zing/srw/"\r
+     xmlns:dc="info:srw/schema/1/dc-v1.1"\r
+     xmlns:card="http://srw.o-r-g.org/schemas/ccg/1.0/">\r
+\r
+<xsl:import href="stdiface.xsl"/>\r
+<xsl:import href="dublinCoreRecord.xsl"/>\r
+<xsl:import href="adlibRecord.xsl"/>\r
+\r
+<xsl:variable name="title">Result of search: <xsl:value-of select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:query"/></xsl:variable>\r
+\r
+<xsl:template match="/">\r
+<xsl:call-template name="stdiface">\r
+<xsl:with-param name="title" select="$title"/>\r
+</xsl:call-template>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:searchRetrieveResponse">\r
+<xsl:apply-templates/>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:numberOfRecords">\r
+  <p><b>Matches:</b><xsl:text> </xsl:text><xsl:value-of select="."/></p>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:resultSetId">\r
+  Result Set Identifier:<xsl:text> </xsl:text><xsl:value-of select="."/>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:resultSetIdleTime">\r
+  <xsl:text> </xsl:text>(Will last for<xsl:text> </xsl:text><xsl:value-of select="."/><xsl:text> </xsl:text>seconds)\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:records">\r
+  <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
+  <xsl:call-template name="prev-nextRecord"/>\r
+  <xsl:apply-templates/>\r
+  <xsl:call-template name="prev-nextRecord"/>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:record">\r
+  <p>\r
+    <xsl:apply-templates select="child::srw:recordPosition"/>\r
+    <xsl:apply-templates select="child::srw:recordSchema"/>\r
+    <xsl:apply-templates select="child::srw:recordData"/>\r
+  </p>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:record/srw:recordSchema">\r
+  <b>Schema: </b>\r
+  <xsl:variable name="schema" select="."/> \r
+  <xsl:choose>\r
+      <xsl:when test="$schema = 'info:srw/schema/1/dc-v1.1'">\r
+             Dublin Core\r
+      </xsl:when>\r
+      <xsl:when test="$schema = 'info:srw/schema/1/marcxml-v1.1'">\r
+             MARC XML\r
+      </xsl:when>\r
+      <xsl:when test="$schema = 'info:srw/schema/1/mods-v3.0'">\r
+             MODS\r
+      </xsl:when>\r
+      <xsl:when test="$schema = 'http://srw.o-r-g.org/schemas/ccg/1.0/'">\r
+             Collectable Card Schema\r
+      </xsl:when>\r
+      <xsl:when test="$schema = 'http://www.adlibsoft.com/adlibXML'">\r
+             adlibXML\r
+      </xsl:when>\r
+      <xsl:otherwise>\r
+             <xsl:value-of select="$schema"/>\r
+      </xsl:otherwise>\r
+  </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:recordPosition">\r
+  <b>Position: </b> <xsl:value-of select="."/> <xsl:text> </xsl:text>\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:nextRecordPosition">\r
+  <!-- Not used -->\r
+</xsl:template>\r
+\r
+<xsl:template match="srw:recordData">\r
+  <table width="100%" style="vertical-align: top; border: 1px solid; padding: 3px; border-collapse: collapse; background-color: #eefdff">\r
+\r
+<xsl:choose>\r
+<xsl:when test="../srw:recordPacking = 'string'">\r
+<tr><td style="border: 1px solid">\r
+<pre><xsl:value-of select="."/></pre>\r
+</td></tr>\r
+</xsl:when>\r
+<xsl:otherwise>\r
+<xsl:apply-templates/>\r
+</xsl:otherwise>\r
+</xsl:choose>\r
+\r
+</table>\r
+</xsl:template>\r
+\r
+\r
+<xsl:template match="srw:echoedSearchRetrieveRequest"/>\r
+<xsl:template match="srw:extraResponseData"/>\r
+\r
+\r
+<xsl:template name="prev-nextRecord">\r
+  <xsl:variable name="startRecord"\r
+    select="number(/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:startRecord)"/>\r
+  <xsl:variable name="maximumRecords">\r
+    <xsl:value-of select="number(/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:maximumRecords)"/>\r
+    </xsl:variable>\r
+  <xsl:variable name="prev" select="$startRecord - $maximumRecords"/>\r
+  <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
+  <xsl:variable name="sortKeys" select="/srw:searchRetrieveResponse/srw:echoedSearchRetrieveRequest/srw:sortKeys"/>\r
+\r
+  <xsl:if test="$prev>0">\r
+  <a>\r
+    <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
+  </xsl:if>\r
+<xsl:text> </xsl:text>\r
+  <xsl:if test="/srw:searchRetrieveResponse/srw:nextRecordPosition">\r
+  <a>\r
+    <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
+  </xsl:if>\r
+</xsl:template>\r
+\r
+</xsl:stylesheet>\r