View | Details | Raw Unified | Return to bug 15162
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2RDFDC.xsl (+172 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4
5
<xsl:stylesheet version="1.0" 
6
  xmlns:marc="http://www.loc.gov/MARC21/slim" 
7
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
8
  xmlns:dc="http://purl.org/dc/elements/1.1/" 
9
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">
10
  <xsl:import href="MARC21slimUtils.xsl"/>
11
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
12
13
  <xsl:template match="/">
14
    <xsl:apply-templates/>
15
  </xsl:template>
16
17
  <xsl:template match="marc:record">
18
19
   <rdf:Description>
20
    <xsl:for-each select="marc:datafield[@tag=200]">
21
      <dc:title>
22
        <xsl:call-template name="subfieldSelect">
23
          <xsl:with-param name="codes">a</xsl:with-param>
24
        </xsl:call-template>
25
      </dc:title>
26
    </xsl:for-each>
27
    <xsl:for-each select="marc:datafield[@tag=700]|marc:datafield[@tag=701]|marc:datafield[@tag=702]|marc:datafield[@tag=710]|marc:datafield[@tag=711]|marc:datafield[@tag=712]">
28
      <dc:creator>
29
      <xsl:value-of select="marc:subfield[@code='a']"/>
30
      <xsl:if test="marc:subfield[@code='b']">
31
         <xsl:text>, </xsl:text>
32
         <xsl:value-of select="marc:subfield[@code='b']"/>
33
      </xsl:if>
34
      <xsl:choose>
35
        <xsl:when test="marc:subfield[@code='4']='010'">, adapter</xsl:when>
36
        <xsl:when test="marc:subfield[@code='4']='020'">, annotator</xsl:when>
37
        <xsl:when test="marc:subfield[@code='4']='075'">, author of afterword</xsl:when>
38
        <xsl:when test="marc:subfield[@code='4']='080'">, prefacer</xsl:when>
39
        <xsl:when test="marc:subfield[@code='4']='100'">, bibliographic antecedent</xsl:when>
40
        <xsl:when test="marc:subfield[@code='4']='205'">, collaborator</xsl:when>
41
        <xsl:when test="marc:subfield[@code='4']='212'">, commentator</xsl:when>
42
        <xsl:when test="marc:subfield[@code='4']='220'">, compiler</xsl:when>
43
        <xsl:when test="marc:subfield[@code='4']='230'">, composer</xsl:when>
44
        <xsl:when test="marc:subfield[@code='4']='245'">, conceptor</xsl:when>
45
        <xsl:when test="marc:subfield[@code='4']='295'">, degree-grantor</xsl:when>
46
        <xsl:when test="marc:subfield[@code='4']='340'">, editor</xsl:when>
47
        <xsl:when test="marc:subfield[@code='4']='370'">, film editor</xsl:when>
48
        <xsl:when test="marc:subfield[@code='4']='395'">, founder</xsl:when>
49
        <xsl:when test="marc:subfield[@code='4']='440'">, illustrator</xsl:when>
50
        <xsl:when test="marc:subfield[@code='4']='520'">, lyricist</xsl:when>
51
        <xsl:when test="marc:subfield[@code='4']='557'">, organiser of meeting</xsl:when>
52
        <xsl:when test="marc:subfield[@code='4']='570'">, other</xsl:when>
53
        <xsl:when test="marc:subfield[@code='4']='600'">, photographer</xsl:when>
54
        <xsl:when test="marc:subfield[@code='4']='605'">, presenter</xsl:when>
55
        <xsl:when test="marc:subfield[@code='4']='650'">, publisher</xsl:when>
56
        <xsl:when test="marc:subfield[@code='4']='651'">, publishing director</xsl:when>
57
        <xsl:when test="marc:subfield[@code='4']='673'">, research team head</xsl:when>
58
        <xsl:when test="marc:subfield[@code='4']='675'">, reviewer</xsl:when>
59
        <xsl:when test="marc:subfield[@code='4']='710'">, redactor</xsl:when>
60
        <xsl:when test="marc:subfield[@code='4']='723'">, sponsor</xsl:when>
61
        <xsl:when test="marc:subfield[@code='4']='727'">, thesis advisor</xsl:when>
62
        <xsl:when test="marc:subfield[@code='4']='730'">, translator</xsl:when>
63
      </xsl:choose>
64
      </dc:creator>
65
    </xsl:for-each>
66
    <dc:type>
67
      <xsl:value-of select="marc:datafield[@tag=200]/marc:subfield[@code='b']"/>
68
    </dc:type>
69
    <xsl:for-each select="marc:datafield[@tag=210]/marc:subfield[@code='c']">
70
      <dc:publisher>
71
        <xsl:value-of select="."/>
72
      </dc:publisher>
73
    </xsl:for-each>
74
    <xsl:for-each select="marc:datafield[@tag=210]/marc:subfield[@code='d']">
75
      <dc:date>
76
        <xsl:value-of select="."/>
77
      </dc:date>
78
    </xsl:for-each>
79
    <xsl:for-each select="marc:datafield[@tag=101]/marc:subfield[@code='a']">
80
      <dc:language>
81
      <xsl:value-of select="."/>
82
      </dc:language>
83
    </xsl:for-each>
84
    <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q']">
85
      <dc:format>
86
        <xsl:value-of select="."/>
87
      </dc:format>
88
    </xsl:for-each>
89
    <xsl:for-each select="marc:datafield[@tag=520]">
90
      <dc:description>
91
        <xsl:value-of select="marc:subfield[@code='a']"/>
92
      </dc:description>
93
    </xsl:for-each>
94
    <xsl:for-each select="marc:datafield[@tag=521]">
95
      <dc:description>
96
        <xsl:value-of select="marc:subfield[@code='a']"/>
97
      </dc:description>
98
    </xsl:for-each>
99
    <xsl:for-each select="marc:datafield[300&lt;@tag][@tag&lt;=345]">
100
      <dc:description>
101
        <xsl:value-of select="marc:subfield[@code='a']"/>
102
      </dc:description>
103
    </xsl:for-each>
104
    <xsl:for-each select="marc:datafield[@tag=600]|marc:datafield[@tag=601]|marc:datafield[@tag=602]|marc:datafield[@tag=604]|marc:datafield[@tag=605]|marc:datafield[@tag=606]">
105
      <dc:subject>
106
        <xsl:call-template name="subfieldSelect">
107
          <xsl:with-param name="codes">abcdq</xsl:with-param>
108
        </xsl:call-template>
109
      </dc:subject>
110
    </xsl:for-each>
111
    <xsl:for-each select="marc:datafield[@tag=752]">
112
      <dc:coverage>
113
        <xsl:call-template name="subfieldSelect">
114
          <xsl:with-param name="codes">abcd</xsl:with-param>
115
        </xsl:call-template>
116
      </dc:coverage>
117
    </xsl:for-each>
118
    <xsl:for-each select="marc:datafield[@tag=530]">
119
      <dc:relation type="original">
120
        <xsl:call-template name="subfieldSelect">
121
          <xsl:with-param name="codes">abcdu</xsl:with-param>
122
        </xsl:call-template>
123
      </dc:relation>
124
    </xsl:for-each>
125
    <xsl:for-each select="marc:datafield[@tag=461]|marc:datafield[@tag=464]">
126
      <dc:relation>
127
        <xsl:call-template name="subfieldSelect">
128
          <xsl:with-param name="codes">t</xsl:with-param>
129
        </xsl:call-template>
130
      </dc:relation>
131
    </xsl:for-each>
132
    <xsl:for-each select="marc:datafield[@tag=856]">
133
      <dc:identifier>
134
        <xsl:value-of select="marc:subfield[@code='u']"/>
135
      </dc:identifier>
136
    </xsl:for-each>
137
    <xsl:for-each select="marc:datafield[@tag=010]">
138
      <dc:identifier>
139
        <xsl:text>URN:ISBN:</xsl:text>
140
        <xsl:value-of select="marc:subfield[@code='a']"/>
141
      </dc:identifier>
142
    </xsl:for-each>
143
    <xsl:for-each select="marc:datafield[@tag=011]">
144
      <dc:identifier>
145
        <xsl:text>URN:ISSN:</xsl:text>
146
        <xsl:value-of select="marc:subfield[@code='a']"/>
147
      </dc:identifier>
148
    </xsl:for-each>
149
    <xsl:for-each select="marc:datafield[@tag=090]">
150
      <dc:identifier>
151
        <xsl:value-of select="$OPACBaseURL" />
152
        <xsl:text>/bib/</xsl:text>
153
        <xsl:value-of select="marc:subfield[@code='a']"/>
154
      </dc:identifier>
155
    </xsl:for-each>
156
    <xsl:for-each select="marc:datafield[@tag=995]">
157
       <dc:identifier>
158
      <xsl:text>LOC:</xsl:text>
159
      <xsl:choose>
160
        <xsl:when test="marc:subfield[@code='c']='MAIN'">Main library</xsl:when>
161
        <xsl:when test="marc:subfield[@code='c']='BIB2'">Library 2</xsl:when>
162
      </xsl:choose>
163
      <xsl:for-each select="marc:subfield[@code='k']">
164
        <xsl:text>:</xsl:text>
165
        <xsl:value-of select="."/>
166
      </xsl:for-each>
167
      </dc:identifier>
168
    </xsl:for-each>
169
  </rdf:Description>
170
171
  </xsl:template>
172
</xsl:stylesheet>
(-)a/koha-tmpl/intranet-tmpl/prog/en/xslt/UNIMARCslim2SRWDC.xsl (-1 / +182 lines)
Line 0 Link Here
0
- 
1
<?xml version="1.0" encoding="UTF-8"?>
2
3
<!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4
5
<xsl:stylesheet version="1.0" 
6
  xmlns:marc="http://www.loc.gov/MARC21/slim" 
7
  xmlns:srw_dc="info:srw/schema/1/dc-schema" 
8
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
9
  xmlns="http://purl.org/dc/elements/1.1/" 
10
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">
11
  <xsl:import href="MARC21slimUtils.xsl"/>
12
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
13
    <xsl:template match="/">
14
      <xsl:if test="marc:collection">
15
        <srw_dc:dcCollection xmlns:srw_dc="info:srw/schema/1/dc-schema" xsi:schemaLocation="info:srw/schema/1/dc-schema http://www.loc.gov/z3950/agency/zing/srw/dc-schema.xsd">
16
          <xsl:for-each select="marc:collection">
17
            <xsl:for-each select="marc:record">
18
              <srw_dc:dc>
19
                <xsl:apply-templates select="."/>
20
                  </srw_dc:dc>
21
            </xsl:for-each>
22
          </xsl:for-each>
23
        </srw_dc:dcCollection>
24
      </xsl:if>
25
      <xsl:if test="marc:record">
26
        <srw_dc:dc xmlns:srw_dc="info:srw/schema/1/dc-schema" xsi:schemaLocation="info:srw/schema/1/dc-schema http://www.loc.gov/z3950/agency/zing/srw/dc-schema.xsd">
27
          <xsl:apply-templates select="marc:record"/>
28
        </srw_dc:dc>
29
      </xsl:if>
30
  </xsl:template>
31
  <xsl:template match="marc:record">
32
    <xsl:for-each select="marc:datafield[@tag=200]">
33
      <title>
34
        <xsl:call-template name="subfieldSelect">
35
          <xsl:with-param name="codes">a</xsl:with-param>
36
        </xsl:call-template>
37
      </title>
38
    </xsl:for-each>
39
    <xsl:for-each select="marc:datafield[@tag=700]|marc:datafield[@tag=701]|marc:datafield[@tag=702]|marc:datafield[@tag=710]|marc:datafield[@tag=711]|marc:datafield[@tag=712]">
40
      <creator>
41
      <xsl:value-of select="marc:subfield[@code='a']"/>
42
      <xsl:if test="marc:subfield[@code='b']">
43
         <xsl:text>, </xsl:text>
44
         <xsl:value-of select="marc:subfield[@code='b']"/>
45
      </xsl:if>
46
      <xsl:choose>
47
        <xsl:when test="marc:subfield[@code='4']='010'">, adapter</xsl:when>
48
        <xsl:when test="marc:subfield[@code='4']='020'">, annotator</xsl:when>
49
        <xsl:when test="marc:subfield[@code='4']='075'">, author of afterword</xsl:when>
50
        <xsl:when test="marc:subfield[@code='4']='080'">, prefacer</xsl:when>
51
        <xsl:when test="marc:subfield[@code='4']='100'">, bibliographic antecedent</xsl:when>
52
        <xsl:when test="marc:subfield[@code='4']='205'">, collaborator</xsl:when>
53
        <xsl:when test="marc:subfield[@code='4']='212'">, commentator</xsl:when>
54
        <xsl:when test="marc:subfield[@code='4']='220'">, compiler</xsl:when>
55
        <xsl:when test="marc:subfield[@code='4']='230'">, composer</xsl:when>
56
        <xsl:when test="marc:subfield[@code='4']='245'">, conceptor</xsl:when>
57
        <xsl:when test="marc:subfield[@code='4']='295'">, degree-grantor</xsl:when>
58
        <xsl:when test="marc:subfield[@code='4']='340'">, editor</xsl:when>
59
        <xsl:when test="marc:subfield[@code='4']='370'">, film editor</xsl:when>
60
        <xsl:when test="marc:subfield[@code='4']='395'">, founder</xsl:when>
61
        <xsl:when test="marc:subfield[@code='4']='440'">, illustrator</xsl:when>
62
        <xsl:when test="marc:subfield[@code='4']='520'">, lyricist</xsl:when>
63
        <xsl:when test="marc:subfield[@code='4']='557'">, organiser of meeting</xsl:when>
64
        <xsl:when test="marc:subfield[@code='4']='570'">, other</xsl:when>
65
        <xsl:when test="marc:subfield[@code='4']='600'">, photographer</xsl:when>
66
        <xsl:when test="marc:subfield[@code='4']='605'">, presenter</xsl:when>
67
        <xsl:when test="marc:subfield[@code='4']='650'">, publisher</xsl:when>
68
        <xsl:when test="marc:subfield[@code='4']='651'">, publishing director</xsl:when>
69
        <xsl:when test="marc:subfield[@code='4']='673'">, research team head</xsl:when>
70
        <xsl:when test="marc:subfield[@code='4']='675'">, reviewer</xsl:when>
71
        <xsl:when test="marc:subfield[@code='4']='710'">, redactor</xsl:when>
72
        <xsl:when test="marc:subfield[@code='4']='723'">, sponsor</xsl:when>
73
        <xsl:when test="marc:subfield[@code='4']='727'">, thesis advisor</xsl:when>
74
        <xsl:when test="marc:subfield[@code='4']='730'">, translator</xsl:when>
75
      </xsl:choose>
76
      </creator>
77
    </xsl:for-each>
78
    <type>
79
      <xsl:value-of select="marc:datafield[@tag=200]/marc:subfield[@code='b']"/>
80
    </type>
81
    <xsl:for-each select="marc:datafield[@tag=210]/marc:subfield[@code='c']">
82
      <publisher>
83
        <xsl:value-of select="."/>
84
      </publisher>
85
    </xsl:for-each>
86
    <xsl:for-each select="marc:datafield[@tag=210]/marc:subfield[@code='d']">
87
      <date>
88
        <xsl:value-of select="."/>
89
      </date>
90
    </xsl:for-each>
91
    <xsl:for-each select="marc:datafield[@tag=101]/marc:subfield[@code='a']">
92
      <language>
93
      <xsl:value-of select="."/>
94
      </language>
95
    </xsl:for-each>
96
    <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q']">
97
      <format>
98
        <xsl:value-of select="."/>
99
      </format>
100
    </xsl:for-each>
101
    <xsl:for-each select="marc:datafield[@tag=520]">
102
      <description>
103
        <xsl:value-of select="marc:subfield[@code='a']"/>
104
      </description>
105
    </xsl:for-each>
106
    <xsl:for-each select="marc:datafield[@tag=521]">
107
      <description>
108
        <xsl:value-of select="marc:subfield[@code='a']"/>
109
      </description>
110
    </xsl:for-each>
111
    <xsl:for-each select="marc:datafield[300&lt;@tag][@tag&lt;=345]">
112
      <description>
113
        <xsl:value-of select="marc:subfield[@code='a']"/>
114
      </description>
115
    </xsl:for-each>
116
    <xsl:for-each select="marc:datafield[@tag=600]|marc:datafield[@tag=601]|marc:datafield[@tag=602]|marc:datafield[@tag=604]|marc:datafield[@tag=605]|marc:datafield[@tag=606]">
117
      <subject>
118
        <xsl:call-template name="subfieldSelect">
119
          <xsl:with-param name="codes">abcdq</xsl:with-param>
120
        </xsl:call-template>
121
      </subject>
122
    </xsl:for-each>
123
    <xsl:for-each select="marc:datafield[@tag=752]">
124
      <coverage>
125
        <xsl:call-template name="subfieldSelect">
126
          <xsl:with-param name="codes">abcd</xsl:with-param>
127
        </xsl:call-template>
128
      </coverage>
129
    </xsl:for-each>
130
    <xsl:for-each select="marc:datafield[@tag=530]">
131
      <relation type="original">
132
        <xsl:call-template name="subfieldSelect">
133
          <xsl:with-param name="codes">abcdu</xsl:with-param>
134
        </xsl:call-template>
135
      </relation>
136
    </xsl:for-each>
137
    <xsl:for-each select="marc:datafield[@tag=461]|marc:datafield[@tag=464]">
138
      <relation>
139
        <xsl:call-template name="subfieldSelect">
140
          <xsl:with-param name="codes">t</xsl:with-param>
141
        </xsl:call-template>
142
      </relation>
143
    </xsl:for-each>
144
    <xsl:for-each select="marc:datafield[@tag=856]">
145
      <identifier>
146
        <xsl:value-of select="marc:subfield[@code='u']"/>
147
      </identifier>
148
    </xsl:for-each>
149
    <xsl:for-each select="marc:datafield[@tag=010]">
150
      <identifier>
151
        <xsl:text>URN:ISBN:</xsl:text>
152
        <xsl:value-of select="marc:subfield[@code='a']"/>
153
      </identifier>
154
    </xsl:for-each>
155
    <xsl:for-each select="marc:datafield[@tag=011]">
156
      <identifier>
157
        <xsl:text>URN:ISSN:</xsl:text>
158
        <xsl:value-of select="marc:subfield[@code='a']"/>
159
      </identifier>
160
    </xsl:for-each>
161
    <xsl:for-each select="marc:datafield[@tag=090]">
162
      <identifier>
163
        <xsl:value-of select="$OPACBaseURL" />
164
        <xsl:text>/bib/</xsl:text>
165
        <xsl:value-of select="marc:subfield[@code='a']"/>
166
      </identifier>
167
    </xsl:for-each>
168
    <xsl:for-each select="marc:datafield[@tag=995]">
169
       <identifier>
170
      <xsl:text>LOC:</xsl:text>
171
      <xsl:choose>
172
        <xsl:when test="marc:subfield[@code='c']='MAIN'">Main library</xsl:when>
173
        <xsl:when test="marc:subfield[@code='c']='BIB2'">Library 2</xsl:when>
174
      </xsl:choose>
175
      <xsl:for-each select="marc:subfield[@code='k']">
176
        <xsl:text>:</xsl:text>
177
        <xsl:value-of select="."/>
178
      </xsl:for-each>
179
      </identifier>
180
    </xsl:for-each>
181
  </xsl:template>
182
</xsl:stylesheet>

Return to bug 15162