ac302684fab9a71023c4606391c80d65da8aa58f
[idzebra-moved-to-github.git] / examples / oai-pmh / conf / oai2index.xsl
1 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2                 xmlns:z="http://indexdata.com/zebra-2.0"
3                 xmlns:dc="http://purl.org/dc/elements/1.1/"
4                 xmlns:oai="http://www.openarchives.org/OAI/2.0/" 
5                 xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
6                 exclude-result-prefixes="oai oai_dc dc"
7                 version="1.0">
8
9   <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -->
10
11
12   <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
13
14   <!-- disable all default text node output -->
15   <xsl:template match="text()"/>
16   
17   <!-- match on oai xml record -->
18   <xsl:template match="/">    
19     <z:record z:id="{normalize-space(oai:record/oai:header/oai:identifier)}">
20
21       <xsl:apply-templates/>
22     </z:record>
23   </xsl:template>
24
25   <!-- OAI indexing templates -->
26   <xsl:template match="oai:record/oai:header/oai:identifier">
27     <z:index name="oai_identifier:0">
28       <xsl:value-of select="."/>
29     </z:index>    
30   </xsl:template>
31
32   <xsl:template match="oai:record/oai:header/oai:datestamp">
33     <z:index name="oai_datestamp:0">
34       <xsl:value-of select="."/>
35     </z:index>    
36   </xsl:template>
37
38   <xsl:template match="oai:record/oai:header/oai:setSpec">
39     <z:index name="oai_setspec:0">
40       <xsl:value-of select="."/>
41     </z:index>    
42   </xsl:template>
43
44   <!-- DC specific indexing templates -->
45   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:title">
46     <z:index name="any:w dc_title:w dc_title:p">
47       <xsl:value-of select="."/>
48     </z:index>
49   </xsl:template>
50
51   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:creator">
52     <z:index name="any:w dc_creator:w dc_creator:p">
53       <xsl:value-of select="."/>
54     </z:index>
55   </xsl:template>
56
57   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:subject">
58     <z:index name="any:w dc_subject:w dc_subject:p">
59       <xsl:value-of select="."/>
60     </z:index>
61   </xsl:template>
62
63   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:description">
64     <z:index name="any:w dc_description:w">
65       <xsl:value-of select="."/>
66     </z:index>
67   </xsl:template>
68
69   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:contributor">
70     <z:index name="any:w dc_contributor:w dc_contributor:p">
71       <xsl:value-of select="."/>
72     </z:index>
73   </xsl:template>
74
75   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:publisher">
76     <z:index name="dc_publisher:p dc_publisher:w">
77       <xsl:value-of select="."/>
78     </z:index>
79   </xsl:template>
80
81   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:date">
82     <z:index name="dc_date:0">
83       <xsl:value-of select="."/>
84     </z:index>
85   </xsl:template>
86
87   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:format">
88     <z:index name="dc_format:0">
89       <xsl:value-of select="."/>
90     </z:index>
91   </xsl:template>
92
93   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:identifier">
94     <z:index name="dc_identifier:0">
95       <xsl:value-of select="."/>
96     </z:index>
97   </xsl:template>
98
99   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:source">
100     <z:index name="dc_source:0">
101       <xsl:value-of select="."/>
102     </z:index>
103   </xsl:template>
104
105   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:language">
106     <z:index name="dc_language:w">
107       <xsl:value-of select="."/>
108     </z:index>
109   </xsl:template>
110
111   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:relation">
112     <z:index name="dc_relation:0">
113       <xsl:value-of select="."/>
114     </z:index>
115   </xsl:template>
116
117   <xsl:template match="oai:record/oai:metadata/oai_dc:dc/dc:rights">
118     <z:index name="dc_rights:p dc_rights:w">
119       <xsl:value-of select="."/>
120     </z:index>
121   </xsl:template>
122
123 </xsl:stylesheet>