1 <?xml version="1.0" encoding="utf-8"?>
\r
2 <xsl:stylesheet version="1.0"
\r
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
\r
4 xmlns:srw="http://www.loc.gov/zing/srw/"
\r
5 xmlns:zr="http://explain.z3950.org/dtd/2.0/"
\r
6 xmlns:diag="http://www.loc.gov/zing/srw/diagnostic/">
\r
8 <!-- Author: Rob Sanderson (azaroth@liv.ac.uk)
\r
10 Last Updated: 27/11/2003
\r
13 Updated by Hedzer Westra (Adlib Information Systems) on 07-12-2004
\r
17 <xsl:output method="html"/>
\r
19 <xsl:template match="/srw:explainResponse">
\r
23 <xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:databaseInfo/zr:title"/>
\r
26 H2 {font-family: sans-serif; color: #FF5500; background-color: #eeeeff; padding-top: 10px; padding-bottom: 10px; border: 1px solid #3333FF}
\r
27 H3 { font-family: sans-serif; color: #F65500; text-indent: 20px; border-left: solid 1px #3333FF; border-top: solid 1px #3333FF; padding-top: 5px }
\r
28 .paramTable { vertical-align: top; border: 1px solid; padding: 3px; border-collapse: collapse }
\r
29 .exampleTable { vertical-align: top; border: 1px solid; padding: 3px; border-collapse: collapse; background-color: #eeeeff}
\r
31 .paramTable TD {border: 1px solid}
\r
32 .exampleTable TD {border: 1px solid}
\r
33 TH {border: 1px solid; background-color: #eeeeff}
\r
39 function mungeForm() {
\r
40 inform = document.CQLForm;
\r
41 outform = document.SRUForm;
\r
42 max = inform.maxIndex.value;
\r
45 // Step through elements in form to create CQL
\r
46 for (var idx = 1; idx <= max; idx++) {
\r
47 term = inform["term"+idx].value;
\r
50 cql += " " + inform["bool" + prevIdx].value + " "
\r
52 if (term.indexOf(' ')) {
\r
53 term = '"' + term + '"';
\r
55 cql += inform["index" + idx].value + " " + inform["relat" + idx].value + " " + term
\r
60 alert("At least one term is required to search.");
\r
63 outform.query.value = cql
\r
68 function mungeScanForm() {
\r
69 inform = document.ScanIndexes;
\r
70 outform = document.ScanSubmit;
\r
71 index = inform.scanIndex.value;
\r
72 term = inform.term.value;
\r
73 relat = inform.relat.value;
\r
74 outform.scanClause.value = index + " " + relat +" \"" + term + "\""
\r
82 <body bgcolor="#FFFFFF">
\r
85 <xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:databaseInfo/zr:title"/>
\r
87 <xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:databaseInfo/zr:implementation/zr:title"/>
\r
92 <xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:databaseInfo/zr:description"/>
\r
95 <xsl:apply-templates select="srw:diagnostics"/>
\r
97 <table width="100%" cellspacing="5">
\r
103 <form name="CQLForm" onSubmit="return mungeForm();">
\r
104 <input type="submit" value="Search" onClick="return mungeForm();"/>
\r
105 <table class="paramTable">
\r
106 <tr><th>Index</th><th>Relation</th><th>Term</th><th>Boolean</th></tr>
\r
107 <input type="hidden" name="maxIndex">
\r
108 <xsl:attribute name="value">
\r
109 <xsl:value-of select="count(srw:record/srw:recordData/zr:explain/zr:indexInfo/zr:index)"/>
\r
112 <xsl:for-each select="srw:record/srw:recordData/zr:explain/zr:indexInfo/zr:index">
\r
113 <xsl:sort select="."/>
\r
116 <b><xsl:value-of select="zr:title"/></b>
\r
117 <input type="hidden">
\r
118 <xsl:attribute name="name">index<xsl:value-of select="position()"/></xsl:attribute>
\r
119 <xsl:attribute name="value"><xsl:value-of select="zr:map[1]/zr:name/@set"/>.<xsl:value-of select="zr:map[1]/zr:name"/></xsl:attribute>
\r
124 <xsl:attribute name="name">relat<xsl:value-of select="position()"/></xsl:attribute>
\r
125 <option value="=">=</option>
\r
126 <option value="exact">exact</option>
\r
127 <option value="any">any</option>
\r
128 <option value="all">all</option>
\r
129 <option value="<"><</option>
\r
130 <option value=">">></option>
\r
131 <option value="<="><=</option>
\r
132 <option value=">=">>=</option>
\r
133 <option value="<>">not</option>
\r
134 <option value="broader">broader</option>
\r
135 <option value="narrower">narrower</option>
\r
136 <option value="generic">generic</option>
\r
137 <option value="realted">related</option>
\r
138 <option value="topterm">topterm</option>
\r
139 <option value="parents">parents</option>
\r
143 <input type="text" value="">
\r
144 <xsl:attribute name="name">term<xsl:value-of select="position()"/></xsl:attribute>
\r
149 <xsl:attribute name="name">bool<xsl:value-of select="position()"/></xsl:attribute>
\r
150 <option value="and">and</option>
\r
151 <option value="or">or</option>
\r
152 <option value="not">not</option>
\r
160 <form method="GET" name="SRUForm" onSubmit="mungeForm()">
\r
162 <input type="hidden" name="query" value=""/>
\r
163 <input type="hidden" name="version" value="1.1"/>
\r
164 <input type="hidden" name="operation" value="searchRetrieve"/>
\r
165 <input type="hidden" name="stylesheet" value="searchRetrieveResponse.xsl"/>
\r
169 <td><b>Record Schema:</b>
\r
172 <select name="recordSchema">
\r
173 <xsl:for-each select="srw:record/srw:recordData/zr:explain/zr:schemaInfo/zr:schema">
\r
175 <xsl:attribute name="value">
\r
176 <xsl:value-of select="@identifier"/>
\r
178 <xsl:value-of select="zr:title"/>
\r
185 <td><b>Number of Records:</b></td>
\r
187 <input type="text" name="maximumRecords">
\r
188 <xsl:attribute name="value">
\r
190 <xsl:when test='srw:record/srw:recordData/zr:explain/zr:configInfo/zr:default[@type="numberOfRecords"]'>
\r
191 <xsl:value-of select='srw:record/srw:recordData/zr:explain/zr:configInfo/zr:default[@type="numberOfRecords"]'/>
\r
194 <xsl:text>1</xsl:text>
\r
203 <td><b>Record Position:</b></td>
\r
205 <input type="text" name="startRecord" value="1"/>
\r
209 <td><b>Result Set TTL:</b></td>
\r
211 <input type="text" name="resultSetTTL" value="0"/>
\r
216 <td><b>Record Packing:</b></td>
\r
218 <select name="recordPacking">
\r
219 <option value="xml">XML</option>
\r
220 <option value="string">String</option>
\r
226 <td><b>Record XPath:</b></td>
\r
227 <td><input type="text" name="recordXPath" value = ""/></td>
\r
231 <td><b>Sort Keys:</b></td>
\r
232 <td><input type="text" name="sortKeys" value = ""/></td>
\r
237 <input type="submit" value="Search" onClick="return mungeForm();"/>
\r
241 </td><td valign="top">
\r
244 <!-- Some browsers won't display when forms inside tables :( -->
\r
246 <form name="ScanIndexes" onSubmit="return mungeScanForm();">
\r
248 <tr><th>Index</th><th>Relation</th><th>Term</th><th>Boolean</th></tr>
\r
250 <td><select name="scanIndex">
\r
251 <xsl:for-each select="srw:record/srw:recordData/zr:explain/zr:indexInfo/zr:index">
\r
252 <xsl:sort select="."/>
\r
254 <xsl:attribute name="value"><xsl:value-of select="zr:map[1]/zr:name/@set"/>.<xsl:value-of select="zr:map[1]/zr:name"/></xsl:attribute>
\r
255 <xsl:value-of select="zr:title"/>
\r
260 <td><select name="relat">
\r
261 <option value="=">=</option>
\r
262 <option value="exact">exact</option>
\r
263 <option value="any">any</option>
\r
264 <option value="all">all</option>
\r
265 <option value="<"><</option>
\r
266 <option value=">">></option>
\r
267 <option value="<="><=</option>
\r
268 <option value=">=">>=</option>
\r
269 <option value="<>">not</option>
\r
272 <td><input name="term" type="text" value = ""/>
\r
278 <form name="ScanSubmit" method="GET">
\r
279 <xsl:attribute name="action">http://<xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:serverInfo/zr:host"/>:<xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:serverInfo/zr:port"/>/<xsl:value-of select="srw:record/srw:recordData/zr:explain/zr:serverInfo/zr:database"/>
\r
283 <td>Response Position:</td>
\r
285 <input type="text" name="responsePosition" value="1" size="5"/>
\r
289 <td>Maximum Terms:</td>
\r
291 <input type="text" name="maximumTerms" value="20" size="5"/>
\r
296 <input type="submit" value="Browse" onClick="return mungeScanForm();"/>
\r
300 <input type="hidden" name="operation" value="scan"/>
\r
301 <input type="hidden" name="scanClause" value=""/>
\r
302 <input type="hidden" name="version" value="1.1"/>
\r
303 <input type="hidden" name="stylesheet" value="scanResponse.xsl"/>
\r
314 <xsl:template match="srw:diagnostics">
\r
315 <h3>Diagnostics</h3>
\r
316 <xsl:apply-templates/>
\r
319 <xsl:template match="diag:diagnostic">
\r
321 <xsl:apply-templates/>
\r
324 <xsl:template match="diag:code">
\r
325 <tr><td><b>Code:</b></td><td> <xsl:value-of select="."/></td></tr>
\r
327 <xsl:template match="diag:message">
\r
328 <tr><td><b>Message:</b></td><td><xsl:value-of select="."/></td></tr>
\r
330 <xsl:template match="diag:details">
\r
331 <tr><td><b>Details:</b></td><td><xsl:value-of select="."/></td></tr>
\r