Adds ISBN and ISSN to CF stylesheet.
[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:param name="medium" />
18
19   <xsl:template match="/record">
20     <pz:record>
21       <pz:metadata type="medium">
22          <xsl:value-of select="$medium" />
23       </pz:metadata>
24       <xsl:apply-templates/>
25     </pz:record>
26   </xsl:template>
27
28   <!--
29       The elements mapped in the following clauses should be kept more
30       or less in sync with those named in builder/templates/search.cft
31       in the "cf" git module.
32   -->
33
34   <xsl:template match="date">
35     <pz:metadata type="publication-date">
36       <xsl:value-of select="."/>
37     </pz:metadata>
38     <pz:metadata type="date">
39       <xsl:value-of select="."/>
40     </pz:metadata>
41   </xsl:template>
42
43   <xsl:template match="url">
44     <pz:metadata type="electronic-url">
45       <xsl:value-of select="."/>
46     </pz:metadata>
47   </xsl:template>
48
49   <xsl:template match="title">
50     <pz:metadata type="title">
51       <xsl:value-of select="."/>
52     </pz:metadata>
53     <pz:metadata type="title-complete">
54       <xsl:value-of select="." />
55     </pz:metadata>
56   </xsl:template>
57
58   <xsl:template match="author">
59     <pz:metadata type="author">
60       <xsl:value-of select="."/>
61     </pz:metadata>
62   </xsl:template>
63
64   <xsl:template match="description">
65     <pz:metadata type="description">
66       <xsl:value-of select="."/>
67     </pz:metadata>
68   </xsl:template>
69   
70   <xsl:template match="publisher">
71     <pz:metadata type="publisher">
72       <xsl:value-of select="."/>
73     </pz:metadata>
74   </xsl:template>
75
76   <xsl:template match="subject">
77     <pz:metadata type="subject">
78       <xsl:value-of select="."/>
79     </pz:metadata>
80   </xsl:template>
81
82   <xsl:template match="isbn">
83     <pz:metadata type="isbn">
84       <xsl:value-of select="."/>
85     </pz:metadata>
86   </xsl:template>
87
88   <xsl:template match="issn">
89     <pz:metadata type="issn">
90       <xsl:value-of select="."/>
91     </pz:metadata>
92   </xsl:template>
93
94   <xsl:template match="item">
95     <pz:metadata type="locallocation">
96       <xsl:choose>
97         <xsl:when test="string-length(location)">
98           <xsl:value-of select="location"/>
99         </xsl:when>
100         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
101       </xsl:choose>
102     </pz:metadata>
103     <pz:metadata type="callnumber">
104       <xsl:choose>
105         <xsl:when test="string-length(callno)">
106           <xsl:value-of select="callno"/>
107         </xsl:when>
108         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
109       </xsl:choose>
110     </pz:metadata>
111     <pz:metadata type="available">
112       <xsl:choose>
113         <xsl:when test="string-length(available)">
114           <xsl:value-of select="available"/>
115         </xsl:when>
116         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
117       </xsl:choose>
118     </pz:metadata>
119     <pz:metadata type="publicnote">
120       <xsl:choose>
121         <xsl:when test="string-length(publicnote)">
122           <xsl:value-of select="publicnote"/>
123         </xsl:when>
124         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
125       </xsl:choose>
126     </pz:metadata>
127   </xsl:template>
128
129   <xsl:template match="due">
130     <pz:metadata type="due">
131       <xsl:value-of select="."/>
132     </pz:metadata>
133   </xsl:template>
134
135   <xsl:template match="location">
136     <pz:metadata type="locallocation">
137       <xsl:value-of select="."/>
138     </pz:metadata>
139   </xsl:template>
140
141   <xsl:template match="callno">
142     <pz:metadata type="callnumber">
143       <xsl:value-of select="."/>
144     </pz:metadata>
145   </xsl:template>
146
147   <xsl:template match="thumburl">
148     <pz:metadata type="thumburl">
149       <xsl:value-of select="."/>
150     </pz:metadata>
151   </xsl:template>
152
153   <xsl:template match="score">
154     <pz:metadata type="score">
155       <xsl:value-of select="."/>
156     </pz:metadata>
157   </xsl:template>
158
159   <xsl:template match="text()"/>
160
161 </xsl:stylesheet>