Added check for null values for availability elements
[pazpar2-moved-to-github.git] / etc / cf.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3     This stylesheet expects Connector Frameworks records
4 -->
5 <xsl:stylesheet
6     version="1.0"
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/" >
11
12  <xsl:output indent="yes"
13         method="xml"
14         version="1.0"
15         encoding="UTF-8"/>
16
17   <xsl:template match="/record">
18     <pz:record>
19       <xsl:apply-templates/>
20     </pz:record>
21   </xsl:template>
22
23   <!--
24       The elements mapped in the following clauses should be kept more
25       or less in sync with those named in builder/templates/search.cft
26       in the "cf" git module.
27   -->
28
29   <xsl:template match="date">
30     <pz:metadata type="publication-date">
31       <xsl:value-of select="."/>
32     </pz:metadata>
33   </xsl:template>
34
35   <xsl:template match="url">
36     <pz:metadata type="electronic-url">
37       <xsl:value-of select="."/>
38     </pz:metadata>
39   </xsl:template>
40
41   <xsl:template match="title">
42     <pz:metadata type="title">
43       <xsl:value-of select="."/>
44     </pz:metadata>
45   </xsl:template>
46
47   <xsl:template match="author">
48     <pz:metadata type="author">
49       <xsl:value-of select="."/>
50     </pz:metadata>
51   </xsl:template>
52
53   <xsl:template match="description">
54     <pz:metadata type="description">
55       <xsl:value-of select="."/>
56     </pz:metadata>
57   </xsl:template>
58   
59   <xsl:template match="publisher">
60     <pz:metadata type="publisher">
61       <xsl:value-of select="."/>
62     </pz:metadata>
63   </xsl:template>
64
65   <xsl:template match="subject">
66     <pz:metadata type="subject">
67       <xsl:value-of select="."/>
68     </pz:metadata>
69   </xsl:template>
70
71   <xsl:template match="item">
72     <pz:metadata type="location">
73       <xsl:choose>
74         <xsl:when test="location">
75           <xsl:value-of select="location"/>
76         </xsl:when>
77         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
78       </xsl:choose>
79     </pz:metadata>
80     <pz:metadata type="callno">
81       <xsl:choose>
82         <xsl:when test="callno">
83           <xsl:value-of select="callno"/>
84         </xsl:when>
85         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
86       </xsl:choose>
87     </pz:metadata>
88     <pz:metadata type="avaliable">
89       <xsl:choose>
90         <xsl:when test="available">
91           <xsl:value-of select="available"/>
92         </xsl:when>
93         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
94       </xsl:choose>
95     </pz:metadata>
96   </xsl:template>
97
98   <xsl:template match="due">
99     <pz:metadata type="due">
100       <xsl:value-of select="."/>
101     </pz:metadata>
102   </xsl:template>
103
104   <xsl:template match="thumburl">
105     <pz:metadata type="thumburl">
106       <xsl:value-of select="."/>
107     </pz:metadata>
108   </xsl:template>
109
110   <xsl:template match="score">
111     <pz:metadata type="score">
112       <xsl:value-of select="."/>
113     </pz:metadata>
114   </xsl:template>
115
116   <xsl:template match="text()"/>
117
118 </xsl:stylesheet>