1 <?xml version="1.0" encoding="UTF-8"?>
3 This stylesheet expects Connector Frameworks records
7 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
9 xmlns:dc="http://purl.org/dc/elements/1.1/"
10 xmlns:siebel="http://loc.gov/siebel/elements/1.0/" >
12 <xsl:output indent="yes"
17 <xsl:param name="medium" />
20 According to cf/builder/templates/parseTask.cff, connectors can
21 also generate a "medium" field, but that is ignored in this
22 stylesheet, the rule below instead using an XSLT parameter.
23 Should the data element be used in preference when it is included?
26 <xsl:template match="/record">
28 <pz:metadata type="medium">
29 <xsl:value-of select="$medium" />
31 <xsl:apply-templates/>
36 The elements mapped in the following clauses should be kept more
37 or less in sync with those named in builder/templates/search.cft
38 in the "cf" git module.
41 <xsl:template match="date">
42 <pz:metadata type="publication-date">
43 <xsl:value-of select="."/>
45 <pz:metadata type="date">
46 <xsl:value-of select="."/>
50 <xsl:template match="url">
51 <pz:metadata type="electronic-url">
52 <xsl:value-of select="."/>
56 <xsl:template match="title">
57 <pz:metadata type="title">
58 <xsl:value-of select="."/>
60 <pz:metadata type="title-complete">
61 <xsl:value-of select="." />
65 <xsl:template match="author">
66 <pz:metadata type="author">
67 <xsl:value-of select="."/>
71 <xsl:template match="description">
72 <pz:metadata type="description">
73 <xsl:value-of select="."/>
77 <xsl:template match="publisher">
78 <pz:metadata type="publisher">
79 <xsl:value-of select="."/>
83 <xsl:template match="subject">
84 <pz:metadata type="subject">
85 <xsl:value-of select="."/>
89 <xsl:template match="isbn">
90 <pz:metadata type="isbn">
91 <xsl:value-of select="."/>
95 <xsl:template match="issn">
96 <pz:metadata type="issn">
97 <xsl:value-of select="."/>
101 <xsl:template match="journaltitle">
102 <pz:metadata type="journal-title">
103 <xsl:value-of select="."/>
107 <xsl:template match="volume">
108 <pz:metadata type="volume">
109 <xsl:value-of select="."/>
113 <xsl:template match="issue">
114 <pz:metadata type="issue">
115 <xsl:value-of select="."/>
119 <xsl:template match="page">
120 <pz:metadata type="page">
121 <xsl:value-of select="."/>
125 <xsl:template match="endpage">
126 <pz:metadata type="endpage">
127 <xsl:value-of select="."/>
132 According to cf/builder/templates/parseTask.cff, connectors can
133 also generate a "holding" field, but it's not clear how that is
134 different from "item". Perhaps this "item" rule should also
135 handle "holding" in the same way?
138 <xsl:template match="item">
139 <pz:metadata type="locallocation">
141 <xsl:when test="string-length(location)">
142 <xsl:value-of select="location"/>
144 <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
147 <pz:metadata type="callnumber">
149 <xsl:when test="string-length(callno)">
150 <xsl:value-of select="callno"/>
152 <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
155 <pz:metadata type="available">
157 <xsl:when test="string-length(available)">
158 <xsl:value-of select="available"/>
160 <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
163 <pz:metadata type="publicnote">
165 <xsl:when test="string-length(publicnote)">
166 <xsl:value-of select="publicnote"/>
168 <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
173 <xsl:template match="due">
174 <pz:metadata type="due">
175 <xsl:value-of select="."/>
179 <xsl:template match="location">
180 <pz:metadata type="locallocation">
181 <xsl:value-of select="."/>
185 <xsl:template match="callno">
186 <pz:metadata type="callnumber">
187 <xsl:value-of select="."/>
191 <xsl:template match="thumburl">
192 <pz:metadata type="thumburl">
193 <xsl:value-of select="."/>
197 <xsl:template match="score">
198 <pz:metadata type="score">
199 <xsl:value-of select="."/>
203 <xsl:template match="id">
204 <pz:metadata type="id">
205 <xsl:value-of select="."/>
209 <xsl:template match="available">
210 <pz:metadata type="available">
211 <xsl:value-of select="."/>
215 <xsl:template match="citation">
216 <pz:metadata type="citation">
217 <xsl:value-of select="."/>
221 <xsl:template match="relevance">
222 <pz:metadata type="relevance">
223 <xsl:value-of select="."/>
227 <xsl:template match="booktitle">
228 <pz:metadata type="booktitle">
229 <xsl:value-of select="."/>
233 <xsl:template match="copyright">
234 <pz:metadata type="copyright">
235 <xsl:value-of select="."/>
239 <xsl:template match="copyrightabstract">
240 <pz:metadata type="copyrightabstract">
241 <xsl:value-of select="."/>
245 <xsl:template match="pubtype">
246 <pz:metadata type="pubtype">
247 <xsl:value-of select="."/>
251 <xsl:template match="doctype">
252 <pz:metadata type="doctype">
253 <xsl:value-of select="."/>
257 <xsl:template match="extent">
258 <pz:metadata type="extent">
259 <xsl:value-of select="."/>
263 <xsl:template match="format">
264 <pz:metadata type="format">
265 <xsl:value-of select="."/>
269 <xsl:template match="languageitem">
270 <pz:metadata type="languageitem">
271 <xsl:value-of select="."/>
275 <xsl:template match="languageabstract">
276 <pz:metadata type="languageabstract">
277 <xsl:value-of select="."/>
281 <xsl:template match="permalink">
282 <pz:metadata type="permalink">
283 <xsl:value-of select="."/>
287 <xsl:template match="*" >
288 <pz:metadata type="{local-name()}">
289 <xsl:value-of select="."/>
293 <xsl:template match="text()"/>