f6fa5dd11c8bb9e64c8ededd687a19a4a7ee1f60
[pazpar2-moved-to-github.git] / etc / solr-pz2.xsl
1 <?xml version="1.0"?>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
3                 xmlns:pz="http://www.indexdata.com/pazpar2/1.0" >
4
5   <xsl:param name="medium" />
6
7   <xsl:template  match="/">
8       <xsl:apply-templates></xsl:apply-templates>
9   </xsl:template>
10
11   <xsl:template  match="response">
12       <xsl:apply-templates></xsl:apply-templates>
13   </xsl:template>
14
15   <xsl:template  match="records">
16       <xsl:apply-templates></xsl:apply-templates>
17   </xsl:template>
18
19   <xsl:template match="doc">
20     <pz:record>
21       <xsl:if test="string-length($medium) &gt; 0">
22         <pz:metadata type="medium">
23            <xsl:value-of select="$medium"/>
24         </pz:metadata>
25       </xsl:if>
26       <xsl:apply-templates></xsl:apply-templates>
27     </pz:record>
28   </xsl:template>
29
30   <xsl:template match="float[@name]">
31     <pz:metadata>
32         <xsl:attribute  name="type">
33           <xsl:value-of select="@name"/>
34         </xsl:attribute>
35         <xsl:value-of select="."/>
36     </pz:metadata>
37   </xsl:template>
38
39   <xsl:template match="str[@name]">
40     <pz:metadata>
41         <xsl:attribute  name="type">
42           <xsl:value-of select="@name"/>
43         </xsl:attribute>
44         <xsl:value-of select="."/>
45     </pz:metadata>
46   </xsl:template>
47
48   <xsl:template match="date[@name]">
49     <pz:metadata>
50         <xsl:attribute  name="type">
51           <xsl:value-of select="@name"/>
52         </xsl:attribute>
53         <xsl:value-of select="."/>
54     </pz:metadata>
55   </xsl:template>
56
57   <xsl:template match="arr">
58     <xsl:for-each select="str">
59       <xsl:call-template name="string"/>
60     </xsl:for-each>
61   </xsl:template>
62
63   <xsl:template name="string">
64       <pz:metadata>
65         <xsl:attribute  name="type">
66           <xsl:value-of select="../@name"/>
67         </xsl:attribute>
68         <xsl:choose>
69           <xsl:when test="../@name = 'medium' and string-length($medium) = 0">
70           </xsl:when>
71           <xsl:otherwise>
72             <xsl:value-of select="."/>
73           </xsl:otherwise>
74         </xsl:choose>
75       </pz:metadata>
76   </xsl:template>
77
78 </xsl:stylesheet>