Added test case for SRU target. Currently set to a german one that creates problem
authorDennis Schafroth <dennis@indexdata.com>
Wed, 22 Sep 2010 14:00:04 +0000 (16:00 +0200)
committerDennis Schafroth <dennis@indexdata.com>
Wed, 22 Sep 2010 14:00:04 +0000 (16:00 +0200)
test/gbv-sru-marc.xml [new file with mode: 0644]
test/marc21-gbv.xsl [new file with mode: 0644]
test/sru-gbv.de.xml [new file with mode: 0644]
test/test_sru.cfg [new file with mode: 0644]
test/test_sru.sh [new file with mode: 0644]
test/test_sru_1.res [new file with mode: 0644]
test/test_sru_2.res [new file with mode: 0644]
test/test_sru_3.res [new file with mode: 0644]
test/test_sru_urls [new file with mode: 0644]

diff --git a/test/gbv-sru-marc.xml b/test/gbv-sru-marc.xml
new file mode 100644 (file)
index 0000000..bf5d7d1
--- /dev/null
@@ -0,0 +1,27 @@
+<settings target="gso.gbv.de/sru/DB=2.1">\r
+<!-- \r
+       GBV SRU Server mit MARC Format\r
+       Benötigt eigenes XSL, da die GBV-Daten \r
+       den Namespace marc: in den Tagnamen auslassen.\r
+-->\r
+\r
+  <set name="pz:name" value="GBV SRU MARC"/>\r
+\r
+  <!-- 2010-08-25: GBV unterstützt nur get und post in Version 1.1 -->\r
+  <set name="pz:sru" value="get"/> \r
+  <set name="pz:sru_version" value="1.1"/>\r
+\r
+\r
+  <!-- mapping for unqualified search -->\r
+  <set name="pz:cclmap:term" value="u=cql.serverChoice t=l,r s=al"/>\r
+\r
+\r
+  <!-- SRU schema. Eg. "dc" or "marcxml" -->\r
+  <set name="pz:elements" value="marc21"/>\r
+\r
+\r
+  <!-- Result normalization settings -->\r
+  <set name="pz:nativesyntax" value="xml"/>\r
+  <set name="pz:xslt" value="marc21-gbv.xsl"/>\r
+\r
+</settings>\r
diff --git a/test/marc21-gbv.xsl b/test/marc21-gbv.xsl
new file mode 100644 (file)
index 0000000..59a5553
--- /dev/null
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xsl:stylesheet\r
+    version="1.0"\r
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+    xmlns:pz="http://www.indexdata.com/pazpar2/1.0"\r
+    xmlns:marc="http://www.loc.gov/MARC21/slim">\r
+  \r
+  <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>\r
+\r
+<!-- Extract metadata from MARC21/USMARC \r
+      http://www.loc.gov/marc/bibliographic/ecbdhome.html\r
+-->  \r
+<!-- <xsl:template match="*"/> -->\r
+\r
+  <xsl:template name="record-hook"/>\r
+\r
+  <xsl:template match="/">\r
+    <xsl:apply-templates/>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="record">\r
+    <xsl:variable name="title_medium" select="datafield[@tag='245']/subfield[@code='h']"/>\r
+    <xsl:variable name="journal_title" select="datafield[@tag='773']/subfield[@code='t']"/>\r
+    <xsl:variable name="electronic_location_url" select="datafield[@tag='856']/subfield[@code='u']"/>\r
+    <xsl:variable name="fulltext_a" select="datafield[@tag='900']/subfield[@code='a']"/>\r
+    <xsl:variable name="fulltext_b" select="datafield[@tag='900']/subfield[@code='b']"/>\r
+    <xsl:variable name="medium">\r
+      <xsl:choose>\r
+       <xsl:when test="$title_medium">\r
+         <xsl:value-of select="translate($title_medium, ' []/', '')"/>\r
+       </xsl:when>\r
+       <xsl:when test="$fulltext_a">\r
+         <xsl:text>electronic resource</xsl:text>\r
+       </xsl:when>\r
+       <xsl:when test="$fulltext_b">\r
+         <xsl:text>electronic resource</xsl:text>\r
+       </xsl:when>\r
+       <xsl:when test="$journal_title">\r
+         <xsl:text>article</xsl:text>\r
+       </xsl:when>\r
+       <xsl:otherwise>\r
+         <xsl:text>book</xsl:text>\r
+       </xsl:otherwise>\r
+      </xsl:choose>\r
+    </xsl:variable>\r
+\r
+    <pz:record>\r
+      \r
+      <xsl:for-each select="controlfield[@tag='001']">\r
+        <pz:metadata type="id">\r
+          <xsl:value-of select="."/>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='010']">\r
+        <pz:metadata type="lccn">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='020']">\r
+        <pz:metadata type="isbn">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='022']">\r
+        <pz:metadata type="issn">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='027']">\r
+        <pz:metadata type="tech-rep-nr">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='035']">\r
+        <pz:metadata type="system-control-nr">\r
+          <xsl:choose>\r
+            <xsl:when test="subfield[@code='a']">\r
+              <xsl:value-of select="subfield[@code='a']"/>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              <xsl:value-of select="subfield[@code='b']"/>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='100']">\r
+       <pz:metadata type="author">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="author-title">\r
+         <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="author-date">\r
+         <xsl:value-of select="subfield[@code='d']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='110']">\r
+       <pz:metadata type="corporate-name">\r
+           <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="corporate-location">\r
+           <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="corporate-date">\r
+           <xsl:value-of select="subfield[@code='d']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='111']">\r
+       <pz:metadata type="meeting-name">\r
+           <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="meeting-location">\r
+           <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="meeting-date">\r
+           <xsl:value-of select="subfield[@code='d']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='260']">\r
+       <pz:metadata type="date">\r
+           <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='245']">\r
+        <pz:metadata type="title">\r
+          <xsl:value-of select="subfield[@code='a']"/>\r
+        </pz:metadata>\r
+        <pz:metadata type="title-remainder">\r
+          <xsl:value-of select="subfield[@code='b']"/>\r
+        </pz:metadata>\r
+        <pz:metadata type="title-responsibility">\r
+          <xsl:value-of select="subfield[@code='c']"/>\r
+        </pz:metadata>\r
+        <pz:metadata type="title-dates">\r
+          <xsl:value-of select="subfield[@code='f']"/>\r
+        </pz:metadata>\r
+        <pz:metadata type="title-medium">\r
+          <xsl:value-of select="subfield[@code='h']"/>\r
+        </pz:metadata>\r
+        <pz:metadata type="title-number-section">\r
+          <xsl:value-of select="subfield[@code='n']"/>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='250']">\r
+       <pz:metadata type="edition">\r
+           <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='260']">\r
+        <pz:metadata type="publication-place">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+        <pz:metadata type="publication-name">\r
+         <xsl:value-of select="subfield[@code='b']"/>\r
+       </pz:metadata>\r
+        <pz:metadata type="publication-date">\r
+         <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='300']">\r
+       <pz:metadata type="physical-extent">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-format">\r
+         <xsl:value-of select="subfield[@code='b']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-dimensions">\r
+         <xsl:value-of select="subfield[@code='c']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-accomp">\r
+         <xsl:value-of select="subfield[@code='e']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-unittype">\r
+         <xsl:value-of select="subfield[@code='f']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-unitsize">\r
+         <xsl:value-of select="subfield[@code='g']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="physical-specified">\r
+         <xsl:value-of select="subfield[@code='3']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='440']">\r
+       <pz:metadata type="series-title">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag = '500' or @tag = '505' or\r
+               @tag = '518' or @tag = '520' or @tag = '522']">\r
+       <pz:metadata type="description">\r
+            <xsl:value-of select="*/text()"/>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+      \r
+      <xsl:for-each select="datafield[@tag='600' or @tag='610' or @tag='611' or @tag='630' or @tag='648' or @tag='650' or @tag='651' or @tag='653' or @tag='654' or @tag='655' or @tag='656' or @tag='657' or @tag='658' or @tag='662' or @tag='69X']">\r
+        <pz:metadata type="subject">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="subject-long">\r
+         <xsl:for-each select="subfield">\r
+           <xsl:if test="position() > 1">\r
+             <xsl:text>, </xsl:text>\r
+           </xsl:if>\r
+           <xsl:value-of select="."/>\r
+         </xsl:for-each>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='856']">\r
+       <pz:metadata type="electronic-url">\r
+         <xsl:value-of select="subfield[@code='u']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="electronic-text">\r
+         <xsl:value-of select="subfield[@code='y' or @code='3']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="electronic-note">\r
+         <xsl:value-of select="subfield[@code='z']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="electronic-format-instruction">\r
+         <xsl:value-of select="subfield[@code='i']"/>\r
+       </pz:metadata>\r
+       <pz:metadata type="electronic-format-type">\r
+         <xsl:value-of select="subfield[@code='q']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='773']">\r
+       <pz:metadata type="citation">\r
+             <xsl:for-each select="*">\r
+               <xsl:value-of select="normalize-space(.)"/>\r
+               <xsl:text> </xsl:text>\r
+         </xsl:for-each>\r
+        </pz:metadata>\r
+        <xsl:if test="subfield[@code='t']">\r
+         <pz:metadata type="journal-title">\r
+               <xsl:value-of select="subfield[@code='t']"/>\r
+          </pz:metadata>          \r
+        </xsl:if>\r
+        <xsl:if test="subfield[@code='g']">\r
+         <pz:metadata type="journal-subpart">\r
+               <xsl:value-of select="subfield[@code='g']"/>\r
+          </pz:metadata>          \r
+        </xsl:if>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='852']">\r
+        <xsl:if test="subfield[@code='y']">\r
+         <pz:metadata type="publicnote">\r
+           <xsl:value-of select="subfield[@code='y']"/>\r
+         </pz:metadata>\r
+       </xsl:if>\r
+       <xsl:if test="subfield[@code='h']">\r
+         <pz:metadata type="callnumber">\r
+           <xsl:value-of select="subfield[@code='h']"/>\r
+         </pz:metadata>\r
+       </xsl:if>\r
+      </xsl:for-each>\r
+\r
+      <pz:metadata type="medium">\r
+       <xsl:value-of select="$medium"/>\r
+      </pz:metadata>\r
+      \r
+      <xsl:for-each select="datafield[@tag='900']/subfield[@code='a']">\r
+        <pz:metadata type="fulltext">\r
+          <xsl:value-of select="."/>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <!-- <xsl:if test="$fulltext_a">\r
+       <pz:metadata type="fulltext">\r
+         <xsl:value-of select="$fulltext_a"/>\r
+       </pz:metadata>\r
+      </xsl:if> -->\r
+\r
+      <xsl:for-each select="datafield[@tag='900']/subfield[@code='b']">\r
+        <pz:metadata type="fulltext">\r
+          <xsl:value-of select="."/>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <!-- <xsl:if test="$fulltext_b">\r
+       <pz:metadata type="fulltext">\r
+         <xsl:value-of select="$fulltext_b"/>\r
+       </pz:metadata>\r
+      </xsl:if> -->\r
+\r
+      <xsl:for-each select="datafield[@tag='907' or @tag='901']">\r
+        <pz:metadata type="iii-id">\r
+         <xsl:value-of select="subfield[@code='a']"/>\r
+       </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='926']">\r
+        <pz:metadata type="holding">\r
+         <xsl:for-each select="subfield">\r
+           <xsl:if test="position() > 1">\r
+             <xsl:text> </xsl:text>\r
+           </xsl:if>\r
+           <xsl:value-of select="."/>\r
+         </xsl:for-each>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='948']">\r
+        <pz:metadata type="holding">\r
+         <xsl:for-each select="subfield">\r
+           <xsl:if test="position() > 1">\r
+             <xsl:text> </xsl:text>\r
+           </xsl:if>\r
+           <xsl:value-of select="."/>\r
+         </xsl:for-each>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="datafield[@tag='991']">\r
+        <pz:metadata type="holding">\r
+         <xsl:for-each select="subfield">\r
+           <xsl:if test="position() > 1">\r
+             <xsl:text> </xsl:text>\r
+           </xsl:if>\r
+           <xsl:value-of select="."/>\r
+         </xsl:for-each>\r
+        </pz:metadata>\r
+      </xsl:for-each>\r
+\r
+      <!-- passthrough id data -->\r
+      <xsl:for-each select="pz:metadata">\r
+          <xsl:copy-of select="."/>\r
+      </xsl:for-each>\r
+\r
+      <!-- other stylesheets importing this might want to define this -->\r
+      <xsl:call-template name="record-hook"/>\r
+\r
+    </pz:record>    \r
+  </xsl:template>\r
+  \r
+  <xsl:template match="text()"/>\r
+\r
+</xsl:stylesheet>\r
diff --git a/test/sru-gbv.de.xml b/test/sru-gbv.de.xml
new file mode 100644 (file)
index 0000000..033ea9e
--- /dev/null
@@ -0,0 +1,32 @@
+<settings target="gso.gbv.de/sru/DB=2.1">
+
+  <!-- Simple test against a local SRU server (could be yaz-ztest) -->
+
+  <set name="pz:sru" value="get"/> <!-- must be get, post or soap -->
+  <set name="pz:sru_version" value="1.1"/>
+  <set name="pz:name" value="GBV.DE"/>
+
+<!--
+  <set name="pz:maxrecs" value="27"/>
+-->
+
+  <!-- mapping for unqualified search -->
+  <set name="pz:cclmap:term" value="u=cql.serverChoice t=l,r s=al"/>
+
+  <!-- field-specific mappings -->
+  <set name="pz:cclmap:ti" value="u=dc.title t=l,r s=al"/>
+  <set name="pz:cclmap:su" value="u=dc.subject s=al"/>
+  <set name="pz:cclmap:isbn" value="u=bath.isbn"/>
+  <set name="pz:cclmap:issn" value="u=bath.issn"/>
+  <set name="pz:cclmap:date" value="u=dc.date r=r"/>
+
+  <!-- Retrieval settings -->
+
+  <set name="pz:elements" value="dc"/>
+
+  <!-- Result normalization settings -->
+
+  <set name="pz:nativesyntax" value="xml"/>
+  <set name="pz:xslt" value="dc.xsl"/>
+
+</settings>
diff --git a/test/test_sru.cfg b/test/test_sru.cfg
new file mode 100644 (file)
index 0000000..636bdff
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
+  <!-- Used by test_http.sh -->
+  <server>
+    <listen port="9763"/>
+    <proxy host="localhost"/>
+    
+    <service>
+      <include src="gbv-sru-marc.xml"/>
+      <targetprofiles type="local" src="../zeerex/records/"/>
+      <metadata name="url" merge="unique"/>
+      <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6" mergekey="required" />
+      <metadata name="title-remainder" brief="yes" merge="longest" rank="5"/>
+      <metadata name="isbn"/>
+      <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
+               termlist="yes"/>
+      <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2" mergekey="optional" />
+      <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
+      <metadata name="id"/>
+      <metadata name="lccn" merge="unique"/>
+      <metadata name="description" brief="yes" merge="longest" rank="3"/>
+      
+      <metadata name="test-usersetting" brief="yes" setting="postproc"/>
+      <metadata name="test" setting="parameter"/>
+      <metadata name="test-usersetting-2" brief="yes"/>
+    </service>
+
+    <include src="*_service.xml"/> 
+    <include src="no_such_service.xml"/>
+
+  </server>
+  
+  
+</pazpar2>
+<!-- Keep this comment at the end of the file
+     Local variables:
+     mode: nxml
+     End:
+-->
diff --git a/test/test_sru.sh b/test/test_sru.sh
new file mode 100644 (file)
index 0000000..9bc98bf
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# srcdir might be set by make
+srcdir=${srcdir:-"."}
+
+#TODO set up solr target. For now use donut 
+#F=../solr/client.sh 
+#
+#rm -f solr.pid
+#$F -l solr.log -p ztest.pid -D @:9999
+#sleep 1
+#if test ! -f ztest.pid; then
+#    echo "yaz-ztest could not be started"
+#    exit 0
+#fi
+
+${srcdir}/run_pazpar2.sh test_sru
+E=$?
+
+#kill `cat ztest.pid`
+#rm ztest.pid
+exit $E
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation: 2
+# sh-basic-offset: 4
+# End:
diff --git a/test/test_sru_1.res b/test/test_sru_1.res
new file mode 100644 (file)
index 0000000..81ff9ff
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<init><status>OK</status><session>1</session><protocol>1</protocol></init>
\ No newline at end of file
diff --git a/test/test_sru_2.res b/test/test_sru_2.res
new file mode 100644 (file)
index 0000000..ab63fe6
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<search><status>OK</status></search>
\ No newline at end of file
diff --git a/test/test_sru_3.res b/test/test_sru_3.res
new file mode 100644 (file)
index 0000000..9e30100
--- /dev/null
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<show>
+<status>OK</status>
+<activeclients>0</activeclients>
+<merged>14</merged>
+<total>0</total>
+<start>0</start>
+<num>14</num>
+<hit>
+
+<md-title>The last man</md-title>
+<md-title-remainder>: in 3 vol</md-title-remainder>
+<md-author>Shelley, Mary W</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The last man</md-title>
+<md-title-remainder>: in 3 vol</md-title-remainder>
+<md-author>Shelley, Mary W</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The last man</md-title>
+<md-title-remainder>: in 3 vol</md-title-remainder>
+<md-author>Shelley, Mary W</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<count>2</count>
+<relevance>921034</relevance>
+<recid>title the last man author shelley mary w</recid>
+</hit>
+<hit>
+
+<md-title>Das profunde Verständnis fundamentaler Mathematik von Lehrkräften als Ausgangspunkt für eine Verbesserung der Unterrichtsqualität</md-title>
+<md-title-remainder>eine empirische Analyse unter Einschluss eines länderübergreifenden Vergleichs</md-title-remainder>
+<md-date>2005</md-date>
+<md-author>Seyd, Christofer</md-author>
+<md-description>Research in the professional action and the didactical expertise of teachers is a white spot on the map. This study supports the thesis that this is a starting point for the improvement of class teaching. This is first of all true for a certain sector of the spectrum of schools and classes: mathematical lessons in 4th grade elementary school. However, lessons drawn from this sector may well allow conclusions and reasons as well as chances for improvements for the observations made in the cited comparative intercultural Studies</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Das profunde Verständnis fundamentaler Mathematik von Lehrkräften als Ausgangspunkt für eine Verbesserung der Unterrichtsqualität</md-title>
+<md-title-remainder>eine empirische Analyse unter Einschluss eines länderübergreifenden Vergleichs</md-title-remainder>
+<md-date>2005</md-date>
+<md-author>Seyd, Christofer</md-author>
+<md-description>Dateien im PDF-Format</md-description>
+<md-description>Parallel als Druckausg. erschienen</md-description>
+<md-description>Research in the professional action and the didactical expertise of teachers is a white spot on the map. This study supports the thesis that this is a starting point for the improvement of class teaching. This is first of all true for a certain sector of the spectrum of schools and classes: mathematical lessons in 4th grade elementary school. However, lessons drawn from this sector may well allow conclusions and reasons as well as chances for improvements for the observations made in the cited comparative intercultural Studies</md-description></location>
+<relevance>0</relevance>
+<recid>title das profunde verst ndnis fundamentaler mathematik von lehrkr ften als ausgangspunkt f r eine verbesserung der unterrichtsqualit t author seyd christofer</recid>
+</hit>
+<hit>
+
+<md-title>Das Programm der Bildung für nachhaltige Entwicklung</md-title>
+<md-title-remainder>eine systemische Diagnose mit den Schemata Qualität und Nachhaltigkeit</md-title-remainder>
+<md-author>Siemer, Stefan Hermann</md-author>
+<md-description>System protest! This thesis is about communication. About systems, schemata, quality, sustainability, about education and education for sustainable development. This thesis is about the question what constitutes good education for sustainable development. This thesis is about the manifold problems following such questions. This thesis is about ways out of these manifold problems that only appear, however, when you&amp;rsquo;re not looking for them</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Das Programm der Bildung für nachhaltige Entwicklung</md-title>
+<md-title-remainder>eine systemische Diagnose mit den Schemata Qualität und Nachhaltigkeit</md-title-remainder>
+<md-author>Siemer, Stefan Hermann</md-author>
+<md-description>Parallel als Druckausg. erschienen</md-description>
+<md-description>System protest! This thesis is about communication. About systems, schemata, quality, sustainability, about education and education for sustainable development. This thesis is about the question what constitutes good education for sustainable development. This thesis is about the manifold problems following such questions. This thesis is about ways out of these manifold problems that only appear, however, when you&amp;rsquo;re not looking for them</md-description></location>
+<relevance>0</relevance>
+<recid>title das programm der bildung f r nachhaltige entwicklung author siemer stefan hermann</recid>
+</hit>
+<hit>
+
+<md-title>Die Praxis der Orgelstimmung in Norddeutschland im 17. und 18 Jahrhundert und ihr Verhältnis zur zeitgenössischen Musikpraxis</md-title>
+<md-date>2007</md-date>
+<md-author>Ortgies, Ibo</md-author>
+<md-description>Mit Genehmigung des Autors von elektronischer Ressource ausgedr. Ex</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Die Praxis der Orgelstimmung in Norddeutschland im 17. und 18 Jahrhundert und ihr Verhältnis zur zeitgenössischen Musikpraxis</md-title>
+<md-date>2007</md-date>
+<md-author>Ortgies, Ibo</md-author>
+<md-description>Mit Genehmigung des Autors von elektronischer Ressource ausgedr. Ex</md-description></location>
+<relevance>0</relevance>
+<recid>title die praxis der orgelstimmung in norddeutschland im und jahrhundert und ihr verh ltnis zur zeitgen ssischen musikpraxis author ortgies ibo</recid>
+</hit>
+<hit>
+
+<md-title>Eleanor&apos;s victory</md-title>
+<md-title-remainder>: in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Eleanor&apos;s victory</md-title>
+<md-title-remainder>: in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Eleanor&apos;s victory</md-title>
+<md-title-remainder>: in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<count>2</count>
+<relevance>0</relevance>
+<recid>title eleanor s victory author braddon mary e</recid>
+</hit>
+<hit>
+
+<md-title>Henry Dunbar</md-title>
+<md-title-remainder>: the story of an outcast; in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Henry Dunbar</md-title>
+<md-title-remainder>: the story of an outcast; in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Henry Dunbar</md-title>
+<md-title-remainder>: the story of an outcast; in 2 vol</md-title-remainder>
+<md-author>Braddon, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<count>2</count>
+<relevance>0</relevance>
+<recid>title henry dunbar author braddon mary e</recid>
+</hit>
+<hit>
+
+<md-title>Kompetenz und Kreativität</md-title>
+<md-title-remainder>: eine Universität in Entwicklung; Hartwig Donner zum 60. Geburtstag</md-title-remainder>
+<md-date>2001</md-date>
+<md-description>Parallel als Online-Ausg. erschienen unter der Adresse &lt;1&gt;html =A http://www.gbv.de/dms/lueneburg/LG/OPUS/2001/78/pdf/donner1.pdf</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Kompetenz und Kreativität</md-title>
+<md-title-remainder>: eine Universität in Entwicklung; Hartwig Donner zum 60. Geburtstag</md-title-remainder>
+<md-date>2001</md-date>
+<md-description>Literaturangaben</md-description>
+<md-description>Parallel als Online-Ausg. erschienen unter der Adresse &lt;1&gt;html =A http://www.gbv.de/dms/lueneburg/LG/OPUS/2001/78/pdf/donner1.pdf</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Kompetenz und Kreativität</md-title>
+<md-title-remainder>eine Universität in Entwicklung ; Hartwig Donner zum 60. Geburtstag</md-title-remainder>
+<md-description>Parallel als Druckausg. erschienen</md-description>
+<md-description>Universität Lüneburg, Festschrift</md-description></location>
+<count>2</count>
+<relevance>0</relevance>
+<recid>title kompetenz und kreativit t</recid>
+</hit>
+<hit>
+
+<md-title>Le génie logiciel &amp; ses applications</md-title>
+<md-title-remainder>huitièmes journées internationales ; 15 - 17 novembre 1995, Paris, La Défense ; actes = Software engineering &amp; its applications</md-title-remainder>
+<md-date>1995</md-date><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Le génie logiciel &amp; ses applications</md-title>
+<md-title-remainder>huitièmes journées internationales ; 15 - 17 novembre 1995, Paris, La Défense ; actes = Software engineering &amp; its applications</md-title-remainder>
+<md-date>1995</md-date></location>
+<relevance>0</relevance>
+<recid>title le g nie logiciel ses applications</recid>
+</hit>
+<hit>
+
+<md-title>Netzwerk Kinderschutz in Berlin</md-title>
+<md-title-remainder>dynamische Prozesse zwischen Pflicht und Kür ; erste Erfahrungen [Bachelor-Thesis]</md-title-remainder>
+<md-date>2009</md-date>
+<md-author>Fischer, Nina</md-author>
+<md-description>Anhang S. 44 - 182. Literaturverz. S. 35 - 39</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Netzwerk Kinderschutz in Berlin</md-title>
+<md-title-remainder>dynamische Prozesse zwischen Pflicht und Kür ; erste Erfahrungen [Bachelor-Thesis]</md-title-remainder>
+<md-date>2009</md-date>
+<md-author>Fischer, Nina</md-author>
+<md-description>Anhang S. 44 - 182. Literaturverz. S. 35 - 39</md-description></location>
+<relevance>0</relevance>
+<recid>title netzwerk kinderschutz in berlin author fischer nina</recid>
+</hit>
+<hit>
+
+<md-title>Tales of the priory</md-title>
+<md-title-remainder>: in 4 vol</md-title-remainder>
+<md-author>Hofland, Barbara</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>Tales of the priory</md-title>
+<md-title-remainder>: in 4 vol</md-title-remainder>
+<md-author>Hofland, Barbara</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<relevance>0</relevance>
+<recid>title tales of the priory author hofland barbara</recid>
+</hit>
+<hit>
+
+<md-title>The beggar girl and her benefactors</md-title>
+<md-title-remainder>: in 7 vol</md-title-remainder>
+<md-author>Bennett, Agnes M</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The beggar girl and her benefactors</md-title>
+<md-title-remainder>: in 7 vol</md-title-remainder>
+<md-author>Bennett, Agnes M</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The beggar girl and her benefactors</md-title>
+<md-title-remainder>: in 7 vol</md-title-remainder>
+<md-author>Bennett, Agnes M</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<count>2</count>
+<relevance>0</relevance>
+<recid>title the beggar girl and her benefactors author bennett agnes m</recid>
+</hit>
+<hit>
+
+<md-title>The marriage of the favourite</md-title>
+<md-title-remainder>: or, she bred him a soldier; a novel; in 3 vol</md-title-remainder>
+<md-author>Pickering, Ellen</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The marriage of the favourite</md-title>
+<md-title-remainder>: or, she bred him a soldier; a novel; in 3 vol</md-title-remainder>
+<md-author>Pickering, Ellen</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<relevance>0</relevance>
+<recid>title the marriage of the favourite author pickering ellen</recid>
+</hit>
+<hit>
+
+<md-title>The shrine of Bertha</md-title>
+<md-title-remainder>: a novel; in 2 vol</md-title-remainder>
+<md-author>Robinson, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The shrine of Bertha</md-title>
+<md-title-remainder>: a novel; in 2 vol</md-title-remainder>
+<md-author>Robinson, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The shrine of Bertha</md-title>
+<md-title-remainder>: a novel; in 2 vol</md-title-remainder>
+<md-author>Robinson, Mary E</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<count>2</count>
+<relevance>0</relevance>
+<recid>title the shrine of bertha author robinson mary e</recid>
+</hit>
+<hit>
+
+<md-title>The wedding day</md-title>
+<md-title-remainder>: a novel</md-title-remainder>
+<md-author>Spence, Elizabeth I</md-author>
+<md-description>digitised: 2004 - 2005</md-description><location id="gso.gbv.de/sru/DB=2.1" name="GBV SRU MARC">
+<md-title>The wedding day</md-title>
+<md-title-remainder>: a novel</md-title-remainder>
+<md-author>Spence, Elizabeth I</md-author>
+<md-description>digitised: 2004 - 2005</md-description></location>
+<relevance>0</relevance>
+<recid>title the wedding day author spence elizabeth i</recid>
+</hit>
+</show>
diff --git a/test/test_sru_urls b/test/test_sru_urls
new file mode 100644 (file)
index 0000000..622c9f5
--- /dev/null
@@ -0,0 +1,4 @@
+http://localhost:9763/search.pz2?command=init
+http://localhost:9763/search.pz2?session=1&command=search&query=cql:schafroth
+10 http://localhost:9763/search.pz2?session=1&command=show&block=1
+