fc18204cec469df00a02d0ede20b5ada01cb58cd
[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="journaltitle">
95     <pz:metadata type="journal-title">
96       <xsl:value-of select="."/>
97     </pz:metadata>
98   </xsl:template>
99
100   <xsl:template match="volume">
101     <pz:metadata type="volume">
102       <xsl:value-of select="."/>
103     </pz:metadata>
104   </xsl:template>
105
106   <xsl:template match="issue">
107     <pz:metadata type="issue">
108       <xsl:value-of select="."/>
109     </pz:metadata>
110   </xsl:template>
111
112   <xsl:template match="item">
113     <pz:metadata type="locallocation">
114       <xsl:choose>
115         <xsl:when test="string-length(location)">
116           <xsl:value-of select="location"/>
117         </xsl:when>
118         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
119       </xsl:choose>
120     </pz:metadata>
121     <pz:metadata type="callnumber">
122       <xsl:choose>
123         <xsl:when test="string-length(callno)">
124           <xsl:value-of select="callno"/>
125         </xsl:when>
126         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
127       </xsl:choose>
128     </pz:metadata>
129     <pz:metadata type="available">
130       <xsl:choose>
131         <xsl:when test="string-length(available)">
132           <xsl:value-of select="available"/>
133         </xsl:when>
134         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
135       </xsl:choose>
136     </pz:metadata>
137     <pz:metadata type="publicnote">
138       <xsl:choose>
139         <xsl:when test="string-length(publicnote)">
140           <xsl:value-of select="publicnote"/>
141         </xsl:when>
142         <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
143       </xsl:choose>
144     </pz:metadata>
145   </xsl:template>
146
147   <xsl:template match="due">
148     <pz:metadata type="due">
149       <xsl:value-of select="."/>
150     </pz:metadata>
151   </xsl:template>
152
153   <xsl:template match="location">
154     <pz:metadata type="locallocation">
155       <xsl:value-of select="."/>
156     </pz:metadata>
157   </xsl:template>
158
159   <xsl:template match="callno">
160     <pz:metadata type="callnumber">
161       <xsl:value-of select="."/>
162     </pz:metadata>
163   </xsl:template>
164
165   <xsl:template match="thumburl">
166     <pz:metadata type="thumburl">
167       <xsl:value-of select="."/>
168     </pz:metadata>
169   </xsl:template>
170
171   <xsl:template match="score">
172     <pz:metadata type="score">
173       <xsl:value-of select="."/>
174     </pz:metadata>
175   </xsl:template>
176
177   <xsl:template match="text()"/>
178
179 </xsl:stylesheet>