aa1dac30cfbef9f78da0e9a17eb95ebc550da007
[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                 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
9                 xmlns:bf="http://bibframe.org/vocab/"
10                 version="1.0">
11
12   <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
13
14   <xsl:template match="text()"/>
15
16   <xsl:template match="rdf:RDF">
17     <table>
18       <xsl:for-each select="bf:Work/bf:creator">
19         <xsl:variable
20             name="resource" select="./@rdf:resource"/>
21         <tr>
22           <td><b>Creator:</b></td>
23           <td>
24             <xsl:value-of select="//*[@rdf:about=$resource]/bf:label"/>
25           </td>
26         </tr>
27       </xsl:for-each>
28       <xsl:for-each select="bf:Work/bf:workTitle">
29         <xsl:variable
30             name="resource" select="./@rdf:resource"/>
31         <tr>
32           <td><b>Work Title:</b></td>
33           <td>
34             <xsl:value-of select="//*[@rdf:about=$resource]/bf:titleValue"/>
35           </td>
36         </tr>
37       </xsl:for-each>
38       <xsl:for-each select="bf:Instance/bf:providerStatement">
39         <tr>
40           <td><b>Date/Place:</b></td>
41           <td>
42             <xsl:value-of select="."/>
43           </td>
44         </tr>
45       </xsl:for-each>
46     </table>
47   </xsl:template>
48
49   <xsl:template match="/">
50     <xsl:call-template name="html"/>
51   </xsl:template>
52
53   <xsl:template name="html">
54     <html>
55       <head>
56         <title>
57           BIBFRAME demo
58         </title>
59         <link href="css.css" rel="stylesheet"
60               type="text/css" media="screen, all"/>
61       </head>
62       <body>
63         <div class="body">
64           <xsl:apply-templates/>
65         </div>
66       </body>
67     </html>
68   </xsl:template>
69
70   <xsl:template match="zr:explain">
71     <xsl:call-template name="diagnostic"/>
72     <xsl:call-template name="searchform1"/>
73   </xsl:template>
74
75   <xsl:template match="srw:searchRetrieveResponse">
76     <h2>Search Results</h2>
77     <xsl:call-template name="diagnostic"/>
78     <xsl:call-template name="displaysearch"/>
79   </xsl:template>
80
81   <xsl:template name="dbinfo">
82     <div class="dbinfo">
83       <h1><xsl:value-of select="//zr:explain/zr:databaseInfo/zr:title"/>
84       </h1>
85       <h2><xsl:value-of select="//zr:explain/zr:databaseInfo/zr:description"/>
86       </h2>
87       <h4>
88         <xsl:value-of select="//zr:explain/zr:databaseInfo/zr:author"/>
89         <br/>
90         <xsl:value-of select="//zr:explain/zr:databaseInfo/zr:history"/>
91       </h4>
92     </div>
93   </xsl:template>
94
95   <xsl:template name="searchform1">
96     <div class="searchform">
97       <form name="searchform"  method="get"> <!-- action=".." -->
98         <input type="hidden" name="version" value="1.2"/>
99         <input type="hidden" name="operation" value="searchRetrieve"/>
100         <input type="hidden" name="stylesheet">
101           <xsl:attribute name="value">
102             <xsl:value-of select="//srw:echoedExplainRequest/srw:stylesheet"/>
103             <xsl:value-of select="//sru:echoedExplainRequest/sru:stylesheet"/>
104           </xsl:attribute>
105         </input>
106         <input type="text" name="query"/>
107         <input name="version" value="1.2" type="hidden"/>
108         <input name="operation" value="searchRetrieve" type="hidden"/>
109         <input name="startRecord" value="1" type="hidden"/>
110         <input name="maximumRecords" value="10" type="hidden"/>
111         <input name="recordSchema" value="bibframe" type="hidden"/>
112         <input type="submit" value="submit"/>
113       </form>
114     </div>
115   </xsl:template>
116
117   <xsl:template name="searchform2">
118     <div class="searchform">
119       <form name="searchform"  method="get"> <!-- action=".." -->
120         <input type="hidden" name="version" value="1.2"/>
121         <input type="hidden" name="operation" value="searchRetrieve"/>
122         <input type="hidden" name="stylesheet">
123           <xsl:attribute name="value">
124             <xsl:value-of select="//srw:echoedExplainRequest/srw:stylesheet"/>
125             <xsl:value-of select="//sru:echoedExplainRequest/sru:stylesheet"/>
126           </xsl:attribute>
127         </input>
128         <div class="query">
129           <input type="text" name="query"/>
130         </div>
131         <div class="parameters">
132           <xsl:text>startRecord: </xsl:text>
133           <input size="10" type="text" name="startRecord" value="1"/>
134           <xsl:text> maximumRecords: </xsl:text>
135           <input size="10" type="text" name="maximumRecords" value="5"/>
136           <xsl:text> recordSchema: </xsl:text>
137           <select name="recordSchema">
138           <xsl:for-each select="//zr:schemaInfo/zr:schema">
139             <option value="{@name}">
140               <xsl:value-of select="zr:title"/>
141             </option>
142           </xsl:for-each>
143           </select>
144           <xsl:text> recordPacking: </xsl:text>
145           <select name="recordPacking">
146             <option value="xml">XML</option>
147             <option value="string">string</option>
148           </select>
149
150         </div>
151
152         <div class="submit">
153           <input type="submit" value="Send Search Request"/>
154         </div>
155       </form>
156     </div>
157   </xsl:template>
158
159   <xsl:template name="indexinfo">
160      <div class="dbinfo">
161        <xsl:for-each
162           select="//zr:indexInfo/zr:index[zr:map/zr:name/@set]">
163         <xsl:variable name="index">
164           <xsl:value-of select="zr:map/zr:name/@set"/>
165           <xsl:text>.</xsl:text>
166           <xsl:value-of select="zr:map/zr:name/text()"/>
167         </xsl:variable>
168         <b><xsl:value-of select="$index"/><br/></b>
169       </xsl:for-each>
170      </div>
171   </xsl:template>
172
173
174   <xsl:template name="relationinfo">
175     <!--
176       <xsl:variable name="defrel"
177                     select="//zr:configInfo/zr:default[@type='relation']"/>
178       <b><xsl:value-of select="$defrel"/><br/></b>
179       -->
180       <xsl:for-each select="//zr:configInfo/zr:supports[@type='relation']">
181         <xsl:variable name="rel" select="text()"/>
182         <b><xsl:value-of select="$rel"/><br/></b>
183       </xsl:for-each>
184   </xsl:template>
185
186
187   <!-- diagnostics -->
188   <xsl:template name="diagnostic">
189     <xsl:for-each select="//diag:diagnostic">
190      <div class="diagnostic">
191         <!-- <xsl:value-of select="diag:uri"/> -->
192         <xsl:text> </xsl:text>
193         <xsl:value-of select="diag:message"/>
194         <xsl:text>: </xsl:text>
195         <xsl:value-of select="diag:details"/>
196       </div>
197     </xsl:for-each>
198   </xsl:template>
199
200   <xsl:template name="new-search">
201     <form name="newsearch" method="get">
202       <input type="hidden" name="version">
203         <xsl:attribute name="value">
204           <xsl:value-of
205               select="//srw:echoedSearchRetrieveRequest/srw:version"/>
206         </xsl:attribute>
207       </input>
208       <input type="hidden" name="stylesheet">
209         <xsl:attribute name="value">
210           <xsl:value-of
211               select="//srw:echoedSearchRetrieveRequest/srw:stylesheet"/>
212         </xsl:attribute>
213       </input>
214
215       <input type="submit">
216         <xsl:attribute name="value">
217           <xsl:text>New Query</xsl:text>
218         </xsl:attribute>
219       </input>
220     </form>
221   </xsl:template>
222
223   <xsl:template name="next-records">
224     <xsl:for-each select="srw:nextRecordPosition">
225       <form name="nextlink" method="get">
226         <input type="hidden" name="version">
227           <xsl:attribute name="value">
228             <xsl:value-of
229                 select="//srw:echoedSearchRetrieveRequest/srw:version"/>
230           </xsl:attribute>
231         </input>
232         <input type="hidden" name="operation" value="searchRetrieve"/>
233         <input type="hidden" name="query">
234           <xsl:attribute name="value">
235             <xsl:value-of
236                 select="//srw:echoedSearchRetrieveRequest/srw:query"/>
237           </xsl:attribute>
238         </input>
239         <input type="hidden" name="recordPacking">
240           <xsl:attribute name="value">
241             <xsl:value-of select="srw:recordPacking"/>
242           </xsl:attribute>
243         </input>
244         <input type="hidden" name="recordSchema">
245           <xsl:attribute name="value">
246             <xsl:value-of
247                 select="//srw:echoedSearchRetrieveRequest/srw:recordSchema"/>
248           </xsl:attribute>
249         </input>
250         <input type="hidden" name="stylesheet">
251           <xsl:attribute name="value">
252             <xsl:value-of
253                 select="//srw:echoedSearchRetrieveRequest/srw:stylesheet"/>
254           </xsl:attribute>
255         </input>
256         <input type="hidden" name="startRecord">
257           <xsl:attribute name="value">
258             <xsl:value-of select="."/>
259           </xsl:attribute>
260         </input>
261         <input type="hidden" name="maximumRecords">
262           <xsl:attribute name="value">
263             <xsl:value-of
264                 select="//srw:echoedSearchRetrieveRequest/srw:maximumRecords"/>
265           </xsl:attribute>
266         </input>
267         <input type="submit">
268           <xsl:attribute name="value">
269             <xsl:text>Next</xsl:text>
270           </xsl:attribute>
271         </input>
272       </form>
273     </xsl:for-each>
274   </xsl:template>
275
276   <xsl:template name="displaysearch">
277     <div class="searchresults">
278       <xsl:for-each select="srw:numberOfRecords">
279         <h4>
280           <xsl:text>Number of Records: </xsl:text>
281           <xsl:value-of select="."/>
282         </h4>
283       </xsl:for-each>
284
285       <xsl:call-template name="new-search"/>
286
287       <xsl:call-template name="next-records"/>
288
289       <xsl:for-each select="srw:records">
290         <xsl:for-each select="srw:record">
291           <hr/>
292           <div class="record">
293             <h4>
294               <xsl:text>Record </xsl:text>
295               <xsl:value-of select="srw:recordPosition"/>
296             </h4>
297             <p>
298               <xsl:if test="srw:recordPacking='string'">
299                 <pre>
300                   <xsl:value-of select="srw:recordData"/>
301                 </pre>
302               </xsl:if>
303               <xsl:if test="srw:recordPacking='xml'">
304                 <xsl:choose>
305                   <xsl:when test="srw:recordSchema='marcxml'">
306                     <xsl:text>MARCXML</xsl:text>
307                   </xsl:when>
308                   <xsl:when test="srw:recordSchema='bibframe'">
309                     <xsl:apply-templates select="srw:recordData"/>
310                   </xsl:when>
311                 </xsl:choose>
312               </xsl:if>
313             </p>
314           </div>
315           <table>
316             <tr>
317               <td>
318               <form name="fulllink" method="get">
319                 <input type="hidden" name="version">
320                   <xsl:attribute name="value">
321                     <xsl:value-of
322                         select="//srw:echoedSearchRetrieveRequest/srw:version"/>
323                   </xsl:attribute>
324                 </input>
325                 <input type="hidden" name="operation" value="searchRetrieve"/>
326                 <input type="hidden" name="query">
327                   <xsl:attribute name="value">
328                     <xsl:value-of
329                         select="//srw:echoedSearchRetrieveRequest/srw:query"/>
330                   </xsl:attribute>
331                 </input>
332                 <input type="hidden" name="recordPacking">
333                   <xsl:attribute name="value">
334                     <xsl:value-of select="srw:recordPacking"/>
335                   </xsl:attribute>
336                 </input>
337                 <input type="hidden" name="recordSchema">
338                   <xsl:attribute name="value">
339                     <xsl:value-of select="srw:recordSchema"/>
340                   </xsl:attribute>
341                 </input>
342                 <input type="hidden" name="stylesheet" value="/fullDisplay.xsl"/>
343                 <input type="hidden" name="startRecord">
344                   <xsl:attribute name="value">
345                     <xsl:value-of select="srw:recordPosition"/>
346                   </xsl:attribute>
347                 </input>
348                 <input type="hidden" name="maximumRecords" value="1"/>
349                 <input type="submit">
350                   <xsl:attribute name="value">
351                     <xsl:text>Full Record </xsl:text>
352                     <xsl:value-of select="srw:recordPosition"/>
353                   </xsl:attribute>
354                 </input>
355               </form>
356               </td>
357               <td>
358               <form name="rawlink" method="get">
359                 <input type="hidden" name="version">
360                   <xsl:attribute name="value">
361                     <xsl:value-of
362                         select="//srw:echoedSearchRetrieveRequest/srw:version"/>
363                   </xsl:attribute>
364                 </input>
365                 <input type="hidden" name="operation" value="searchRetrieve"/>
366                 <input type="hidden" name="query">
367                   <xsl:attribute name="value">
368                     <xsl:value-of
369                         select="//srw:echoedSearchRetrieveRequest/srw:query"/>
370                   </xsl:attribute>
371                 </input>
372                 <input type="hidden" name="recordPacking">
373                   <xsl:attribute name="value">
374                     <xsl:value-of select="srw:recordPacking"/>
375                   </xsl:attribute>
376                 </input>
377                 <input type="hidden" name="recordSchema">
378                   <xsl:attribute name="value">
379                     <xsl:value-of select="srw:recordSchema"/>
380                   </xsl:attribute>
381                 </input>
382                 <input type="hidden" name="startRecord">
383                   <xsl:attribute name="value">
384                     <xsl:value-of select="srw:recordPosition"/>
385                   </xsl:attribute>
386                 </input>
387                 <input type="hidden" name="maximumRecords" value="1"/>
388                 <input type="submit">
389                   <xsl:attribute name="value">
390                     <xsl:text>Raw Record </xsl:text>
391                     <xsl:value-of select="srw:recordPosition"/>
392                   </xsl:attribute>
393                 </input>
394               </form>
395               </td>
396             </tr>
397           </table>
398         </xsl:for-each>
399       </xsl:for-each>
400
401       <xsl:call-template name="next-records"/>
402
403     </div>
404   </xsl:template>
405
406 </xsl:stylesheet>