Work on briefDisplay using echoed things
[mp-xquery-moved-to-github.git] / bibframe / xsl / briefDisplay.xsl
1 <?xml version="1.0" encoding="utf-8"?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                 xmlns:srw="http://www.loc.gov/zing/srw/"
4                 xmlns:sru="http://docs.oasis-open.org/ns/search-ws/sruResponse"
5                 xmlns:dc="http://www.loc.gov/zing/srw/dcschema/v1.0/"
6                 xmlns:zr="http://explain.z3950.org/dtd/2.0/"
7                 xmlns:diag="http://www.loc.gov/zing/srw/diagnostic/"
8                 version="1.0">
9
10   <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
11
12   <xsl:template match="text()"/>
13
14   <xsl:template match="/">
15     <xsl:call-template name="html"/>
16   </xsl:template>
17
18   <xsl:template name="html">
19     <html>
20       <head>
21         <title>
22           <xsl:value-of select="//zr:explain/zr:databaseInfo/zr:title"/>
23         </title>
24         <link href="css.css" rel="stylesheet"
25               type="text/css" media="screen, all"/>
26       </head>
27       <body>
28         <div class="body">
29           <xsl:apply-templates/>
30         </div>
31       </body>
32     </html>
33   </xsl:template>
34
35   <xsl:template match="zr:explain">
36     <xsl:call-template name="dbinfo"/>
37     <xsl:call-template name="diagnostic"/>
38     <xsl:call-template name="searchform"/>
39   </xsl:template>
40
41   <xsl:template match="srw:searchRetrieveResponse">
42     <h2>Search Results</h2>
43     <xsl:call-template name="diagnostic"/>
44     <xsl:call-template name="displaysearch"/>
45   </xsl:template>
46
47   <xsl:template name="dbinfo">
48     <div class="dbinfo">
49       <h1><xsl:value-of select="//zr:explain/zr:databaseInfo/zr:title"/>
50       </h1>
51       <h2><xsl:value-of select="//zr:explain/zr:databaseInfo/zr:description"/>
52       </h2>
53       <h4>
54         <xsl:value-of select="//zr:explain/zr:databaseInfo/zr:author"/>
55         <br/>
56         <xsl:value-of select="//zr:explain/zr:databaseInfo/zr:history"/>
57       </h4>
58     </div>
59   </xsl:template>
60
61   <xsl:template name="searchform">
62     <div class="searchform">
63       <form name="searchform"  method="get"> <!-- action=".." -->
64         <input type="hidden" name="version" value="1.2"/>
65         <input type="hidden" name="operation" value="searchRetrieve"/>
66         <input type="hidden" name="stylesheet">
67           <xsl:attribute name="value">
68             <xsl:value-of select="//srw:echoedExplainRequest/srw:stylesheet"/>
69             <xsl:value-of select="//sru:echoedExplainRequest/sru:stylesheet"/>
70           </xsl:attribute>
71         </input>
72         <div class="query">
73           <input type="text" name="query"/>
74         </div>
75         <div class="parameters">
76           <xsl:text>startRecord: </xsl:text>
77           <input size="10" type="text" name="startRecord" value="1"/>
78           <xsl:text> maximumRecords: </xsl:text>
79           <input size="10" type="text" name="maximumRecords" value="5"/>
80           <xsl:text> recordSchema: </xsl:text>
81           <select name="recordSchema">
82           <xsl:for-each select="//zr:schemaInfo/zr:schema">
83             <option value="{@name}">
84               <xsl:value-of select="zr:title"/>
85             </option>
86           </xsl:for-each>
87           </select>
88           <xsl:text> recordPacking: </xsl:text>
89           <select name="recordPacking">
90             <option value="string">string</option>
91             <option value="xml">XML</option>
92           </select>
93
94         </div>
95
96         <div class="submit">
97           <input type="submit" value="Send Search Request"/>
98         </div>
99       </form>
100     </div>
101   </xsl:template>
102
103   <xsl:template name="indexinfo">
104      <div class="dbinfo">
105        <xsl:for-each
106           select="//zr:indexInfo/zr:index[zr:map/zr:name/@set]">
107         <xsl:variable name="index">
108           <xsl:value-of select="zr:map/zr:name/@set"/>
109           <xsl:text>.</xsl:text>
110           <xsl:value-of select="zr:map/zr:name/text()"/>
111         </xsl:variable>
112         <b><xsl:value-of select="$index"/><br/></b>
113       </xsl:for-each>
114      </div>
115   </xsl:template>
116
117
118   <xsl:template name="relationinfo">
119     <!--
120       <xsl:variable name="defrel"
121                     select="//zr:configInfo/zr:default[@type='relation']"/>
122       <b><xsl:value-of select="$defrel"/><br/></b>
123       -->
124       <xsl:for-each select="//zr:configInfo/zr:supports[@type='relation']">
125         <xsl:variable name="rel" select="text()"/>
126         <b><xsl:value-of select="$rel"/><br/></b>
127       </xsl:for-each>
128   </xsl:template>
129
130
131   <!-- diagnostics -->
132   <xsl:template name="diagnostic">
133     <xsl:for-each select="//diag:diagnostic">
134      <div class="diagnostic">
135         <!-- <xsl:value-of select="diag:uri"/> -->
136         <xsl:text> </xsl:text>
137         <xsl:value-of select="diag:message"/>
138         <xsl:text>: </xsl:text>
139         <xsl:value-of select="diag:details"/>
140       </div>
141     </xsl:for-each>
142   </xsl:template>
143
144   <xsl:template name="displaysearch">
145     <div class="searchresults">
146       <xsl:for-each select="srw:numberOfRecords">
147         <h4>
148           <xsl:text>Number of Records: </xsl:text>
149           <xsl:value-of select="."/>
150         </h4>
151       </xsl:for-each>
152       <xsl:for-each select="srw:nextRecordPosition">
153         <h4>
154           <xsl:text>Next Record Position: </xsl:text>
155           <xsl:value-of select="."/>
156          </h4>
157       </xsl:for-each>
158
159       <xsl:for-each select="srw:records">
160         <xsl:for-each select="srw:record">
161           <div class="record">
162             <p>
163               <xsl:text>Record: </xsl:text>
164               <xsl:value-of select="srw:recordPosition"/>
165               <xsl:text> : </xsl:text>
166               <xsl:value-of select="srw:recordSchema"/>
167               <xsl:text> : </xsl:text>
168               <xsl:value-of select="srw:recordPacking"/>
169             </p>
170             <form name="fulllink" method="get">
171               <input type="hidden" name="version" value="1.2"/>
172               <input type="hidden" name="operation" value="searchRetrieve"/>
173               <input type="hidden" name="query">
174                 <xsl:attribute name="value">
175                   <xsl:value-of
176                       select="//srw:echoedSearchRetrieveRequest/srw:query"/>
177                 </xsl:attribute>
178               </input>
179               <input type="hidden" name="recordPacking">
180                 <xsl:attribute name="value">
181                   <xsl:value-of select="srw:recordPacking"/>
182                 </xsl:attribute>
183               </input>
184               <input type="hidden" name="recordSchema">
185                 <xsl:attribute name="value">
186                   <xsl:value-of select="srw:recordSchema"/>
187                 </xsl:attribute>
188               </input>
189               <input type="hidden" name="stylesheet" value="/xsl/briefDisplay.xsl"/>
190               <input type="hidden" name="startRecord">
191                 <xsl:attribute name="value">
192                   <xsl:value-of select="srw:recordPosition"/>
193                 </xsl:attribute>
194               </input>
195               <input type="hidden" name="maximumRecords" value="1"/>
196               <input type="submit">
197                 <xsl:attribute name="value">
198                   <xsl:text>Full Record </xsl:text>
199                   <xsl:value-of select="srw:recordPosition"/>
200                 </xsl:attribute>
201               </input>
202             </form>
203             <p>
204               <pre>
205                 <xsl:value-of select="srw:recordData"/>
206               </pre>
207             </p>
208           </div>
209         </xsl:for-each>
210       </xsl:for-each>
211     </div>
212   </xsl:template>
213
214 </xsl:stylesheet>