1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Id: marc21.xsl,v 1.22 2007-10-04 12:01:15 adam Exp $ -->
5 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
7 xmlns:marc="http://www.loc.gov/MARC21/slim">
10 <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
12 <!-- Extract metadata from MARC21/USMARC
13 http://www.loc.gov/marc/bibliographic/ecbdhome.html
15 <xsl:include href="MARC21slimUtils.xsl" />
16 <xsl:include href="pz2-ourl-marc21.xsl" />
18 <xsl:template match="/marc:record">
19 <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
20 <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
21 <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
22 <xsl:variable name="medium">
24 <xsl:when test="$title_medium">
25 <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
27 <xsl:when test="$electronic_location_url">
28 <xsl:text>electronic resource</xsl:text>
30 <xsl:when test="$journal_title">
31 <xsl:text>article</xsl:text>
34 <xsl:text>book</xsl:text>
39 <xsl:variable name="uniform_title_key">
41 <xsl:when test="marc:datafield[@tag='130']">
42 <xsl:for-each select="marc:datafield[@tag='130']">
43 <xsl:call-template name="subfieldSelect">
44 <xsl:with-param name="codes">adfgkmnoprs</xsl:with-param>
48 <xsl:when test="marc:datafield[@tag='240']">
49 <xsl:for-each select="marc:datafield[@tag='240']">
50 <xsl:call-template name="subfieldSelect">
51 <xsl:with-param name="codes">adfgkmnoprs</xsl:with-param>
58 <xsl:variable name="title_key">
59 <xsl:for-each select="marc:datafield[@tag='245']">
60 <xsl:call-template name="subfieldSelect">
61 <xsl:with-param name="codes">abnp</xsl:with-param>
66 <xsl:variable name="work_title">
68 <xsl:when test="$uniform_title_key != ''">
69 <xsl:value-of select="$uniform_title_key" />
72 <xsl:value-of select="$title_key" />
77 <xsl:variable name="non_ut_main_entry_key">
79 <xsl:when test="marc:datafield[@tag='100']">
80 <xsl:for-each select="marc:datafield[@tag='100']">
81 <xsl:call-template name="subfieldSelect">
82 <xsl:with-param name="codes">abcd</xsl:with-param>
89 <xsl:variable name="mergekey">
90 <xsl:text>titlekey </xsl:text>
91 <xsl:value-of select="$work_title" />
92 <xsl:if test="$non_ut_main_entry_key != ''">
93 <xsl:text> namemainentry </xsl:text>
94 <xsl:value-of select="$non_ut_main_entry_key" />
99 <xsl:attribute name="mergekey">
100 <xsl:value-of select="$mergekey"/>
103 <xsl:for-each select="marc:datafield[@tag='999']">
104 <pz:metadata type="kohaid">
105 <xsl:value-of select="marc:subfield[@code='c']"/>
110 <xsl:for-each select="marc:datafield[@tag='020']">
111 <pz:metadata type="isbn">
112 <xsl:value-of select="marc:subfield[@code='a']"/>
117 <xsl:for-each select="marc:datafield[@tag='245']">
118 <pz:metadata type="work-title">
119 <xsl:value-of select="$work_title" />
124 <xsl:for-each select="marc:datafield[@tag='250']">
125 <pz:metadata type="edition">
126 <xsl:value-of select="marc:subfield[@code='a']"/>
130 <xsl:for-each select="marc:datafield[@tag='260']">
131 <pz:metadata type="publication-place">
132 <xsl:value-of select="marc:subfield[@code='a']"/>
134 <pz:metadata type="publication-name">
135 <xsl:value-of select="marc:subfield[@code='b']"/>
137 <pz:metadata type="publication-date">
138 <xsl:value-of select="marc:subfield[@code='c']"/>
144 <xsl:for-each select="marc:datafield[@tag='300']">
145 <pz:metadata type="physical-extent">
146 <xsl:value-of select="marc:subfield[@code='a']"/>
148 <pz:metadata type="physical-format">
149 <xsl:value-of select="marc:subfield[@code='b']"/>
151 <pz:metadata type="physical-dimensions">
152 <xsl:value-of select="marc:subfield[@code='c']"/>
154 <pz:metadata type="physical-accomp">
155 <xsl:value-of select="marc:subfield[@code='e']"/>
157 <pz:metadata type="physical-unittype">
158 <xsl:value-of select="marc:subfield[@code='f']"/>
160 <pz:metadata type="physical-unitsize">
161 <xsl:value-of select="marc:subfield[@code='g']"/>
163 <pz:metadata type="physical-specified">
164 <xsl:value-of select="marc:subfield[@code='3']"/>