DEBIAN_DIST="jessie wheezy squeeze"
-UBUNTU_DIST="trusty saucy raring quantal precise oneiric lucid"
+UBUNTU_DIST="trusty saucy raring quantal precise oneiric"
CENTOS_DIST="centos5 centos6"
-VERSION=1.6.41
+VERSION=1.7.0
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = src test js doc
+SUBDIRS = src etc/xsl test js doc
EXTRA_DIST = $(PACKAGE).spec IDMETA README NEWS LICENSE m4/id-config.sh \
buildconf.sh Doxyfile.in m4/yaz.m4 \
+--- 1.7.0 2014/06/27
+
+Separate package: pazpar2-xsl PAZ-932
+
+--- 1.6.44 2014/06/27
+
+Update OPAC stylesheets for availabilityDate PAZ-943
+
+Fix too funny startrecs description
+
+Fix broken ~ match if filter contains = PAZ-941
+
+--- 1.6.43 2014/06/12
+
+Add pz:redis option for ZOOM caching using redis. This is an alternative
+to memcached. Requires YAZ 5.2.0 to work.
+
+--- 1.6.42 2014/05/06
+
+Re-ingest native facets PAZ-934
+
+Fix medium override for solr-pz2.xsl.
+
--- 1.6.41 2014/04/23
Fix URL with leading http:// not working PAZ-933
src/Makefile
test/Makefile
js/Makefile
+ etc/xsl/Makefile
doc/Makefile
doc/local0.ent
doc/common/Makefile
+pazpar2 (1.7.0-2.indexdata) unstable; urgency=medium
+
+ * Fix version passed to dpkg-maintscript-helper rm_conffile
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Fri, 27 Jun 2014 15:48:37 +0200
+
+pazpar2 (1.7.0-1.indexdata) unstable; urgency=medium
+
+ * Upstream.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Fri, 27 Jun 2014 15:02:50 +0200
+
pazpar2 (1.6.41-1.indexdata) unstable; urgency=medium
* Upstream.
Package: pazpar2
Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, pazpar2-xsl
Description: High-performance metaseacher
Pazpar2 is a high-performance, user interface-independent, data
model-independent metasearching middleware featuring merging, relevance
Alias for Apache2 so that this library and other demo portals are
available.
+Package: pazpar2-xsl
+Architecture: all
+Description: XSLTs for converting to pz2 XML
+ Pazpar2 is a high-performance, user interface-independent, data
+ model-independent metasearching middleware featuring merging, relevance
+ ranking, record sorting, and faceted results.
+ .
+ This package includes the standard XSLTs for converting various external
+ XML Formats to pazpar2's internal format (pz2).
+
Package: pazpar2-doc
Section: doc
Architecture: all
--- /dev/null
+usr/share/pazpar2/xsl
if [ "$1" != "configure" ]; then
exit 0
fi
+for i in cf.xsl marc21.xsl pp2out-to-carrot2.xsl solr-pz2.xsl \
+ dads-pz2.xsl marc22.xsl primo-pz2.xsl tmarc.xsl danmarc2.xsl \
+ MarcXML2TurboMarc.xsl pz2-ourl-base.xsl unimarc.xsl dc.xsl \
+ oai_dc.xsl pz2-ourl-marc21.xsl usmarc.xsl dkabm.xsl opac_turbomarc.xsl \
+ pz2-solr.xsl marc21-ourl.xsl opac.xsl server-status-nagios.xsl ; do
+ dpkg-maintscript-helper rm_conffile /etc/pazpar2/$i 1.6.99.-1.indexdata -- "$@"
+done
+
# add default.xml if there are no enabled services
no_services=true
for f in /etc/pazpar2/services-enabled/*.xml; do
#!/bin/sh
set -e
+for i in cf.xsl marc21.xsl pp2out-to-carrot2.xsl solr-pz2.xsl \
+ dads-pz2.xsl marc22.xsl primo-pz2.xsl tmarc.xsl danmarc2.xsl \
+ MarcXML2TurboMarc.xsl pz2-ourl-base.xsl unimarc.xsl dc.xsl \
+ oai_dc.xsl pz2-ourl-marc21.xsl usmarc.xsl dkabm.xsl opac_turbomarc.xsl \
+ pz2-solr.xsl marc21-ourl.xsl opac.xsl server-status-nagios.xsl ; do
+ dpkg-maintscript-helper rm_conffile /etc/pazpar2/$i 1.6.99-1.indexdata -- "$@"
+done
+
if [ "$1" = "purge" ] ; then
update-rc.d pazpar2 remove >/dev/null || exit $?
rm -f /var/log/pazpar2.log
--- /dev/null
+#!/bin/sh -e
+
+for i in cf.xsl marc21.xsl pp2out-to-carrot2.xsl solr-pz2.xsl \
+ dads-pz2.xsl marc22.xsl primo-pz2.xsl tmarc.xsl danmarc2.xsl \
+ MarcXML2TurboMarc.xsl pz2-ourl-base.xsl unimarc.xsl dc.xsl \
+ oai_dc.xsl pz2-ourl-marc21.xsl usmarc.xsl dkabm.xsl opac_turbomarc.xsl \
+ pz2-solr.xsl marc21-ourl.xsl opac.xsl server-status-nagios.xsl ; do
+ dpkg-maintscript-helper rm_conffile /etc/pazpar2/$i 1.6.99-1.indexdata -- "$@"
+done
+
cp etc/services/*.xml debian/pazpar2/etc/pazpar2/services-available
cp etc/settings/*.xml debian/pazpar2/etc/pazpar2/settings/
cp -r etc/settings/mkc debian/pazpar2/etc/pazpar2/settings
- cp etc/*.xsl debian/pazpar2/etc/pazpar2/
# pazpar2-apache2 package
cp debian/ap2pazpar2.cfg debian/pazpar2-apache2/etc/pazpar2
# pazpar2-test1 package
# pazpar2-js package
cp debian/ap2pazpar2-js.cfg debian/pazpar2-js/etc/pazpar2
mv debian/tmp/usr/share/pazpar2/js/pz2.js debian/pazpar2-js/usr/share/pazpar2/js/
+# pazpar2-xsl package
+ cp etc/xsl/*.xsl debian/pazpar2-xsl/usr/share/pazpar2/xsl
override_dh_installchangelogs:
dh_installchangelogs NEWS
-Subproject commit b864825869c7e4c3061952b64afc99a7268be4f8
+Subproject commit f6a5ec8c243e2a6829a2917cb30c849612d6fd01
in main thread).
</para>
</refsect2>
+ <refsect2 id="config-file">
+ <title>file</title>
+ <para>
+ This configuration takes one attribute <literal>path</literal> which
+ specifies a path to search for local files, such as XSLTs and settings.
+ The path is a colon separated list of directories. Its default value
+ is "<literal>.</literal>" which is equivalent to the location of the
+ main configuration file (where indeed the file element is given).
+ </para>
+ </refsect2>
<refsect2 id="config-server">
<title>server</title>
<para>
</varlistentry>
<varlistentry>
+ <term>pz:redis</term>
+ <listitem>
+ <para>
+ If set and non-empty,
+ <ulink url="&url.redis;">redis</ulink> will
+ configured and enabled for the target.
+ The value of this setting is exactly as the redis option for
+ ZOOM C of YAZ.
+ </para>
+ <para>
+ This setting is honored in Pazpar2 1.6.43 or later. Pazpar2 must
+ be using YAZ version 5.2.0 or later.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>pz:nativesyntax</term>
<listitem>
<para>
<para>
Specifies the first record to retrieve from each target.
The first record in a result set for a target is numbered 0, next
- record is numbered 2. By default maxrecs is 0.
+ record is numbered 1. By default startrecs is 0.
</para>
</listitem>
</varlistentry>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Converts MarcXML to TurboMarc
- (to benefit from pazpar2's improved tmarc.xsl)
-
- Also includes a provision to handle PicaMarc where datafield names can
- contain a @ that is changed to Ä to give valid XML.
-
- 2010-2011
- Sven-S. Porst, SUB Göttingen <porst@sub.uni-goettingen.de>
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:tmarc="http://www.indexdata.com/turbomarc"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
-<xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()"/>
- </xsl:copy>
-</xsl:template>
-
-
-<xsl:template match="record|marc:record">
- <xsl:element name="r" namespace="http://www.indexdata.com/turbomarc">
- <xsl:apply-templates select="@*|node()"/>
- </xsl:element>
-</xsl:template>
-
-
-<xsl:template match="leader|marc:leader">
- <xsl:element name="l" namespace="http://www.indexdata.com/turbomarc">
- <xsl:apply-templates select="@*|node()"/>
- </xsl:element>
-</xsl:template>
-
-
-<xsl:template match="controlfield|datafield|subfield|marc:controlfield|marc:datafield|marc:subfield">
- <!--
- Try to mock Indexdata's specification without regexps:
- Translate all allowed characters to 'a' and assume field names are
- shorter than 62 characters.
- Given the typical 3 digit Marc field numbers this seems
- safe in the practical cases I have seen.
-
- http://www.indexdata.com/blog/2010/05/turbomarc-faster-xml-marc-records
- http://www.indexdata.com/yaz/doc/marc.html
- -->
-
- <xsl:variable name="allowedCharacters" select="'0123465789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@'"/>
- <xsl:variable name="manyAs" select="'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'"/>
-
- <xsl:choose>
- <xsl:when test="(name(.)='datafield' or name(.)='controlfield') and
- contains($manyAs, translate(@tag, $allowedCharacters, $manyAs))">
- <xsl:element name="{concat(substring(local-name(),1,1), translate(@tag,'@','Ä'))}"
- namespace="http://www.indexdata.com/turbomarc">
- <xsl:apply-templates select="@*[name(.)!='tag']|node()"/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="name(.)='subfield' and
- contains($manyAs, translate(@code, $allowedCharacters, $manyAs))">
- <xsl:element name="{concat(substring(local-name(),1,1), @code)}"
- namespace="http://www.indexdata.com/turbomarc">
- <xsl:apply-templates select="@*[name(.)!='code']|node()"/>
- </xsl:element>
- </xsl:when>
-
- <xsl:otherwise>
- <xsl:copy>
- <xsl:apply-templates select="@*|node()"/>
- </xsl:copy>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- This stylesheet expects Connector Frameworks records
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:siebel="http://loc.gov/siebel/elements/1.0/" >
-
- <xsl:output indent="yes"
- method="xml"
- version="1.0"
- encoding="UTF-8"/>
-
- <xsl:param name="medium" />
-
- <!--
- According to cf/builder/templates/parseTask.cff, connectors can
- also generate a "medium" field, but that is ignored in this
- stylesheet, the rule below instead using an XSLT parameter.
- Should the data element be used in preference when it is included?
- -->
-
- <xsl:template match="/record">
- <pz:record>
- <pz:metadata type="medium">
- <xsl:choose>
- <xsl:when test="string-length($medium)">
- <xsl:value-of select="$medium" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="medium">
- <xsl:value-of select="medium" />
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- <xsl:apply-templates/>
- </pz:record>
- </xsl:template>
-
- <!--
- The elements mapped in the following clauses should be kept more
- or less in sync with those named in builder/templates/search.cft
- in the "cf" git module.
- -->
-
- <xsl:template match="date">
- <pz:metadata type="publication-date">
- <xsl:value-of select="."/>
- </pz:metadata>
- <pz:metadata type="date">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="url">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="title">
- <pz:metadata type="title">
- <xsl:value-of select="."/>
- </pz:metadata>
- <pz:metadata type="title-complete">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="journaltitle">
- <pz:metadata type="journal-title">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <!--
- According to cf/builder/templates/parseTask.cff, connectors can
- also generate a "holding" field, but it's not clear how that is
- different from "item". Perhaps this "item" rule should also
- handle "holding" in the same way?
- -->
-
- <xsl:template match="item">
- <pz:metadata type="due" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="due"/>
- </pz:metadata>
- <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="location"/>
- </pz:metadata>
- <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="callno"/>
- </pz:metadata>
- <pz:metadata type="available" empty="PAZPAR_NULL_VALUE">
- <xsl:value-of select="available"/>
- </pz:metadata>
- <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="publicnote"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="location">
- <pz:metadata type="locallocation">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="callno">
- <pz:metadata type="callnumber">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <!-- no-op template to avoid printing medium out -->
- <xsl:template match="medium" />
-
- <xsl:template match="*" >
- <pz:metadata type="{local-name()}">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:zs="http://www.loc.gov/zing/srw/"
- xmlns:tmarc="http://www.indexdata.com/turbomarc">
-
- <xsl:output indent="yes" method="xml" version="1.0"
- encoding="UTF-8" />
- <xsl:param name="medium"/>
-
- <!-- Extract metadata from MARC21/USMARC from streamlined marcxml format
- http://www.loc.gov/marc/bibliographic/ecbdhome.html -->
- <xsl:template name="record-hook" />
-
-
- <xsl:template match="/">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="zs:searchRetrieveResponse">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="zs:records">
- <collection>
- <xsl:apply-templates />
- </collection>
- </xsl:template>
-
- <xsl:template match="zs:record">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="zs:recordData">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="doc">
- <collection>
- <xsl:apply-templates />
- </collection>
- </xsl:template>
-
- <xsl:template match="art">
- <xsl:variable name="journal_title" select="journal/title" />
- <xsl:variable name="journal_issn" select="journal/issn" />
- <xsl:variable name="date" select="journal/year" />
- <xsl:variable name="month" select="journal/month" />
- <xsl:variable name="description" select="abstract/abstract" />
-
- <xsl:variable name="has_fulltext" select="article/fulltext"/>
- <xsl:variable name="has_title" select="article/title"/>
-
- <xsl:variable name="vmedium">
- <xsl:choose>
- <xsl:when test="$has_title and $has_fulltext">
- <xsl:text>e-article</xsl:text>
- </xsl:when>
- <xsl:when test="$has_title and not($has_fulltext)">
- <xsl:text>article</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>other</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <pz:record>
-
- <xsl:for-each select="localInfo/systemno">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- IDs for url recipe -->
- <xsl:for-each select="recordID/DOI">
- <pz:metadata type="doi"><xsl:value-of select="."/></pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="recordID/artId">
- <pz:metadata type="artid"><xsl:value-of select="."/></pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="recordID/accessNr">
- <pz:metadata type="accessnr"><xsl:value-of select="."/></pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="author/name">
- <pz:metadata type="author">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="article/title">
- <pz:metadata type="title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="journal/issn">
- <pz:metadata type="issn">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="journal/title">
- <pz:metadata type="journal-title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="journal/vol">
- <pz:metadata type="journal-number">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="journal/issue">
- <pz:metadata type="issue-number">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="journal">
- <pz:metadata type="journal-subpart">
- <xsl:if test="vol">
- <xsl:text>Vol. </xsl:text><xsl:value-of select="vol" /><xsl:text>,</xsl:text>
- </xsl:if>
- <xsl:if test="issue">
- <xsl:if test="vol">
- <xsl:text> no. </xsl:text>
- </xsl:if>
- <xsl:if test="not(vol)">
- <xsl:text>No. </xsl:text>
- </xsl:if>
- <xsl:value-of select="issue" />
- </xsl:if>
- <xsl:text> (</xsl:text>
- <xsl:if test="month">
- <xsl:choose>
- <xsl:when test="$month='01'">
- <xsl:text>Jan. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='02'">
- <xsl:text>Feb. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='03'">
- <xsl:text>Mar. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='04'">
- <xsl:text>Apr. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='05'">
- <xsl:text>May </xsl:text>
- </xsl:when>
- <xsl:when test="$month='06'">
- <xsl:text>June </xsl:text>
- </xsl:when>
- <xsl:when test="$month='07'">
- <xsl:text>July </xsl:text>
- </xsl:when>
- <xsl:when test="$month='08'">
- <xsl:text>Aug. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='09'">
- <xsl:text>Sept. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='10'">
- <xsl:text>Oct. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='11'">
- <xsl:text>Nov. </xsl:text>
- </xsl:when>
- <xsl:when test="$month='12'">
- <xsl:text>Dec. </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$month"/><xsl:text> </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:value-of select="year" /><xsl:text>)</xsl:text>
- <xsl:if test="page">
- <xsl:text>, p. </xsl:text><xsl:value-of select="page" />
- </xsl:if>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="description">
- <xsl:value-of select="$description" />
- </pz:metadata>
-
- <xsl:for-each select="ctrlT/term">
- <pz:metadata type="subject">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="article/fulltext">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$vmedium" />
-<!--
- <xsl:if test="string-length($electronic) and $vmedium != 'electronic'">
- <xsl:text> (electronic)</xsl:text>
- </xsl:if>
--->
- </pz:metadata>
-
- <xsl:for-each select="recordID/DOI">
- <pz:metadata type="url-doi"><xsl:text>http://dx.doi.org/</xsl:text><xsl:value-of select="."/></pz:metadata>
- </xsl:for-each>
-
- <!-- passthrough id data -->
- <xsl:for-each select="pz:metadata">
- <xsl:copy-of select="." />
- </xsl:for-each>
-
- <!-- other stylesheets importing this might want to define this -->
- <xsl:call-template name="record-hook" />
-
- </pz:record>
-
- </xsl:template>
-
- <xsl:template match="text()" />
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<!-- Beginnings of Danmarc2 XSL.
-
- This is just USMARC with minor tweaks.. Not complete!
--->
- <xsl:include href="pz2-ourl-marc21.xsl" />
-
- <xsl:template match="/marc:record">
- <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
- <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
- <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
- <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
- <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
- <xsl:variable name="medium">
- <xsl:choose>
- <xsl:when test="$title_medium">
- <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
- </xsl:when>
- <xsl:when test="$fulltext_a">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$fulltext_b">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$electronic_location_url">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$journal_title">
- <xsl:text>article</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>book</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <pz:record>
- <xsl:attribute name="mergekey">
- <xsl:text>title </xsl:text>
- <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
- <xsl:text> author </xsl:text>
- <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
- <xsl:text> medium </xsl:text>
- <xsl:value-of select="$medium"/>
- </xsl:attribute>
-
-
- <xsl:for-each select="marc:datafield[@tag='001']/marc:subfield[@code='a']">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='010']">
- <pz:metadata type="lccn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='020']">
- <pz:metadata type="isbn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='022']">
- <pz:metadata type="issn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='027']">
- <pz:metadata type="tech-rep-nr">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='100']">
- <pz:metadata type="author">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="author-title">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="author-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='110']">
- <pz:metadata type="corporate-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="corporate-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="corporate-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='111']">
- <pz:metadata type="meeting-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="meeting-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="meeting-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='260']">
- <pz:metadata type="date">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='245']">
- <pz:metadata type="title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="title-remainder">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="title-responsibility">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="title-dates">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="title-medium">
- <xsl:value-of select="marc:subfield[@code='h']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='250']">
- <pz:metadata type="edition">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='260']">
- <pz:metadata type="publication-place">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="publication-name">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="publication-date">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='300']">
- <pz:metadata type="physical-extent">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="physical-format">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="physical-dimensions">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="physical-accomp">
- <xsl:value-of select="marc:subfield[@code='e']"/>
- </pz:metadata>
- <pz:metadata type="physical-unittype">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="physical-unitsize">
- <xsl:value-of select="marc:subfield[@code='g']"/>
- </pz:metadata>
- <pz:metadata type="physical-specified">
- <xsl:value-of select="marc:subfield[@code='3']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='440']">
- <pz:metadata type="series-title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
- [@tag != '506' and @tag != '530' and
- @tag != '540' and @tag != '546'
- and @tag != '522']">
- <pz:metadata type="description">
- <xsl:value-of select="*/text()"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='650' or @tag='653'
- or @tag='630' or @tag='666']">
-
- <xsl:for-each select="marc:subfield">
- <pz:metadata type="subject">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='856']">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="marc:subfield[@code='u']"/>
- </pz:metadata>
- <pz:metadata type="electronic-text">
- <xsl:value-of select="marc:subfield[@code='y']"/>
- </pz:metadata>
- <pz:metadata type="electronic-note">
- <xsl:value-of select="marc:subfield[@code='z']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='773']">
- <pz:metadata type="citation">
- <xsl:for-each select="*">
- <xsl:value-of select="normalize-space(.)"/>
- <xsl:text> </xsl:text>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$medium"/>
- </pz:metadata>
-
- <xsl:if test="$fulltext_a">
- <pz:metadata type="fulltext">
- <xsl:value-of select="$fulltext_a"/>
- </pz:metadata>
- </xsl:if>
-
- <xsl:if test="$fulltext_b">
- <pz:metadata type="fulltext">
- <xsl:value-of select="$fulltext_b"/>
- </pz:metadata>
- </xsl:if>
-
- <xsl:if test="$open_url_resolver">
- <pz:metadata type="open-url">
- <xsl:call-template name="insert-md-openurl" />
- </pz:metadata>
- </xsl:if>
-
- </pz:record>
-
- </xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- This stylesheet expects oai/dc records
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dcterms="http://purl.org/dc/terms/">
-
- <xsl:output indent="yes"
- method="xml"
- version="1.0"
- encoding="UTF-8"/>
-
- <xsl:param name="medium" />
-
- <xsl:template match="/*">
- <pz:record>
-
- <pz:metadata type="id">
- <xsl:value-of select="dc:identifier"/>
- </pz:metadata>
-
- <xsl:for-each select="dc:title">
- <pz:metadata type="title">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:date">
- <pz:metadata type="date">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:subject">
- <pz:metadata type="subject">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:creator">
- <pz:metadata type="author">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:description">
- <pz:metadata type="description">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:identifier">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:type">
- <pz:metadata type="medium">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dcterms:bibliographicCitation">
- <pz:metadata type="citation">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$medium" />
- </pz:metadata>
-
- </pz:record>
- </xsl:template>
-
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- This stylesheet expects dkabm collection records as returned
- from DBC's OpenSearch service.
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dcterms="http://purl.org/dc/terms/"
- xmlns:dkabm="http://biblstandard.dk/abm/namespace/dkabm/"
- xmlns:os="http://oss.dbc.dk/ns/opensearch">
-
- <xsl:output indent="yes"
- method="xml"
- version="1.0"
- encoding="UTF-8"/>
-
- <xsl:param name="medium" />
-
- <xsl:template match="/">
- <pz:cluster>
- <xsl:apply-templates/>
- </pz:cluster>
- </xsl:template>
-
- <xsl:template match="os:object">
- <pz:record>
- <xsl:apply-templates/>
- </pz:record>
- </xsl:template>
-
- <xsl:template match="os:score">
- <pz:metadata type="score">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="dkabm:record">
-
- <pz:metadata type="id">
- <xsl:value-of select="dc:identifier"/>
- </pz:metadata>
-
- <xsl:for-each select="dc:title">
- <pz:metadata type="title">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:date">
- <pz:metadata type="date">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:subject">
- <pz:metadata type="subject">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:creator">
- <pz:metadata type="author">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:description">
- <pz:metadata type="description">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:identifier">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:type">
- <pz:metadata type="medium">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dcterms:bibliographicCitation">
- <pz:metadata type="citation">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$medium" />
- </pz:metadata>
-
- </xsl:template>
-
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
-
- <xsl:import href="marc21.xsl" />
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
- <xsl:include href="pz2-ourl-marc21.xsl" />
-
- <xsl:template name="record-hook">
- Our hook
- <xsl:if test="$open_url_resolver">
- <pz:metadata type="open-url">
- <xsl:call-template name="insert-md-openurl" />
- </pz:metadata>
- </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<!-- Extract metadata from MARC21/USMARC
- http://www.loc.gov/marc/bibliographic/ecbdhome.html
--->
- <xsl:template name="record-hook"/>
-
- <xsl:template match="/">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="marc:collection">
- <pz:collection>
- <xsl:apply-templates/>
- </pz:collection>
- </xsl:template>
-
- <xsl:template match="marc:record">
- <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
- <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
- <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
- <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
- <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
- <xsl:variable name="medium">
- <xsl:choose>
- <xsl:when test="$title_medium">
- <xsl:value-of select="translate($title_medium, ' []/', '')"/>
- </xsl:when>
- <xsl:when test="$fulltext_a">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$fulltext_b">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$journal_title">
- <xsl:text>article</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>book</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="has_fulltext">
- <xsl:choose>
- <xsl:when test="marc:datafield[@tag='856']/marc:subfield[@code='q']">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:when test="marc:datafield[@tag='856']/marc:subfield[@code='i']='TEXT*'">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>no</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="oclc_number">
- <xsl:variable name="c001" select='marc:controlfield[@tag="001"]' />
- <xsl:choose>
- <xsl:when test='contains(marc:controlfield[@tag="001"],"ocn") or
- contains(marc:controlfield[@tag="001"],"ocm") or
- contains(marc:controlfield[@tag="001"],"OCoLC")'>
- <xsl:value-of select="marc:controlfield[@tag='001']"/>
- </xsl:when>
- <xsl:when test='contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"ocn") or
- contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"ocm") or
- contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"OCoLC") '>
- <xsl:value-of select="marc:datafield[@tag='035']/marc:subfield[@code='a']"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="date_008">
- <xsl:choose>
- <xsl:when test="contains('cestpudikmr', substring(marc:controlfield[@tag='008'], 7, 1))">
- <xsl:value-of select="substring(marc:controlfield[@tag='008'], 8, 4)" />
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="date_end_008">
- <xsl:choose>
- <xsl:when test="contains('dikmr', substring(marc:controlfield[@tag='008'], 7, 1))">
- <xsl:value-of select="substring(marc:controlfield[@tag='008'], 12, 4)" />
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <pz:record>
- <xsl:for-each select="marc:controlfield[@tag='001']">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="oclc-number">
- <xsl:value-of select="$oclc_number" />
- </pz:metadata>
-
- <xsl:for-each select="marc:datafield[@tag='010']">
- <pz:metadata type="lccn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='020']">
- <pz:metadata type="isbn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='022']">
- <pz:metadata type="issn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='027']">
- <pz:metadata type="tech-rep-nr">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='035']">
- <pz:metadata type="system-control-nr">
- <xsl:choose>
- <xsl:when test="marc:subfield[@code='a']">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='100']">
- <pz:metadata type="author">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="author-title">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="author-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='110']">
- <pz:metadata type="corporate-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="corporate-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="corporate-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='111']">
- <pz:metadata type="meeting-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="meeting-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="meeting-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='130']">
- <pz:metadata type="title-uniform">
- <xsl:value-of select="marc:subfield[@code='a']" />
- </pz:metadata>
- <pz:metadata type="title-uniform-media">
- <xsl:value-of select="marc:subfield[@code='m']" />
- </pz:metadata>
- <pz:metadata type="title-uniform-parts">
- <xsl:value-of select="marc:subfield[@code='n']" />
- </pz:metadata>
- <pz:metadata type="title-uniform-partname">
- <xsl:value-of select="marc:subfield[@code='p']" />
- </pz:metadata>
- <pz:metadata type="title-uniform-key">
- <xsl:value-of select="marc:subfield[@code='r']" />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='260']">
- <pz:metadata type="date">
- <xsl:value-of select="translate(marc:subfield[@code='c'], 'cp[].', '')" />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:if test="$date_008 and not(marc:datafield[@tag='260'])">
- <pz:metadata type="date">
- <xsl:choose>
- <xsl:when test="$date_end_008">
- <xsl:value-of select="concat($date_008,'-',$date_end_008)" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$date_008" />
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:if>
-
- <xsl:for-each select="marc:datafield[@tag='245']">
- <pz:metadata type="title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="title-remainder">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="title-responsibility">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="title-dates">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="title-medium">
- <xsl:value-of select="marc:subfield[@code='h']"/>
- </pz:metadata>
- <pz:metadata type="title-number-section">
- <xsl:value-of select="marc:subfield[@code='n']"/>
- </pz:metadata>
- <pz:metadata type="title-complete">
- <xsl:value-of select="marc:subfield[@code='a']" />
- <xsl:if test="marc:subfield[@code='b']" ><xsl:value-of select="concat(' ', marc:subfield[@code='b'])" /></xsl:if>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='250']">
- <pz:metadata type="edition">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='260']">
- <pz:metadata type="publication-place">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="publication-name">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="publication-date">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='300']">
- <pz:metadata type="physical-extent">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="physical-format">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="physical-dimensions">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="physical-accomp">
- <xsl:value-of select="marc:subfield[@code='e']"/>
- </pz:metadata>
- <pz:metadata type="physical-unittype">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="physical-unitsize">
- <xsl:value-of select="marc:subfield[@code='g']"/>
- </pz:metadata>
- <pz:metadata type="physical-specified">
- <xsl:value-of select="marc:subfield[@code='3']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='440']">
- <pz:metadata type="series-title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag = '500' or @tag = '505' or
- @tag = '518' or @tag = '520' or @tag = '522']">
- <pz:metadata type="description">
- <xsl:value-of select="*/text()"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each
- select="marc: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']">
- <pz:metadata type="subject">
- <xsl:value-of select="marc:subfield[@code='a']" />
- </pz:metadata>
- <pz:metadata type="subject-long">
- <xsl:for-each select="node()/text()">
- <xsl:if test="position() > 1">
- <xsl:text>, </xsl:text>
- </xsl:if>
- <xsl:variable name='value'>
- <xsl:value-of select='normalize-space(.)' />
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="substring($value,string-length($value)) = ','">
- <xsl:value-of select="substring($value,1,string-length($value)-1)" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$value" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='856']">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="marc:subfield[@code='u']"/>
- </pz:metadata>
- <pz:metadata type="electronic-text">
- <xsl:value-of select="marc:subfield[@code='y' or @code='3' or @code='a']"/>
- </pz:metadata>
- <pz:metadata type="electronic-note">
- <xsl:value-of select="marc:subfield[@code='z']"/>
- </pz:metadata>
- <pz:metadata type="electronic-format-instruction">
- <xsl:value-of select="marc:subfield[@code='i']"/>
- </pz:metadata>
- <pz:metadata type="electronic-format-type">
- <xsl:value-of select="marc:subfield[@code='q']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='773']">
- <pz:metadata type="citation">
- <xsl:for-each select="*">
- <xsl:value-of select="normalize-space(.)"/>
- <xsl:text> </xsl:text>
- </xsl:for-each>
- </pz:metadata>
- <xsl:if test="marc:subfield[@code='t']">
- <pz:metadata type="journal-title">
- <xsl:value-of select="marc:subfield[@code='t']"/>
- </pz:metadata>
- </xsl:if>
- <xsl:if test="marc:subfield[@code='g']">
- <pz:metadata type="journal-subpart">
- <xsl:value-of select="marc:subfield[@code='g']"/>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='852']">
- <xsl:if test="marc:subfield[@code='y']">
- <pz:metadata type="publicnote">
- <xsl:value-of select="marc:subfield[@code='y']"/>
- </pz:metadata>
- </xsl:if>
- <xsl:if test="marc:subfield[@code='h']">
- <pz:metadata type="callnumber">
- <xsl:value-of select="marc:subfield[@code='h']"/>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='900']/marc:subfield[@code='a']">
- <pz:metadata type="fulltext">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$medium"/>
- </pz:metadata>
-
- <pz:metadata type="has-fulltext">
- <xsl:value-of select="$has_fulltext"/>
- </pz:metadata>
-
- <xsl:for-each select="marc:datafield[@tag='900']/marc:subfield[@code='b']">
- <pz:metadata type="fulltext">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- <xsl:if test="$fulltext_b">
- <pz:metadata type="fulltext">
- <xsl:value-of select="$fulltext_b"/>
- </pz:metadata>
- </xsl:if> -->
-
- <xsl:for-each select="marc:datafield[@tag='907' or @tag='901']">
- <pz:metadata type="iii-id">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='926']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='948']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='991']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='999']">
- <pz:metadata type="localid">
- <xsl:choose>
- <xsl:when test="marc:subfield[@code='a']">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </xsl:when>
- <xsl:when test="marc:subfield[@code='c']">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- passthrough id data -->
- <xsl:for-each select="pz:metadata">
- <xsl:copy-of select="."/>
- </xsl:for-each>
-
- <!-- other stylesheets importing this might want to define this -->
- <xsl:call-template name="record-hook"/>
-
- </pz:record>
- </xsl:template>
-
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<!-- Extract metadata from MARC21/USMARC
- http://www.loc.gov/marc/bibliographic/ecbdhome.html
--->
- <xsl:template name="record-hook"/>
-
- <xsl:template match="/">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="marc:record">
- <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
- <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
- <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
- <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
- <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
- <xsl:variable name="medium">
- <xsl:choose>
- <xsl:when test="$title_medium">
- <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
- </xsl:when>
- <xsl:when test="$fulltext_a">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$fulltext_b">
- <xsl:text>electronic resource</xsl:text>
- </xsl:when>
- <xsl:when test="$journal_title">
- <xsl:text>article</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>book</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <pz:record>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$medium"/>
- </pz:metadata>
-
- <xsl:apply-templates/>
-
- <!-- other stylesheets importing this might want to define this -->
- <xsl:call-template name="record-hook"/>
-
- </pz:record>
- </xsl:template>
-
- <xsl:template match="marc:controlfield[@tag='001']">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='010']">
- <pz:metadata type="lccn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='020']">
- <pz:metadata type="isbn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <!-- does ANYONE need this?
- <xsl:template match="marc:datafield[@tag='027']">
- <pz:metadata type="tech-rep-nr">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
- -->
-
- <xsl:template match="marc:datafield[@tag='035']">
- <pz:metadata type="system-control-nr">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='100' or @tag='700']">
- <pz:metadata type="author">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="author-title">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="author-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='110']">
- <pz:metadata type="corporate-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="corporate-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="corporate-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='111']">
- <pz:metadata type="meeting-name">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="meeting-location">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="meeting-date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='245']">
- <pz:metadata type="title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="title-remainder">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="title-responsibility">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="title-dates">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="title-medium">
- <xsl:value-of select="marc:subfield[@code='h']"/>
- </pz:metadata>
- <pz:metadata type="title-number-section">
- <xsl:value-of select="marc:subfield[@code='n']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='250']">
- <pz:metadata type="edition">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='260']">
- <pz:metadata type="publication-place">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="publication-name">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="publication-date">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="date">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='300']">
- <pz:metadata type="physical-extent">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="physical-format">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- <pz:metadata type="physical-dimensions">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </pz:metadata>
- <pz:metadata type="physical-accomp">
- <xsl:value-of select="marc:subfield[@code='e']"/>
- </pz:metadata>
- <pz:metadata type="physical-unittype">
- <xsl:value-of select="marc:subfield[@code='f']"/>
- </pz:metadata>
- <pz:metadata type="physical-unitsize">
- <xsl:value-of select="marc:subfield[@code='g']"/>
- </pz:metadata>
- <pz:metadata type="physical-specified">
- <xsl:value-of select="marc:subfield[@code='3']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='440']">
- <pz:metadata type="series-title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag = '500' or @tag = '505' or
- @tag = '518' or @tag = '520' or @tag = '522']">
- <pz:metadata type="description">
- <xsl:value-of select="*/text()"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc: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']">
- <pz:metadata type="subject">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- <pz:metadata type="subject-long">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text>, </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='856']">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="marc:subfield[@code='u']"/>
- </pz:metadata>
- <pz:metadata type="electronic-text">
- <xsl:value-of select="marc:subfield[@code='y' or @code='3']"/>
- </pz:metadata>
- <pz:metadata type="electronic-note">
- <xsl:value-of select="marc:subfield[@code='z']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='773']">
- <pz:metadata type="citation">
- <xsl:for-each select="*">
- <xsl:value-of select="normalize-space(.)"/>
- <xsl:text> </xsl:text>
- </xsl:for-each>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='852']">
- <xsl:if test="marc:subfield[@code='y']">
- <pz:metadata type="publicnote">
- <xsl:value-of select="marc:subfield[@code='y']"/>
- </pz:metadata>
- </xsl:if>
- <xsl:if test="marc:subfield[@code='h']">
- <pz:metadata type="callnumber">
- <xsl:value-of select="marc:subfield[@code='h']"/>
- </pz:metadata>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='900']/marc:subfield[@code='a']">
- <pz:metadata type="fulltext">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='907' or @tag='901']">
- <pz:metadata type="iii-id">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='926']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='948']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="marc:datafield[@tag='991']">
- <pz:metadata type="holding">
- <xsl:for-each select="marc:subfield">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="pz:metadata">
- <xsl:copy-of select="."/>
- </xsl:template>
-
- <!-- other stylesheets importing this might want to define this -->
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- This stylesheet expects oai/dc records
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:oai="http://www.openarchives.org/OAI/2.0/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dcterms="http://purl.org/dc/terms/">
-
- <xsl:output indent="yes"
- method="xml"
- version="1.0"
- encoding="UTF-8"/>
-
-
-
- <xsl:template match="/oai:record/oai:metadata/*">
- <pz:record>
-
- <pz:metadata type="id">
- <xsl:value-of select="/oai:record/oai:header/oai:identifier"/>
- </pz:metadata>
-
- <xsl:for-each select="dc:title">
- <pz:metadata type="title">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:date">
- <pz:metadata type="date">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:subject">
- <pz:metadata type="subject">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:creator">
- <pz:metadata type="author">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:description">
- <pz:metadata type="description">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:identifier">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dc:type">
- <pz:metadata type="medium">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="dcterms:bibliographicCitation">
- <pz:metadata type="citation">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- </pz:record>
- </xsl:template>
-
-
- <xsl:template match="text()"/>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
- <xsl:import href="marc21.xsl"/>
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<!-- Extract metadata from OPAC records with embedded MAR records
- http://www.loc.gov/marc/bibliographic/ecbdhome.html
--->
-
- <xsl:template name="record-hook">
- <xsl:for-each select="/opacRecord/holdings/holding">
- <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="localLocation"/>
- </pz:metadata>
- <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="callNumber"/>
- </pz:metadata>
- <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="publicNote"/>
- </pz:metadata>
- <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
- <xsl:choose>
- <xsl:when test="circulations/circulation/availableNow/@value = '1'">
- Available
- </xsl:when>
- <xsl:when test="circulations/circulation/availableNow/@value = '0'">
- <xsl:value-of select="circulations/circulation/availabiltyDate"/>
- </xsl:when>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="/">
- <xsl:choose>
- <xsl:when test="opacRecord">
- <xsl:apply-templates select="opacRecord/bibliographicRecord"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.indexdata.com/turbomarc">
-
- <xsl:import href="tmarc.xsl"/>
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-<!-- Extract metadata from OPAC records with embedded MAR records
- http://www.loc.gov/marc/bibliographic/ecbdhome.html
--->
-
- <xsl:template name="record-hook">
- <xsl:for-each select="/opacRecord/holdings/holding">
- <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="localLocation"/>
- </pz:metadata>
- <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="callNumber"/>
- </pz:metadata>
- <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="publicNote"/>
- </pz:metadata>
- <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
- <xsl:choose>
- <xsl:when test="circulations/circulation/availableNow/@value = '1'">
- Available
- </xsl:when>
- <xsl:when test="circulations/circulation/availableNow/@value = '0'">
- <xsl:value-of select="circulations/circulation/availabiltyDate"/>
- </xsl:when>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
- <xsl:template match="/">
- <xsl:choose>
- <xsl:when test="opacRecord">
- <xsl:apply-templates select="opacRecord/bibliographicRecord"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
-
+
+ <file path=".:xsl"/>
<server>
<listen port="9004"/>
<include src="default.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
+ <file path=".:xsl"/>
<threads number="10"/>
<server id="metasearch_threaded">
<listen port="9005"/>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-<xsl:template match="/">
- <searchresult>
- <!-- TODO make query an xsl parameter -->
- <query>water</query>
- <xsl:for-each select="show/hit">
- <document>
- <xsl:attribute name="id">
- <xsl:value-of select="recid" />
- </xsl:attribute>
- <title><xsl:value-of select="md-title" /></title>
- <url><xsl:value-of select="location/md-electronic-url" /></url>
- <snippet xml:space="preserve">
- <xsl:for-each select="md-description">
- <xsl:value-of select="." />
- </xsl:for-each>
- <xsl:value-of select="md-title-responsibility" />
- </snippet>
- </document>
- </xsl:for-each>
- </searchresult>
-</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:tmarc="http://www.indexdata.com/turbomarc"
- xmlns:prim="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib"
- xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search"
->
-
- <xsl:output indent="yes" method="xml" version="1.0"
- encoding="UTF-8" />
-
- <xsl:template name="record-hook" />
-
- <xsl:variable name="type" select="/opt/prim:PrimoNMBib/prim:display/prim:type"/>
- <xsl:variable name="is_article" select="$type = 'article'" />
- <xsl:variable name="fulltext" select="/opt/prim:PrimoNMBib/prim:delivery/prim:fulltext"/>
- <xsl:variable name="has_fulltext">
- <xsl:choose>
- <xsl:when test="$fulltext = 'no_fulltext' ">
- <xsl:text>no</xsl:text>
- </xsl:when>
- <xsl:when test="$fulltext = 'fulltext'">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>no</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:template match="/">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="sear:RESULT">
- <pz:records>
- <xsl:apply-templates />
- </pz:records>
- </xsl:template>
-
- <xsl:template match="sear:DOC">
- <pz:record>
- <xsl:apply-templates />
- </pz:record>
- </xsl:template>
-
- <xsl:template match="prim:PrimoNMBib">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="prim:control">
- <xsl:for-each select="prim:recordid">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="prim:addata">
- <!-- <xsl:variable name="yearmonthday" select="@date" /> -->
-
- <xsl:for-each select="prim:date">
- <pz:metadata type="date">
- <xsl:value-of select="substring(.,1,4)" />
- </pz:metadata>
- <pz:metadata type="journal-month">
- <xsl:value-of select="substring(.,4,1)" />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:volume">
- <pz:metadata type="journal-number">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:issue">
- <pz:metadata type="issue-number">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:issn">
- <pz:metadata type="issn">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:jtitle">
- <pz:metadata type="journal-title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="prim:delivery">
-
- <xsl:if test="$has_fulltext">
- <pz:metadata type="has-fulltext">
- <xsl:value-of select="$has_fulltext" />
- </pz:metadata>
- </xsl:if>
-
- </xsl:template>
-
- <xsl:template match="prim:display">
- <xsl:for-each select="prim:creator">
- <pz:metadata type="author">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="prim:type">
- <xsl:variable name="type" select="."/>
- <pz:metadata type="medium">
- <xsl:choose>
- <xsl:when test="$type ='article' and $has_fulltext = 'yes'">
- <xsl:text>e-article</xsl:text>
- </xsl:when>
- <xsl:when test="$type = 'article' and $has_fulltext = 'no'">
- <xsl:text>article</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$type"/>
- </xsl:otherwise>
- </xsl:choose>
-<!-- <xsl:value-of select="$type" /> -->
- </pz:metadata>
- <pz:metadata type="debug_isarticle"><xsl:value-of select="$is_article"/></pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:title">
- <pz:metadata type="title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="prim:ispartof">
- <pz:metadata type="journal-subpart">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-<!--
- <xsl:apply-templates />
--->
- </xsl:template>
-
- <xsl:template match="prim:facets">
- <xsl:for-each select="prim:topic">
- <pz:metadata type="subject">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="sear:LINKS" >
- <xsl:for-each select="sear:openurl">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template match="prim:search">
- <xsl:for-each select="prim:description">
- <pz:metadata type="description">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
-
- <xsl:for-each select="prim:sub">
- <pz:metadata type="subject">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <!-- passthrough id data -->
- <xsl:for-each select="pz:metadata">
- <xsl:copy-of select="." />
- </xsl:for-each>
- <!-- other stylesheets importing this might want to define this -->
-
- <xsl:call-template name="record-hook" />
- </xsl:template>
-
- <xsl:template match="text()" />
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim"
- xmlns:str="http://exslt.org/strings"
- extension-element-prefixes="str">
-
- <xsl:param name="open_url_resolver"/>
- <!--<xsl:variable name="resolver">http://zeus.lib.uoc.gr:3210/sfxtst3</xsl:variable>-->
-
- <xsl:template name="insert-md-openurl">
-
- <xsl:value-of select="$open_url_resolver" /><xsl:text>?generatedby=pz2</xsl:text>
- <xsl:call-template name="ou-parse-author" />
- <xsl:call-template name="ou-parse-date" />
- <xsl:call-template name="ou-parse-volume" />
- <xsl:call-template name="ou-parse-any">
- <xsl:with-param name="field_name" select="string('isbn')" />
- </xsl:call-template>
- <xsl:call-template name="ou-parse-any">
- <xsl:with-param name="field_name" select="string('issn')" />
- </xsl:call-template>
- <xsl:call-template name="ou-parse-any">
- <xsl:with-param name="field_name" select="string('title')" />
- </xsl:call-template>
- <xsl:call-template name="ou-parse-any">
- <xsl:with-param name="field_name" select="string('atitle')" />
- </xsl:call-template>
-
- </xsl:template>
-
- <!-- parsing raw string data -->
-
- <xsl:template name="ou-parse-author" >
- <xsl:variable name="author">
- <xsl:call-template name="ou-author" />
- </xsl:variable>
-
- <xsl:variable name="aulast" select="normalize-space(substring-before($author, ','))"/>
-
- <xsl:variable name="aufirst"
- select="substring-before( normalize-space(substring-after($author, ',')), ' ')"/>
-
- <xsl:if test="$aulast != ''">
- <xsl:text>&aulast=</xsl:text>
- <xsl:value-of select="$aulast" />
- </xsl:if>
-
- <xsl:if test="string-length( translate($aufirst, '.', '') ) > 1" >
- <xsl:text>&aufirst=</xsl:text>
- <xsl:value-of select="$aufirst" />
- </xsl:if>
-
- </xsl:template>
-
- <xsl:template name="ou-parse-volume">
- <xsl:variable name="volume">
- <xsl:call-template name="ou-volume" />
- </xsl:variable>
-
- <xsl:variable name="vol" select="substring-after($volume, 'Vol')"/>
- <xsl:variable name="issue" select="false()" />
- <xsl:variable name="spage" select="false()" />
-
- <xsl:if test="$vol">
- <xsl:text>&volume=</xsl:text>
- <xsl:value-of select="$vol" />
- </xsl:if>
-
- <xsl:if test="$issue">
- <xsl:text>&issue=</xsl:text>
- <xsl:value-of select="$issue" />
- </xsl:if>
-
- <xsl:if test="$spage">
- <xsl:text>&spage=</xsl:text>
- <xsl:value-of select="$vol" />
- </xsl:if>
-
- </xsl:template>
-
-
- <xsl:template name="ou-parse-date">
- <xsl:variable name="date">
- <xsl:call-template name="ou-date" />
- </xsl:variable>
-
- <xsl:variable name="parsed_date" select="translate($date, '.[]c;', '')"/>
-
- <xsl:if test="$parsed_date">
- <xsl:text>&date=</xsl:text>
- <xsl:value-of select="$parsed_date" />
- </xsl:if>
-
- </xsl:template>
-
-
- <xsl:template name="ou-parse-any">
- <xsl:param name="field_name" />
-
- <xsl:variable name="field_value">
- <xsl:choose>
-
- <xsl:when test="$field_name = 'isbn'">
- <xsl:call-template name="ou-isbn"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'issn'">
- <xsl:call-template name="ou-issn"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'atitle'">
- <xsl:call-template name="ou-atitle"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'title'">
- <xsl:call-template name="ou-title"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="digits" select="1234567890"/>
-
- <xsl:variable name="parsed_value">
- <xsl:choose>
-
- <xsl:when test="$field_name = 'isbn'">
- <xsl:value-of select="translate($field_value, translate($field_value, concat($digits, 'X'), ''), '')"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'issn'">
- <xsl:value-of select="translate($field_value, translate($field_value, concat($digits, '-', 'X'), ''), '')"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'atitle'">
- <xsl:value-of select="translate(normalize-space($field_value), '.', '')"/>
- </xsl:when>
-
- <xsl:when test="$field_name = 'title'">
- <xsl:value-of select="translate(normalize-space($field_value), '.', '')"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:variable>
-
-
- <xsl:if test="$parsed_value != ''">
- <xsl:text>&</xsl:text>
- <xsl:value-of select="$field_name" />
- <xsl:text>=</xsl:text>
- <xsl:value-of select="$parsed_value" />
- </xsl:if>
-
- </xsl:template>
-
-
-</xsl:stylesheet>
-<!--
-/*
- * Local variables:
- * c-basic-offset: 2
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=2 tabstop=4 expandtab
- */
--->
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim"
- xmlns:str="http://exslt.org/strings"
- extension-element-prefixes="str">
-
- <xsl:import href="pz2-ourl-base.xsl"/>
-
- <xsl:template name="ou-author" >
- <!-- what to do with multiple authors??-->
- <xsl:for-each select="marc:datafield[@tag='100' or @tag='700']">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="ou-title" >
- <!-- if 773 exists its a journal/article -->
- <xsl:choose>
-
- <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='t']">
- <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
- </xsl:when>
-
- <xsl:when test="marc:datafield[@tag='245']/marc:subfield[@code='a']">
- <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:template>
-
-
- <xsl:template name="ou-atitle" >
- <!-- return value only if article or journal -->
- <xsl:if test="marc:datafield[@tag='773']">
- <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
- </xsl:if>
- </xsl:template>
-
-
- <xsl:template name="ou-date" >
- <xsl:for-each select="marc:datafield[@tag='260']">
- <xsl:value-of select="marc:subfield[@code='c']"/>
- </xsl:for-each>
- </xsl:template>
-
-
- <xsl:template name="ou-isbn" >
- <!-- if 773 exists its a journal/article -->
- <xsl:choose>
-
- <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='z']">
- <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='z']"/>
- </xsl:when>
-
- <xsl:when test="marc:datafield[@tag='020']/marc:subfield[@code='a']">
- <xsl:value-of select="marc:datafield[@tag='020']/marc:subfield[@code='a']"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:template>
-
-
- <xsl:template name="ou-issn" >
- <!-- if 773 exists its a journal/article -->
- <xsl:choose>
-
- <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='x']">
- <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='x']"/>
- </xsl:when>
-
- <xsl:when test="marc:datafield[@tag='022']/marc:subfield[@code='a']">
- <xsl:value-of select="marc:datafield[@tag='022']/marc:subfield[@code='a']"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:template>
-
-
- <xsl:template name="ou-volume" >
- <xsl:if test="marc:datafield[@tag='773']">
- <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='g']"/>
- </xsl:if>
- </xsl:template>
-
-</xsl:stylesheet>
-<!--
-/*
- * Local variables:
- * c-basic-offset: 2
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=2 tabstop=4 expandtab
- */
--->
+++ /dev/null
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0" >
- <xsl:template match="/">
- <add>
- <xsl:apply-templates></xsl:apply-templates>
- </add>
- </xsl:template>
-
- <xsl:template match="pz:record">
- <doc>
- <xsl:apply-templates></xsl:apply-templates>
- </doc>
- </xsl:template>
- <xsl:template match="pz:metadata">
- <xsl:if test="@type">
- <field>
- <xsl:attribute name="name">
- <xsl:value-of select="@type"/>
- </xsl:attribute>
- <xsl:value-of select="."/>
- </field>
- </xsl:if>
- </xsl:template>
-</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
-
<threads number="0"/> <!-- non-zero to enable threaded operation -->
+ <file path=".:/usr/share/pazpar2/xsl"/>
<server>
<listen port="8004"/>
+++ /dev/null
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0" >
-
- <xsl:param name="medium" />
-
- <xsl:template match="/">
- <xsl:apply-templates></xsl:apply-templates>
- </xsl:template>
-
- <xsl:template match="response">
- <xsl:apply-templates></xsl:apply-templates>
- </xsl:template>
-
- <xsl:template match="records">
- <xsl:apply-templates></xsl:apply-templates>
- </xsl:template>
-
- <xsl:template match="doc">
- <pz:record>
- <xsl:if test="string-length($medium) > 0">
- <pz:metadata type="medium">
- <xsl:value-of select="$medium"/>
- </pz:metadata>
- </xsl:if>
- <xsl:apply-templates></xsl:apply-templates>
- </pz:record>
- </xsl:template>
-
- <xsl:template match="float[@name]">
- <pz:metadata>
- <xsl:attribute name="type">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="str[@name]">
- <pz:metadata>
- <xsl:attribute name="type">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="date[@name]">
- <pz:metadata>
- <xsl:attribute name="type">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:template>
-
- <xsl:template match="arr">
- <xsl:for-each select="str">
- <xsl:call-template name="string"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="string">
- <pz:metadata>
- <xsl:attribute name="type">
- <xsl:value-of select="../@name"/>
- </xsl:attribute>
- <xsl:choose>
- <xsl:when test="../@name = 'medium' and string-length($medium) = 0">
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
- xmlns="http://www.indexdata.com/turbomarc"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:tmarc="http://www.indexdata.com/turbomarc">
-
- <xsl:output indent="yes" method="xml" version="1.0"
- encoding="UTF-8" />
- <xsl:param name="medium"/>
-
- <!-- Extract metadata from MARC21/USMARC from streamlined marcxml format
- http://www.loc.gov/marc/bibliographic/ecbdhome.html -->
- <xsl:template name="record-hook" />
-
-
- <xsl:template match="/">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="tmarc:collection">
- <collection>
- <xsl:apply-templates />
- </collection>
- </xsl:template>
-
- <xsl:template match="tmarc:r">
- <xsl:variable name="title_medium" select="tmarc:d245/tmarc:sh" />
- <xsl:variable name="journal_title" select="tmarc:d773/tmarc:st" />
- <xsl:variable name="electronic_location_url" select="tmarc:d856/tmarc:su" />
- <xsl:variable name="fulltext_a" select="tmarc:d900/tmarc:sa" />
- <xsl:variable name="fulltext_b" select="tmarc:d900/tmarc:sb" />
- <!-- Does not always hit the right substring. The field is not always fixed-width? -->
- <xsl:variable name="control_lang" select="substring(tmarc:c008, 36, 3)" />
- <xsl:variable name="contains110" select="tmarc:d110" />
- <xsl:variable name="hasAuthorFields" select="tmarc:d100 or tmarc:d111" />
- <xsl:variable name="typeofrec" select="substring(tmarc:l, 7, 1)"/>
- <xsl:variable name="typeofvm" select="substring(tmarc:c008, 34, 1)"/>
- <xsl:variable name="biblevel" select="substring(tmarc:l, 8, 1)"/>
- <xsl:variable name="physdes" select="substring(tmarc:c007, 1, 1)"/>
- <xsl:variable name="form1" select="substring(tmarc:c008, 24, 1)"/>
- <xsl:variable name="form2" select="substring(tmarc:c008, 30, 1)"/>
- <xsl:variable name="oclca" select="substring(tmarc:c007, 1, 1)"/>
- <xsl:variable name="oclcb" select="substring(tmarc:c007, 2, 1)"/>
- <xsl:variable name="oclcd" select="substring(tmarc:c007, 4, 1)"/>
- <xsl:variable name="oclce" select="substring(tmarc:c007, 5, 1)"/>
- <xsl:variable name="typeofserial" select="substring(tmarc:c008, 22, 1)"/>
-
- <xsl:variable name="electronic">
- <xsl:choose>
- <xsl:when test="$form1='s' or $form1='q' or $form1='o' or
- $form2='s' or $form2='q' or $form2='o'">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:otherwise/>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="vmedium">
- <xsl:choose>
- <xsl:when test="string-length($medium)"><xsl:value-of select="$medium" /></xsl:when>
- <xsl:when test="($typeofrec='a' or $typeofrec='t') and $biblevel='m'">book</xsl:when>
- <xsl:when test="$typeofrec='j' or $typeofrec='i'">
- <xsl:text>recording</xsl:text>
- <xsl:choose>
- <xsl:when test="$oclcb='d' and $oclcd='f'">-cd</xsl:when>
- <xsl:when test="$oclcb='s'">-cassette</xsl:when>
- <xsl:when test="$oclcb='d' and $oclcd='a' or $oclcd='b' or
- $oclcd='c' or $oclcd='d' or $oclcd='e'">-vinyl</xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="$typeofrec='g'">
- <xsl:choose>
- <xsl:when test="$typeofvm='m' or $typeofvm='v'">
- <xsl:text>video</xsl:text>
- <xsl:choose>
- <xsl:when test="$oclca='v' and $oclcb='d' and $oclce='v'">-dvd</xsl:when>
- <xsl:when test="$oclca='v' and $oclcb='d' and $oclce='s'">-blu-ray</xsl:when>
- <xsl:when test="$oclca='v' and $oclcb='f' and $oclce='b'">-vhs</xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>audio-visual</xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="$typeofrec='a' and $biblevel='s'">
- <xsl:choose>
- <xsl:when test="$typeofserial='n'">newspaper</xsl:when>
- <xsl:otherwise>journal</xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="$typeofrec='e' or $typeofrec='f'">map</xsl:when>
- <xsl:when test="$typeofrec='c' or $typeofrec='d'">music-score</xsl:when>
- <xsl:when test="$form1='a' or $form1='b' or $form1='c'">microform</xsl:when>
- <xsl:when test="$typeofrec='t'">thesis</xsl:when>
- <!-- <xsl:when test="$journal_title">article</xsl:when> -->
- <xsl:when test="$typeofrec='a' or $typeofrec='i' and
- ($typeofserial='d' or $typeofserial='w')">web</xsl:when>
- <xsl:when test="$typeofrec='a' and $biblevel='b'">article</xsl:when>
- <xsl:when test="$typeofrec='m'">electronic</xsl:when>
- <xsl:otherwise>
- <xsl:text>other</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="has_fulltext">
- <xsl:choose>
- <xsl:when test="tmarc:d856/tmarc:sq">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:when test="tmarc:d856/tmarc:si='TEXT*'">
- <xsl:text>yes</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>no</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="oclc_number">
- <xsl:choose>
- <xsl:when test='contains(tmarc:c001,"ocn") or
- contains(tmarc:c001,"ocm") or
- contains(tmarc:c001,"OCoLC") '>
- <xsl:value-of select="tmarc:c001"/>
- </xsl:when>
- <xsl:when test='contains(tmarc:d035/tmarc:sa,"ocn") or
- contains(tmarc:d035/tmarc:sa,"ocm") or
- contains(tmarc:d035/tmarc:sa,"OCoLC") '>
- <xsl:value-of select="tmarc:d035/tmarc:sa"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="date_008">
- <xsl:choose>
- <xsl:when test="contains('cestpudikmr', substring(tmarc:c008, 7, 1))">
- <xsl:value-of select="substring(tmarc:c008, 8, 4)" />
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="date_end_008">
- <xsl:choose>
- <xsl:when test="contains('dikmr', substring(tmarc:c008, 7, 1))">
- <xsl:value-of select="substring(tmarc:c008, 12, 4)" />
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <pz:record>
-<!--
- <xsl:attribute name="mergekey">
- <xsl:text>title </xsl:text>
- <xsl:value-of select="tmarc:d245/tmarc:sa" />
- <xsl:text> author </xsl:text>
- <xsl:value-of select="tmarc:d100/tmarc:sa" />
- <xsl:text> medium </xsl:text>
- <xsl:value-of select="$medium" />
- </xsl:attribute>
- -->
-
- <xsl:for-each select="tmarc:c001">
- <pz:metadata type="id">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:if test="string-length($oclc_number) > 0">
- <pz:metadata type="oclc-number">
- <xsl:value-of select="$oclc_number" />
- </pz:metadata>
- </xsl:if>
-
- <xsl:for-each select="tmarc:d010">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="lccn">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d020">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="isbn">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d022">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="issn">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d027">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="tech-rep-nr">
- <xsl:value-of select="tmarc:sa" />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d035">
- <pz:metadata type="system-control-nr">
- <xsl:choose>
- <xsl:when test="tmarc:sa">
- <xsl:value-of select="tmarc:sa"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="tmarc:sb"/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d100">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="author">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="author-title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sd">
- <pz:metadata type="author-date">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d110">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="corporate-name">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="corporate-location">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sd">
- <pz:metadata type="corporate-date">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d111">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="meeting-name">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="meeting-location">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sd">
- <pz:metadata type="meeting-date">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d260">
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="date">
- <xsl:value-of select="translate(., 'cp[].', '')" />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:if test="string-length($date_008) > 0 and not(tmarc:d260)">
- <pz:metadata type="date">
- <xsl:choose>
- <xsl:when test="$date_end_008">
- <xsl:value-of select="concat($date_008,'-',$date_end_008)" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$date_008" />
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:if>
-
- <xsl:for-each select="tmarc:d130">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="title-uniform">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sm">
- <pz:metadata type="title-uniform-media">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sn">
- <pz:metadata type="title-uniform-parts">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sp">
- <pz:metadata type="title-uniform-partname">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sr">
- <pz:metadata type="title-uniform-key">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d245">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sb">
- <pz:metadata type="title-remainder">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="title-responsibility">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sf">
- <pz:metadata type="title-dates">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sh">
- <pz:metadata type="title-medium">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sn">
- <pz:metadata type="title-number-section">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:if test="tmarc:sa">
- <pz:metadata type="title-complete">
- <xsl:value-of select="tmarc:sa" />
- <xsl:if test="tmarc:sb" ><xsl:value-of select="concat(' ', tmarc:sb)" /></xsl:if>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d250">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="edition">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d260">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="publication-place">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sb">
- <pz:metadata type="publication-name">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="publication-date">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d300">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="physical-extent">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sb">
- <pz:metadata type="physical-format">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sc">
- <pz:metadata type="physical-dimensions">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:se">
- <pz:metadata type="physical-accomp">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sf">
- <pz:metadata type="physical-unittype">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sg">
- <pz:metadata type="physical-unitsize">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:s3">
- <pz:metadata type="physical-specified">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d440">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="series-title">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d500">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d505">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d518">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d520">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d522">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d911">
- <pz:metadata type="description">
- <xsl:for-each select="node()">
- <xsl:value-of select="text()" />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d600 | tmarc:d610 | tmarc:d611 | tmarc:d630 |
- tmarc:d648 | tmarc:d650 | tmarc:d651 | tmarc:d653 |
- tmarc:d654 | tmarc:d655 | tmarc:d656 | tmarc:d657 |
- tmarc:d658 | tmarc:d662 | tmarc:d69X">
- <xsl:for-each select="tmarc:sa">
- <pz:metadata type="subject">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
- <pz:metadata type="subject-long">
- <xsl:for-each select="node()/text()">
- <xsl:if test="position() > 1">
- <xsl:text>, </xsl:text>
- </xsl:if>
- <xsl:variable name='value'>
- <xsl:value-of select='normalize-space(.)'/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="substring($value, string-length($value)) = ','">
- <xsl:value-of select="substring($value, 1, string-length($value)-1)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$value"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d856">
- <xsl:for-each select="tmarc:su">
- <pz:metadata type="electronic-url">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <pz:metadata type="electronic-text">
- <xsl:choose>
- <xsl:when test="tmarc:sy">
- <xsl:value-of select="tmarc:sy/text()" />
- </xsl:when>
- <xsl:when test="tmarc:s3">
- <xsl:value-of select="tmarc:s3/text()" />
- </xsl:when>
- <xsl:when test="tmarc:sa">
- <xsl:value-of select="tmarc:sa/text()" />
- </xsl:when>
- <xsl:otherwise>Get resource</xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- <xsl:for-each select="tmarc:sz">
- <pz:metadata type="electronic-note">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:si">
- <pz:metadata type="electronic-format-instruction">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sq">
- <pz:metadata type="electronic-format-type">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d773">
- <pz:metadata type="citation">
- <xsl:for-each select="*">
- <xsl:value-of select="normalize-space(.)" />
- <xsl:text> </xsl:text>
- </xsl:for-each>
- </pz:metadata>
- <xsl:for-each select="tmarc:st">
- <pz:metadata type="journal-title">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
- <xsl:if test="tmarc:sg">
- <xsl:variable name="value">
- <xsl:for-each select="tmarc:sg">
- <xsl:value-of select="."/>
- </xsl:for-each>
- </xsl:variable>
- <pz:metadata type="journal-subpart">
- <xsl:value-of select="$value"/>
- </pz:metadata>
- <xsl:variable name="l">
- <xsl:value-of select="translate($value,
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.',
- 'abcdefghijklmnopqrstuvwxyz ') "/>
- </xsl:variable>
- <xsl:variable name="volume">
- <xsl:choose>
- <xsl:when test="string-length(substring-after($l,'vol ')) > 0">
- <xsl:value-of select="substring-before(normalize-space(substring-after($l,'vol ')),' ')"/>
- </xsl:when>
- <xsl:when test="string-length(substring-after($l,'v ')) > 0">
- <xsl:value-of select="substring-before(normalize-space(substring-after($l,'v ')),' ')"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="issue">
- <xsl:value-of select="substring-before(translate(normalize-space(substring-after($l,'issue')), ',', ' '),' ')"/>
- </xsl:variable>
- <xsl:variable name="pages">
- <xsl:choose>
- <xsl:when test="string-length(substring-after($l,' p ')) > 0">
- <xsl:value-of select="normalize-space(substring-after($l,' p '))"/>
- </xsl:when>
- <xsl:when test="string-length(substring-after($l,',p')) > 0">
- <xsl:value-of select="normalize-space(substring-after($l,',p'))"/>
- </xsl:when>
- <xsl:when test="string-length(substring-after($l,' p')) > 0">
- <xsl:value-of select="normalize-space(substring-after($l,' p'))"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
-
- <!-- volume -->
- <xsl:if test="string-length($volume) > 0">
- <pz:metadata type="volume-number">
- <xsl:value-of select="$volume"/>
- </pz:metadata>
- </xsl:if>
- <!-- issue -->
- <xsl:if test="string-length($issue) > 0">
- <pz:metadata type="issue-number">
- <xsl:value-of select="$issue"/>
- </pz:metadata>
- </xsl:if>
- <!-- pages -->
- <xsl:if test="string-length($pages) > 0">
- <pz:metadata type="pages-number">
- <xsl:value-of select="$pages"/>
- </pz:metadata>
- </xsl:if>
-
- <!-- season -->
- </xsl:if>
- <xsl:if test="tmarc:sp">
- <pz:metadata type="journal-title-abbrev">
- <xsl:value-of select="tmarc:sp"/>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d852">
- <xsl:for-each select="tmarc:sy">
- <pz:metadata type="publicnote">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- <xsl:for-each select="tmarc:sh">
- <pz:metadata type="callnumber">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d876">
- <xsl:if test="tmarc:sf">
- <pz:metadata type="loan-period">
- <xsl:value-of select="concat(tmarc:s5,':',tmarc:sf)" />
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <pz:metadata type="medium">
- <xsl:value-of select="$vmedium" />
- <xsl:if test="string-length($electronic) and $vmedium != 'electronic'">
- <xsl:text> (electronic)</xsl:text>
- </xsl:if>
- </pz:metadata>
-
- <xsl:for-each select="tmarc:d900/tmarc:sa">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <!-- <xsl:if test="$fulltext_a"> <pz:metadata type="fulltext"> <xsl:value-of
- select="$fulltext_a"/> </pz:metadata> </xsl:if> -->
-
- <xsl:for-each select="tmarc:d900/tmarc:sb">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:se">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:sf">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:si">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:sk">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:sq">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:ss">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:su">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d900/tmarc:sy">
- <pz:metadata type="fulltext">
- <xsl:value-of select="." />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d903">
- <xsl:if test="tmarc:sa">
- <pz:metadata type="publication-date">
- <xsl:value-of select="substring(tmarc:sa,1,4)"/>
- </pz:metadata>
- <pz:metadata type="date">
- <xsl:value-of select="substring(tmarc:sa,1,4)"/>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <!-- <xsl:if test="$fulltext_b"> <pz:metadata type="fulltext"> <xsl:value-of
- select="$fulltext_b"/> </pz:metadata> </xsl:if> -->
-
- <pz:metadata type="has-fulltext">
- <xsl:value-of select="$has_fulltext"/>
- </pz:metadata>
-
- <xsl:for-each select="tmarc:d907 | tmarc:d901">
- <pz:metadata type="iii-id">
- <xsl:value-of select="tmarc:sa" />
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d926">
- <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:sa"/>
- </pz:metadata>
- <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:sc"/>
- </pz:metadata>
- <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:se"/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- OhioLINK holdings -->
- <xsl:for-each select="tmarc:d945">
- <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:sa"/>
- </pz:metadata>
- <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:sb"/>
- </pz:metadata>
- <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
- <xsl:value-of select="tmarc:sc"/>
- </pz:metadata>
- <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
- <xsl:choose>
- <xsl:when test="tmarc:ss = 'N'">Available</xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="tmarc:sd"/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d948">
- <pz:metadata type="holding">
- <xsl:for-each select="tmarc:s">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="." />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d991">
- <pz:metadata type="holding">
- <xsl:for-each select="tmarc:s">
- <xsl:if test="position() > 1">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:value-of select="." />
- </xsl:for-each>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="tmarc:d999">
- <pz:metadata type="localid">
- <xsl:choose>
- <xsl:when test="tmarc:sa">
- <xsl:value-of select="tmarc:sa"/>
- </xsl:when>
- <xsl:when test="tmarc:sc">
- <xsl:value-of select="tmarc:sc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="tmarc:sd"/>
- </xsl:otherwise>
- </xsl:choose>
- </pz:metadata>
- </xsl:for-each>
-
-
- <!-- passthrough id data -->
- <xsl:for-each select="pz:metadata">
- <xsl:copy-of select="." />
- </xsl:for-each>
-
- <!-- other stylesheets importing this might want to define this -->
- <xsl:call-template name="record-hook" />
-
- </pz:record>
- </xsl:template>
-
- <xsl:template match="text()" />
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
-
- <xsl:template match="/marc:record">
- <pz:record>
-
- <xsl:for-each select="marc:controlfield[@tag='001']">
- <pz:metadata type="id">
- <xsl:value-of select="."/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- -->
- <xsl:for-each select="marc:datafield[@tag='020']">
- <xsl:if test="marc:subfield[@code='a'] = 'US'">
- <pz:metadata type="lccn">
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='010']">
- <pz:metadata type="isbn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag='011']">
- <pz:metadata type="issn">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
-
- <xsl:for-each select="marc:datafield[@tag='200']">
- <pz:metadata type="title">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
-
- <!-- Date of Pulbication -->
- <xsl:for-each select="marc:datafield[@tag='210']">
- <pz:metadata type="date">
- <xsl:value-of select="marc:subfield[@code='d']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- Usmarc 650 maps to unimarc 606 and marc21 653 maps to unimarc 610 -->
- <xsl:for-each select="marc:datafield[@tag='606' or @tag='610']">
- <pz:metadata type="subject">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <xsl:for-each select="marc:datafield[@tag >= 300 and @tag <= 345]
- [@tag != '325']">
- <pz:metadata type="description">
- <xsl:value-of select="*/text()"/>
- </pz:metadata>
- </xsl:for-each>
-
-
- <!-- Author : primary, alternative and secondary responsibility (equivalent marc21 tags : 100, 700 -->
- <xsl:for-each select="marc:datafield[@tag='700' or @tag='701' or @tag='702']">
- <pz:metadata type="author">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- <xsl:text>, </xsl:text>
- <xsl:value-of select="marc:subfield[@code='b']"/>
- </pz:metadata>
- </xsl:for-each>
-
- <!-- Author : marc21 tag 720 maps to unimarc 730
- <xsl:for-each select="marc:datafield[@tag='730']">
- <pz:metadata type="author">
- <xsl:value-of select="marc:subfield[@code='a']"/>
- </pz:metadata>
- </xsl:for-each>
- -->
-
- <!-- -->
- <xsl:for-each select="marc:datafield[@tag='856']">
- <pz:metadata type="url">
- <xsl:value-of select="marc:subfield[@code='u']"/>
- </pz:metadata>
- </xsl:for-each>
-
- </pz:record>
- </xsl:template>
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
- xmlns:marc="http://www.loc.gov/MARC21/slim">
-
- <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
-
- <xsl:include href="marc21.xsl"/>
-
-</xsl:stylesheet>
--- /dev/null
+*.log
+*.log.xml
+*.dif
+Makefile
+Makefile.in
--- /dev/null
+TESTS = $(check_SCRIPTS)
+
+check_SCRIPTS = test_xsl.sh
+
+dist-hook:
+ rm -f ${srcdir}/*.log.xml
+ cp ${srcdir}/*.xml $(distdir)
+ cp ${srcdir}/*.xsl $(distdir)
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Converts MarcXML to TurboMarc
+ (to benefit from pazpar2's improved tmarc.xsl)
+
+ Also includes a provision to handle PicaMarc where datafield names can
+ contain a @ that is changed to Ä to give valid XML.
+
+ 2010-2011
+ Sven-S. Porst, SUB Göttingen <porst@sub.uni-goettingen.de>
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:tmarc="http://www.indexdata.com/turbomarc"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+<xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+</xsl:template>
+
+
+<xsl:template match="record|marc:record">
+ <xsl:element name="r" namespace="http://www.indexdata.com/turbomarc">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="leader|marc:leader">
+ <xsl:element name="l" namespace="http://www.indexdata.com/turbomarc">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="controlfield|datafield|subfield|marc:controlfield|marc:datafield|marc:subfield">
+ <!--
+ Try to mock Indexdata's specification without regexps:
+ Translate all allowed characters to 'a' and assume field names are
+ shorter than 62 characters.
+ Given the typical 3 digit Marc field numbers this seems
+ safe in the practical cases I have seen.
+
+ http://www.indexdata.com/blog/2010/05/turbomarc-faster-xml-marc-records
+ http://www.indexdata.com/yaz/doc/marc.html
+ -->
+
+ <xsl:variable name="allowedCharacters" select="'0123465789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@'"/>
+ <xsl:variable name="manyAs" select="'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'"/>
+
+ <xsl:choose>
+ <xsl:when test="(name(.)='datafield' or name(.)='controlfield') and
+ contains($manyAs, translate(@tag, $allowedCharacters, $manyAs))">
+ <xsl:element name="{concat(substring(local-name(),1,1), translate(@tag,'@','Ä'))}"
+ namespace="http://www.indexdata.com/turbomarc">
+ <xsl:apply-templates select="@*[name(.)!='tag']|node()"/>
+ </xsl:element>
+ </xsl:when>
+
+ <xsl:when test="name(.)='subfield' and
+ contains($manyAs, translate(@code, $allowedCharacters, $manyAs))">
+ <xsl:element name="{concat(substring(local-name(),1,1), @code)}"
+ namespace="http://www.indexdata.com/turbomarc">
+ <xsl:apply-templates select="@*[name(.)!='code']|node()"/>
+ </xsl:element>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ This stylesheet expects Connector Frameworks records
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:siebel="http://loc.gov/siebel/elements/1.0/" >
+
+ <xsl:output indent="yes"
+ method="xml"
+ version="1.0"
+ encoding="UTF-8"/>
+
+ <xsl:param name="medium" />
+
+ <!-- Use medium parameter if given. Default to medium from connector -->
+ <xsl:template match="/record">
+ <pz:record>
+ <pz:metadata type="medium">
+ <xsl:choose>
+ <xsl:when test="string-length($medium)">
+ <xsl:value-of select="$medium" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="medium">
+ <xsl:value-of select="medium" />
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ <xsl:apply-templates/>
+ </pz:record>
+ </xsl:template>
+
+ <!--
+ The elements mapped in the following clauses should be kept more
+ or less in sync with those named in builder/templates/search.cft
+ in the "cf" git module.
+ -->
+
+ <xsl:template match="date">
+ <pz:metadata type="publication-date">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ <pz:metadata type="date">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="url">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="title">
+ <pz:metadata type="title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ <pz:metadata type="title-complete">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="journaltitle">
+ <pz:metadata type="journal-title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <!--
+ According to cf/builder/templates/parseTask.cff, connectors can
+ also generate a "holding" field, but it's not clear how that is
+ different from "item". Perhaps this "item" rule should also
+ handle "holding" in the same way?
+ -->
+
+ <xsl:template match="item">
+ <pz:metadata type="due" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="due"/>
+ </pz:metadata>
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="location"/>
+ </pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="callno"/>
+ </pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR_NULL_VALUE">
+ <xsl:value-of select="available"/>
+ </pz:metadata>
+ <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="publicnote"/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="location">
+ <pz:metadata type="locallocation">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="callno">
+ <pz:metadata type="callnumber">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <!-- no-op template to avoid printing medium out -->
+ <xsl:template match="medium" />
+
+ <xsl:template match="*" >
+ <pz:metadata type="{local-name()}">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="text()"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<pz:record xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:siebel="http://loc.gov/siebel/elements/1.0/">
+ <pz:metadata type="medium"/>
+ <pz:metadata type="publication-date">2013 </pz:metadata>
+ <pz:metadata type="date">2013 </pz:metadata>
+ <pz:metadata type="electronic-url">http://agricola.nal.usda.gov/cgi-bin/Pwebrecon.cgi?v1=1&ti=1,1&SAB1=mankind&BOOL1=all%20of%20these&FLD1=Keyword%20Anywhere%20%28GKEY%29&GRP1=AND%20with%20next%20set&SAB2=&BOOL2=any%20of%20these&FLD2=Subject%20%28SKEY%29&GRP2=AND%20with%20next%20set&SAB3=&BOOL3=as%20a%20phrase&FLD3=Title%20%28TKEY%29&GRP3=AND%20with%20next%20set&SAB4=&BOOL4=as%20a%20phrase&FLD4=Author%20Name%20%28NKEY%29&CNT=25&PID=j4FOGuOTymu6tJsbPHH3Q3yGIH7DxM&SEQ=20140519072849&SID=1</pz:metadata>
+ <pz:metadata type="title">Biotechnological applications of microalgae : biodiesel and value added products</pz:metadata>
+ <pz:metadata type="title-complete">Biotechnological applications of microalgae : biodiesel and value added products</pz:metadata>
+ <pz:metadata type="author"/>
+ <pz:metadata type="due" empty="PAZPAR2_NULL_VALUE"/>
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">Stacks</pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">TP248.27.A46 B56 2013</pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR_NULL_VALUE">Available</pz:metadata>
+ <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE"/>
+</pz:record>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<record>
+ <date>2013 </date>
+ <url>http://agricola.nal.usda.gov/cgi-bin/Pwebrecon.cgi?v1=1&ti=1,1&SAB1=mankind&BOOL1=all%20of%20these&FLD1=Keyword%20Anywhere%20%28GKEY%29&GRP1=AND%20with%20next%20set&SAB2=&BOOL2=any%20of%20these&FLD2=Subject%20%28SKEY%29&GRP2=AND%20with%20next%20set&SAB3=&BOOL3=as%20a%20phrase&FLD3=Title%20%28TKEY%29&GRP3=AND%20with%20next%20set&SAB4=&BOOL4=as%20a%20phrase&FLD4=Author%20Name%20%28NKEY%29&CNT=25&PID=j4FOGuOTymu6tJsbPHH3Q3yGIH7DxM&SEQ=20140519072849&SID=1</url>
+ <title>Biotechnological applications of microalgae : biodiesel and value added products</title>
+ <author></author>
+ <item>
+ <location>Stacks</location>
+ <callno>TP248.27.A46 B56 2013</callno>
+ <available>Available</available>
+ </item>
+</record>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+<!-- Beginnings of Danmarc2 XSL.
+
+ This is just USMARC with minor tweaks.. Not complete!
+-->
+ <xsl:include href="pz2-ourl-marc21.xsl" />
+
+ <xsl:template match="/marc:record">
+ <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
+ <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
+ <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
+ <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
+ <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
+ <xsl:variable name="medium">
+ <xsl:choose>
+ <xsl:when test="$title_medium">
+ <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
+ </xsl:when>
+ <xsl:when test="$fulltext_a">
+ <xsl:text>electronic resource</xsl:text>
+ </xsl:when>
+ <xsl:when test="$fulltext_b">
+ <xsl:text>electronic resource</xsl:text>
+ </xsl:when>
+ <xsl:when test="$electronic_location_url">
+ <xsl:text>electronic resource</xsl:text>
+ </xsl:when>
+ <xsl:when test="$journal_title">
+ <xsl:text>article</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>book</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <pz:record>
+ <xsl:attribute name="mergekey">
+ <xsl:text>title </xsl:text>
+ <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
+ <xsl:text> author </xsl:text>
+ <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
+ <xsl:text> medium </xsl:text>
+ <xsl:value-of select="$medium"/>
+ </xsl:attribute>
+
+
+ <xsl:for-each select="marc:datafield[@tag='001']/marc:subfield[@code='a']">
+ <pz:metadata type="id">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='010']">
+ <pz:metadata type="lccn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='020']">
+ <pz:metadata type="isbn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='022']">
+ <pz:metadata type="issn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='027']">
+ <pz:metadata type="tech-rep-nr">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='100']">
+ <pz:metadata type="author">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="author-title">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="author-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='110']">
+ <pz:metadata type="corporate-name">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="corporate-location">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="corporate-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='111']">
+ <pz:metadata type="meeting-name">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="meeting-location">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="meeting-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='260']">
+ <pz:metadata type="date">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='245']">
+ <pz:metadata type="title">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="title-remainder">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="title-responsibility">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="title-dates">
+ <xsl:value-of select="marc:subfield[@code='f']"/>
+ </pz:metadata>
+ <pz:metadata type="title-medium">
+ <xsl:value-of select="marc:subfield[@code='h']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='250']">
+ <pz:metadata type="edition">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='260']">
+ <pz:metadata type="publication-place">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="publication-name">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="publication-date">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='300']">
+ <pz:metadata type="physical-extent">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-format">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-dimensions">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-accomp">
+ <xsl:value-of select="marc:subfield[@code='e']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-unittype">
+ <xsl:value-of select="marc:subfield[@code='f']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-unitsize">
+ <xsl:value-of select="marc:subfield[@code='g']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-specified">
+ <xsl:value-of select="marc:subfield[@code='3']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='440']">
+ <pz:metadata type="series-title">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
+ [@tag != '506' and @tag != '530' and
+ @tag != '540' and @tag != '546'
+ and @tag != '522']">
+ <pz:metadata type="description">
+ <xsl:value-of select="*/text()"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='650' or @tag='653'
+ or @tag='630' or @tag='666']">
+
+ <xsl:for-each select="marc:subfield">
+ <pz:metadata type="subject">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='856']">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="marc:subfield[@code='u']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-text">
+ <xsl:value-of select="marc:subfield[@code='y']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-note">
+ <xsl:value-of select="marc:subfield[@code='z']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='773']">
+ <pz:metadata type="citation">
+ <xsl:for-each select="*">
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <pz:metadata type="medium">
+ <xsl:value-of select="$medium"/>
+ </pz:metadata>
+
+ <xsl:if test="$fulltext_a">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="$fulltext_a"/>
+ </pz:metadata>
+ </xsl:if>
+
+ <xsl:if test="$fulltext_b">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="$fulltext_b"/>
+ </pz:metadata>
+ </xsl:if>
+
+ <xsl:if test="$open_url_resolver">
+ <pz:metadata type="open-url">
+ <xsl:call-template name="insert-md-openurl" />
+ </pz:metadata>
+ </xsl:if>
+
+ </pz:record>
+
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ This stylesheet expects oai/dc records
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms="http://purl.org/dc/terms/">
+
+ <xsl:output indent="yes"
+ method="xml"
+ version="1.0"
+ encoding="UTF-8"/>
+
+ <xsl:param name="medium" />
+
+ <xsl:template match="/*">
+ <pz:record>
+
+ <pz:metadata type="id">
+ <xsl:value-of select="dc:identifier"/>
+ </pz:metadata>
+
+ <xsl:for-each select="dc:title">
+ <pz:metadata type="title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:date">
+ <pz:metadata type="date">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:subject">
+ <pz:metadata type="subject">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:creator">
+ <pz:metadata type="author">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:description">
+ <pz:metadata type="description">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:identifier">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:type">
+ <pz:metadata type="medium">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dcterms:bibliographicCitation">
+ <pz:metadata type="citation">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <pz:metadata type="medium">
+ <xsl:value-of select="$medium" />
+ </pz:metadata>
+
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="text()"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ This stylesheet expects dkabm collection records as returned
+ from DBC's OpenSearch service.
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms="http://purl.org/dc/terms/"
+ xmlns:dkabm="http://biblstandard.dk/abm/namespace/dkabm/"
+ xmlns:os="http://oss.dbc.dk/ns/opensearch">
+
+ <xsl:output indent="yes"
+ method="xml"
+ version="1.0"
+ encoding="UTF-8"/>
+
+ <xsl:param name="medium" />
+
+ <xsl:template match="/">
+ <pz:cluster>
+ <xsl:apply-templates/>
+ </pz:cluster>
+ </xsl:template>
+
+ <xsl:template match="os:object">
+ <pz:record>
+ <xsl:apply-templates/>
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="os:score">
+ <pz:metadata type="score">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="dkabm:record">
+
+ <pz:metadata type="id">
+ <xsl:value-of select="dc:identifier"/>
+ </pz:metadata>
+
+ <xsl:for-each select="dc:title">
+ <pz:metadata type="title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:date">
+ <pz:metadata type="date">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:subject">
+ <pz:metadata type="subject">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:creator">
+ <pz:metadata type="author">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:description">
+ <pz:metadata type="description">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:identifier">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:type">
+ <pz:metadata type="medium">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dcterms:bibliographicCitation">
+ <pz:metadata type="citation">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <pz:metadata type="medium">
+ <xsl:value-of select="$medium" />
+ </pz:metadata>
+
+ </xsl:template>
+
+ <xsl:template match="text()"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+
+ <xsl:import href="marc21.xsl" />
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+ <xsl:include href="pz2-ourl-marc21.xsl" />
+
+ <xsl:template name="record-hook">
+ Our hook
+ <xsl:if test="$open_url_resolver">
+ <pz:metadata type="open-url">
+ <xsl:call-template name="insert-md-openurl" />
+ </pz:metadata>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+<!-- Extract metadata from MARC21/USMARC
+ http://www.loc.gov/marc/bibliographic/ecbdhome.html
+-->
+ <xsl:template name="record-hook"/>
+
+ <xsl:template match="/">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="marc:collection">
+ <pz:collection>
+ <xsl:apply-templates/>
+ </pz:collection>
+ </xsl:template>
+
+ <xsl:template match="marc:record">
+ <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
+ <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
+ <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
+ <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
+ <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
+ <xsl:variable name="medium">
+ <xsl:choose>
+ <xsl:when test="$title_medium">
+ <xsl:value-of select="translate($title_medium, ' []/', '')"/>
+ </xsl:when>
+ <xsl:when test="$fulltext_a">
+ <xsl:text>electronic resource</xsl:text>
+ </xsl:when>
+ <xsl:when test="$fulltext_b">
+ <xsl:text>electronic resource</xsl:text>
+ </xsl:when>
+ <xsl:when test="$journal_title">
+ <xsl:text>article</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>book</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="has_fulltext">
+ <xsl:choose>
+ <xsl:when test="marc:datafield[@tag='856']/marc:subfield[@code='q']">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:when test="marc:datafield[@tag='856']/marc:subfield[@code='i']='TEXT*'">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>no</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="oclc_number">
+ <xsl:variable name="c001" select='marc:controlfield[@tag="001"]' />
+ <xsl:choose>
+ <xsl:when test='contains(marc:controlfield[@tag="001"],"ocn") or
+ contains(marc:controlfield[@tag="001"],"ocm") or
+ contains(marc:controlfield[@tag="001"],"OCoLC")'>
+ <xsl:value-of select="marc:controlfield[@tag='001']"/>
+ </xsl:when>
+ <xsl:when test='contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"ocn") or
+ contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"ocm") or
+ contains(marc:datafield[@tag="035"]/marc:subfield[@code="a"],"OCoLC") '>
+ <xsl:value-of select="marc:datafield[@tag='035']/marc:subfield[@code='a']"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="date_008">
+ <xsl:choose>
+ <xsl:when test="contains('cestpudikmr', substring(marc:controlfield[@tag='008'], 7, 1))">
+ <xsl:value-of select="substring(marc:controlfield[@tag='008'], 8, 4)" />
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="date_end_008">
+ <xsl:choose>
+ <xsl:when test="contains('dikmr', substring(marc:controlfield[@tag='008'], 7, 1))">
+ <xsl:value-of select="substring(marc:controlfield[@tag='008'], 12, 4)" />
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <pz:record>
+ <xsl:for-each select="marc:controlfield[@tag='001']">
+ <pz:metadata type="id">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <pz:metadata type="oclc-number">
+ <xsl:value-of select="$oclc_number" />
+ </pz:metadata>
+
+ <xsl:for-each select="marc:datafield[@tag='010']">
+ <pz:metadata type="lccn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='020']">
+ <pz:metadata type="isbn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='022']">
+ <pz:metadata type="issn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='027']">
+ <pz:metadata type="tech-rep-nr">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='035']">
+ <pz:metadata type="system-control-nr">
+ <xsl:choose>
+ <xsl:when test="marc:subfield[@code='a']">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='100']">
+ <pz:metadata type="author">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="author-title">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="author-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='110']">
+ <pz:metadata type="corporate-name">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="corporate-location">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="corporate-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='111']">
+ <pz:metadata type="meeting-name">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="meeting-location">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="meeting-date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='130']">
+ <pz:metadata type="title-uniform">
+ <xsl:value-of select="marc:subfield[@code='a']" />
+ </pz:metadata>
+ <pz:metadata type="title-uniform-media">
+ <xsl:value-of select="marc:subfield[@code='m']" />
+ </pz:metadata>
+ <pz:metadata type="title-uniform-parts">
+ <xsl:value-of select="marc:subfield[@code='n']" />
+ </pz:metadata>
+ <pz:metadata type="title-uniform-partname">
+ <xsl:value-of select="marc:subfield[@code='p']" />
+ </pz:metadata>
+ <pz:metadata type="title-uniform-key">
+ <xsl:value-of select="marc:subfield[@code='r']" />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='260']">
+ <pz:metadata type="date">
+ <xsl:value-of select="translate(marc:subfield[@code='c'], 'cp[].', '')" />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:if test="$date_008 and not(marc:datafield[@tag='260'])">
+ <pz:metadata type="date">
+ <xsl:choose>
+ <xsl:when test="$date_end_008">
+ <xsl:value-of select="concat($date_008,'-',$date_end_008)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$date_008" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:if>
+
+ <xsl:for-each select="marc:datafield[@tag='245']">
+ <pz:metadata type="title">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="title-remainder">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="title-responsibility">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="title-dates">
+ <xsl:value-of select="marc:subfield[@code='f']"/>
+ </pz:metadata>
+ <pz:metadata type="title-medium">
+ <xsl:value-of select="marc:subfield[@code='h']"/>
+ </pz:metadata>
+ <pz:metadata type="title-number-section">
+ <xsl:value-of select="marc:subfield[@code='n']"/>
+ </pz:metadata>
+ <pz:metadata type="title-complete">
+ <xsl:value-of select="marc:subfield[@code='a']" />
+ <xsl:if test="marc:subfield[@code='b']" ><xsl:value-of select="concat(' ', marc:subfield[@code='b'])" /></xsl:if>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='250']">
+ <pz:metadata type="edition">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='260']">
+ <pz:metadata type="publication-place">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="publication-name">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="publication-date">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='300']">
+ <pz:metadata type="physical-extent">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-format">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-dimensions">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-accomp">
+ <xsl:value-of select="marc:subfield[@code='e']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-unittype">
+ <xsl:value-of select="marc:subfield[@code='f']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-unitsize">
+ <xsl:value-of select="marc:subfield[@code='g']"/>
+ </pz:metadata>
+ <pz:metadata type="physical-specified">
+ <xsl:value-of select="marc:subfield[@code='3']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='440']">
+ <pz:metadata type="series-title">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag = '500' or @tag = '505' or
+ @tag = '518' or @tag = '520' or @tag = '522']">
+ <pz:metadata type="description">
+ <xsl:value-of select="*/text()"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each
+ select="marc: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']">
+ <pz:metadata type="subject">
+ <xsl:value-of select="marc:subfield[@code='a']" />
+ </pz:metadata>
+ <pz:metadata type="subject-long">
+ <xsl:for-each select="node()/text()">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:variable name='value'>
+ <xsl:value-of select='normalize-space(.)' />
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="substring($value,string-length($value)) = ','">
+ <xsl:value-of select="substring($value,1,string-length($value)-1)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='856']">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="marc:subfield[@code='u']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-text">
+ <xsl:value-of select="marc:subfield[@code='y' or @code='3' or @code='a']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-note">
+ <xsl:value-of select="marc:subfield[@code='z']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-format-instruction">
+ <xsl:value-of select="marc:subfield[@code='i']"/>
+ </pz:metadata>
+ <pz:metadata type="electronic-format-type">
+ <xsl:value-of select="marc:subfield[@code='q']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='773']">
+ <pz:metadata type="citation">
+ <xsl:for-each select="*">
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </pz:metadata>
+ <xsl:if test="marc:subfield[@code='t']">
+ <pz:metadata type="journal-title">
+ <xsl:value-of select="marc:subfield[@code='t']"/>
+ </pz:metadata>
+ </xsl:if>
+ <xsl:if test="marc:subfield[@code='g']">
+ <pz:metadata type="journal-subpart">
+ <xsl:value-of select="marc:subfield[@code='g']"/>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='852']">
+ <xsl:if test="marc:subfield[@code='y']">
+ <pz:metadata type="publicnote">
+ <xsl:value-of select="marc:subfield[@code='y']"/>
+ </pz:metadata>
+ </xsl:if>
+ <xsl:if test="marc:subfield[@code='h']">
+ <pz:metadata type="callnumber">
+ <xsl:value-of select="marc:subfield[@code='h']"/>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='900']/marc:subfield[@code='a']">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <pz:metadata type="medium">
+ <xsl:value-of select="$medium"/>
+ </pz:metadata>
+
+ <pz:metadata type="has-fulltext">
+ <xsl:value-of select="$has_fulltext"/>
+ </pz:metadata>
+
+ <xsl:for-each select="marc:datafield[@tag='900']/marc:subfield[@code='b']">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- <xsl:if test="$fulltext_b">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="$fulltext_b"/>
+ </pz:metadata>
+ </xsl:if> -->
+
+ <xsl:for-each select="marc:datafield[@tag='907' or @tag='901']">
+ <pz:metadata type="iii-id">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='926']">
+ <pz:metadata type="holding">
+ <xsl:for-each select="marc:subfield">
+ <xsl:if test="position() > 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='948']">
+ <pz:metadata type="holding">
+ <xsl:for-each select="marc:subfield">
+ <xsl:if test="position() > 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='991']">
+ <pz:metadata type="holding">
+ <xsl:for-each select="marc:subfield">
+ <xsl:if test="position() > 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='999']">
+ <pz:metadata type="localid">
+ <xsl:choose>
+ <xsl:when test="marc:subfield[@code='a']">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </xsl:when>
+ <xsl:when test="marc:subfield[@code='c']">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- passthrough id data -->
+ <xsl:for-each select="pz:metadata">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+
+ <!-- other stylesheets importing this might want to define this -->
+ <xsl:call-template name="record-hook"/>
+
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="text()"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ This stylesheet expects oai/dc records
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:oai="http://www.openarchives.org/OAI/2.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms="http://purl.org/dc/terms/">
+
+ <xsl:output indent="yes"
+ method="xml"
+ version="1.0"
+ encoding="UTF-8"/>
+
+
+
+ <xsl:template match="/oai:record/oai:metadata/*">
+ <pz:record>
+
+ <pz:metadata type="id">
+ <xsl:value-of select="/oai:record/oai:header/oai:identifier"/>
+ </pz:metadata>
+
+ <xsl:for-each select="dc:title">
+ <pz:metadata type="title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:date">
+ <pz:metadata type="date">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:subject">
+ <pz:metadata type="subject">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:creator">
+ <pz:metadata type="author">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:description">
+ <pz:metadata type="description">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:identifier">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dc:type">
+ <pz:metadata type="medium">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="dcterms:bibliographicCitation">
+ <pz:metadata type="citation">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ </pz:record>
+ </xsl:template>
+
+
+ <xsl:template match="text()"/>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+ <xsl:import href="marc21.xsl"/>
+
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+<!-- Extract metadata from OPAC records with embedded MAR records
+ http://www.loc.gov/marc/bibliographic/ecbdhome.html
+-->
+
+ <xsl:template name="record-hook">
+ <xsl:for-each select="/opacRecord/holdings/holding">
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="localLocation"/>
+ </pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="callNumber"/>
+ </pz:metadata>
+ <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="publicNote"/>
+ </pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
+ <xsl:choose>
+ <xsl:when test="circulations/circulation/availableNow/@value = '1'">
+ Available
+ </xsl:when>
+ <xsl:when test="circulations/circulation/availableNow/@value = '0'">
+ <xsl:value-of select="circulations/circulation/availabilityDate"/>
+ </xsl:when>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <xsl:choose>
+ <xsl:when test="opacRecord">
+ <xsl:apply-templates select="opacRecord/bibliographicRecord"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.indexdata.com/turbomarc">
+
+ <xsl:import href="tmarc.xsl"/>
+
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+<!-- Extract metadata from OPAC records with embedded MAR records
+ http://www.loc.gov/marc/bibliographic/ecbdhome.html
+-->
+
+ <xsl:template name="record-hook">
+ <xsl:for-each select="/opacRecord/holdings/holding">
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="localLocation"/>
+ </pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="callNumber"/>
+ </pz:metadata>
+ <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="publicNote"/>
+ </pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
+ <xsl:choose>
+ <xsl:when test="circulations/circulation/availableNow/@value = '1'">
+ Available
+ </xsl:when>
+ <xsl:when test="circulations/circulation/availableNow/@value = '0'">
+ <xsl:value-of select="circulations/circulation/availabilityDate"/>
+ </xsl:when>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="/">
+ <xsl:choose>
+ <xsl:when test="opacRecord">
+ <xsl:apply-templates select="opacRecord/bibliographicRecord"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+<xsl:template match="/">
+ <searchresult>
+ <!-- TODO make query an xsl parameter -->
+ <query>water</query>
+ <xsl:for-each select="show/hit">
+ <document>
+ <xsl:attribute name="id">
+ <xsl:value-of select="recid" />
+ </xsl:attribute>
+ <title><xsl:value-of select="md-title" /></title>
+ <url><xsl:value-of select="location/md-electronic-url" /></url>
+ <snippet xml:space="preserve">
+ <xsl:for-each select="md-description">
+ <xsl:value-of select="." />
+ </xsl:for-each>
+ <xsl:value-of select="md-title-responsibility" />
+ </snippet>
+ </document>
+ </xsl:for-each>
+ </searchresult>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:tmarc="http://www.indexdata.com/turbomarc"
+ xmlns:prim="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib"
+ xmlns:sear="http://www.exlibrisgroup.com/xsd/jaguar/search"
+>
+
+ <xsl:output indent="yes" method="xml" version="1.0"
+ encoding="UTF-8" />
+
+ <xsl:template name="record-hook" />
+
+ <xsl:variable name="type" select="/opt/prim:PrimoNMBib/prim:display/prim:type"/>
+ <xsl:variable name="is_article" select="$type = 'article'" />
+ <xsl:variable name="fulltext" select="/opt/prim:PrimoNMBib/prim:delivery/prim:fulltext"/>
+ <xsl:variable name="has_fulltext">
+ <xsl:choose>
+ <xsl:when test="$fulltext = 'no_fulltext' ">
+ <xsl:text>no</xsl:text>
+ </xsl:when>
+ <xsl:when test="$fulltext = 'fulltext'">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>no</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:template match="/">
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="sear:RESULT">
+ <pz:records>
+ <xsl:apply-templates />
+ </pz:records>
+ </xsl:template>
+
+ <xsl:template match="sear:DOC">
+ <pz:record>
+ <xsl:apply-templates />
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="prim:PrimoNMBib">
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="prim:control">
+ <xsl:for-each select="prim:recordid">
+ <pz:metadata type="id">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="prim:addata">
+ <!-- <xsl:variable name="yearmonthday" select="@date" /> -->
+
+ <xsl:for-each select="prim:date">
+ <pz:metadata type="date">
+ <xsl:value-of select="substring(.,1,4)" />
+ </pz:metadata>
+ <pz:metadata type="journal-month">
+ <xsl:value-of select="substring(.,4,1)" />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:volume">
+ <pz:metadata type="journal-number">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:issue">
+ <pz:metadata type="issue-number">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:issn">
+ <pz:metadata type="issn">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:jtitle">
+ <pz:metadata type="journal-title">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="prim:delivery">
+
+ <xsl:if test="$has_fulltext">
+ <pz:metadata type="has-fulltext">
+ <xsl:value-of select="$has_fulltext" />
+ </pz:metadata>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template match="prim:display">
+ <xsl:for-each select="prim:creator">
+ <pz:metadata type="author">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="prim:type">
+ <xsl:variable name="type" select="."/>
+ <pz:metadata type="medium">
+ <xsl:choose>
+ <xsl:when test="$type ='article' and $has_fulltext = 'yes'">
+ <xsl:text>e-article</xsl:text>
+ </xsl:when>
+ <xsl:when test="$type = 'article' and $has_fulltext = 'no'">
+ <xsl:text>article</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$type"/>
+ </xsl:otherwise>
+ </xsl:choose>
+<!-- <xsl:value-of select="$type" /> -->
+ </pz:metadata>
+ <pz:metadata type="debug_isarticle"><xsl:value-of select="$is_article"/></pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:title">
+ <pz:metadata type="title">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="prim:ispartof">
+ <pz:metadata type="journal-subpart">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+<!--
+ <xsl:apply-templates />
+-->
+ </xsl:template>
+
+ <xsl:template match="prim:facets">
+ <xsl:for-each select="prim:topic">
+ <pz:metadata type="subject">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="sear:LINKS" >
+ <xsl:for-each select="sear:openurl">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="prim:search">
+ <xsl:for-each select="prim:description">
+ <pz:metadata type="description">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+
+ <xsl:for-each select="prim:sub">
+ <pz:metadata type="subject">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- passthrough id data -->
+ <xsl:for-each select="pz:metadata">
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+ <!-- other stylesheets importing this might want to define this -->
+
+ <xsl:call-template name="record-hook" />
+ </xsl:template>
+
+ <xsl:template match="text()" />
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="str">
+
+ <xsl:param name="open_url_resolver"/>
+ <!--<xsl:variable name="resolver">http://zeus.lib.uoc.gr:3210/sfxtst3</xsl:variable>-->
+
+ <xsl:template name="insert-md-openurl">
+
+ <xsl:value-of select="$open_url_resolver" /><xsl:text>?generatedby=pz2</xsl:text>
+ <xsl:call-template name="ou-parse-author" />
+ <xsl:call-template name="ou-parse-date" />
+ <xsl:call-template name="ou-parse-volume" />
+ <xsl:call-template name="ou-parse-any">
+ <xsl:with-param name="field_name" select="string('isbn')" />
+ </xsl:call-template>
+ <xsl:call-template name="ou-parse-any">
+ <xsl:with-param name="field_name" select="string('issn')" />
+ </xsl:call-template>
+ <xsl:call-template name="ou-parse-any">
+ <xsl:with-param name="field_name" select="string('title')" />
+ </xsl:call-template>
+ <xsl:call-template name="ou-parse-any">
+ <xsl:with-param name="field_name" select="string('atitle')" />
+ </xsl:call-template>
+
+ </xsl:template>
+
+ <!-- parsing raw string data -->
+
+ <xsl:template name="ou-parse-author" >
+ <xsl:variable name="author">
+ <xsl:call-template name="ou-author" />
+ </xsl:variable>
+
+ <xsl:variable name="aulast" select="normalize-space(substring-before($author, ','))"/>
+
+ <xsl:variable name="aufirst"
+ select="substring-before( normalize-space(substring-after($author, ',')), ' ')"/>
+
+ <xsl:if test="$aulast != ''">
+ <xsl:text>&aulast=</xsl:text>
+ <xsl:value-of select="$aulast" />
+ </xsl:if>
+
+ <xsl:if test="string-length( translate($aufirst, '.', '') ) > 1" >
+ <xsl:text>&aufirst=</xsl:text>
+ <xsl:value-of select="$aufirst" />
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template name="ou-parse-volume">
+ <xsl:variable name="volume">
+ <xsl:call-template name="ou-volume" />
+ </xsl:variable>
+
+ <xsl:variable name="vol" select="substring-after($volume, 'Vol')"/>
+ <xsl:variable name="issue" select="false()" />
+ <xsl:variable name="spage" select="false()" />
+
+ <xsl:if test="$vol">
+ <xsl:text>&volume=</xsl:text>
+ <xsl:value-of select="$vol" />
+ </xsl:if>
+
+ <xsl:if test="$issue">
+ <xsl:text>&issue=</xsl:text>
+ <xsl:value-of select="$issue" />
+ </xsl:if>
+
+ <xsl:if test="$spage">
+ <xsl:text>&spage=</xsl:text>
+ <xsl:value-of select="$vol" />
+ </xsl:if>
+
+ </xsl:template>
+
+
+ <xsl:template name="ou-parse-date">
+ <xsl:variable name="date">
+ <xsl:call-template name="ou-date" />
+ </xsl:variable>
+
+ <xsl:variable name="parsed_date" select="translate($date, '.[]c;', '')"/>
+
+ <xsl:if test="$parsed_date">
+ <xsl:text>&date=</xsl:text>
+ <xsl:value-of select="$parsed_date" />
+ </xsl:if>
+
+ </xsl:template>
+
+
+ <xsl:template name="ou-parse-any">
+ <xsl:param name="field_name" />
+
+ <xsl:variable name="field_value">
+ <xsl:choose>
+
+ <xsl:when test="$field_name = 'isbn'">
+ <xsl:call-template name="ou-isbn"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'issn'">
+ <xsl:call-template name="ou-issn"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'atitle'">
+ <xsl:call-template name="ou-atitle"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'title'">
+ <xsl:call-template name="ou-title"/>
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="digits" select="1234567890"/>
+
+ <xsl:variable name="parsed_value">
+ <xsl:choose>
+
+ <xsl:when test="$field_name = 'isbn'">
+ <xsl:value-of select="translate($field_value, translate($field_value, concat($digits, 'X'), ''), '')"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'issn'">
+ <xsl:value-of select="translate($field_value, translate($field_value, concat($digits, '-', 'X'), ''), '')"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'atitle'">
+ <xsl:value-of select="translate(normalize-space($field_value), '.', '')"/>
+ </xsl:when>
+
+ <xsl:when test="$field_name = 'title'">
+ <xsl:value-of select="translate(normalize-space($field_value), '.', '')"/>
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:variable>
+
+
+ <xsl:if test="$parsed_value != ''">
+ <xsl:text>&</xsl:text>
+ <xsl:value-of select="$field_name" />
+ <xsl:text>=</xsl:text>
+ <xsl:value-of select="$parsed_value" />
+ </xsl:if>
+
+ </xsl:template>
+
+
+</xsl:stylesheet>
+<!--
+/*
+ * Local variables:
+ * c-basic-offset: 2
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=2 tabstop=4 expandtab
+ */
+-->
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="str">
+
+ <xsl:import href="pz2-ourl-base.xsl"/>
+
+ <xsl:template name="ou-author" >
+ <!-- what to do with multiple authors??-->
+ <xsl:for-each select="marc:datafield[@tag='100' or @tag='700']">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="ou-title" >
+ <!-- if 773 exists its a journal/article -->
+ <xsl:choose>
+
+ <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='t']">
+ <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
+ </xsl:when>
+
+ <xsl:when test="marc:datafield[@tag='245']/marc:subfield[@code='a']">
+ <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="ou-atitle" >
+ <!-- return value only if article or journal -->
+ <xsl:if test="marc:datafield[@tag='773']">
+ <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="ou-date" >
+ <xsl:for-each select="marc:datafield[@tag='260']">
+ <xsl:value-of select="marc:subfield[@code='c']"/>
+ </xsl:for-each>
+ </xsl:template>
+
+
+ <xsl:template name="ou-isbn" >
+ <!-- if 773 exists its a journal/article -->
+ <xsl:choose>
+
+ <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='z']">
+ <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='z']"/>
+ </xsl:when>
+
+ <xsl:when test="marc:datafield[@tag='020']/marc:subfield[@code='a']">
+ <xsl:value-of select="marc:datafield[@tag='020']/marc:subfield[@code='a']"/>
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="ou-issn" >
+ <!-- if 773 exists its a journal/article -->
+ <xsl:choose>
+
+ <xsl:when test="marc:datafield[@tag='773']/marc:subfield[@code='x']">
+ <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='x']"/>
+ </xsl:when>
+
+ <xsl:when test="marc:datafield[@tag='022']/marc:subfield[@code='a']">
+ <xsl:value-of select="marc:datafield[@tag='022']/marc:subfield[@code='a']"/>
+ </xsl:when>
+
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="ou-volume" >
+ <xsl:if test="marc:datafield[@tag='773']">
+ <xsl:value-of select="marc:datafield[@tag='773']/marc:subfield[@code='g']"/>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
+<!--
+/*
+ * Local variables:
+ * c-basic-offset: 2
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=2 tabstop=4 expandtab
+ */
+-->
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0" >
+
+ <xsl:param name="medium" />
+
+ <xsl:template match="/">
+ <xsl:apply-templates></xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="response">
+ <xsl:apply-templates></xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="records">
+ <xsl:apply-templates></xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="doc">
+ <pz:record>
+ <xsl:if test="string-length($medium) > 0">
+ <pz:metadata type="medium">
+ <xsl:value-of select="$medium"/>
+ </pz:metadata>
+ </xsl:if>
+ <xsl:apply-templates></xsl:apply-templates>
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="float[@name]">
+ <pz:metadata>
+ <xsl:attribute name="type">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="str[@name]">
+ <pz:metadata>
+ <xsl:attribute name="type">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="date[@name]">
+ <pz:metadata>
+ <xsl:attribute name="type">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:template>
+
+ <xsl:template match="arr">
+ <xsl:for-each select="str">
+ <xsl:call-template name="string"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="string">
+ <xsl:choose>
+ <xsl:when test="../@name = 'medium' and string-length($medium) > 0">
+ </xsl:when>
+ <xsl:otherwise>
+ <pz:metadata>
+ <xsl:attribute name="type">
+ <xsl:value-of select="../@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<pz:record xmlns:pz="http://www.indexdata.com/pazpar2/1.0">
+ <pz:metadata type="electronic-text"/>
+ <pz:metadata type="subject">Science fiction Short stories Forgers -- Fiction</pz:metadata>
+ <pz:metadata type="subject-long">Science fiction Short stories Forgers -- Fiction, PS</pz:metadata>
+ <pz:metadata type="electronic-url">http://www.gutenberg.org/ebooks/24558</pz:metadata>
+ <pz:metadata type="publication-place"/>
+ <pz:metadata type="publication-name">Project Gutenberg</pz:metadata>
+ <pz:metadata type="title-dates"/>
+ <pz:metadata type="date"/>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="title-number-section"/>
+ <pz:metadata type="title-responsibility"/>
+ <pz:metadata type="publication-date"/>
+ <pz:metadata type="id">3552-24558</pz:metadata>
+ <pz:metadata type="author-date"/>
+ <pz:metadata type="author">Schmitz, James H.</pz:metadata>
+ <pz:metadata type="title">Watch the Sky</pz:metadata>
+ <pz:metadata type="author-title"/>
+ <pz:metadata type="electronic-note"/>
+ <pz:metadata type="title-remainder"/>
+ <pz:metadata type="title-medium"/>
+ <pz:metadata type="database">3552</pz:metadata>
+ <pz:metadata type="harvest-timestamp">2014-04-23T08:00:01.067Z</pz:metadata>
+ <pz:metadata type="harvest-date">2014-04-23</pz:metadata>
+ 1466162433409155072
+ <pz:metadata type="score">7.7963223</pz:metadata>
+</pz:record>
--- /dev/null
+<?xml version="1.0"?>
+<doc>
+ <arr name="electronic-text">
+ <str/>
+ </arr>
+ <arr name="subject">
+ <str>Science fiction Short stories Forgers -- Fiction</str>
+ </arr>
+ <arr name="subject-long">
+ <str>Science fiction Short stories Forgers -- Fiction, PS</str>
+ </arr>
+ <arr name="electronic-url">
+ <str>http://www.gutenberg.org/ebooks/24558</str>
+ </arr>
+ <arr name="publication-place">
+ <str/>
+ </arr>
+ <arr name="publication-name">
+ <str>Project Gutenberg</str>
+ </arr>
+ <arr name="title-dates">
+ <str/>
+ </arr>
+ <arr name="date">
+ <str/>
+ </arr>
+ <arr name="medium">
+ <str>book</str>
+ </arr>
+ <arr name="title-number-section">
+ <str/>
+ </arr>
+ <arr name="title-responsibility">
+ <str/>
+ </arr>
+ <arr name="publication-date">
+ <str/>
+ </arr>
+ <str name="id">3552-24558</str>
+ <arr name="author-date">
+ <str/>
+ </arr>
+ <arr name="author">
+ <str>Schmitz, James H.</str>
+ </arr>
+ <arr name="title">
+ <str>Watch the Sky</str>
+ </arr>
+ <arr name="author-title">
+ <str/>
+ </arr>
+ <arr name="electronic-note">
+ <str/>
+ </arr>
+ <arr name="title-remainder">
+ <str/>
+ </arr>
+ <arr name="title-medium">
+ <str/>
+ </arr>
+ <arr name="database">
+ <str>3552</str>
+ </arr>
+ <date name="harvest-timestamp">2014-04-23T08:00:01.067Z</date>
+ <str name="harvest-date">2014-04-23</str>
+ <long name="_version_">1466162433409155072</long>
+ <float name="score">7.7963223</float>
+</doc>
--- /dev/null
+<?xml version="1.0"?>
+<pz:record xmlns:pz="http://www.indexdata.com/pazpar2/1.0"><pz:metadata type="medium">cd</pz:metadata>
+ <pz:metadata type="electronic-text"/>
+ <pz:metadata type="subject">Science fiction Short stories Forgers -- Fiction</pz:metadata>
+ <pz:metadata type="subject-long">Science fiction Short stories Forgers -- Fiction, PS</pz:metadata>
+ <pz:metadata type="electronic-url">http://www.gutenberg.org/ebooks/24558</pz:metadata>
+ <pz:metadata type="publication-place"/>
+ <pz:metadata type="publication-name">Project Gutenberg</pz:metadata>
+ <pz:metadata type="title-dates"/>
+ <pz:metadata type="date"/>
+
+ <pz:metadata type="title-number-section"/>
+ <pz:metadata type="title-responsibility"/>
+ <pz:metadata type="publication-date"/>
+ <pz:metadata type="id">3552-24558</pz:metadata>
+ <pz:metadata type="author-date"/>
+ <pz:metadata type="author">Schmitz, James H.</pz:metadata>
+ <pz:metadata type="title">Watch the Sky</pz:metadata>
+ <pz:metadata type="author-title"/>
+ <pz:metadata type="electronic-note"/>
+ <pz:metadata type="title-remainder"/>
+ <pz:metadata type="title-medium"/>
+ <pz:metadata type="database">3552</pz:metadata>
+ <pz:metadata type="harvest-timestamp">2014-04-23T08:00:01.067Z</pz:metadata>
+ <pz:metadata type="harvest-date">2014-04-23</pz:metadata>
+ 1466162433409155072
+ <pz:metadata type="score">7.7963223</pz:metadata>
+</pz:record>
--- /dev/null
+<?xml version="1.0"?>
+<!-- xsltproc: ##stringparam medium cd -->
+<doc>
+ <arr name="electronic-text">
+ <str/>
+ </arr>
+ <arr name="subject">
+ <str>Science fiction Short stories Forgers -- Fiction</str>
+ </arr>
+ <arr name="subject-long">
+ <str>Science fiction Short stories Forgers -- Fiction, PS</str>
+ </arr>
+ <arr name="electronic-url">
+ <str>http://www.gutenberg.org/ebooks/24558</str>
+ </arr>
+ <arr name="publication-place">
+ <str/>
+ </arr>
+ <arr name="publication-name">
+ <str>Project Gutenberg</str>
+ </arr>
+ <arr name="title-dates">
+ <str/>
+ </arr>
+ <arr name="date">
+ <str/>
+ </arr>
+ <arr name="medium">
+ <str>book</str>
+ </arr>
+ <arr name="title-number-section">
+ <str/>
+ </arr>
+ <arr name="title-responsibility">
+ <str/>
+ </arr>
+ <arr name="publication-date">
+ <str/>
+ </arr>
+ <str name="id">3552-24558</str>
+ <arr name="author-date">
+ <str/>
+ </arr>
+ <arr name="author">
+ <str>Schmitz, James H.</str>
+ </arr>
+ <arr name="title">
+ <str>Watch the Sky</str>
+ </arr>
+ <arr name="author-title">
+ <str/>
+ </arr>
+ <arr name="electronic-note">
+ <str/>
+ </arr>
+ <arr name="title-remainder">
+ <str/>
+ </arr>
+ <arr name="title-medium">
+ <str/>
+ </arr>
+ <arr name="database">
+ <str>3552</str>
+ </arr>
+ <date name="harvest-timestamp">2014-04-23T08:00:01.067Z</date>
+ <str name="harvest-date">2014-04-23</str>
+ <long name="_version_">1466162433409155072</long>
+ <float name="score">7.7963223</float>
+</doc>
--- /dev/null
+#!/bin/sh
+v=`xsltproc --version|head -1|awk '{print $5}'`
+if test $v -lt 10124; then
+ echo "libxslt is version $v. Skipping test"
+ exit 0
+fi
+res=0
+for x in *.xsl; do
+ t=`basename $x .xsl`
+ if test ! -f ${t}1.xml; then
+ continue
+ fi
+ echo "$t"
+ for m in ${t}?.xml; do
+ b=`basename $m .xml`
+ opt=`grep 'xsltproc:' $m|cut -d: -f2|cut -d- -f1|tr '#' '-'`
+ l=$b.log.xml
+ r=$b.res.xml
+ d=$b.dif
+ xsltproc $opt $x $m >$l
+ if test -f $r; then
+ if diff $l $r >$d; then
+ rm $d
+ else
+ echo "$b: FAIL; check $d"
+ res=1
+ fi
+ else
+ echo "$b: making $r for the first time"
+ mv $l $r
+ res=1
+ fi
+ done
+done
+exit $res
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns="http://www.indexdata.com/turbomarc"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:tmarc="http://www.indexdata.com/turbomarc">
+
+ <xsl:output indent="yes" method="xml" version="1.0"
+ encoding="UTF-8" />
+ <xsl:param name="medium"/>
+
+ <!-- Extract metadata from MARC21/USMARC from streamlined marcxml format
+ http://www.loc.gov/marc/bibliographic/ecbdhome.html -->
+ <xsl:template name="record-hook" />
+
+
+ <xsl:template match="/">
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="tmarc:collection">
+ <collection>
+ <xsl:apply-templates />
+ </collection>
+ </xsl:template>
+
+ <xsl:template match="tmarc:r">
+ <xsl:variable name="title_medium" select="tmarc:d245/tmarc:sh" />
+ <xsl:variable name="journal_title" select="tmarc:d773/tmarc:st" />
+ <xsl:variable name="electronic_location_url" select="tmarc:d856/tmarc:su" />
+ <xsl:variable name="fulltext_a" select="tmarc:d900/tmarc:sa" />
+ <xsl:variable name="fulltext_b" select="tmarc:d900/tmarc:sb" />
+ <!-- Does not always hit the right substring. The field is not always fixed-width? -->
+ <xsl:variable name="control_lang" select="substring(tmarc:c008, 36, 3)" />
+ <xsl:variable name="contains110" select="tmarc:d110" />
+ <xsl:variable name="hasAuthorFields" select="tmarc:d100 or tmarc:d111" />
+ <xsl:variable name="typeofrec" select="substring(tmarc:l, 7, 1)"/>
+ <xsl:variable name="typeofvm" select="substring(tmarc:c008, 34, 1)"/>
+ <xsl:variable name="biblevel" select="substring(tmarc:l, 8, 1)"/>
+ <xsl:variable name="physdes" select="substring(tmarc:c007, 1, 1)"/>
+ <xsl:variable name="form1" select="substring(tmarc:c008, 24, 1)"/>
+ <xsl:variable name="form2" select="substring(tmarc:c008, 30, 1)"/>
+ <xsl:variable name="oclca" select="substring(tmarc:c007, 1, 1)"/>
+ <xsl:variable name="oclcb" select="substring(tmarc:c007, 2, 1)"/>
+ <xsl:variable name="oclcd" select="substring(tmarc:c007, 4, 1)"/>
+ <xsl:variable name="oclce" select="substring(tmarc:c007, 5, 1)"/>
+ <xsl:variable name="typeofserial" select="substring(tmarc:c008, 22, 1)"/>
+
+ <xsl:variable name="electronic">
+ <xsl:choose>
+ <xsl:when test="$form1='s' or $form1='q' or $form1='o' or
+ $form2='s' or $form2='q' or $form2='o'">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="vmedium">
+ <xsl:choose>
+ <xsl:when test="string-length($medium)"><xsl:value-of select="$medium" /></xsl:when>
+ <xsl:when test="($typeofrec='a' or $typeofrec='t') and $biblevel='m'">book</xsl:when>
+ <xsl:when test="$typeofrec='j' or $typeofrec='i'">
+ <xsl:text>recording</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$oclcb='d' and $oclcd='f'">-cd</xsl:when>
+ <xsl:when test="$oclcb='s'">-cassette</xsl:when>
+ <xsl:when test="$oclcb='d' and $oclcd='a' or $oclcd='b' or
+ $oclcd='c' or $oclcd='d' or $oclcd='e'">-vinyl</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$typeofrec='g'">
+ <xsl:choose>
+ <xsl:when test="$typeofvm='m' or $typeofvm='v'">
+ <xsl:text>video</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$oclca='v' and $oclcb='d' and $oclce='v'">-dvd</xsl:when>
+ <xsl:when test="$oclca='v' and $oclcb='d' and $oclce='s'">-blu-ray</xsl:when>
+ <xsl:when test="$oclca='v' and $oclcb='f' and $oclce='b'">-vhs</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>audio-visual</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$typeofrec='a' and $biblevel='s'">
+ <xsl:choose>
+ <xsl:when test="$typeofserial='n'">newspaper</xsl:when>
+ <xsl:otherwise>journal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$typeofrec='e' or $typeofrec='f'">map</xsl:when>
+ <xsl:when test="$typeofrec='c' or $typeofrec='d'">music-score</xsl:when>
+ <xsl:when test="$form1='a' or $form1='b' or $form1='c'">microform</xsl:when>
+ <xsl:when test="$typeofrec='t'">thesis</xsl:when>
+ <!-- <xsl:when test="$journal_title">article</xsl:when> -->
+ <xsl:when test="$typeofrec='a' or $typeofrec='i' and
+ ($typeofserial='d' or $typeofserial='w')">web</xsl:when>
+ <xsl:when test="$typeofrec='a' and $biblevel='b'">article</xsl:when>
+ <xsl:when test="$typeofrec='m'">electronic</xsl:when>
+ <xsl:otherwise>
+ <xsl:text>other</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="has_fulltext">
+ <xsl:choose>
+ <xsl:when test="tmarc:d856/tmarc:sq">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:when test="tmarc:d856/tmarc:si='TEXT*'">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>no</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="oclc_number">
+ <xsl:choose>
+ <xsl:when test='contains(tmarc:c001,"ocn") or
+ contains(tmarc:c001,"ocm") or
+ contains(tmarc:c001,"OCoLC") '>
+ <xsl:value-of select="tmarc:c001"/>
+ </xsl:when>
+ <xsl:when test='contains(tmarc:d035/tmarc:sa,"ocn") or
+ contains(tmarc:d035/tmarc:sa,"ocm") or
+ contains(tmarc:d035/tmarc:sa,"OCoLC") '>
+ <xsl:value-of select="tmarc:d035/tmarc:sa"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="date_008">
+ <xsl:choose>
+ <xsl:when test="contains('cestpudikmr', substring(tmarc:c008, 7, 1))">
+ <xsl:value-of select="substring(tmarc:c008, 8, 4)" />
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="date_end_008">
+ <xsl:choose>
+ <xsl:when test="contains('dikmr', substring(tmarc:c008, 7, 1))">
+ <xsl:value-of select="substring(tmarc:c008, 12, 4)" />
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <pz:record>
+<!--
+ <xsl:attribute name="mergekey">
+ <xsl:text>title </xsl:text>
+ <xsl:value-of select="tmarc:d245/tmarc:sa" />
+ <xsl:text> author </xsl:text>
+ <xsl:value-of select="tmarc:d100/tmarc:sa" />
+ <xsl:text> medium </xsl:text>
+ <xsl:value-of select="$medium" />
+ </xsl:attribute>
+ -->
+
+ <xsl:for-each select="tmarc:c001">
+ <pz:metadata type="id">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:if test="string-length($oclc_number) > 0">
+ <pz:metadata type="oclc-number">
+ <xsl:value-of select="$oclc_number" />
+ </pz:metadata>
+ </xsl:if>
+
+ <xsl:for-each select="tmarc:d010">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="lccn">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d020">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="isbn">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d022">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="issn">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d027">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="tech-rep-nr">
+ <xsl:value-of select="tmarc:sa" />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d035">
+ <pz:metadata type="system-control-nr">
+ <xsl:choose>
+ <xsl:when test="tmarc:sa">
+ <xsl:value-of select="tmarc:sa"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="tmarc:sb"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d100">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="author">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="author-title">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sd">
+ <pz:metadata type="author-date">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d110">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="corporate-name">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="corporate-location">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sd">
+ <pz:metadata type="corporate-date">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d111">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="meeting-name">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="meeting-location">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sd">
+ <pz:metadata type="meeting-date">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d260">
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="date">
+ <xsl:value-of select="translate(., 'cp[].', '')" />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:if test="string-length($date_008) > 0 and not(tmarc:d260)">
+ <pz:metadata type="date">
+ <xsl:choose>
+ <xsl:when test="$date_end_008">
+ <xsl:value-of select="concat($date_008,'-',$date_end_008)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$date_008" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:if>
+
+ <xsl:for-each select="tmarc:d130">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="title-uniform">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sm">
+ <pz:metadata type="title-uniform-media">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sn">
+ <pz:metadata type="title-uniform-parts">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sp">
+ <pz:metadata type="title-uniform-partname">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sr">
+ <pz:metadata type="title-uniform-key">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d245">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="title">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sb">
+ <pz:metadata type="title-remainder">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="title-responsibility">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sf">
+ <pz:metadata type="title-dates">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sh">
+ <pz:metadata type="title-medium">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sn">
+ <pz:metadata type="title-number-section">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:if test="tmarc:sa">
+ <pz:metadata type="title-complete">
+ <xsl:value-of select="tmarc:sa" />
+ <xsl:if test="tmarc:sb" ><xsl:value-of select="concat(' ', tmarc:sb)" /></xsl:if>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d250">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="edition">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d260">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="publication-place">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sb">
+ <pz:metadata type="publication-name">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="publication-date">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d300">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="physical-extent">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sb">
+ <pz:metadata type="physical-format">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sc">
+ <pz:metadata type="physical-dimensions">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:se">
+ <pz:metadata type="physical-accomp">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sf">
+ <pz:metadata type="physical-unittype">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sg">
+ <pz:metadata type="physical-unitsize">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:s3">
+ <pz:metadata type="physical-specified">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d440">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="series-title">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d500">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d505">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d518">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d520">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d522">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d911">
+ <pz:metadata type="description">
+ <xsl:for-each select="node()">
+ <xsl:value-of select="text()" />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d600 | tmarc:d610 | tmarc:d611 | tmarc:d630 |
+ tmarc:d648 | tmarc:d650 | tmarc:d651 | tmarc:d653 |
+ tmarc:d654 | tmarc:d655 | tmarc:d656 | tmarc:d657 |
+ tmarc:d658 | tmarc:d662 | tmarc:d69X">
+ <xsl:for-each select="tmarc:sa">
+ <pz:metadata type="subject">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+ <pz:metadata type="subject-long">
+ <xsl:for-each select="node()/text()">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:variable name='value'>
+ <xsl:value-of select='normalize-space(.)'/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="substring($value, string-length($value)) = ','">
+ <xsl:value-of select="substring($value, 1, string-length($value)-1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d856">
+ <xsl:for-each select="tmarc:su">
+ <pz:metadata type="electronic-url">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <pz:metadata type="electronic-text">
+ <xsl:choose>
+ <xsl:when test="tmarc:sy">
+ <xsl:value-of select="tmarc:sy/text()" />
+ </xsl:when>
+ <xsl:when test="tmarc:s3">
+ <xsl:value-of select="tmarc:s3/text()" />
+ </xsl:when>
+ <xsl:when test="tmarc:sa">
+ <xsl:value-of select="tmarc:sa/text()" />
+ </xsl:when>
+ <xsl:otherwise>Get resource</xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ <xsl:for-each select="tmarc:sz">
+ <pz:metadata type="electronic-note">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:si">
+ <pz:metadata type="electronic-format-instruction">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sq">
+ <pz:metadata type="electronic-format-type">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d773">
+ <pz:metadata type="citation">
+ <xsl:for-each select="*">
+ <xsl:value-of select="normalize-space(.)" />
+ <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </pz:metadata>
+ <xsl:for-each select="tmarc:st">
+ <pz:metadata type="journal-title">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:if test="tmarc:sg">
+ <xsl:variable name="value">
+ <xsl:for-each select="tmarc:sg">
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </xsl:variable>
+ <pz:metadata type="journal-subpart">
+ <xsl:value-of select="$value"/>
+ </pz:metadata>
+ <xsl:variable name="l">
+ <xsl:value-of select="translate($value,
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.',
+ 'abcdefghijklmnopqrstuvwxyz ') "/>
+ </xsl:variable>
+ <xsl:variable name="volume">
+ <xsl:choose>
+ <xsl:when test="string-length(substring-after($l,'vol ')) > 0">
+ <xsl:value-of select="substring-before(normalize-space(substring-after($l,'vol ')),' ')"/>
+ </xsl:when>
+ <xsl:when test="string-length(substring-after($l,'v ')) > 0">
+ <xsl:value-of select="substring-before(normalize-space(substring-after($l,'v ')),' ')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="issue">
+ <xsl:value-of select="substring-before(translate(normalize-space(substring-after($l,'issue')), ',', ' '),' ')"/>
+ </xsl:variable>
+ <xsl:variable name="pages">
+ <xsl:choose>
+ <xsl:when test="string-length(substring-after($l,' p ')) > 0">
+ <xsl:value-of select="normalize-space(substring-after($l,' p '))"/>
+ </xsl:when>
+ <xsl:when test="string-length(substring-after($l,',p')) > 0">
+ <xsl:value-of select="normalize-space(substring-after($l,',p'))"/>
+ </xsl:when>
+ <xsl:when test="string-length(substring-after($l,' p')) > 0">
+ <xsl:value-of select="normalize-space(substring-after($l,' p'))"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- volume -->
+ <xsl:if test="string-length($volume) > 0">
+ <pz:metadata type="volume-number">
+ <xsl:value-of select="$volume"/>
+ </pz:metadata>
+ </xsl:if>
+ <!-- issue -->
+ <xsl:if test="string-length($issue) > 0">
+ <pz:metadata type="issue-number">
+ <xsl:value-of select="$issue"/>
+ </pz:metadata>
+ </xsl:if>
+ <!-- pages -->
+ <xsl:if test="string-length($pages) > 0">
+ <pz:metadata type="pages-number">
+ <xsl:value-of select="$pages"/>
+ </pz:metadata>
+ </xsl:if>
+
+ <!-- season -->
+ </xsl:if>
+ <xsl:if test="tmarc:sp">
+ <pz:metadata type="journal-title-abbrev">
+ <xsl:value-of select="tmarc:sp"/>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d852">
+ <xsl:for-each select="tmarc:sy">
+ <pz:metadata type="publicnote">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ <xsl:for-each select="tmarc:sh">
+ <pz:metadata type="callnumber">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d876">
+ <xsl:if test="tmarc:sf">
+ <pz:metadata type="loan-period">
+ <xsl:value-of select="concat(tmarc:s5,':',tmarc:sf)" />
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <pz:metadata type="medium">
+ <xsl:value-of select="$vmedium" />
+ <xsl:if test="string-length($electronic) and $vmedium != 'electronic'">
+ <xsl:text> (electronic)</xsl:text>
+ </xsl:if>
+ </pz:metadata>
+
+ <xsl:for-each select="tmarc:d900/tmarc:sa">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- <xsl:if test="$fulltext_a"> <pz:metadata type="fulltext"> <xsl:value-of
+ select="$fulltext_a"/> </pz:metadata> </xsl:if> -->
+
+ <xsl:for-each select="tmarc:d900/tmarc:sb">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:se">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:sf">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:si">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:sk">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:sq">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:ss">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:su">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d900/tmarc:sy">
+ <pz:metadata type="fulltext">
+ <xsl:value-of select="." />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d903">
+ <xsl:if test="tmarc:sa">
+ <pz:metadata type="publication-date">
+ <xsl:value-of select="substring(tmarc:sa,1,4)"/>
+ </pz:metadata>
+ <pz:metadata type="date">
+ <xsl:value-of select="substring(tmarc:sa,1,4)"/>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <!-- <xsl:if test="$fulltext_b"> <pz:metadata type="fulltext"> <xsl:value-of
+ select="$fulltext_b"/> </pz:metadata> </xsl:if> -->
+
+ <pz:metadata type="has-fulltext">
+ <xsl:value-of select="$has_fulltext"/>
+ </pz:metadata>
+
+ <xsl:for-each select="tmarc:d907 | tmarc:d901">
+ <pz:metadata type="iii-id">
+ <xsl:value-of select="tmarc:sa" />
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d926">
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:sa"/>
+ </pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:sc"/>
+ </pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:se"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- OhioLINK holdings -->
+ <xsl:for-each select="tmarc:d945">
+ <pz:metadata type="locallocation" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:sa"/>
+ </pz:metadata>
+ <pz:metadata type="callnumber" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:sb"/>
+ </pz:metadata>
+ <pz:metadata type="publicnote" empty="PAZPAR2_NULL_VALUE">
+ <xsl:value-of select="tmarc:sc"/>
+ </pz:metadata>
+ <pz:metadata type="available" empty="PAZPAR2_NULL_VALUE">
+ <xsl:choose>
+ <xsl:when test="tmarc:ss = 'N'">Available</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="tmarc:sd"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d948">
+ <pz:metadata type="holding">
+ <xsl:for-each select="tmarc:s">
+ <xsl:if test="position() > 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="." />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d991">
+ <pz:metadata type="holding">
+ <xsl:for-each select="tmarc:s">
+ <xsl:if test="position() > 1">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="." />
+ </xsl:for-each>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="tmarc:d999">
+ <pz:metadata type="localid">
+ <xsl:choose>
+ <xsl:when test="tmarc:sa">
+ <xsl:value-of select="tmarc:sa"/>
+ </xsl:when>
+ <xsl:when test="tmarc:sc">
+ <xsl:value-of select="tmarc:sc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="tmarc:sd"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pz:metadata>
+ </xsl:for-each>
+
+
+ <!-- passthrough id data -->
+ <xsl:for-each select="pz:metadata">
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+
+ <!-- other stylesheets importing this might want to define this -->
+ <xsl:call-template name="record-hook" />
+
+ </pz:record>
+ </xsl:template>
+
+ <xsl:template match="text()" />
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="author">Sloman</pz:metadata>
+ <pz:metadata type="date">2002</pz:metadata>
+ <pz:metadata type="title">On the road with Bob Dylan</pz:metadata>
+ <pz:metadata type="title-complete">On the road with Bob Dylan</pz:metadata>
+ <pz:metadata type="edition">Revised edition</pz:metadata>
+ <pz:metadata type="publication-place">New York</pz:metadata>
+ <pz:metadata type="publication-name">Three Rivers Press</pz:metadata>
+ <pz:metadata type="publication-date">2002</pz:metadata>
+ <pz:metadata type="physical-extent">xv, 464 sider, tavler</pz:metadata>
+ <pz:metadata type="description">Tidligere: 1. udgave. New York, Bantam, 1978</pz:metadata>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
+ <l>00988nam0a32003011 450 </l>
+ <d001 i1="0" i2="0" i3="0">
+ <sa>9 181 423 4</sa>
+ <sb>710100</sb>
+ <sf>a</sf>
+ </d001>
+ <d004 i1="0" i2="0" i3="0">
+ <sr>n</sr>
+ <sa>e</sa>
+ </d004>
+ <d008 i1="0" i2="0" i3="0">
+ <st>m</st>
+ <su>u</su>
+ <sa>2002</sa>
+ <sb>us</sb>
+ <sl>eng</sl>
+ <sv>0</sv>
+ </d008>
+ <d009 i1="0" i2="0" i3="0">
+ <sa>a</sa>
+ <sg>xx</sg>
+ </d009>
+ <d021 i1="0" i2="0" i3="0">
+ <sa>1-4000-4596-7</sa>
+ <sd>$14,00</sd>
+ </d021>
+ <d032 i1="0" i2="0" i3="0">
+ <s code="&">DBC200439</s>
+ </d032>
+ <d100 i1="0" i2="0" i3="0">
+ <s0></s0>
+ <sa>Sloman</sa>
+ <sh>Larry</sh>
+ </d100>
+ <d245 i1="0" i2="0" i3="0">
+ <sa>On the road with Bob Dylan</sa>
+ <se>Larry "Ratso" Sloman</se>
+ </d245>
+ <d250 i1="0" i2="0" i3="0">
+ <sa>Revised edition</sa>
+ <sb>Three Rivers Press</sb>
+ </d250>
+ <d260 i1="0" i2="0" i3="0">
+ <sa>New York</sa>
+ <sb>Three Rivers Press</sb>
+ <sc>2002</sc>
+ </d260>
+ <d300 i1="0" i2="0" i3="0">
+ <sa>xv, 464 sider, tavler</sa>
+ </d300>
+ <d504 i1="0" i2="0" i3="0">
+ <sa>Larry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue"</sa>
+ </d504>
+ <d512 i1="0" i2="0" i3="0">
+ <sa>På omslaget: With a new introduction by Kinky Friedman</sa>
+ </d512>
+ <d520 i1="0" i2="0" i3="0">
+ <sa>Tidligere: 1. udgave. New York, Bantam, 1978</sa>
+ </d520>
+ <d652 i1="0" i2="0" i3="0">
+ <s0></s0>
+ <sm>99.4</sm>
+ <sa>Dylan</sa>
+ <sh>Bob</sh>
+ </d652>
+ <d652 i1="0" i2="0" i3="0">
+ <sp>78.9064</sp>
+ <sv>5</sv>
+ </d652>
+ <d666 i1="0" i2="0" i3="0">
+ <sf>folkemusik</sf>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <sf>folkemusikere</sf>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <sf>rockmusik</sf>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <sf>rockmusikere</sf>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <sf>rockkoncerter</sf>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <se>USA</se>
+ </d666>
+ <d666 i1="0" i2="0" i3="0">
+ <si>1970-1979</si>
+ </d666>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="author">Mimms</pz:metadata>
+ <pz:metadata type="date">1995</pz:metadata>
+ <pz:metadata type="title">Cry baby</pz:metadata>
+ <pz:metadata type="title">Warm and soulful</pz:metadata>
+ <pz:metadata type="title-complete">Cry baby</pz:metadata>
+ <pz:metadata type="publication-place">Bury St. Edmunds</pz:metadata>
+ <pz:metadata type="publication-name">BGO</pz:metadata>
+ <pz:metadata type="publication-date">1995</pz:metadata>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
+ <l>01116nam0a32002171 450 </l>
+ <d001 i1="0" i2="0" i3="0">
+ <sa>9 182 502 3</sa>
+ <sb>710100</sb>
+ <sf>a</sf>
+ </d001>
+ <d004 i1="0" i2="0" i3="0">
+ <sr>c</sr>
+ <sa>e</sa>
+ </d004>
+ <d008 i1="0" i2="0" i3="0">
+ <st>s</st>
+ <su>f</su>
+ <sa>1995</sa>
+ <sb>gb</sb>
+ <sl>eng</sl>
+ <sv>0</sv>
+ </d008>
+ <d009 i1="0" i2="0" i3="0">
+ <sa>s</sa>
+ <sg>xc</sg>
+ </d009>
+ <d039 i1="0" i2="0" i3="0">
+ <sa>bef</sa>
+ </d039>
+ <d100 i1="0" i2="0" i3="0">
+ <sa>Mimms</sa>
+ <sh>Garnet</sh>
+ </d100>
+ <d245 i1="0" i2="0" i3="0">
+ <sa>Cry baby</sa>
+ <sa>Warm and soulful</sa>
+ <se>Garnet Mimms ... [et al.]</se>
+ </d245>
+ <d260 i1="0" i2="0" i3="0">
+ <sa>Bury St. Edmunds</sa>
+ <sb>BGO</sb>
+ <sc>1995</sc>
+ </d260>
+ <d300 i1="0" i2="0" i3="0">
+ <sn>1 cd</sn>
+ </d300>
+ <d512 i1="0" i2="0" i3="0">
+ <sa>Indspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)</sa>
+ </d512>
+ <d531 i1="0" i2="0" i3="0">
+ <sa>Indhold:</sa>
+ </d531>
+ <d538 i1="0" i2="0" i3="0">
+ <sf>BGO</sf>
+ <sg>BGOCD268</sg>
+ </d538>
+ <d652 i1="0" i2="0" i3="0">
+ <sm>78.794</sm>
+ <sv>4</sv>
+ </d652>
+ <d666 i1="0" i2="0" i3="0">
+ <sm>soul</sm>
+ <sm>rhythm & blues</sm>
+ <sn>vokal</sn>
+ <sp>1960-1969</sp>
+ <sl>USA</sl>
+ </d666>
+ <d795 i1="0" i2="0" i3="0">
+ <s code="å">11</s>
+ <sa>Cry baby</sa>
+ <sa>Nobody but you</sa>
+ <sa>Until you were gone</sa>
+ <sa>Anytime you want me</sa>
+ <sa>So close</sa>
+ <sa>For your precious love</sa>
+ <sa>Baby don't you weep</sa>
+ <sa>A ¤quiet place</sa>
+ <sa>Cry to me</sa>
+ <sa>Don't change your heart</sa>
+ <sa>Wanting you</sa>
+ <sa>The ¤truth hurts</sa>
+ <sa>I'll take good care of you</sa>
+ <sa>Looking for you</sa>
+ <sa>It won't hurt (half as much)</sa>
+ <sa>It was easier to hurt her</sa>
+ <sa>Thinkin'</sa>
+ <sa>Prove it to me</sa>
+ <sa>More than a miracle</sa>
+ <sa>As long as I have you</sa>
+ <sa>One girl</sa>
+ <sa>There goes my baby</sa>
+ <sa>It's just a matter of time</sa>
+ <sa>A ¤little bit of soap</sa>
+ <sa>Look away</sa>
+ <sa>I'll make it up to you</sa>
+ </d795>
+ <d795 i1="0" i2="0" i3="0">
+ <s code="å">40</s>
+ <sy>0</sy>
+ <sa>1 girl</sa>
+ </d795>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="title">Byfornyelse ved Ibsen-Ringen</pz:metadata>
+ <pz:metadata type="title-complete">Byfornyelse ved Ibsen-Ringen</pz:metadata>
+ <pz:metadata type="physical-format">farvefoto</pz:metadata>
+ <pz:metadata type="physical-format">plan</pz:metadata>
+ <pz:metadata type="physical-format">snit</pz:metadata>
+ <pz:metadata type="subject-long">byfornyelse</pz:metadata>
+ <pz:metadata type="subject-long">sanering</pz:metadata>
+ <pz:metadata type="subject">Telje Torp Aasen Arkitektkontor</pz:metadata>
+ <pz:metadata type="subject-long">Telje Torp Aasen Arkitektkontor, Kristian Augustsgate 7B</pz:metadata>
+ <pz:metadata type="subject">Eng, Dagfin</pz:metadata>
+ <pz:metadata type="subject-long">Eng, Dagfin</pz:metadata>
+ <pz:metadata type="subject-long">anlund, Tom, Kristian Augustsgate, Pilestredet 19</pz:metadata>
+ <pz:metadata type="medium">web</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
+ <l>00914naa a2200337 450 </l>
+ <d001 i1=" " i2=" ">
+ <sa>a00001508</sa>
+ <sf>a</sf>
+ </d001>
+ <d004 i1=" " i2=" ">
+ <sa>i</sa>
+ <sr>n</sr>
+ </d004>
+ <d008 i1=" " i2=" ">
+ <sa>1991</sa>
+ <sb>xx</sb>
+ <sl>nor</sl>
+ <st>a</st>
+ <sv>9</sv>
+ </d008>
+ <d009 i1=" " i2=" ">
+ <sa>a</sa>
+ <sg>xx</sg>
+ </d009>
+ <d041 i1=" " i2=" ">
+ <sa>nor</sa>
+ </d041>
+ <d041 i1=" " i2=" ">
+ <sd>eng</sd>
+ </d041>
+ <d097 i1="0" i2="0">
+ <sa>06</sa>
+ </d097>
+ <d245 i1=" " i2=" ">
+ <sa>Byfornyelse ved Ibsen-Ringen</sa>
+ </d245>
+ <d300 i1=" " i2=" ">
+ <sb>farvefoto</sb>
+ <sb>plan</sb>
+ <sb>snit</sb>
+ </d300>
+ <d557 i1=" " i2=" ">
+ <sa>Byggekunst</sa>
+ <sj>1991</sj>
+ <sv>1/2</sv>
+ <sk>41-45</sk>
+ </d557>
+ <d630 i1=" " i2=" ">
+ <sf>byfornyelse</sf>
+ </d630>
+ <d630 i1=" " i2=" ">
+ <sf>sanering</sf>
+ </d630>
+ <d633 i1=" " i2=" ">
+ <sf>Norge</sf>
+ </d633>
+ <d633 i1=" " i2=" ">
+ <sf>Oslo</sf>
+ </d633>
+ <d648 i1=" " i2=" ">
+ <sa>Telje Torp Aasen Arkitektkontor</sa>
+ <sc>Kristian Augustsgate 7B</sc>
+ </d648>
+ <d648 i1=" " i2=" ">
+ <sa>Eng, Dagfin</sa>
+ </d648>
+ <d648 i1=" " i2=" ">
+ <sr>anlund, Tom</sr>
+ <sc>Kristian Augustsgate</sc>
+ <sc>Pilestredet 19</sc>
+ </d648>
+ <dJ01 i1=" " i2=" ">
+ <sa>a</sa>
+ </dJ01>
+ <dBAS i1=" " i2=" ">
+ <s0></s0>
+ </dBAS>
+ <dLKR i1=" " i2=" ">
+ <sa>ITM</sa>
+ <sl>ARK50</sl>
+ <sb>0000145</sb>
+ <sy>1991</sy>
+ <si>1/2</si>
+ <sk>41-45</sk>
+ </dLKR>
+ <dCAT i1=" " i2=" ">
+ <sa></sa>
+ <sb></sb>
+ <sc>20020111</sc>
+ <sl>ARK01</sl>
+ <sh>2002</sh>
+ </dCAT>
+ <dCAT i1=" " i2=" ">
+ <sa></sa>
+ <sb></sb>
+ <sc>20020111</sc>
+ <sl>ARK01</sl>
+ <sh>2116</sh>
+ </dCAT>
+ <dCAT i1=" " i2=" ">
+ <sa></sa>
+ <sb></sb>
+ <sc>20021002</sc>
+ <sl>ARK01</sl>
+ <sh>1000</sh>
+ </dCAT>
+ <dCAT i1=" " i2=" ">
+ <sa>ICLLOAD</sa>
+ <sb>00</sb>
+ <sc>20021122</sc>
+ <sl>ARK01</sl>
+ <sh>1948</sh>
+ </dCAT>
+ <dCAT i1=" " i2=" ">
+ <sc>20030618</sc>
+ <sl>ARK01</sl>
+ <sh>1330</sh>
+ </dCAT>
+ <dUID i1=" " i2=" ">
+ <sa>a00001508</sa>
+ </dUID>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="medium">other</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+<!-- Indicator length at offset 10 should hold a digit. Assuming 2 -->
+<!-- Identifier length at offset 11 should hold a digit. Assuming 2 -->
+<!-- Base address at offsets 12..16 should hold a number. Assuming 0 -->
+<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
+ <l>009140091a22a 22003370 </l>
+<!-- Directory offset 24: Bad value for data length and/or length starting ( 45 00100170) -->
+<!-- Base address not at end of directory, base 0, end 25 -->
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="id">000277485</pz:metadata>
+ <pz:metadata type="author">Μαρούδης, Κωνσταντίνος Ιω</pz:metadata>
+ <pz:metadata type="date">1894</pz:metadata>
+ <pz:metadata type="title">Ελληνικόν κρυπτογραφικόν λεξικόν /</pz:metadata>
+ <pz:metadata type="title-responsibility">Κωνστ. Ι. Μαρούδης.</pz:metadata>
+ <pz:metadata type="title-complete">Ελληνικόν κρυπτογραφικόν λεξικόν /</pz:metadata>
+ <pz:metadata type="publication-place">Αθήνα,</pz:metadata>
+ <pz:metadata type="publication-date">1894.</pz:metadata>
+ <pz:metadata type="physical-extent">248 σελ.</pz:metadata>
+ <pz:metadata type="subject">Greek language, Modern</pz:metadata>
+ <pz:metadata type="subject-long">Greek language, Modern, Dialects, Dictionaries</pz:metadata>
+ <pz:metadata type="subject">Cryptography.</pz:metadata>
+ <pz:metadata type="subject-long">Cryptography.</pz:metadata>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+ <l>00492nam a22001455a 4500</l>
+ <c001>000277485</c001>
+ <c005>20051026111436.0</c005>
+ <c008>050413s1894 gr 000 0 gre d</c008>
+ <d100 i1="1" i2=" ">
+ <sa>Μαρούδης, Κωνσταντίνος Ιω</sa>
+ </d100>
+ <d245 i1="1" i2="0">
+ <sa>Ελληνικόν κρυπτογραφικόν λεξικόν /</sa>
+ <sc>Κωνστ. Ι. Μαρούδης.</sc>
+ </d245>
+ <d250 i1=" " i2=" ">
+ <s code="η"> εκδ.</s>
+ </d250>
+ <d260 i1=" " i2=" ">
+ <sa>Αθήνα,</sa>
+ <sc>1894.</sc>
+ </d260>
+ <d300 i1=" " i2=" ">
+ <sa>248 σελ.</sa>
+ </d300>
+ <d650 i1=" " i2="0">
+ <sa>Greek language, Modern</sa>
+ <sx>Dialects</sx>
+ <sv>Dictionaries</sv>
+ </d650>
+ <d650 i1=" " i2="0">
+ <sa>Cryptography.</sa>
+ </d650>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="id"> 11224466 </pz:metadata>
+ <pz:metadata type="lccn"> 11224466 </pz:metadata>
+ <pz:metadata type="author">Jack Collins</pz:metadata>
+ <pz:metadata type="title">How to program a computer</pz:metadata>
+ <pz:metadata type="title-complete">How to program a computer</pz:metadata>
+ <pz:metadata type="publication-place">Penguin</pz:metadata>
+ <pz:metadata type="physical-extent">p. cm.</pz:metadata>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+ <l>00366nam a22001698a 4500</l>
+ <c001> 11224466 </c001>
+ <c003>DLC</c003>
+ <c005>00000000000000.0</c005>
+ <c008>910710c19910701nju 00010 eng </c008>
+ <d010 i1=" " i2=" ">
+ <sa> 11224466 </sa>
+ </d010>
+ <d040 i1=" " i2=" ">
+ <sa>DLC</sa>
+ <sc>DLC</sc>
+ </d040>
+ <d050 i1="0" i2="0">
+ <sa>123-xyz</sa>
+ </d050>
+ <d100 i1="1" i2="0">
+ <sa>Jack Collins</sa>
+ </d100>
+ <d245 i1="1" i2="0">
+ <sa>How to program a computer</sa>
+ </d245>
+ <d260 i1="1" i2=" ">
+ <sa>Penguin</sa>
+ </d260>
+ <d263 i1=" " i2=" ">
+ <sa>8710</sa>
+ </d263>
+ <d300 i1=" " i2=" ">
+ <sa>p. cm.</sa>
+ </d300>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="id"> 77123332 </pz:metadata>
+ <pz:metadata type="lccn"> 77123332 </pz:metadata>
+ <pz:metadata type="system-control-nr">57779</pz:metadata>
+ <pz:metadata type="system-control-nr">90490</pz:metadata>
+ <pz:metadata type="system-control-nr">93202</pz:metadata>
+ <pz:metadata type="date">2001</pz:metadata>
+ <pz:metadata type="title">Voyager Diacritic test -- New input 001 (SBIE).</pz:metadata>
+ <pz:metadata type="title-complete">Voyager Diacritic test -- New input 001 (SBIE).</pz:metadata>
+ <pz:metadata type="publication-place">ny :</pz:metadata>
+ <pz:metadata type="publication-name">ny,</pz:metadata>
+ <pz:metadata type="publication-date">2001.</pz:metadata>
+ <pz:metadata type="physical-extent">100 p. ;</pz:metadata>
+ <pz:metadata type="physical-dimensions">12 cm.</pz:metadata>
+ <pz:metadata type="description">New copy imported from file (8/12/99).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Ơ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (ʻ); Polish l (ł).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (ơ); u Hook (ư); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o͡).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (ọ); Double Dot Below (o̤); Circle Below (o̥).</pz:metadata>
+ <pz:metadata type="description">VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (o̮); Double Tilde 1st half (o͠); Double Tilde 2nd half (o) ; High Comma centered (o̓).</pz:metadata>
+ <pz:metadata type="description">VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~).</pz:metadata>
+ <pz:metadata type="description">Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>?</pz:metadata>
+ <pz:metadata type="medium">book</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+ <l>03114cam a2200349 i 4500</l>
+ <c001> 77123332 </c001>
+ <c003>DLC</c003>
+ <c005>20051218154744.0</c005>
+ <c008>981008b2001 ilu 000 0 eng </c008>
+ <d035 i1=" " i2=" ">
+ <sa>57779</sa>
+ </d035>
+ <d035 i1=" " i2=" ">
+ <sa>90490</sa>
+ </d035>
+ <d035 i1=" " i2=" ">
+ <sa>93202</sa>
+ </d035>
+ <d040 i1=" " i2=" ">
+ <sa>DLC</sa>
+ <sc>DLC</sc>
+ </d040>
+ <d906 i1=" " i2=" ">
+ <sa>0</sa>
+ <sb>und</sb>
+ <sc>orignew</sc>
+ <sd>u</sd>
+ <se>ncip</se>
+ <sf>19</sf>
+ <sg>y-gencatlg</sg>
+ </d906>
+ <d010 i1=" " i2=" ">
+ <sa> 77123332 </sa>
+ </d010>
+ <d245 i1="0" i2="0">
+ <sa>Voyager Diacritic test -- New input 001 (SBIE).</sa>
+ </d245>
+ <d260 i1=" " i2=" ">
+ <sa>ny :</sa>
+ <sb>ny,</sb>
+ <sc>2001.</sc>
+ </d260>
+ <d300 i1=" " i2=" ">
+ <sa>100 p. ;</sa>
+ <sc>12 cm.</sc>
+ </d300>
+ <d500 i1=" " i2=" ">
+ <sa>New copy imported from file (8/12/99).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Ơ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (ʻ); Polish l (ł).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (ơ); u Hook (ư); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o͡).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (ọ); Double Dot Below (o̤); Circle Below (o̥).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (o̮); Double Tilde 1st half (o͠); Double Tilde 2nd half (o) ; High Comma centered (o̓).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~).</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>?</sa>
+ </d500>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="id">UCD-002592301</pz:metadata>
+ <pz:metadata type="system-control-nr">99851339eo</pz:metadata>
+ <pz:metadata type="author">Clinton, Atkinson.</pz:metadata>
+ <pz:metadata type="date">1583?</pz:metadata>
+ <pz:metadata type="title">Clinton, Purser & Arnold, to their countreymen wheresoeuer</pz:metadata>
+ <pz:metadata type="title-remainder">Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</pz:metadata>
+ <pz:metadata type="title-medium">[electronic resource] :</pz:metadata>
+ <pz:metadata type="title-complete">Clinton, Purser & Arnold, to their countreymen wheresoeuer Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</pz:metadata>
+ <pz:metadata type="publication-place">London :</pz:metadata>
+ <pz:metadata type="publication-name">Imprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,</pz:metadata>
+ <pz:metadata type="publication-date">[1583?]</pz:metadata>
+ <pz:metadata type="physical-extent">[12] p</pz:metadata>
+ <pz:metadata type="description">In verse</pz:metadata>
+ <pz:metadata type="description">The first poem is signed: Thomas Walton alias Purser</pz:metadata>
+ <pz:metadata type="description">Clinton's full name and bookseller's name from, and publication date conjectured by, STC</pz:metadata>
+ <pz:metadata type="description">Signatures: A⁴ B²</pz:metadata>
+ <pz:metadata type="description">Reproduction of the original in the Bodleian Library</pz:metadata>
+ <pz:metadata type="subject">Electronic texts.</pz:metadata>
+ <pz:metadata type="subject-long">Electronic texts., local</pz:metadata>
+ <pz:metadata type="subject">Pirates</pz:metadata>
+ <pz:metadata type="subject-long">Pirates, England, Early works to 1800.</pz:metadata>
+ <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
+ <pz:metadata type="electronic-text">Get resource</pz:metadata>
+ <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
+ <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
+ <pz:metadata type="electronic-text">Get resource</pz:metadata>
+ <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
+ <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
+ <pz:metadata type="electronic-text">Get resource</pz:metadata>
+ <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
+ <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
+ <pz:metadata type="electronic-text">Get resource</pz:metadata>
+ <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
+ <pz:metadata type="callnumber">Internet</pz:metadata>
+ <pz:metadata type="medium">book (electronic)</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ <pz:metadata type="iii-id">DVXL</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+ <l>02647nam^a2200469^^^4500</l>
+ <c001>UCD-002592301</c001>
+ <c005>20061209034435.0</c005>
+ <c006>m d </c006>
+ <c007>cr bn |||a|bb|</c007>
+ <c008>920330s1583 enk s 000 0 eng d</c008>
+ <d035 i1=" " i2=" ">
+ <sa>99851339eo</sa>
+ </d035>
+ <d037 i1=" " i2=" ">
+ <sa>CL0036000039</sa>
+ <sb>ProQuest Information and Learning. 300 N. Zeeb Rd., Ann Arbor, MI 48106</sb>
+ </d037>
+ <d040 i1=" " i2=" ">
+ <sa>Cu-RivES</sa>
+ <sc>Cu-RivES</sc>
+ <sd>CStRLIN</sd>
+ <se>dcrb</se>
+ <sd>WaOLN</sd>
+ </d040>
+ <d100 i1="1" i2=" ">
+ <sa>Clinton, Atkinson.</sa>
+ </d100>
+ <d245 i1="0" i2="0">
+ <sa>Clinton, Purser & Arnold, to their countreymen wheresoeuer</sa>
+ <sh>[electronic resource] :</sh>
+ <sb>Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</sb>
+ </d245>
+ <d246 i1="2" i2=" ">
+ <sa>Clinton, Purser & Arnold, to their countreymen wheresoever</sa>
+ </d246>
+ <d246 i1="2" i2=" ">
+ <sa>Clinton, Purser & Arnold, to their countreymen wheresoever</sa>
+ </d246>
+ <d260 i1=" " i2=" ">
+ <sa>London :</sa>
+ <sb>Imprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,</sb>
+ <sc>[1583?]</sc>
+ </d260>
+ <d300 i1=" " i2=" ">
+ <sa>[12] p</sa>
+ </d300>
+ <d500 i1=" " i2=" ">
+ <sa>In verse</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>The first poem is signed: Thomas Walton alias Purser</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>Clinton's full name and bookseller's name from, and publication date conjectured by, STC</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>Signatures: A⁴ B²</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>Reproduction of the original in the Bodleian Library</sa>
+ </d500>
+ <d510 i1="4" i2=" ">
+ <sa>STC (2nd ed.)</sa>
+ <sc>5431</sc>
+ </d510>
+ <d530 i1=" " i2=" ">
+ <sa>Also issued in print and on microform</sa>
+ </d530>
+ <d533 i1=" " i2=" ">
+ <sa>Electronic reproduction.</sa>
+ <sn>Mode of access: World Wide Web.</sn>
+ <sn>Restricted to UC campuses</sn>
+ </d533>
+ <d655 i1=" " i2="7">
+ <sa>Electronic texts.</sa>
+ <s2>local</s2>
+ </d655>
+ <d650 i1=" " i2="0">
+ <sa>Pirates</sa>
+ <sz>England</sz>
+ <sv>Early works to 1800.</sv>
+ </d650>
+ <d700 i1="1" i2=" ">
+ <sa>Walton, Thomas,</sa>
+ <sd>fl. 1583.</sd>
+ <s4>aut</s4>
+ </d700>
+ <d700 i1="1" i2=" ">
+ <sa>Arnold,</sa>
+ <sd>fl. 1583.</sd>
+ <s4>aut</s4>
+ </d700>
+ <d793 i1="0" i2=" ">
+ <sa>Early English books online</sa>
+ </d793>
+ <d852 i1=" " i2=" ">
+ <sa>MER</sa>
+ <sb>kmain</sb>
+ </d852>
+ <d852 i1=" " i2=" ">
+ <sa>SCB</sa>
+ <sb>nnet</sb>
+ </d852>
+ <d856 i1="4" i2="0">
+ <sz>Restricted to UC campuses</sz>
+ <sx>SCP UCSD</sx>
+ <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
+ </d856>
+ <d856 i1="4" i2="0">
+ <sz>Restricted to UC campuses</sz>
+ <sx>SCP UCSD</sx>
+ <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
+ </d856>
+ <d852 i1=" " i2=" ">
+ <sa>DVXL</sa>
+ <sb>ELECT-GEN</sb>
+ <sh>Internet</sh>
+ </d852>
+ <d852 i1=" " i2=" ">
+ <sa>LAGE</sa>
+ <sb>in</sb>
+ <s3>Online access</s3>
+ </d852>
+ <d856 i1="4" i2="0">
+ <sz>Restricted to UC campuses</sz>
+ <sx>SCP UCSD</sx>
+ <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
+ </d856>
+ <d856 i1="4" i2="0">
+ <sz>Restricted to UC campuses</sz>
+ <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
+ <sx>CDL</sx>
+ </d856>
+ <d830 i1=" " i2="0">
+ <sa>Early English books, 1475-1640 ;</sa>
+ <sv>1406:13.</sv>
+ </d830>
+ <d901 i1=" " i2=" ">
+ <sa>DVXL</sa>
+ <sb>002592301</sb>
+ </d901>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
+ <pz:record>
+ <pz:metadata type="id"> 2005336282</pz:metadata>
+ <pz:metadata type="oclc-number">(OCoLC)170490164</pz:metadata>
+ <pz:metadata type="lccn"> 2005336282</pz:metadata>
+ <pz:metadata type="system-control-nr">(OCoLC)170490164</pz:metadata>
+ <pz:metadata type="date">2005-</pz:metadata>
+ <pz:metadata type="title">Qaḍāʼ al-usrah :</pz:metadata>
+ <pz:metadata type="title-remainder">majallah mutakhaṣṣiṣah /</pz:metadata>
+ <pz:metadata type="title-responsibility">Wizārat al-ʻAdl.</pz:metadata>
+ <pz:metadata type="title-complete">Qaḍāʼ al-usrah : majallah mutakhaṣṣiṣah /</pz:metadata>
+ <pz:metadata type="publication-place">al-Rabāṭ :</pz:metadata>
+ <pz:metadata type="publication-name">Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah,</pz:metadata>
+ <pz:metadata type="publication-date">2005-</pz:metadata>
+ <pz:metadata type="physical-extent">v. :</pz:metadata>
+ <pz:metadata type="physical-format">ill. ;</pz:metadata>
+ <pz:metadata type="physical-dimensions">24 cm.</pz:metadata>
+ <pz:metadata type="description">Some issues have also a distinctive title.</pz:metadata>
+ <pz:metadata type="description">Latest issue consulted: al-ʻAdad 3. (Dujanbir 2006).</pz:metadata>
+ <pz:metadata type="subject">Domestic relations (Islamic law)</pz:metadata>
+ <pz:metadata type="subject-long">Domestic relations (Islamic law), Morocco.</pz:metadata>
+ <pz:metadata type="subject">Divorce (Islamic law)</pz:metadata>
+ <pz:metadata type="subject-long">Divorce (Islamic law)</pz:metadata>
+ <pz:metadata type="subject">Marriage law</pz:metadata>
+ <pz:metadata type="subject-long">Marriage law, Morocco.</pz:metadata>
+ <pz:metadata type="subject">Law reports, digests, etc.</pz:metadata>
+ <pz:metadata type="subject-long">Law reports, digests, etc., Morocco.</pz:metadata>
+ <pz:metadata type="medium">journal</pz:metadata>
+ <pz:metadata type="has-fulltext">no</pz:metadata>
+ </pz:record>
+</collection>
--- /dev/null
+<collection xmlns="http://www.indexdata.com/turbomarc">
+<r>
+ <l>02075cas a22005055a 4500</l>
+ <c001> 2005336282</c001>
+ <c003>DLC</c003>
+ <c005>20070911033614.0</c005>
+ <c008>070910c20059999mr uu p f0 0ara </c008>
+ <d010 i1=" " i2=" ">
+ <sa> 2005336282</sa>
+ </d010>
+ <d012 i1=" " i2=" ">
+ <sa>-3-7-0709110002-p----- </sa>
+ </d012>
+ <d035 i1=" " i2=" ">
+ <sa>(OCoLC)170490164</sa>
+ </d035>
+ <d906 i1=" " i2=" ">
+ <sa>7</sa>
+ <sb>und</sb>
+ <sc>serials</sc>
+ <sd>u</sd>
+ <se>ncip</se>
+ <sf>19</sf>
+ <sg>n-oclcserc</sg>
+ </d906>
+ <d040 i1=" " i2=" ">
+ <sa>DLC</sa>
+ <sc>DLC</sc>
+ <sd>DLC</sd>
+ </d040>
+ <d041 i1="0" i2=" ">
+ <sa>ara</sa>
+ <sa>fre</sa>
+ </d041>
+ <d042 i1=" " i2=" ">
+ <sa>lc</sa>
+ </d042>
+ <d043 i1=" " i2=" ">
+ <sa>f-mr---</sa>
+ </d043>
+ <d050 i1="0" i2="0">
+ <sa>IN PROCESS</sa>
+ </d050>
+ <d066 i1=" " i2=" ">
+ <sc>(3</sc>
+ </d066>
+ <d245 i1="0" i2="0">
+ <s6>880-01</s6>
+ <sa>Qaḍāʼ al-usrah :</sa>
+ <sb>majallah mutakhaṣṣiṣah /</sb>
+ <sc>Wizārat al-ʻAdl.</sc>
+ </d245>
+ <d246 i1="1" i2="3">
+ <sa>Justice de la famille</sa>
+ </d246>
+ <d246 i1="1" i2="3">
+ <s6>880-02</s6>
+ <sa>Majallat Qaḍāʼ al-usrah</sa>
+ <sf><2006></sf>
+ </d246>
+ <d260 i1=" " i2=" ">
+ <s6>880-03</s6>
+ <sa>al-Rabāṭ :</sa>
+ <sb>Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah,</sb>
+ <sc>2005-</sc>
+ </d260>
+ <d300 i1=" " i2=" ">
+ <sa>v. :</sa>
+ <sb>ill. ;</sb>
+ <sc>24 cm.</sc>
+ </d300>
+ <d310 i1=" " i2=" ">
+ <sa>Irregular (semiannual)</sa>
+ </d310>
+ <d362 i1="0" i2=" ">
+ <s6>880-04</s6>
+ <sa>al-ʻAdad 1. (Yūlyūz 2005)-</sa>
+ </d362>
+ <d490 i1="0" i2=" ">
+ <s6>880-05</s6>
+ <sa>Manshūrāt Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah</sa>
+ </d490>
+ <d500 i1=" " i2=" ">
+ <sa>Some issues have also a distinctive title.</sa>
+ </d500>
+ <d500 i1=" " i2=" ">
+ <sa>Latest issue consulted: al-ʻAdad 3. (Dujanbir 2006).</sa>
+ </d500>
+ <d546 i1=" " i2=" ">
+ <sa>Chiefly in Arabic; some French.</sa>
+ </d546>
+ <d650 i1=" " i2="0">
+ <sa>Domestic relations (Islamic law)</sa>
+ <sz>Morocco.</sz>
+ </d650>
+ <d650 i1=" " i2="0">
+ <sa>Divorce (Islamic law)</sa>
+ </d650>
+ <d650 i1=" " i2="0">
+ <sa>Marriage law</sa>
+ <sz>Morocco.</sz>
+ </d650>
+ <d650 i1=" " i2="0">
+ <sa>Law reports, digests, etc.</sa>
+ <sz>Morocco.</sz>
+ </d650>
+ <d710 i1="2" i2=" ">
+ <s6>880-06</s6>
+ <sa>Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah.</sa>
+ </d710>
+ <d710 i1="1" i2=" ">
+ <s6>880-07</s6>
+ <sa>Morocco.</sa>
+ <sb>Wizārat al-ʻAdl.</sb>
+ </d710>
+ <d850 i1=" " i2=" ">
+ <sa>DLC</sa>
+ </d850>
+ <d880 i1="0" i2="0">
+ <s6>245-01/(3/r</s6>
+ <sa>قضاء الأسرة :</sa>
+ <sb>مجلة متخصصة /</sb>
+ <sc>وزارة العدل.</sc>
+ </d880>
+ <d880 i1="1" i2="3">
+ <s6>246-02/(3/r</s6>
+ <sa>مجلة قضاء الأسرة</sa>
+ <sf><2006></sf>
+ </d880>
+ <d880 i1=" " i2=" ">
+ <s6>260-03/(3/r</s6>
+ <sa>الرباط :</sa>
+ <sb>جمعية نشر المعلومة القانونية والقضائية،</sb>
+ <sc>2005-</sc>
+ </d880>
+ <d880 i1="0" i2=" ">
+ <s6>362-04/(3/r</s6>
+ <sa>العدد 1. (يوليوز 2005)-</sa>
+ </d880>
+ <d880 i1="0" i2=" ">
+ <s6>490-05/(3/r</s6>
+ <sa>منشورات جمعية نشر المعلومة القانونية والقضائية</sa>
+ </d880>
+ <d880 i1="2" i2=" ">
+ <s6>710-06/(3/r</s6>
+ <sa>جمعية نشر المعلومة القانونية والقضائية.</sa>
+ </d880>
+ <d880 i1="1" i2=" ">
+ <s6>710-07/(3/r</s6>
+ <sa>Morocco.</sa>
+ <sb>وزارة العدل.</sb>
+ </d880>
+ <d936 i1=" " i2=" ">
+ <sa>LC Cairo Office [we 45]</sa>
+ </d936>
+</r>
+</collection>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
+ xmlns:marc="http://www.loc.gov/MARC21/slim">
+
+ <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+
+
+ <xsl:template match="/marc:record">
+ <pz:record>
+
+ <xsl:for-each select="marc:controlfield[@tag='001']">
+ <pz:metadata type="id">
+ <xsl:value-of select="."/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- -->
+ <xsl:for-each select="marc:datafield[@tag='020']">
+ <xsl:if test="marc:subfield[@code='a'] = 'US'">
+ <pz:metadata type="lccn">
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='010']">
+ <pz:metadata type="isbn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag='011']">
+ <pz:metadata type="issn">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+
+ <xsl:for-each select="marc:datafield[@tag='200']">
+ <pz:metadata type="title">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+
+ <!-- Date of Pulbication -->
+ <xsl:for-each select="marc:datafield[@tag='210']">
+ <pz:metadata type="date">
+ <xsl:value-of select="marc:subfield[@code='d']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- Usmarc 650 maps to unimarc 606 and marc21 653 maps to unimarc 610 -->
+ <xsl:for-each select="marc:datafield[@tag='606' or @tag='610']">
+ <pz:metadata type="subject">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <xsl:for-each select="marc:datafield[@tag >= 300 and @tag <= 345]
+ [@tag != '325']">
+ <pz:metadata type="description">
+ <xsl:value-of select="*/text()"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+
+ <!-- Author : primary, alternative and secondary responsibility (equivalent marc21 tags : 100, 700 -->
+ <xsl:for-each select="marc:datafield[@tag='700' or @tag='701' or @tag='702']">
+ <pz:metadata type="author">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="marc:subfield[@code='b']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ <!-- Author : marc21 tag 720 maps to unimarc 730
+ <xsl:for-each select="marc:datafield[@tag='730']">
+ <pz:metadata type="author">
+ <xsl:value-of select="marc:subfield[@code='a']"/>
+ </pz:metadata>
+ </xsl:for-each>
+ -->
+
+ <!-- -->
+ <xsl:for-each select="marc:datafield[@tag='856']">
+ <pz:metadata type="url">
+ <xsl:value-of select="marc:subfield[@code='u']"/>
+ </pz:metadata>
+ </xsl:for-each>
+
+ </pz:record>
+ </xsl:template>
+
+</xsl:stylesheet>
** AJAX HELPER CLASS ***********************************************************
********************************************************************************
*/
-var pzHttpRequest = function (url, errorHandler, cookieDomain) {
+var pzHttpRequest = function (url, errorHandler, cookieDomain, windowId) {
this.maxUrlLength = 2048;
this.request = null;
this.url = url;
this.isXDR = false;
this.domainRegex = /https?:\/\/([^:/]+).*/;
this.cookieDomain = cookieDomain || null;
+ this.windowId = windowId || window.name;
var xhr = new XMLHttpRequest();
var domain = this._getDomainFromUrl(url);
//session cookie, resend it
var domain = this._getDomainFromUrl(url);
if (domain && this._isCrossDomain(domain) &&
- this.getCookie(domain+":SESSID")) {
+ this.getCookie(domain+":"+this.windowId+":SESSID")) {
//rewrite the URL
- var sessparam = ';jsessionid=' + this.getCookie(domain+":SESSID");
+ var sessparam = ';jsessionid=' + this.getCookie(domain+":"+this.windowId+":SESSID");
var q = url.indexOf('?');
if (q == -1) {
url += sessparam;
var jsessionId = this.request.responseXML
.documentElement.getAttribute('jsessionId');
if (jsessionId)
- this.setCookie(domain+":SESSID", jsessionId);
+ this.setCookie(domain+":"+this.windowId+":SESSID", jsessionId);
}
this.callback(this.request.responseXML);
} else {
URL: http://www.indexdata.com/pazpar2
Summary: pazpar2 daemon
Requires: libyaz5 >= 5.0.0
+Requires: pazpar2-xsl
%description
Pazpar2 is a high-performance, user interface-independent, data
Requires: pazpar2
%post
+for f in /usr/share/pazpar2/xsl/*.xsl; do
+ e=/etc/pazpar2/`basename $f`
+ if test -f $e; then
+ if diff $e $f >/dev/null; then
+ rm $e
+ fi
+ fi
+done
if [ $1 = 1 ]; then
/sbin/chkconfig --add pazpar2
/sbin/service pazpar2 start > /dev/null 2>&1
rm /etc/httpd/conf.d/pazpar2-js.conf
fi
fi
+%package -n pazpar2-xsl
+Summary: XSLTs for converting to pz2 format
+Group: Data
+
+%description -n pazpar2-xsl
+This package includes XSLTs for converting from various input XML formats
+to Pazpar2's internal XML format.
+
%package -n pazpar2-doc
Summary: pazpar2 documentation
Group: Data
cp etc/services/*.xml ${RPM_BUILD_ROOT}/etc/pazpar2/services-available/
cp etc/settings/*.xml ${RPM_BUILD_ROOT}/etc/pazpar2/settings/
cp -r etc/settings/mkc ${RPM_BUILD_ROOT}/etc/pazpar2/settings
-cp etc/*.xsl ${RPM_BUILD_ROOT}/etc/pazpar2/
+mkdir -p ${RPM_BUILD_ROOT}/usr/share/pazpar2/xsl
+cp etc/xsl/*.xsl ${RPM_BUILD_ROOT}/usr/share/pazpar2/xsl
mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/init.d
install -m755 rpm/pazpar2.init ${RPM_BUILD_ROOT}/etc/rc.d/init.d/pazpar2
echo "Alias /pazpar2 /usr/share/pazpar2" >${RPM_BUILD_ROOT}/etc/pazpar2/ap2pazpar2-js.cfg
%dir %{_sysconfdir}/pazpar2/services-enabled
%dir %{_sysconfdir}/pazpar2/services-available
%config %{_sysconfdir}/pazpar2/*.xml
-%config %{_sysconfdir}/pazpar2/*.xsl
%config %{_sysconfdir}/pazpar2/settings/*.xml
%config %{_sysconfdir}/pazpar2/settings/*/*.xml
%config %{_sysconfdir}/pazpar2/services-available/*.xml
%{_datadir}/pazpar2/js/pz2.js
%config %{_sysconfdir}/pazpar2/ap2pazpar2-js.cfg
+%files -n pazpar2-xsl
+%defattr(-,root,root)
+%{_datadir}/pazpar2/xsl
+
%files -n pazpar2-doc
%defattr(-,root,root)
%{_defaultdocdir}/pazpar2
if (cl->same_search == 1 && rc_prep_connection == 2)
{
session_log(se, YLOG_LOG, "client %s resuse result", client_get_id(cl));
+ client_report_facets(cl, cl->resultset);
return client_reingest(cl);
}
else if (!rc_prep_connection)
struct session_database *sdb = client_get_database(con->client);
const char *apdulog = session_setting_oneval(sdb, PZ_APDULOG);
const char *memcached = session_setting_oneval(sdb, PZ_MEMCACHED);
+ const char *redis = session_setting_oneval(sdb, PZ_REDIS);
assert(con);
ZOOM_options_set(zoptions, "charset", charset);
if (memcached && *memcached)
ZOOM_options_set(zoptions, "memcached", memcached);
+ if (redis && *redis)
+ ZOOM_options_set(zoptions, "redis", redis);
if (con->zproxy)
{
int subi;
struct database_criterion *new = nmem_malloc(m, sizeof(*new));
char *eq;
- if ((eq = strchr(values[i], '=')))
- new->type = PAZPAR2_STRING_MATCH;
- else if ((eq = strchr(values[i], '~')))
- new->type = PAZPAR2_SUBSTRING_MATCH;
- else
+ for (eq = values[i]; *eq; eq++)
+ if (*eq == '=')
+ {
+ new->type = PAZPAR2_STRING_MATCH;
+ break;
+ }
+ else if (*eq == '~')
+ {
+ new->type = PAZPAR2_SUBSTRING_MATCH;
+ break;
+ }
+ if (!*eq)
{
yaz_log(YLOG_WARN, "Missing equal-sign/tilde in filter");
return 0;
struct normalize_step {
struct normalize_step *next;
- xsltStylesheet *stylesheet; /* created by normalize_record */
+ xsltStylesheet *stylesheet1; /* created by normalize_record */
xsltStylesheet *stylesheet2; /* external stylesheet (service) */
struct marcmap *marcmap;
};
if (!xsp_doc)
no_errors++;
+ else
{
*m = nmem_malloc(nt->nmem, sizeof(**m));
(*m)->marcmap = NULL;
- (*m)->stylesheet = NULL;
+ (*m)->stylesheet1 = NULL;
(*m)->stylesheet2 = NULL;
- (*m)->stylesheet = xsltParseStylesheetDoc(xsp_doc);
- if (!(*m)->stylesheet)
+ (*m)->stylesheet1 = xsltParseStylesheetDoc(xsp_doc);
+ if (!(*m)->stylesheet1)
no_errors++;
m = &(*m)->next;
}
*m = nmem_malloc(nt->nmem, sizeof(**m));
(*m)->marcmap = NULL;
- (*m)->stylesheet = NULL;
+ (*m)->stylesheet1 = NULL;
(*m)->stylesheet2 = service_xslt_get(service, stylesheets[i]);
if ((*m)->stylesheet2)
;
else if (!strcmp(&stylesheets[i][strlen(stylesheets[i])-4], ".xsl"))
{
- if (!((*m)->stylesheet =
+ if (!((*m)->stylesheet1 =
xsltParseStylesheetFile((xmlChar *) wrbuf_cstr(fname))))
{
yaz_log(YLOG_FATAL|YLOG_ERRNO, "Unable to load stylesheet: %s",
struct normalize_step *m;
for (m = nt->steps; m; m = m->next)
{
- if (m->stylesheet)
- xsltFreeStylesheet(m->stylesheet);
+ if (m->stylesheet1)
+ xsltFreeStylesheet(m->stylesheet1);
}
nmem_destroy(nt->nmem);
}
{
xmlNodePtr root = 0;
xmlDoc *ndoc;
- if (m->stylesheet)
- ndoc = xsltApplyStylesheet(m->stylesheet, *doc, parms);
+ if (m->stylesheet1)
+ ndoc = xsltApplyStylesheet(m->stylesheet1, *doc, parms);
else if (m->stylesheet2)
ndoc = xsltApplyStylesheet(m->stylesheet2, *doc, parms);
else if (m->marcmap)
int no_threads;
WRBUF confdir;
+ char *path;
iochan_man_t iochan_man;
};
static void conf_dir_path(struct conf_config *config, WRBUF w, const char *src)
{
- if (config->confdir && wrbuf_len(config->confdir) > 0 &&
- !yaz_is_abspath(src))
+ char full_path[1024];
+ if (yaz_filepath_resolve(src, config->path,
+ wrbuf_len(config->confdir) > 0 ?
+ wrbuf_cstr(config->confdir) : ".",
+ full_path))
{
- wrbuf_printf(w, "%s/%s", wrbuf_cstr(config->confdir), src);
+ wrbuf_puts(w, full_path);
}
else
+ {
+ yaz_log(YLOG_WARN, "File not found: fname=%s path=%s base=%s", src,
+ config->path, wrbuf_cstr(config->confdir));
wrbuf_puts(w, src);
+ }
}
void service_destroy(struct conf_service *service)
xmlFree(number);
}
}
+ else if (!strcmp((const char *) n->name, "file"))
+ {
+ xmlChar *path = xmlGetProp(n, (xmlChar *) "path");
+ if (path)
+ {
+ config->path = nmem_strdup(config->nmem, (const char *) path);
+ xmlFree(path);
+ }
+ }
else if (!strcmp((const char *) n->name, "targetprofiles"))
{
yaz_log(YLOG_FATAL, "targetprofiles unsupported here. Must be part of service");
config->nmem = nmem;
config->servers = 0;
+ config->path = nmem_strdup(nmem, ".");
config->no_threads = 0;
config->iochan_man = 0;
"pz:authentication_mode",
"pz:native_score",
"pz:memcached",
+ "pz:redis",
0
};
#define PZ_AUTHENTICATION_MODE 35
#define PZ_NATIVE_SCORE 36
#define PZ_MEMCACHED 37
+#define PZ_REDIS 38
#define PZ_MAX_EOF 39
struct setting
solr_tests = test_solr.sh test_termlist_block.sh test_limit_limitmap.sh test_sort.sh
check_SCRIPTS = test_http.sh test_icu.sh test_post.sh \
test_settings.sh test_turbomarcxml.sh test_facets.sh \
- test_url.sh test_filter.sh test_tmarc.sh test_sru.sh \
+ test_url.sh test_filter.sh test_sru.sh \
$(solr_tests)
EXTRA_DIST = run_pazpar2.sh marc21_test.xsl tmarc.xsl solr-pz2.xsl \
cp ${srcdir}/test_*.res $(distdir)
mkdir $(distdir)/set2
cp ${srcdir}/set2/*.xml $(distdir)/set2
- cp ${srcdir}/tmarc?.xml $(distdir)
- cp ${srcdir}/tmarc?.res.xml $(distdir)
http://localhost:9763/search.pz2?session=2&command=search&query=9+and+computer
10 http://localhost:9763/search.pz2?session=2&command=show&block=1
http://localhost:9763/search.pz2?session=2&command=termlist&name=xtargets%2Cauthor%2Csubject%2Cdate%2Cmedium
+http://localhost:9763/search.pz2?session=2&command=search&query=9+and+computer
+http://localhost:9763/search.pz2?session=2&command=termlist&name=xtargets%2Cauthor%2Csubject%2Cdate%2Cmedium
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<search><status>OK</status></search>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<termlist><activeclients>0</activeclients>
+<list name="xtargets">
+<term>
+<id>localhost:9999/db1</id>
+<name>db1</name>
+<frequency>9</frequency>
+<state>Client_Idle</state>
+<diagnostic>0</diagnostic>
+</term>
+</list>
+<list name="author">
+<term><name>author0</name><frequency>100</frequency></term>
+<term><name>author1</name><frequency>90</frequency></term>
+<term><name>author2</name><frequency>80</frequency></term>
+<term><name>author3</name><frequency>70</frequency></term>
+<term><name>author4</name><frequency>60</frequency></term>
+<term><name>author5</name><frequency>50</frequency></term>
+<term><name>author6</name><frequency>40</frequency></term>
+<term><name>author7</name><frequency>30</frequency></term>
+<term><name>author8</name><frequency>20</frequency></term>
+<term><name>author9</name><frequency>10</frequency></term>
+</list>
+<list name="subject">
+<term><name>subject0</name><frequency>100</frequency></term>
+<term><name>subject1</name><frequency>90</frequency></term>
+<term><name>subject2</name><frequency>80</frequency></term>
+<term><name>subject3</name><frequency>70</frequency></term>
+<term><name>subject4</name><frequency>60</frequency></term>
+<term><name>subject5</name><frequency>50</frequency></term>
+<term><name>subject6</name><frequency>40</frequency></term>
+<term><name>subject7</name><frequency>30</frequency></term>
+<term><name>subject8</name><frequency>20</frequency></term>
+<term><name>subject9</name><frequency>10</frequency></term>
+</list>
+<list name="date">
+<term><name>date0</name><frequency>100</frequency></term>
+<term><name>date1</name><frequency>90</frequency></term>
+<term><name>date2</name><frequency>80</frequency></term>
+<term><name>date3</name><frequency>70</frequency></term>
+<term><name>date4</name><frequency>60</frequency></term>
+<term><name>date5</name><frequency>50</frequency></term>
+<term><name>date6</name><frequency>40</frequency></term>
+<term><name>date7</name><frequency>30</frequency></term>
+<term><name>date8</name><frequency>20</frequency></term>
+<term><name>date9</name><frequency>10</frequency></term>
+</list>
+<list name="medium"/>
+</termlist>
\ No newline at end of file
-<!-- Solr target -->
<settings target="localhost:9999/db1">
<set name="pz:maxrecs" value="2" />
<set name="pz:facetmap:date" value="date" />
-<!-- Solr target -->
<settings target="localhost:9999/db1">
<set name="pz:facetmap:date" value="date" />
<set name="pz:facetmap:subject" value="subject" />
-<!-- Solr target -->
<settings target="Target-2">
<set name="pz:name" value="LOC-SOLR" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
<set name="pz:limitmap:medium" value="rpn:@attr 1=medium_exact @attr 6=3" />
<!-- no native_score, the default behavior -->
-
<set name="full_text_target" value="=NO" />
<set name="use_url_proxy" value="0" />
<set name="pz:piggyback" value="1" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
<set name="pz:native_score" value="position" />
-
+
<set name="full_text_target" value="=NO" />
<set name="use_url_proxy" value="0" />
<set name="pz:piggyback" value="1" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
<set name="pz:native_score" value="score" />
-
<set name="full_text_target" value="=NO" />
<set name="use_url_proxy" value="0" />
<set name="pz:piggyback" value="1" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
<set name="pz:native_score" value="internal" />
-
<set name="full_text_target" value="=NO" />
<set name="use_url_proxy" value="0" />
<set name="pz:piggyback" value="1" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr" />
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:termlist_term_factor" value="1"/>
</settings>
\ No newline at end of file
-<!-- Solr target -->
<settings target="LOC Solr Test">
<!-- Configure native facets -->
<set name="pz:termlist_term_count" value="10"/>
-<!-- Solr target, settings 4-->
<settings target="LOC Solr Test">
- <set name="pz:maxrecs" value="200" />
+ <set name="pz:maxrecs" value="200"/>
<set name="pz:present_chunk" value="0"/>
</settings>
-<!-- Solr target, Settings 5 -->
<settings target="LOC Solr Test">
- <set name="pz:maxrecs" value="100" />
+ <set name="pz:maxrecs" value="100"/>
<set name="pz:present_chunk" value=""/>
</settings>
-<!-- Solr target, Settings 6: sortmaps -->
<settings target="LOC Solr Test">
<set name="pz:present_chunk" value="0"/>
- <set name="pz:sortmap:title" value="solr:title" />
- <set name="pz:sortmap:date" value="solr:date_exact" />
- <set name="pz:sortmap:author" value="solr:author_exact" />
- <set name="pz:sortmap:score" value="solr:score" />
+ <set name="pz:sortmap:title" value="solr:title"/>
+ <set name="pz:sortmap:date" value="solr:date_exact"/>
+ <set name="pz:sortmap:author" value="solr:author_exact"/>
+ <set name="pz:sortmap:score" value="solr:score"/>
</settings>
-<!-- Solr target -->
<settings target="LOC Solr Test">
<set name="pz:name" value="LOC Solr Test" />
<set name="pz:url" value="ocs-test.indexdata.com/solr/select" />
-<!-- Solr target -->
<settings target="id_solr">
<set name="pz:name" value="LOC (SOLR)" />
<set name="pz:url" value="ocs-test.indexdata.com/solr" />
<set name="pz:cclmap:ti" value="1=title" />
<set name="pz:cclmap:isbn" value="1=isbn" />
<set name="pz:cclmap:author_phrase" value="1=author_exact 6=3"/>
-<!--
- <set name="pz:limitmap:author" value="rpn:@attr 1=author_exact 6=3" />
- <set name="pz:limitmap:subject" value="rpn:@attr 1=subject_exact" />
- <set name="pz:limitmap:date" value="rpn:@attr 1=date @attr 6=3" />
- <set name="pz:limitmap:medium" value="rpn:@attr 1=medium_exact @attr 6=3" />
--->
<set name="full_text_target" value="=NO" />
- <!-- Configure native facets -->
-
<set name="pz:termlist_term_count" value="10"/>
-<!--
- <set name="pz:facetmap:author" value="author_exact" />
- <set name="pz:facetmap:subject" value="subject_exact" />
- <set name="pz:facetmap:medium" value="medium_exact" />
- <set name="pz:facetmap:date" value="date" />
--->
<set name="use_url_proxy" value="0" />
<set name="pz:piggyback" value="1" />
<set name="pz:preferred" value="0" />
+++ /dev/null
-#!/bin/sh
-res=0
-for m in tmarc?.xml; do
- b=`basename $m .xml`
- l=$b.log.xml
- r=$b.res.xml
- d=$b.dif
- xsltproc ../etc/tmarc.xsl $m >$l
- if test -f $r; then
- if diff $l $r >$d; then
- rm $d
- else
- echo "$b: FAIL; check $d"
- res=1
- fi
- else
- echo "$b: making $r for the first time"
- mv $l $r
- res=1
- fi
-done
-exit $res
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="author">Sloman</pz:metadata>
- <pz:metadata type="date">2002</pz:metadata>
- <pz:metadata type="title">On the road with Bob Dylan</pz:metadata>
- <pz:metadata type="title-complete">On the road with Bob Dylan</pz:metadata>
- <pz:metadata type="edition">Revised edition</pz:metadata>
- <pz:metadata type="publication-place">New York</pz:metadata>
- <pz:metadata type="publication-name">Three Rivers Press</pz:metadata>
- <pz:metadata type="publication-date">2002</pz:metadata>
- <pz:metadata type="physical-extent">xv, 464 sider, tavler</pz:metadata>
- <pz:metadata type="description">Tidligere: 1. udgave. New York, Bantam, 1978</pz:metadata>
- <pz:metadata type="medium">book</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
-<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
- <l>00988nam0a32003011 450 </l>
- <d001 i1="0" i2="0" i3="0">
- <sa>9 181 423 4</sa>
- <sb>710100</sb>
- <sf>a</sf>
- </d001>
- <d004 i1="0" i2="0" i3="0">
- <sr>n</sr>
- <sa>e</sa>
- </d004>
- <d008 i1="0" i2="0" i3="0">
- <st>m</st>
- <su>u</su>
- <sa>2002</sa>
- <sb>us</sb>
- <sl>eng</sl>
- <sv>0</sv>
- </d008>
- <d009 i1="0" i2="0" i3="0">
- <sa>a</sa>
- <sg>xx</sg>
- </d009>
- <d021 i1="0" i2="0" i3="0">
- <sa>1-4000-4596-7</sa>
- <sd>$14,00</sd>
- </d021>
- <d032 i1="0" i2="0" i3="0">
- <s code="&">DBC200439</s>
- </d032>
- <d100 i1="0" i2="0" i3="0">
- <s0></s0>
- <sa>Sloman</sa>
- <sh>Larry</sh>
- </d100>
- <d245 i1="0" i2="0" i3="0">
- <sa>On the road with Bob Dylan</sa>
- <se>Larry "Ratso" Sloman</se>
- </d245>
- <d250 i1="0" i2="0" i3="0">
- <sa>Revised edition</sa>
- <sb>Three Rivers Press</sb>
- </d250>
- <d260 i1="0" i2="0" i3="0">
- <sa>New York</sa>
- <sb>Three Rivers Press</sb>
- <sc>2002</sc>
- </d260>
- <d300 i1="0" i2="0" i3="0">
- <sa>xv, 464 sider, tavler</sa>
- </d300>
- <d504 i1="0" i2="0" i3="0">
- <sa>Larry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue"</sa>
- </d504>
- <d512 i1="0" i2="0" i3="0">
- <sa>På omslaget: With a new introduction by Kinky Friedman</sa>
- </d512>
- <d520 i1="0" i2="0" i3="0">
- <sa>Tidligere: 1. udgave. New York, Bantam, 1978</sa>
- </d520>
- <d652 i1="0" i2="0" i3="0">
- <s0></s0>
- <sm>99.4</sm>
- <sa>Dylan</sa>
- <sh>Bob</sh>
- </d652>
- <d652 i1="0" i2="0" i3="0">
- <sp>78.9064</sp>
- <sv>5</sv>
- </d652>
- <d666 i1="0" i2="0" i3="0">
- <sf>folkemusik</sf>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <sf>folkemusikere</sf>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <sf>rockmusik</sf>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <sf>rockmusikere</sf>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <sf>rockkoncerter</sf>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <se>USA</se>
- </d666>
- <d666 i1="0" i2="0" i3="0">
- <si>1970-1979</si>
- </d666>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="author">Mimms</pz:metadata>
- <pz:metadata type="date">1995</pz:metadata>
- <pz:metadata type="title">Cry baby</pz:metadata>
- <pz:metadata type="title">Warm and soulful</pz:metadata>
- <pz:metadata type="title-complete">Cry baby</pz:metadata>
- <pz:metadata type="publication-place">Bury St. Edmunds</pz:metadata>
- <pz:metadata type="publication-name">BGO</pz:metadata>
- <pz:metadata type="publication-date">1995</pz:metadata>
- <pz:metadata type="medium">book</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
-<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
- <l>01116nam0a32002171 450 </l>
- <d001 i1="0" i2="0" i3="0">
- <sa>9 182 502 3</sa>
- <sb>710100</sb>
- <sf>a</sf>
- </d001>
- <d004 i1="0" i2="0" i3="0">
- <sr>c</sr>
- <sa>e</sa>
- </d004>
- <d008 i1="0" i2="0" i3="0">
- <st>s</st>
- <su>f</su>
- <sa>1995</sa>
- <sb>gb</sb>
- <sl>eng</sl>
- <sv>0</sv>
- </d008>
- <d009 i1="0" i2="0" i3="0">
- <sa>s</sa>
- <sg>xc</sg>
- </d009>
- <d039 i1="0" i2="0" i3="0">
- <sa>bef</sa>
- </d039>
- <d100 i1="0" i2="0" i3="0">
- <sa>Mimms</sa>
- <sh>Garnet</sh>
- </d100>
- <d245 i1="0" i2="0" i3="0">
- <sa>Cry baby</sa>
- <sa>Warm and soulful</sa>
- <se>Garnet Mimms ... [et al.]</se>
- </d245>
- <d260 i1="0" i2="0" i3="0">
- <sa>Bury St. Edmunds</sa>
- <sb>BGO</sb>
- <sc>1995</sc>
- </d260>
- <d300 i1="0" i2="0" i3="0">
- <sn>1 cd</sn>
- </d300>
- <d512 i1="0" i2="0" i3="0">
- <sa>Indspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)</sa>
- </d512>
- <d531 i1="0" i2="0" i3="0">
- <sa>Indhold:</sa>
- </d531>
- <d538 i1="0" i2="0" i3="0">
- <sf>BGO</sf>
- <sg>BGOCD268</sg>
- </d538>
- <d652 i1="0" i2="0" i3="0">
- <sm>78.794</sm>
- <sv>4</sv>
- </d652>
- <d666 i1="0" i2="0" i3="0">
- <sm>soul</sm>
- <sm>rhythm & blues</sm>
- <sn>vokal</sn>
- <sp>1960-1969</sp>
- <sl>USA</sl>
- </d666>
- <d795 i1="0" i2="0" i3="0">
- <s code="å">11</s>
- <sa>Cry baby</sa>
- <sa>Nobody but you</sa>
- <sa>Until you were gone</sa>
- <sa>Anytime you want me</sa>
- <sa>So close</sa>
- <sa>For your precious love</sa>
- <sa>Baby don't you weep</sa>
- <sa>A ¤quiet place</sa>
- <sa>Cry to me</sa>
- <sa>Don't change your heart</sa>
- <sa>Wanting you</sa>
- <sa>The ¤truth hurts</sa>
- <sa>I'll take good care of you</sa>
- <sa>Looking for you</sa>
- <sa>It won't hurt (half as much)</sa>
- <sa>It was easier to hurt her</sa>
- <sa>Thinkin'</sa>
- <sa>Prove it to me</sa>
- <sa>More than a miracle</sa>
- <sa>As long as I have you</sa>
- <sa>One girl</sa>
- <sa>There goes my baby</sa>
- <sa>It's just a matter of time</sa>
- <sa>A ¤little bit of soap</sa>
- <sa>Look away</sa>
- <sa>I'll make it up to you</sa>
- </d795>
- <d795 i1="0" i2="0" i3="0">
- <s code="å">40</s>
- <sy>0</sy>
- <sa>1 girl</sa>
- </d795>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="title">Byfornyelse ved Ibsen-Ringen</pz:metadata>
- <pz:metadata type="title-complete">Byfornyelse ved Ibsen-Ringen</pz:metadata>
- <pz:metadata type="physical-format">farvefoto</pz:metadata>
- <pz:metadata type="physical-format">plan</pz:metadata>
- <pz:metadata type="physical-format">snit</pz:metadata>
- <pz:metadata type="subject-long">byfornyelse</pz:metadata>
- <pz:metadata type="subject-long">sanering</pz:metadata>
- <pz:metadata type="subject">Telje Torp Aasen Arkitektkontor</pz:metadata>
- <pz:metadata type="subject-long">Telje Torp Aasen Arkitektkontor, Kristian Augustsgate 7B</pz:metadata>
- <pz:metadata type="subject">Eng, Dagfin</pz:metadata>
- <pz:metadata type="subject-long">Eng, Dagfin</pz:metadata>
- <pz:metadata type="subject-long">anlund, Tom, Kristian Augustsgate, Pilestredet 19</pz:metadata>
- <pz:metadata type="medium">web</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
-<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
- <l>00914naa a2200337 450 </l>
- <d001 i1=" " i2=" ">
- <sa>a00001508</sa>
- <sf>a</sf>
- </d001>
- <d004 i1=" " i2=" ">
- <sa>i</sa>
- <sr>n</sr>
- </d004>
- <d008 i1=" " i2=" ">
- <sa>1991</sa>
- <sb>xx</sb>
- <sl>nor</sl>
- <st>a</st>
- <sv>9</sv>
- </d008>
- <d009 i1=" " i2=" ">
- <sa>a</sa>
- <sg>xx</sg>
- </d009>
- <d041 i1=" " i2=" ">
- <sa>nor</sa>
- </d041>
- <d041 i1=" " i2=" ">
- <sd>eng</sd>
- </d041>
- <d097 i1="0" i2="0">
- <sa>06</sa>
- </d097>
- <d245 i1=" " i2=" ">
- <sa>Byfornyelse ved Ibsen-Ringen</sa>
- </d245>
- <d300 i1=" " i2=" ">
- <sb>farvefoto</sb>
- <sb>plan</sb>
- <sb>snit</sb>
- </d300>
- <d557 i1=" " i2=" ">
- <sa>Byggekunst</sa>
- <sj>1991</sj>
- <sv>1/2</sv>
- <sk>41-45</sk>
- </d557>
- <d630 i1=" " i2=" ">
- <sf>byfornyelse</sf>
- </d630>
- <d630 i1=" " i2=" ">
- <sf>sanering</sf>
- </d630>
- <d633 i1=" " i2=" ">
- <sf>Norge</sf>
- </d633>
- <d633 i1=" " i2=" ">
- <sf>Oslo</sf>
- </d633>
- <d648 i1=" " i2=" ">
- <sa>Telje Torp Aasen Arkitektkontor</sa>
- <sc>Kristian Augustsgate 7B</sc>
- </d648>
- <d648 i1=" " i2=" ">
- <sa>Eng, Dagfin</sa>
- </d648>
- <d648 i1=" " i2=" ">
- <sr>anlund, Tom</sr>
- <sc>Kristian Augustsgate</sc>
- <sc>Pilestredet 19</sc>
- </d648>
- <dJ01 i1=" " i2=" ">
- <sa>a</sa>
- </dJ01>
- <dBAS i1=" " i2=" ">
- <s0></s0>
- </dBAS>
- <dLKR i1=" " i2=" ">
- <sa>ITM</sa>
- <sl>ARK50</sl>
- <sb>0000145</sb>
- <sy>1991</sy>
- <si>1/2</si>
- <sk>41-45</sk>
- </dLKR>
- <dCAT i1=" " i2=" ">
- <sa></sa>
- <sb></sb>
- <sc>20020111</sc>
- <sl>ARK01</sl>
- <sh>2002</sh>
- </dCAT>
- <dCAT i1=" " i2=" ">
- <sa></sa>
- <sb></sb>
- <sc>20020111</sc>
- <sl>ARK01</sl>
- <sh>2116</sh>
- </dCAT>
- <dCAT i1=" " i2=" ">
- <sa></sa>
- <sb></sb>
- <sc>20021002</sc>
- <sl>ARK01</sl>
- <sh>1000</sh>
- </dCAT>
- <dCAT i1=" " i2=" ">
- <sa>ICLLOAD</sa>
- <sb>00</sb>
- <sc>20021122</sc>
- <sl>ARK01</sl>
- <sh>1948</sh>
- </dCAT>
- <dCAT i1=" " i2=" ">
- <sc>20030618</sc>
- <sl>ARK01</sl>
- <sh>1330</sh>
- </dCAT>
- <dUID i1=" " i2=" ">
- <sa>a00001508</sa>
- </dUID>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="medium">other</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
-<!-- Indicator length at offset 10 should hold a digit. Assuming 2 -->
-<!-- Identifier length at offset 11 should hold a digit. Assuming 2 -->
-<!-- Base address at offsets 12..16 should hold a number. Assuming 0 -->
-<!-- Length implementation at offset 22 should hold a digit. Assuming 0 -->
- <l>009140091a22a 22003370 </l>
-<!-- Directory offset 24: Bad value for data length and/or length starting ( 45 00100170) -->
-<!-- Base address not at end of directory, base 0, end 25 -->
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="id">000277485</pz:metadata>
- <pz:metadata type="author">Μαρούδης, Κωνσταντίνος Ιω</pz:metadata>
- <pz:metadata type="date">1894</pz:metadata>
- <pz:metadata type="title">Ελληνικόν κρυπτογραφικόν λεξικόν /</pz:metadata>
- <pz:metadata type="title-responsibility">Κωνστ. Ι. Μαρούδης.</pz:metadata>
- <pz:metadata type="title-complete">Ελληνικόν κρυπτογραφικόν λεξικόν /</pz:metadata>
- <pz:metadata type="publication-place">Αθήνα,</pz:metadata>
- <pz:metadata type="publication-date">1894.</pz:metadata>
- <pz:metadata type="physical-extent">248 σελ.</pz:metadata>
- <pz:metadata type="subject">Greek language, Modern</pz:metadata>
- <pz:metadata type="subject-long">Greek language, Modern, Dialects, Dictionaries</pz:metadata>
- <pz:metadata type="subject">Cryptography.</pz:metadata>
- <pz:metadata type="subject-long">Cryptography.</pz:metadata>
- <pz:metadata type="medium">book</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
- <l>00492nam a22001455a 4500</l>
- <c001>000277485</c001>
- <c005>20051026111436.0</c005>
- <c008>050413s1894 gr 000 0 gre d</c008>
- <d100 i1="1" i2=" ">
- <sa>Μαρούδης, Κωνσταντίνος Ιω</sa>
- </d100>
- <d245 i1="1" i2="0">
- <sa>Ελληνικόν κρυπτογραφικόν λεξικόν /</sa>
- <sc>Κωνστ. Ι. Μαρούδης.</sc>
- </d245>
- <d250 i1=" " i2=" ">
- <s code="η"> εκδ.</s>
- </d250>
- <d260 i1=" " i2=" ">
- <sa>Αθήνα,</sa>
- <sc>1894.</sc>
- </d260>
- <d300 i1=" " i2=" ">
- <sa>248 σελ.</sa>
- </d300>
- <d650 i1=" " i2="0">
- <sa>Greek language, Modern</sa>
- <sx>Dialects</sx>
- <sv>Dictionaries</sv>
- </d650>
- <d650 i1=" " i2="0">
- <sa>Cryptography.</sa>
- </d650>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="id"> 11224466 </pz:metadata>
- <pz:metadata type="lccn"> 11224466 </pz:metadata>
- <pz:metadata type="author">Jack Collins</pz:metadata>
- <pz:metadata type="title">How to program a computer</pz:metadata>
- <pz:metadata type="title-complete">How to program a computer</pz:metadata>
- <pz:metadata type="publication-place">Penguin</pz:metadata>
- <pz:metadata type="physical-extent">p. cm.</pz:metadata>
- <pz:metadata type="medium">book</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
- <l>00366nam a22001698a 4500</l>
- <c001> 11224466 </c001>
- <c003>DLC</c003>
- <c005>00000000000000.0</c005>
- <c008>910710c19910701nju 00010 eng </c008>
- <d010 i1=" " i2=" ">
- <sa> 11224466 </sa>
- </d010>
- <d040 i1=" " i2=" ">
- <sa>DLC</sa>
- <sc>DLC</sc>
- </d040>
- <d050 i1="0" i2="0">
- <sa>123-xyz</sa>
- </d050>
- <d100 i1="1" i2="0">
- <sa>Jack Collins</sa>
- </d100>
- <d245 i1="1" i2="0">
- <sa>How to program a computer</sa>
- </d245>
- <d260 i1="1" i2=" ">
- <sa>Penguin</sa>
- </d260>
- <d263 i1=" " i2=" ">
- <sa>8710</sa>
- </d263>
- <d300 i1=" " i2=" ">
- <sa>p. cm.</sa>
- </d300>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="id"> 77123332 </pz:metadata>
- <pz:metadata type="lccn"> 77123332 </pz:metadata>
- <pz:metadata type="system-control-nr">57779</pz:metadata>
- <pz:metadata type="system-control-nr">90490</pz:metadata>
- <pz:metadata type="system-control-nr">93202</pz:metadata>
- <pz:metadata type="date">2001</pz:metadata>
- <pz:metadata type="title">Voyager Diacritic test -- New input 001 (SBIE).</pz:metadata>
- <pz:metadata type="title-complete">Voyager Diacritic test -- New input 001 (SBIE).</pz:metadata>
- <pz:metadata type="publication-place">ny :</pz:metadata>
- <pz:metadata type="publication-name">ny,</pz:metadata>
- <pz:metadata type="publication-date">2001.</pz:metadata>
- <pz:metadata type="physical-extent">100 p. ;</pz:metadata>
- <pz:metadata type="physical-dimensions">12 cm.</pz:metadata>
- <pz:metadata type="description">New copy imported from file (8/12/99).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Ơ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (ʻ); Polish l (ł).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (ơ); u Hook (ư); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o͡).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (ọ); Double Dot Below (o̤); Circle Below (o̥).</pz:metadata>
- <pz:metadata type="description">VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (o̮); Double Tilde 1st half (o͠); Double Tilde 2nd half (o) ; High Comma centered (o̓).</pz:metadata>
- <pz:metadata type="description">VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~).</pz:metadata>
- <pz:metadata type="description">Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>?</pz:metadata>
- <pz:metadata type="medium">book</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
- <l>03114cam a2200349 i 4500</l>
- <c001> 77123332 </c001>
- <c003>DLC</c003>
- <c005>20051218154744.0</c005>
- <c008>981008b2001 ilu 000 0 eng </c008>
- <d035 i1=" " i2=" ">
- <sa>57779</sa>
- </d035>
- <d035 i1=" " i2=" ">
- <sa>90490</sa>
- </d035>
- <d035 i1=" " i2=" ">
- <sa>93202</sa>
- </d035>
- <d040 i1=" " i2=" ">
- <sa>DLC</sa>
- <sc>DLC</sc>
- </d040>
- <d906 i1=" " i2=" ">
- <sa>0</sa>
- <sb>und</sb>
- <sc>orignew</sc>
- <sd>u</sd>
- <se>ncip</se>
- <sf>19</sf>
- <sg>y-gencatlg</sg>
- </d906>
- <d010 i1=" " i2=" ">
- <sa> 77123332 </sa>
- </d010>
- <d245 i1="0" i2="0">
- <sa>Voyager Diacritic test -- New input 001 (SBIE).</sa>
- </d245>
- <d260 i1=" " i2=" ">
- <sa>ny :</sa>
- <sb>ny,</sb>
- <sc>2001.</sc>
- </d260>
- <d300 i1=" " i2=" ">
- <sa>100 p. ;</sa>
- <sc>12 cm.</sc>
- </d300>
- <d500 i1=" " i2=" ">
- <sa>New copy imported from file (8/12/99).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Ơ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (ʻ); Polish l (ł).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (ơ); u Hook (ư); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o͡).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (ọ); Double Dot Below (o̤); Circle Below (o̥).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (o̮); Double Tilde 1st half (o͠); Double Tilde 2nd half (o) ; High Comma centered (o̓).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~).</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>?</sa>
- </d500>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="id">UCD-002592301</pz:metadata>
- <pz:metadata type="system-control-nr">99851339eo</pz:metadata>
- <pz:metadata type="author">Clinton, Atkinson.</pz:metadata>
- <pz:metadata type="date">1583?</pz:metadata>
- <pz:metadata type="title">Clinton, Purser & Arnold, to their countreymen wheresoeuer</pz:metadata>
- <pz:metadata type="title-remainder">Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</pz:metadata>
- <pz:metadata type="title-medium">[electronic resource] :</pz:metadata>
- <pz:metadata type="title-complete">Clinton, Purser & Arnold, to their countreymen wheresoeuer Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</pz:metadata>
- <pz:metadata type="publication-place">London :</pz:metadata>
- <pz:metadata type="publication-name">Imprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,</pz:metadata>
- <pz:metadata type="publication-date">[1583?]</pz:metadata>
- <pz:metadata type="physical-extent">[12] p</pz:metadata>
- <pz:metadata type="description">In verse</pz:metadata>
- <pz:metadata type="description">The first poem is signed: Thomas Walton alias Purser</pz:metadata>
- <pz:metadata type="description">Clinton's full name and bookseller's name from, and publication date conjectured by, STC</pz:metadata>
- <pz:metadata type="description">Signatures: A⁴ B²</pz:metadata>
- <pz:metadata type="description">Reproduction of the original in the Bodleian Library</pz:metadata>
- <pz:metadata type="subject">Electronic texts.</pz:metadata>
- <pz:metadata type="subject-long">Electronic texts., local</pz:metadata>
- <pz:metadata type="subject">Pirates</pz:metadata>
- <pz:metadata type="subject-long">Pirates, England, Early works to 1800.</pz:metadata>
- <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
- <pz:metadata type="electronic-text">Get resource</pz:metadata>
- <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
- <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
- <pz:metadata type="electronic-text">Get resource</pz:metadata>
- <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
- <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
- <pz:metadata type="electronic-text">Get resource</pz:metadata>
- <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
- <pz:metadata type="electronic-url">http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</pz:metadata>
- <pz:metadata type="electronic-text">Get resource</pz:metadata>
- <pz:metadata type="electronic-note">Restricted to UC campuses</pz:metadata>
- <pz:metadata type="callnumber">Internet</pz:metadata>
- <pz:metadata type="medium">book (electronic)</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- <pz:metadata type="iii-id">DVXL</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
- <l>02647nam^a2200469^^^4500</l>
- <c001>UCD-002592301</c001>
- <c005>20061209034435.0</c005>
- <c006>m d </c006>
- <c007>cr bn |||a|bb|</c007>
- <c008>920330s1583 enk s 000 0 eng d</c008>
- <d035 i1=" " i2=" ">
- <sa>99851339eo</sa>
- </d035>
- <d037 i1=" " i2=" ">
- <sa>CL0036000039</sa>
- <sb>ProQuest Information and Learning. 300 N. Zeeb Rd., Ann Arbor, MI 48106</sb>
- </d037>
- <d040 i1=" " i2=" ">
- <sa>Cu-RivES</sa>
- <sc>Cu-RivES</sc>
- <sd>CStRLIN</sd>
- <se>dcrb</se>
- <sd>WaOLN</sd>
- </d040>
- <d100 i1="1" i2=" ">
- <sa>Clinton, Atkinson.</sa>
- </d100>
- <d245 i1="0" i2="0">
- <sa>Clinton, Purser & Arnold, to their countreymen wheresoeuer</sa>
- <sh>[electronic resource] :</sh>
- <sb>Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie</sb>
- </d245>
- <d246 i1="2" i2=" ">
- <sa>Clinton, Purser & Arnold, to their countreymen wheresoever</sa>
- </d246>
- <d246 i1="2" i2=" ">
- <sa>Clinton, Purser & Arnold, to their countreymen wheresoever</sa>
- </d246>
- <d260 i1=" " i2=" ">
- <sa>London :</sa>
- <sb>Imprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,</sb>
- <sc>[1583?]</sc>
- </d260>
- <d300 i1=" " i2=" ">
- <sa>[12] p</sa>
- </d300>
- <d500 i1=" " i2=" ">
- <sa>In verse</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>The first poem is signed: Thomas Walton alias Purser</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>Clinton's full name and bookseller's name from, and publication date conjectured by, STC</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>Signatures: A⁴ B²</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>Reproduction of the original in the Bodleian Library</sa>
- </d500>
- <d510 i1="4" i2=" ">
- <sa>STC (2nd ed.)</sa>
- <sc>5431</sc>
- </d510>
- <d530 i1=" " i2=" ">
- <sa>Also issued in print and on microform</sa>
- </d530>
- <d533 i1=" " i2=" ">
- <sa>Electronic reproduction.</sa>
- <sn>Mode of access: World Wide Web.</sn>
- <sn>Restricted to UC campuses</sn>
- </d533>
- <d655 i1=" " i2="7">
- <sa>Electronic texts.</sa>
- <s2>local</s2>
- </d655>
- <d650 i1=" " i2="0">
- <sa>Pirates</sa>
- <sz>England</sz>
- <sv>Early works to 1800.</sv>
- </d650>
- <d700 i1="1" i2=" ">
- <sa>Walton, Thomas,</sa>
- <sd>fl. 1583.</sd>
- <s4>aut</s4>
- </d700>
- <d700 i1="1" i2=" ">
- <sa>Arnold,</sa>
- <sd>fl. 1583.</sd>
- <s4>aut</s4>
- </d700>
- <d793 i1="0" i2=" ">
- <sa>Early English books online</sa>
- </d793>
- <d852 i1=" " i2=" ">
- <sa>MER</sa>
- <sb>kmain</sb>
- </d852>
- <d852 i1=" " i2=" ">
- <sa>SCB</sa>
- <sb>nnet</sb>
- </d852>
- <d856 i1="4" i2="0">
- <sz>Restricted to UC campuses</sz>
- <sx>SCP UCSD</sx>
- <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
- </d856>
- <d856 i1="4" i2="0">
- <sz>Restricted to UC campuses</sz>
- <sx>SCP UCSD</sx>
- <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
- </d856>
- <d852 i1=" " i2=" ">
- <sa>DVXL</sa>
- <sb>ELECT-GEN</sb>
- <sh>Internet</sh>
- </d852>
- <d852 i1=" " i2=" ">
- <sa>LAGE</sa>
- <sb>in</sb>
- <s3>Online access</s3>
- </d852>
- <d856 i1="4" i2="0">
- <sz>Restricted to UC campuses</sz>
- <sx>SCP UCSD</sx>
- <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
- </d856>
- <d856 i1="4" i2="0">
- <sz>Restricted to UC campuses</sz>
- <su>http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610</su>
- <sx>CDL</sx>
- </d856>
- <d830 i1=" " i2="0">
- <sa>Early English books, 1475-1640 ;</sa>
- <sv>1406:13.</sv>
- </d830>
- <d901 i1=" " i2=" ">
- <sa>DVXL</sa>
- <sb>002592301</sb>
- </d901>
-</r>
-</collection>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<collection xmlns="http://www.indexdata.com/turbomarc" xmlns:pz="http://www.indexdata.com/pazpar2/1.0" xmlns:tmarc="http://www.indexdata.com/turbomarc">
- <pz:record>
- <pz:metadata type="id"> 2005336282</pz:metadata>
- <pz:metadata type="oclc-number">(OCoLC)170490164</pz:metadata>
- <pz:metadata type="lccn"> 2005336282</pz:metadata>
- <pz:metadata type="system-control-nr">(OCoLC)170490164</pz:metadata>
- <pz:metadata type="date">2005-</pz:metadata>
- <pz:metadata type="title">Qaḍāʼ al-usrah :</pz:metadata>
- <pz:metadata type="title-remainder">majallah mutakhaṣṣiṣah /</pz:metadata>
- <pz:metadata type="title-responsibility">Wizārat al-ʻAdl.</pz:metadata>
- <pz:metadata type="title-complete">Qaḍāʼ al-usrah : majallah mutakhaṣṣiṣah /</pz:metadata>
- <pz:metadata type="publication-place">al-Rabāṭ :</pz:metadata>
- <pz:metadata type="publication-name">Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah,</pz:metadata>
- <pz:metadata type="publication-date">2005-</pz:metadata>
- <pz:metadata type="physical-extent">v. :</pz:metadata>
- <pz:metadata type="physical-format">ill. ;</pz:metadata>
- <pz:metadata type="physical-dimensions">24 cm.</pz:metadata>
- <pz:metadata type="description">Some issues have also a distinctive title.</pz:metadata>
- <pz:metadata type="description">Latest issue consulted: al-ʻAdad 3. (Dujanbir 2006).</pz:metadata>
- <pz:metadata type="subject">Domestic relations (Islamic law)</pz:metadata>
- <pz:metadata type="subject-long">Domestic relations (Islamic law), Morocco.</pz:metadata>
- <pz:metadata type="subject">Divorce (Islamic law)</pz:metadata>
- <pz:metadata type="subject-long">Divorce (Islamic law)</pz:metadata>
- <pz:metadata type="subject">Marriage law</pz:metadata>
- <pz:metadata type="subject-long">Marriage law, Morocco.</pz:metadata>
- <pz:metadata type="subject">Law reports, digests, etc.</pz:metadata>
- <pz:metadata type="subject-long">Law reports, digests, etc., Morocco.</pz:metadata>
- <pz:metadata type="medium">journal</pz:metadata>
- <pz:metadata type="has-fulltext">no</pz:metadata>
- </pz:record>
-</collection>
+++ /dev/null
-<collection xmlns="http://www.indexdata.com/turbomarc">
-<r>
- <l>02075cas a22005055a 4500</l>
- <c001> 2005336282</c001>
- <c003>DLC</c003>
- <c005>20070911033614.0</c005>
- <c008>070910c20059999mr uu p f0 0ara </c008>
- <d010 i1=" " i2=" ">
- <sa> 2005336282</sa>
- </d010>
- <d012 i1=" " i2=" ">
- <sa>-3-7-0709110002-p----- </sa>
- </d012>
- <d035 i1=" " i2=" ">
- <sa>(OCoLC)170490164</sa>
- </d035>
- <d906 i1=" " i2=" ">
- <sa>7</sa>
- <sb>und</sb>
- <sc>serials</sc>
- <sd>u</sd>
- <se>ncip</se>
- <sf>19</sf>
- <sg>n-oclcserc</sg>
- </d906>
- <d040 i1=" " i2=" ">
- <sa>DLC</sa>
- <sc>DLC</sc>
- <sd>DLC</sd>
- </d040>
- <d041 i1="0" i2=" ">
- <sa>ara</sa>
- <sa>fre</sa>
- </d041>
- <d042 i1=" " i2=" ">
- <sa>lc</sa>
- </d042>
- <d043 i1=" " i2=" ">
- <sa>f-mr---</sa>
- </d043>
- <d050 i1="0" i2="0">
- <sa>IN PROCESS</sa>
- </d050>
- <d066 i1=" " i2=" ">
- <sc>(3</sc>
- </d066>
- <d245 i1="0" i2="0">
- <s6>880-01</s6>
- <sa>Qaḍāʼ al-usrah :</sa>
- <sb>majallah mutakhaṣṣiṣah /</sb>
- <sc>Wizārat al-ʻAdl.</sc>
- </d245>
- <d246 i1="1" i2="3">
- <sa>Justice de la famille</sa>
- </d246>
- <d246 i1="1" i2="3">
- <s6>880-02</s6>
- <sa>Majallat Qaḍāʼ al-usrah</sa>
- <sf><2006></sf>
- </d246>
- <d260 i1=" " i2=" ">
- <s6>880-03</s6>
- <sa>al-Rabāṭ :</sa>
- <sb>Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah,</sb>
- <sc>2005-</sc>
- </d260>
- <d300 i1=" " i2=" ">
- <sa>v. :</sa>
- <sb>ill. ;</sb>
- <sc>24 cm.</sc>
- </d300>
- <d310 i1=" " i2=" ">
- <sa>Irregular (semiannual)</sa>
- </d310>
- <d362 i1="0" i2=" ">
- <s6>880-04</s6>
- <sa>al-ʻAdad 1. (Yūlyūz 2005)-</sa>
- </d362>
- <d490 i1="0" i2=" ">
- <s6>880-05</s6>
- <sa>Manshūrāt Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah</sa>
- </d490>
- <d500 i1=" " i2=" ">
- <sa>Some issues have also a distinctive title.</sa>
- </d500>
- <d500 i1=" " i2=" ">
- <sa>Latest issue consulted: al-ʻAdad 3. (Dujanbir 2006).</sa>
- </d500>
- <d546 i1=" " i2=" ">
- <sa>Chiefly in Arabic; some French.</sa>
- </d546>
- <d650 i1=" " i2="0">
- <sa>Domestic relations (Islamic law)</sa>
- <sz>Morocco.</sz>
- </d650>
- <d650 i1=" " i2="0">
- <sa>Divorce (Islamic law)</sa>
- </d650>
- <d650 i1=" " i2="0">
- <sa>Marriage law</sa>
- <sz>Morocco.</sz>
- </d650>
- <d650 i1=" " i2="0">
- <sa>Law reports, digests, etc.</sa>
- <sz>Morocco.</sz>
- </d650>
- <d710 i1="2" i2=" ">
- <s6>880-06</s6>
- <sa>Jamʻīyat Nashr al-Maʻlūmah al-Qānūnīyah wa-al-Qaḍāʼīyah.</sa>
- </d710>
- <d710 i1="1" i2=" ">
- <s6>880-07</s6>
- <sa>Morocco.</sa>
- <sb>Wizārat al-ʻAdl.</sb>
- </d710>
- <d850 i1=" " i2=" ">
- <sa>DLC</sa>
- </d850>
- <d880 i1="0" i2="0">
- <s6>245-01/(3/r</s6>
- <sa>قضاء الأسرة :</sa>
- <sb>مجلة متخصصة /</sb>
- <sc>وزارة العدل.</sc>
- </d880>
- <d880 i1="1" i2="3">
- <s6>246-02/(3/r</s6>
- <sa>مجلة قضاء الأسرة</sa>
- <sf><2006></sf>
- </d880>
- <d880 i1=" " i2=" ">
- <s6>260-03/(3/r</s6>
- <sa>الرباط :</sa>
- <sb>جمعية نشر المعلومة القانونية والقضائية،</sb>
- <sc>2005-</sc>
- </d880>
- <d880 i1="0" i2=" ">
- <s6>362-04/(3/r</s6>
- <sa>العدد 1. (يوليوز 2005)-</sa>
- </d880>
- <d880 i1="0" i2=" ">
- <s6>490-05/(3/r</s6>
- <sa>منشورات جمعية نشر المعلومة القانونية والقضائية</sa>
- </d880>
- <d880 i1="2" i2=" ">
- <s6>710-06/(3/r</s6>
- <sa>جمعية نشر المعلومة القانونية والقضائية.</sa>
- </d880>
- <d880 i1="1" i2=" ">
- <s6>710-07/(3/r</s6>
- <sa>Morocco.</sa>
- <sb>وزارة العدل.</sb>
- </d880>
- <d936 i1=" " i2=" ">
- <sa>LC Cairo Office [we 45]</sa>
- </d936>
-</r>
-</collection>
DEBUG=0 # 0 for release, 1 for debug
USE_MANIFEST = 1 # Can be enabled Visual Studio 2005/2008
PACKAGE_NAME=pazpar2
-PACKAGE_VERSION=1.6.40
+PACKAGE_VERSION=1.7.0
# YAZ
YAZ_DIR=..\..\yaz