Lines 1-492
Link Here
|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
|
|
|
3 |
<!DOCTYPE stylesheet> |
2 |
<!DOCTYPE stylesheet> |
4 |
|
|
|
5 |
<xsl:stylesheet version="1.0" |
3 |
<xsl:stylesheet version="1.0" |
6 |
xmlns:marc="http://www.loc.gov/MARC21/slim" |
4 |
xmlns:marc="http://www.loc.gov/MARC21/slim" |
7 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
5 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
8 |
xmlns:str="http://exslt.org/strings" |
6 |
xmlns:str="http://exslt.org/strings" |
9 |
exclude-result-prefixes="marc str"> |
7 |
exclude-result-prefixes="marc str"> |
10 |
|
8 |
<xsl:import href="UNIMARCslimUtils.xsl"/> |
11 |
<xsl:import href="UNIMARCslimUtils.xsl"/> |
9 |
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/> |
12 |
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/> |
10 |
<xsl:template match="/"> |
13 |
<xsl:template match="/"> |
11 |
<xsl:apply-templates/> |
14 |
<xsl:apply-templates/> |
12 |
</xsl:template> |
15 |
</xsl:template> |
13 |
<xsl:template match="marc:record"> |
16 |
|
14 |
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/> |
17 |
<xsl:template match="marc:record"> |
15 |
<xsl:variable name="leader" select="marc:leader"/> |
18 |
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/> |
16 |
<xsl:variable name="leader6" select="substring($leader,7,1)"/> |
19 |
<xsl:variable name="leader" select="marc:leader"/> |
17 |
<xsl:variable name="leader7" select="substring($leader,8,1)"/> |
20 |
<xsl:variable name="leader6" select="substring($leader,7,1)"/> |
18 |
<xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/> |
21 |
<xsl:variable name="leader7" select="substring($leader,8,1)"/> |
19 |
<xsl:if test="marc:datafield[@tag=200]"> |
22 |
<xsl:variable name="biblionumber" select="marc:controlfield[@tag=001]"/> |
20 |
<xsl:for-each select="marc:datafield[@tag=200]"> |
23 |
|
21 |
<h1> |
24 |
|
22 |
<xsl:call-template name="addClassRtl" /> |
25 |
<xsl:if test="marc:datafield[@tag=200]"> |
23 |
<xsl:variable name="title" select="marc:subfield[@code='a']"/> |
26 |
<xsl:for-each select="marc:datafield[@tag=200]"> |
24 |
<xsl:variable name="ntitle" |
27 |
<h1> |
|
|
28 |
<xsl:call-template name="addClassRtl" /> |
29 |
<xsl:variable name="title" select="marc:subfield[@code='a']"/> |
30 |
<xsl:variable name="ntitle" |
31 |
select="translate($title, '˜œ슜슛슘슈슉','')"/> |
25 |
select="translate($title, '˜œ슜슛슘슈슉','')"/> |
32 |
<xsl:value-of select="$ntitle" /> |
26 |
<xsl:value-of select="$ntitle" /> |
33 |
<xsl:if test="marc:subfield[@code='e']"> |
27 |
<xsl:if test="marc:subfield[@code='e']"> |
34 |
<xsl:text> : </xsl:text> |
28 |
<xsl:text> : </xsl:text> |
35 |
<xsl:for-each select="marc:subfield[@code='e']"> |
29 |
<xsl:for-each select="marc:subfield[@code='e']"> |
36 |
<xsl:value-of select="."/> |
30 |
<xsl:value-of select="."/> |
37 |
</xsl:for-each> |
31 |
</xsl:for-each> |
38 |
</xsl:if> |
32 |
</xsl:if> |
39 |
<xsl:if test="marc:subfield[@code='b']"> |
33 |
<xsl:if test="marc:subfield[@code='b']"> |
40 |
<xsl:text> [</xsl:text> |
34 |
<xsl:text> [</xsl:text> |
41 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
35 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
42 |
<xsl:text>]</xsl:text> |
36 |
<xsl:text>]</xsl:text> |
43 |
</xsl:if> |
37 |
</xsl:if> |
44 |
<xsl:if test="marc:subfield[@code='f']"> |
38 |
<xsl:if test="marc:subfield[@code='f']"> |
45 |
<xsl:text> / </xsl:text> |
39 |
<xsl:text> / </xsl:text> |
46 |
<xsl:value-of select="marc:subfield[@code='f']"/> |
40 |
<xsl:value-of select="marc:subfield[@code='f']"/> |
47 |
</xsl:if> |
41 |
</xsl:if> |
48 |
<xsl:if test="marc:subfield[@code='g']"> |
42 |
<xsl:if test="marc:subfield[@code='g']"> |
49 |
<xsl:text> ; </xsl:text> |
43 |
<xsl:text> ; </xsl:text> |
50 |
<xsl:value-of select="marc:subfield[@code='g']"/> |
44 |
<xsl:value-of select="marc:subfield[@code='g']"/> |
51 |
</xsl:if> |
45 |
</xsl:if> |
52 |
</h1> |
46 |
</h1> |
53 |
</xsl:for-each> |
47 |
</xsl:for-each> |
54 |
</xsl:if> |
48 |
</xsl:if> |
55 |
<xsl:call-template name="tag_4xx" /> |
49 |
<xsl:call-template name="tag_4xx" /> |
56 |
|
50 |
<xsl:call-template name="tag_7xx"> |
57 |
<xsl:call-template name="tag_7xx"> |
51 |
<xsl:with-param name="tag">700</xsl:with-param> |
58 |
<xsl:with-param name="tag">700</xsl:with-param> |
52 |
<xsl:with-param name="label">Main Author</xsl:with-param> |
59 |
<xsl:with-param name="label">Main Author</xsl:with-param> |
53 |
<xsl:with-param name="spanclass">main_author</xsl:with-param> |
60 |
<xsl:with-param name="spanclass">main_author</xsl:with-param> |
54 |
</xsl:call-template> |
61 |
</xsl:call-template> |
55 |
<xsl:call-template name="tag_7xx"> |
62 |
|
56 |
<xsl:with-param name="tag">710</xsl:with-param> |
63 |
<xsl:call-template name="tag_7xx"> |
57 |
<xsl:with-param name="label">Corporate Author (Main)</xsl:with-param> |
64 |
<xsl:with-param name="tag">710</xsl:with-param> |
58 |
<xsl:with-param name="spanclass">corporate_main_author</xsl:with-param> |
65 |
<xsl:with-param name="label">Corporate Author (Main)</xsl:with-param> |
59 |
</xsl:call-template> |
66 |
<xsl:with-param name="spanclass">corporate_main_author</xsl:with-param> |
60 |
<xsl:call-template name="tag_7xx"> |
67 |
</xsl:call-template> |
61 |
<xsl:with-param name="tag">701</xsl:with-param> |
68 |
|
62 |
<xsl:with-param name="label">Coauthor</xsl:with-param> |
69 |
<xsl:call-template name="tag_7xx"> |
63 |
<xsl:with-param name="spanclass">coauthor</xsl:with-param> |
70 |
<xsl:with-param name="tag">701</xsl:with-param> |
64 |
</xsl:call-template> |
71 |
<xsl:with-param name="label">Coauthor</xsl:with-param> |
65 |
<xsl:call-template name="tag_7xx"> |
72 |
<xsl:with-param name="spanclass">coauthor</xsl:with-param> |
66 |
<xsl:with-param name="tag">702</xsl:with-param> |
73 |
</xsl:call-template> |
67 |
<xsl:with-param name="label">Secondary Author</xsl:with-param> |
74 |
|
68 |
<xsl:with-param name="spanclass">secondary_author</xsl:with-param> |
75 |
<xsl:call-template name="tag_7xx"> |
69 |
</xsl:call-template> |
76 |
<xsl:with-param name="tag">702</xsl:with-param> |
70 |
<xsl:call-template name="tag_7xx"> |
77 |
<xsl:with-param name="label">Secondary Author</xsl:with-param> |
71 |
<xsl:with-param name="tag">711</xsl:with-param> |
78 |
<xsl:with-param name="spanclass">secondary_author</xsl:with-param> |
72 |
<xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param> |
79 |
</xsl:call-template> |
73 |
<xsl:with-param name="spanclass">corporate_coauthor</xsl:with-param> |
80 |
|
74 |
</xsl:call-template> |
81 |
<xsl:call-template name="tag_7xx"> |
75 |
<xsl:call-template name="tag_7xx"> |
82 |
<xsl:with-param name="tag">711</xsl:with-param> |
76 |
<xsl:with-param name="tag">712</xsl:with-param> |
83 |
<xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param> |
77 |
<xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param> |
84 |
<xsl:with-param name="spanclass">corporate_coauthor</xsl:with-param> |
78 |
<xsl:with-param name="spanclass">corporate_secondary_author</xsl:with-param> |
85 |
</xsl:call-template> |
79 |
</xsl:call-template> |
86 |
|
80 |
<xsl:if test="marc:datafield[@tag=101]"> |
87 |
<xsl:call-template name="tag_7xx"> |
81 |
<span class="results_summary language"> |
88 |
<xsl:with-param name="tag">712</xsl:with-param> |
82 |
<span class="label">Language: </span> |
89 |
<xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param> |
83 |
<xsl:for-each select="marc:datafield[@tag=101]"> |
90 |
<xsl:with-param name="spanclass">corporate_secondary_author</xsl:with-param> |
84 |
<xsl:for-each select="marc:subfield"> |
91 |
</xsl:call-template> |
85 |
<xsl:choose> |
92 |
|
86 |
<xsl:when test="@code='b'">of intermediate text, </xsl:when> |
93 |
<xsl:if test="marc:datafield[@tag=101]"> |
87 |
<xsl:when test="@code='c'">of original work, </xsl:when> |
94 |
<span class="results_summary language"> |
88 |
<xsl:when test="@code='d'">of summary, </xsl:when> |
95 |
<span class="label">Language: </span> |
89 |
<xsl:when test="@code='e'">of contents page, </xsl:when> |
96 |
<xsl:for-each select="marc:datafield[@tag=101]"> |
90 |
<xsl:when test="@code='f'">of title page, </xsl:when> |
97 |
<xsl:for-each select="marc:subfield"> |
91 |
<xsl:when test="@code='g'">of title proper, </xsl:when> |
98 |
<xsl:choose> |
92 |
<xsl:when test="@code='h'">of libretto, </xsl:when> |
99 |
<xsl:when test="@code='b'">of intermediate text, </xsl:when> |
93 |
<xsl:when test="@code='i'">of accompanying material, </xsl:when> |
100 |
<xsl:when test="@code='c'">of original work, </xsl:when> |
94 |
<xsl:when test="@code='j'">of subtitles, </xsl:when> |
101 |
<xsl:when test="@code='d'">of summary, </xsl:when> |
95 |
</xsl:choose> |
102 |
<xsl:when test="@code='e'">of contents page, </xsl:when> |
96 |
<xsl:value-of select="text()"/> |
103 |
<xsl:when test="@code='f'">of title page, </xsl:when> |
97 |
<xsl:choose> |
104 |
<xsl:when test="@code='g'">of title proper, </xsl:when> |
98 |
<xsl:when test="position()=last()"> |
105 |
<xsl:when test="@code='h'">of libretto, </xsl:when> |
99 |
<xsl:text>.</xsl:text> |
106 |
<xsl:when test="@code='i'">of accompanying material, </xsl:when> |
100 |
</xsl:when> |
107 |
<xsl:when test="@code='j'">of subtitles, </xsl:when> |
101 |
<xsl:otherwise> |
108 |
</xsl:choose> |
102 |
<xsl:text> ; </xsl:text> |
109 |
<xsl:value-of select="text()"/> |
103 |
</xsl:otherwise> |
110 |
<xsl:choose> |
104 |
</xsl:choose> |
111 |
<xsl:when test="position()=last()"> |
105 |
</xsl:for-each> |
112 |
<xsl:text>.</xsl:text> |
106 |
</xsl:for-each> |
113 |
</xsl:when> |
107 |
</span> |
114 |
<xsl:otherwise> |
108 |
</xsl:if> |
115 |
<xsl:text> ; </xsl:text> |
109 |
<xsl:if test="marc:datafield[@tag=102]"> |
116 |
</xsl:otherwise> |
110 |
<span class="results_summary country"> |
117 |
</xsl:choose> |
111 |
<span class="label">Country: </span> |
118 |
</xsl:for-each> |
112 |
<xsl:for-each select="marc:datafield[@tag=102]"> |
119 |
</xsl:for-each> |
113 |
<xsl:for-each select="marc:subfield"> |
120 |
</span> |
114 |
<xsl:value-of select="text()"/> |
121 |
</xsl:if> |
115 |
<xsl:choose> |
122 |
|
116 |
<xsl:when test="position()=last()"> |
123 |
<xsl:if test="marc:datafield[@tag=102]"> |
117 |
<xsl:text>.</xsl:text> |
124 |
<span class="results_summary country"> |
118 |
</xsl:when> |
125 |
<span class="label">Country: </span> |
119 |
<xsl:otherwise> |
126 |
<xsl:for-each select="marc:datafield[@tag=102]"> |
120 |
<xsl:text>, </xsl:text> |
127 |
<xsl:for-each select="marc:subfield"> |
121 |
</xsl:otherwise> |
128 |
<xsl:value-of select="text()"/> |
122 |
</xsl:choose> |
129 |
<xsl:choose> |
123 |
</xsl:for-each> |
130 |
<xsl:when test="position()=last()"> |
124 |
</xsl:for-each> |
131 |
<xsl:text>.</xsl:text> |
125 |
</span> |
132 |
</xsl:when> |
126 |
</xsl:if> |
133 |
<xsl:otherwise><xsl:text>, </xsl:text> |
127 |
|
134 |
</xsl:otherwise> |
128 |
<xsl:if test="(marc:datafield[@tag=214] or marc:datafield[@tag=210])"> |
135 |
</xsl:choose> |
129 |
<xsl:choose> |
136 |
</xsl:for-each> |
130 |
<xsl:when test="(marc:datafield[@tag=214] and marc:datafield[@tag=210])"> |
137 |
</xsl:for-each> |
131 |
<xsl:call-template name="tag_214" /> |
138 |
</span> |
132 |
</xsl:when> |
139 |
</xsl:if> |
133 |
<xsl:when test="(marc:datafield[@tag=214])"> |
140 |
|
134 |
<xsl:call-template name="tag_214" /> |
141 |
<xsl:call-template name="tag_210" /> |
135 |
</xsl:when> |
142 |
|
136 |
<xsl:when test="(marc:datafield[@tag=210])"> |
143 |
<xsl:call-template name="tag_215" /> |
137 |
<xsl:call-template name="tag_210" /> |
144 |
|
138 |
</xsl:when> |
145 |
<xsl:if test="marc:controlfield[@tag=009]"> |
139 |
</xsl:choose> |
146 |
<span class="results_summary tag_009"> |
|
|
147 |
<span class="label">Tag 009: </span> |
148 |
<xsl:value-of select="marc:controlfield[@tag=009]"/> |
149 |
</span> |
150 |
</xsl:if> |
151 |
|
152 |
<!-- Build ISBN --> |
153 |
<xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']"> |
154 |
<span class="results_summary isbn"> |
155 |
<span class="label">ISBN: </span> |
156 |
<xsl:for-each select="marc:datafield[@tag=010]/marc:subfield[@code='a']"> |
157 |
<span property="isbn"> |
158 |
<xsl:value-of select="."/> |
159 |
<xsl:choose> |
160 |
<xsl:when test="position()=last()"> |
161 |
<xsl:text>.</xsl:text> |
162 |
</xsl:when> |
163 |
<xsl:otherwise> |
164 |
<xsl:text>; </xsl:text> |
165 |
</xsl:otherwise> |
166 |
</xsl:choose> |
167 |
</span> |
168 |
</xsl:for-each> |
169 |
</span> |
170 |
</xsl:if> |
171 |
|
172 |
<!-- Build ISSN --> |
173 |
<xsl:if test="marc:datafield[@tag=011]/marc:subfield[@code='a']"> |
174 |
<span class="results_summary issn"> |
175 |
<span class="label">ISSN: </span> |
176 |
<xsl:for-each select="marc:datafield[@tag=011]/marc:subfield[@code='a']"> |
177 |
<span property="issn"> |
178 |
<xsl:value-of select="."/> |
179 |
<xsl:choose> |
180 |
<xsl:when test="position()=last()"> |
181 |
<xsl:text>.</xsl:text> |
182 |
</xsl:when> |
183 |
<xsl:otherwise> |
184 |
<xsl:text>; </xsl:text> |
185 |
</xsl:otherwise> |
186 |
</xsl:choose> |
187 |
</span> |
188 |
</xsl:for-each> |
189 |
</span> |
190 |
</xsl:if> |
191 |
|
192 |
<xsl:call-template name="tag_title"> |
193 |
<xsl:with-param name="tag">225</xsl:with-param> |
194 |
<xsl:with-param name="label">Series</xsl:with-param> |
195 |
<xsl:with-param name="spanclass">series</xsl:with-param> |
196 |
</xsl:call-template> |
197 |
|
198 |
<xsl:if test="marc:datafield[@tag=676]"> |
199 |
<span class="results_summary dewey"> |
200 |
<span class="label">Dewey: </span> |
201 |
<xsl:for-each select="marc:datafield[@tag=676]"> |
202 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
203 |
<xsl:if test="marc:subfield[@code='v']"> |
204 |
<xsl:text>, </xsl:text> |
205 |
<xsl:value-of select="marc:subfield[@code='v']"/> |
206 |
</xsl:if> |
207 |
<xsl:if test="marc:subfield[@code='z']"> |
208 |
<xsl:text>, </xsl:text> |
209 |
<xsl:value-of select="marc:subfield[@code='z']"/> |
210 |
</xsl:if> |
140 |
</xsl:if> |
211 |
<xsl:if test="not (position()=last())"> |
|
|
212 |
<xsl:text> ; </xsl:text> |
213 |
</xsl:if> |
214 |
</xsl:for-each> |
215 |
</span> |
216 |
</xsl:if> |
217 |
|
141 |
|
218 |
<xsl:if test="marc:datafield[@tag=686]"> |
142 |
<xsl:call-template name="tag_215" /> |
219 |
<span class="results_summary classification"> |
143 |
<xsl:if test="marc:controlfield[@tag=009]"> |
220 |
<span class="label">Classification: </span> |
144 |
<span class="results_summary tag_009"> |
221 |
<xsl:for-each select="marc:datafield[@tag=686]"> |
145 |
<span class="label">Tag 009: </span> |
222 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
146 |
<xsl:value-of select="marc:controlfield[@tag=009]"/> |
223 |
<xsl:if test="marc:subfield[@code='b']"> |
147 |
</span> |
224 |
<xsl:text>, </xsl:text> |
148 |
</xsl:if> |
225 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
149 |
<!-- Build ISBN --> |
226 |
</xsl:if> |
150 |
<xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']"> |
227 |
<xsl:if test="marc:subfield[@code='c']"> |
151 |
<span class="results_summary isbn"> |
228 |
<xsl:text>, </xsl:text> |
152 |
<span class="label">ISBN: </span> |
229 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
153 |
<xsl:for-each select="marc:datafield[@tag=010]/marc:subfield[@code='a']"> |
230 |
</xsl:if> |
154 |
<span property="isbn"> |
231 |
<xsl:if test="not (position()=last())"><xsl:text> ; </xsl:text></xsl:if> |
155 |
<xsl:value-of select="."/> |
232 |
</xsl:for-each> |
156 |
<xsl:choose> |
233 |
</span> |
157 |
<xsl:when test="position()=last()"> |
234 |
</xsl:if> |
158 |
<xsl:text>.</xsl:text> |
235 |
|
159 |
</xsl:when> |
236 |
<xsl:if test="marc:datafield[@tag=327]"> |
160 |
<xsl:otherwise> |
237 |
<span class="results_summary contents"> |
161 |
<xsl:text>; </xsl:text> |
238 |
<span class="label">Contents note: </span> |
162 |
</xsl:otherwise> |
239 |
<xsl:for-each select="marc:datafield[@tag=327]"> |
163 |
</xsl:choose> |
240 |
<xsl:call-template name="chopPunctuation"> |
164 |
</span> |
241 |
<xsl:with-param name="chopString"> |
165 |
</xsl:for-each> |
242 |
<xsl:call-template name="subfieldSelect"> |
166 |
</span> |
243 |
<xsl:with-param name="codes">abcdjpvxyz</xsl:with-param> |
167 |
</xsl:if> |
244 |
<xsl:with-param name="subdivCodes">jpxyz</xsl:with-param> |
168 |
<!-- Build ISSN --> |
245 |
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param> |
169 |
<xsl:if test="marc:datafield[@tag=011]/marc:subfield[@code='a']"> |
246 |
</xsl:call-template> |
170 |
<span class="results_summary issn"> |
247 |
</xsl:with-param> |
171 |
<span class="label">ISSN: </span> |
248 |
</xsl:call-template> |
172 |
<xsl:for-each select="marc:datafield[@tag=011]/marc:subfield[@code='a']"> |
249 |
</xsl:for-each> |
173 |
<span property="issn"> |
250 |
</span> |
174 |
<xsl:value-of select="."/> |
251 |
</xsl:if> |
175 |
<xsl:choose> |
252 |
|
176 |
<xsl:when test="position()=last()"> |
253 |
<xsl:if test="marc:datafield[@tag=330]"> |
177 |
<xsl:text>.</xsl:text> |
254 |
<span class="results_summary abstract"> |
178 |
</xsl:when> |
255 |
<span class="label">Abstract: </span> |
179 |
<xsl:otherwise> |
256 |
<xsl:for-each select="marc:datafield[@tag=330]"> |
180 |
<xsl:text>; </xsl:text> |
257 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
181 |
</xsl:otherwise> |
258 |
<xsl:choose> |
182 |
</xsl:choose> |
259 |
<xsl:when test="position()=last()"> |
183 |
</span> |
260 |
<xsl:text>.</xsl:text> |
184 |
</xsl:for-each> |
261 |
</xsl:when> |
185 |
</span> |
262 |
<xsl:otherwise> |
186 |
</xsl:if> |
263 |
<xsl:text>; </xsl:text> |
187 |
<xsl:call-template name="tag_title"> |
264 |
</xsl:otherwise> |
188 |
<xsl:with-param name="tag">225</xsl:with-param> |
265 |
</xsl:choose> |
189 |
<xsl:with-param name="label">Series</xsl:with-param> |
266 |
</xsl:for-each> |
190 |
<xsl:with-param name="spanclass">series</xsl:with-param> |
267 |
</span> |
191 |
</xsl:call-template> |
268 |
</xsl:if> |
192 |
<xsl:if test="marc:datafield[@tag=676]"> |
269 |
|
193 |
<span class="results_summary dewey"> |
270 |
<xsl:if test="marc:datafield[@tag=317]"> |
194 |
<span class="label">Dewey: </span> |
271 |
<span class="results_summary provenance"> |
195 |
<xsl:for-each select="marc:datafield[@tag=676]"> |
272 |
<span class="label">Provenance note: </span> |
196 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
273 |
<xsl:for-each select="marc:datafield[@tag=317]"> |
197 |
<xsl:if test="marc:subfield[@code='v']"> |
274 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
198 |
<xsl:text>, </xsl:text> |
275 |
</xsl:for-each> |
199 |
<xsl:value-of select="marc:subfield[@code='v']"/> |
276 |
</span> |
200 |
</xsl:if> |
277 |
</xsl:if> |
201 |
<xsl:if test="marc:subfield[@code='z']"> |
278 |
|
202 |
<xsl:text>, </xsl:text> |
279 |
<xsl:if test="marc:datafield[@tag=320]"> |
203 |
<xsl:value-of select="marc:subfield[@code='z']"/> |
280 |
<span class="results_summary bibliography"> |
204 |
</xsl:if> |
281 |
<span class="label">Bibliography: </span> |
205 |
<xsl:if test="not (position()=last())"> |
282 |
<xsl:for-each select="marc:datafield[@tag=320]"> |
206 |
<xsl:text> ; </xsl:text> |
283 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
207 |
</xsl:if> |
284 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
208 |
</xsl:for-each> |
285 |
</xsl:for-each> |
209 |
</span> |
286 |
</span> |
210 |
</xsl:if> |
287 |
</xsl:if> |
211 |
<xsl:if test="marc:datafield[@tag=686]"> |
288 |
|
212 |
<span class="results_summary classification"> |
289 |
<xsl:if test="marc:datafield[@tag=328]"> |
213 |
<span class="label">Classification: </span> |
290 |
<span class="results_summary thesis"> |
214 |
<xsl:for-each select="marc:datafield[@tag=686]"> |
291 |
<span class="label">Thesis: </span> |
215 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
292 |
<xsl:for-each select="marc:datafield[@tag=328]"> |
216 |
<xsl:if test="marc:subfield[@code='b']"> |
293 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
217 |
<xsl:text>, </xsl:text> |
294 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
218 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
295 |
</xsl:for-each> |
219 |
</xsl:if> |
296 |
</span> |
220 |
<xsl:if test="marc:subfield[@code='c']"> |
297 |
</xsl:if> |
221 |
<xsl:text>, </xsl:text> |
298 |
|
222 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
299 |
<xsl:if test="marc:datafield[@tag=333]"> |
223 |
</xsl:if> |
300 |
<span class="results_summary audience"> |
224 |
<xsl:if test="not (position()=last())"> |
301 |
<span class="label">Audience: </span> |
225 |
<xsl:text> ; </xsl:text> |
302 |
<xsl:for-each select="marc:datafield[@tag=333]"> |
226 |
</xsl:if> |
303 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
227 |
</xsl:for-each> |
304 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
228 |
</span> |
305 |
</xsl:for-each> |
229 |
</xsl:if> |
306 |
</span> |
230 |
<xsl:if test="marc:datafield[@tag=327]"> |
307 |
</xsl:if> |
231 |
<span class="results_summary contents"> |
308 |
|
232 |
<span class="label">Contents note: </span> |
309 |
<xsl:if test="marc:datafield[@tag=955]"> |
233 |
<xsl:for-each select="marc:datafield[@tag=327]"> |
310 |
<span class="results_summary sudoc_serial_history"> |
234 |
<xsl:call-template name="chopPunctuation"> |
311 |
<span class="label">SUDOC serial history: </span> |
235 |
<xsl:with-param name="chopString"> |
312 |
<xsl:for-each select="marc:datafield[@tag=955]"> |
236 |
<xsl:call-template name="subfieldSelect"> |
313 |
<xsl:value-of select="marc:subfield[@code='9']"/>: |
237 |
<xsl:with-param name="codes">abcdjpvxyz</xsl:with-param> |
314 |
<xsl:value-of select="marc:subfield[@code='r']"/> |
238 |
<xsl:with-param name="subdivCodes">jpxyz</xsl:with-param> |
315 |
<xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose> |
239 |
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param> |
316 |
</xsl:for-each> |
240 |
</xsl:call-template> |
317 |
</span> |
241 |
</xsl:with-param> |
318 |
</xsl:if> |
242 |
</xsl:call-template> |
319 |
|
243 |
</xsl:for-each> |
320 |
<xsl:call-template name="tag_subject"> |
244 |
</span> |
321 |
<xsl:with-param name="tag">600</xsl:with-param> |
245 |
</xsl:if> |
322 |
<xsl:with-param name="label">Subject - Personal Name</xsl:with-param> |
246 |
<xsl:if test="marc:datafield[@tag=330]"> |
323 |
</xsl:call-template> |
247 |
<span class="results_summary abstract"> |
324 |
|
248 |
<span class="label">Abstract: </span> |
325 |
<xsl:call-template name="tag_subject"> |
249 |
<xsl:for-each select="marc:datafield[@tag=330]"> |
326 |
<xsl:with-param name="tag">601</xsl:with-param> |
250 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
327 |
<xsl:with-param name="label">Subject - Corporate Author</xsl:with-param> |
251 |
<xsl:choose> |
328 |
</xsl:call-template> |
252 |
<xsl:when test="position()=last()"> |
329 |
|
253 |
<xsl:text>.</xsl:text> |
330 |
<xsl:call-template name="tag_subject"> |
254 |
</xsl:when> |
331 |
<xsl:with-param name="tag">602</xsl:with-param> |
255 |
<xsl:otherwise> |
332 |
<xsl:with-param name="label">Subject - Family</xsl:with-param> |
256 |
<xsl:text>; </xsl:text> |
333 |
</xsl:call-template> |
257 |
</xsl:otherwise> |
334 |
|
258 |
</xsl:choose> |
335 |
<xsl:call-template name="tag_subject"> |
259 |
</xsl:for-each> |
336 |
<xsl:with-param name="tag">604</xsl:with-param> |
260 |
</span> |
337 |
<xsl:with-param name="label">Subject - Author/Title</xsl:with-param> |
261 |
</xsl:if> |
338 |
</xsl:call-template> |
262 |
<xsl:if test="marc:datafield[@tag=317]"> |
339 |
|
263 |
<span class="results_summary provenance"> |
340 |
<xsl:call-template name="tag_subject"> |
264 |
<span class="label">Provenance note: </span> |
341 |
<xsl:with-param name="tag">606</xsl:with-param> |
265 |
<xsl:for-each select="marc:datafield[@tag=317]"> |
342 |
<xsl:with-param name="label">Subject - Topical Name</xsl:with-param> |
266 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
343 |
</xsl:call-template> |
267 |
</xsl:for-each> |
344 |
|
268 |
</span> |
345 |
<xsl:call-template name="tag_subject"> |
269 |
</xsl:if> |
346 |
<xsl:with-param name="tag">607</xsl:with-param> |
270 |
<xsl:if test="marc:datafield[@tag=320]"> |
347 |
<xsl:with-param name="label">Subject - Geographical Name</xsl:with-param> |
271 |
<span class="results_summary bibliography"> |
348 |
</xsl:call-template> |
272 |
<span class="label">Bibliography: </span> |
349 |
|
273 |
<xsl:for-each select="marc:datafield[@tag=320]"> |
350 |
<xsl:call-template name="tag_subject"> |
274 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
351 |
<xsl:with-param name="tag">608</xsl:with-param> |
275 |
<xsl:choose> |
352 |
<xsl:with-param name="label">Subject - Form</xsl:with-param> |
276 |
<xsl:when test="position()=last()"> |
353 |
</xsl:call-template> |
277 |
<xsl:text>.</xsl:text> |
354 |
|
278 |
</xsl:when> |
355 |
<xsl:call-template name="tag_subject"> |
279 |
<xsl:otherwise> |
356 |
<xsl:with-param name="tag">610</xsl:with-param> |
280 |
<xsl:text>; </xsl:text> |
357 |
<xsl:with-param name="label">Subject</xsl:with-param> |
281 |
</xsl:otherwise> |
358 |
</xsl:call-template> |
282 |
</xsl:choose> |
359 |
|
283 |
</xsl:for-each> |
360 |
<xsl:call-template name="tag_subject"> |
284 |
</span> |
361 |
<xsl:with-param name="tag">615</xsl:with-param> |
285 |
</xsl:if> |
362 |
<xsl:with-param name="label">Subject Category</xsl:with-param> |
286 |
<xsl:if test="marc:datafield[@tag=328]"> |
363 |
</xsl:call-template> |
287 |
<span class="results_summary thesis"> |
364 |
|
288 |
<span class="label">Thesis: </span> |
365 |
<xsl:call-template name="tag_subject"> |
289 |
<xsl:for-each select="marc:datafield[@tag=328]"> |
366 |
<xsl:with-param name="tag">616</xsl:with-param> |
290 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
367 |
<xsl:with-param name="label">Trademark</xsl:with-param> |
291 |
<xsl:choose> |
368 |
</xsl:call-template> |
292 |
<xsl:when test="position()=last()"> |
369 |
|
293 |
<xsl:text>.</xsl:text> |
370 |
<xsl:if test="marc:datafield[@tag=856]"> |
294 |
</xsl:when> |
371 |
<span class="results_summary online_resources"> |
295 |
<xsl:otherwise> |
372 |
<span class="label">Online Resources:</span> |
296 |
<xsl:text>; </xsl:text> |
373 |
<xsl:for-each select="marc:datafield[@tag=856]"> |
297 |
</xsl:otherwise> |
374 |
<xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> |
298 |
</xsl:choose> |
375 |
<a> |
299 |
</xsl:for-each> |
376 |
<xsl:attribute name="href"> |
300 |
</span> |
377 |
<xsl:value-of select="marc:subfield[@code='u']"/> |
301 |
</xsl:if> |
378 |
</xsl:attribute> |
302 |
<xsl:if test="marc:datafield[@tag=333]"> |
379 |
<xsl:choose> |
303 |
<span class="results_summary audience"> |
380 |
<xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')"> |
304 |
<span class="label">Audience: </span> |
381 |
<xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text> |
305 |
<xsl:for-each select="marc:datafield[@tag=333]"> |
382 |
</xsl:when> |
306 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
383 |
<xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> |
307 |
<xsl:choose> |
384 |
<xsl:call-template name="subfieldSelect"> |
308 |
<xsl:when test="position()=last()"> |
385 |
<xsl:with-param name="codes">y3z</xsl:with-param> |
309 |
<xsl:text>.</xsl:text> |
386 |
</xsl:call-template> |
310 |
</xsl:when> |
387 |
</xsl:when> |
311 |
<xsl:otherwise> |
388 |
<xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])"> |
312 |
<xsl:text>; </xsl:text> |
|
|
313 |
</xsl:otherwise> |
314 |
</xsl:choose> |
315 |
</xsl:for-each> |
316 |
</span> |
317 |
</xsl:if> |
318 |
<xsl:if test="marc:datafield[@tag=955]"> |
319 |
<span class="results_summary sudoc_serial_history"> |
320 |
<span class="label">SUDOC serial history: </span> |
321 |
<xsl:for-each select="marc:datafield[@tag=955]"> |
322 |
<xsl:value-of select="marc:subfield[@code='9']"/>: |
323 |
|
324 |
<xsl:value-of select="marc:subfield[@code='r']"/> |
325 |
<xsl:choose> |
326 |
<xsl:when test="position()=last()"> |
327 |
<xsl:text>.</xsl:text> |
328 |
</xsl:when> |
329 |
<xsl:otherwise> |
330 |
<xsl:text>; </xsl:text> |
331 |
</xsl:otherwise> |
332 |
</xsl:choose> |
333 |
</xsl:for-each> |
334 |
</span> |
335 |
</xsl:if> |
336 |
<xsl:call-template name="tag_subject"> |
337 |
<xsl:with-param name="tag">600</xsl:with-param> |
338 |
<xsl:with-param name="label">Subject - Personal Name</xsl:with-param> |
339 |
</xsl:call-template> |
340 |
<xsl:call-template name="tag_subject"> |
341 |
<xsl:with-param name="tag">601</xsl:with-param> |
342 |
<xsl:with-param name="label">Subject - Corporate Author</xsl:with-param> |
343 |
</xsl:call-template> |
344 |
<xsl:call-template name="tag_subject"> |
345 |
<xsl:with-param name="tag">602</xsl:with-param> |
346 |
<xsl:with-param name="label">Subject - Family</xsl:with-param> |
347 |
</xsl:call-template> |
348 |
<xsl:call-template name="tag_subject"> |
349 |
<xsl:with-param name="tag">604</xsl:with-param> |
350 |
<xsl:with-param name="label">Subject - Author/Title</xsl:with-param> |
351 |
</xsl:call-template> |
352 |
<xsl:call-template name="tag_subject"> |
353 |
<xsl:with-param name="tag">606</xsl:with-param> |
354 |
<xsl:with-param name="label">Subject - Topical Name</xsl:with-param> |
355 |
</xsl:call-template> |
356 |
<xsl:call-template name="tag_subject"> |
357 |
<xsl:with-param name="tag">607</xsl:with-param> |
358 |
<xsl:with-param name="label">Subject - Geographical Name</xsl:with-param> |
359 |
</xsl:call-template> |
360 |
<xsl:call-template name="tag_subject"> |
361 |
<xsl:with-param name="tag">608</xsl:with-param> |
362 |
<xsl:with-param name="label">Subject - Form</xsl:with-param> |
363 |
</xsl:call-template> |
364 |
<xsl:call-template name="tag_subject"> |
365 |
<xsl:with-param name="tag">610</xsl:with-param> |
366 |
<xsl:with-param name="label">Subject</xsl:with-param> |
367 |
</xsl:call-template> |
368 |
<xsl:call-template name="tag_subject"> |
369 |
<xsl:with-param name="tag">615</xsl:with-param> |
370 |
<xsl:with-param name="label">Subject Category</xsl:with-param> |
371 |
</xsl:call-template> |
372 |
<xsl:call-template name="tag_subject"> |
373 |
<xsl:with-param name="tag">616</xsl:with-param> |
374 |
<xsl:with-param name="label">Trademark</xsl:with-param> |
375 |
</xsl:call-template> |
376 |
<xsl:if test="marc:datafield[@tag=856]"> |
377 |
<span class="results_summary online_resources"> |
378 |
<span class="label">Online Resources:</span> |
379 |
<xsl:for-each select="marc:datafield[@tag=856]"> |
380 |
<xsl:variable name="SubqText"> |
381 |
<xsl:value-of select="marc:subfield[@code='q']"/> |
382 |
</xsl:variable> |
383 |
<a> |
384 |
<xsl:attribute name="href"> |
385 |
<xsl:value-of select="marc:subfield[@code='u']"/> |
386 |
</xsl:attribute> |
387 |
<xsl:choose> |
388 |
<xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')"> |
389 |
<xsl:element name="img"> |
390 |
<xsl:attribute name="src"> |
391 |
<xsl:value-of select="marc:subfield[@code='u']"/> |
392 |
</xsl:attribute> |
393 |
<xsl:attribute name="alt"> |
394 |
<xsl:value-of select="marc:subfield[@code='y']"/> |
395 |
</xsl:attribute> |
396 |
<xsl:attribute name="height">100</xsl:attribute> |
397 |
</xsl:element> |
398 |
<xsl:text></xsl:text> |
399 |
</xsl:when> |
400 |
<xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> |
401 |
<xsl:call-template name="subfieldSelect"> |
402 |
<xsl:with-param name="codes">y3z</xsl:with-param> |
403 |
</xsl:call-template> |
404 |
</xsl:when> |
405 |
<xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])"> |
389 |
Click here to access online |
406 |
Click here to access online |
390 |
</xsl:when> |
407 |
</xsl:when> |
391 |
</xsl:choose> |
408 |
</xsl:choose> |
392 |
</a> |
409 |
</a> |
393 |
<xsl:choose> |
410 |
<xsl:choose> |
394 |
<xsl:when test="position()=last()"></xsl:when> |
411 |
<xsl:when test="position()=last()"></xsl:when> |
395 |
<xsl:otherwise> | </xsl:otherwise> |
412 |
<xsl:otherwise> | </xsl:otherwise> |
396 |
</xsl:choose> |
413 |
</xsl:choose> |
397 |
</xsl:for-each> |
414 |
</xsl:for-each> |
398 |
</span> |
415 |
</span> |
399 |
</xsl:if> |
416 |
</xsl:if> |
400 |
</xsl:template> |
417 |
</xsl:template> |
401 |
|
418 |
<xsl:template name="nameABCDQ"> |
402 |
<xsl:template name="nameABCDQ"> |
419 |
<xsl:call-template name="chopPunctuation"> |
403 |
<xsl:call-template name="chopPunctuation"> |
420 |
<xsl:with-param name="chopString"> |
404 |
<xsl:with-param name="chopString"> |
421 |
<xsl:call-template name="subfieldSelect"> |
405 |
<xsl:call-template name="subfieldSelect"> |
422 |
<xsl:with-param name="codes">aq</xsl:with-param> |
406 |
<xsl:with-param name="codes">aq</xsl:with-param> |
423 |
</xsl:call-template> |
407 |
</xsl:call-template> |
424 |
</xsl:with-param> |
408 |
</xsl:with-param> |
425 |
<xsl:with-param name="punctuation"> |
409 |
<xsl:with-param name="punctuation"> |
426 |
<xsl:text>:,;/ </xsl:text> |
410 |
<xsl:text>:,;/ </xsl:text> |
427 |
</xsl:with-param> |
411 |
</xsl:with-param> |
428 |
</xsl:call-template> |
412 |
</xsl:call-template> |
429 |
<xsl:call-template name="termsOfAddress"/> |
413 |
<xsl:call-template name="termsOfAddress"/> |
430 |
</xsl:template> |
414 |
</xsl:template> |
431 |
<xsl:template name="nameABCDN"> |
415 |
|
432 |
<xsl:for-each select="marc:subfield[@code='a']"> |
416 |
<xsl:template name="nameABCDN"> |
433 |
<xsl:call-template name="chopPunctuation"> |
417 |
<xsl:for-each select="marc:subfield[@code='a']"> |
434 |
<xsl:with-param name="chopString" select="."/> |
418 |
<xsl:call-template name="chopPunctuation"> |
435 |
</xsl:call-template> |
419 |
<xsl:with-param name="chopString" select="."/> |
436 |
</xsl:for-each> |
420 |
</xsl:call-template> |
437 |
<xsl:for-each select="marc:subfield[@code='b']"> |
421 |
</xsl:for-each> |
438 |
<xsl:value-of select="."/> |
422 |
<xsl:for-each select="marc:subfield[@code='b']"> |
439 |
</xsl:for-each> |
423 |
<xsl:value-of select="."/> |
440 |
<xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']"> |
424 |
</xsl:for-each> |
441 |
<xsl:call-template name="subfieldSelect"> |
425 |
<xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']"> |
442 |
<xsl:with-param name="codes">cdn</xsl:with-param> |
426 |
<xsl:call-template name="subfieldSelect"> |
443 |
</xsl:call-template> |
427 |
<xsl:with-param name="codes">cdn</xsl:with-param> |
444 |
</xsl:if> |
428 |
</xsl:call-template> |
445 |
</xsl:template> |
429 |
</xsl:if> |
446 |
<xsl:template name="nameACDEQ"> |
430 |
</xsl:template> |
447 |
<xsl:call-template name="subfieldSelect"> |
431 |
|
448 |
<xsl:with-param name="codes">acdeq</xsl:with-param> |
432 |
<xsl:template name="nameACDEQ"> |
449 |
</xsl:call-template> |
433 |
<xsl:call-template name="subfieldSelect"> |
450 |
</xsl:template> |
434 |
<xsl:with-param name="codes">acdeq</xsl:with-param> |
451 |
<xsl:template name="termsOfAddress"> |
435 |
</xsl:call-template> |
452 |
<xsl:if test="marc:subfield[@code='b' or @code='c']"> |
436 |
</xsl:template> |
453 |
<xsl:call-template name="chopPunctuation"> |
437 |
<xsl:template name="termsOfAddress"> |
454 |
<xsl:with-param name="chopString"> |
438 |
<xsl:if test="marc:subfield[@code='b' or @code='c']"> |
455 |
<xsl:call-template name="subfieldSelect"> |
439 |
<xsl:call-template name="chopPunctuation"> |
456 |
<xsl:with-param name="codes">bc</xsl:with-param> |
440 |
<xsl:with-param name="chopString"> |
457 |
</xsl:call-template> |
441 |
<xsl:call-template name="subfieldSelect"> |
458 |
</xsl:with-param> |
442 |
<xsl:with-param name="codes">bc</xsl:with-param> |
459 |
</xsl:call-template> |
443 |
</xsl:call-template> |
460 |
</xsl:if> |
444 |
</xsl:with-param> |
461 |
</xsl:template> |
445 |
</xsl:call-template> |
462 |
<xsl:template name="part"> |
446 |
</xsl:if> |
463 |
<xsl:variable name="partNumber"> |
447 |
</xsl:template> |
464 |
<xsl:call-template name="specialSubfieldSelect"> |
448 |
|
465 |
<xsl:with-param name="axis">n</xsl:with-param> |
449 |
<xsl:template name="part"> |
466 |
<xsl:with-param name="anyCodes">n</xsl:with-param> |
450 |
<xsl:variable name="partNumber"> |
467 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
451 |
<xsl:call-template name="specialSubfieldSelect"> |
468 |
</xsl:call-template> |
452 |
<xsl:with-param name="axis">n</xsl:with-param> |
469 |
</xsl:variable> |
453 |
<xsl:with-param name="anyCodes">n</xsl:with-param> |
470 |
<xsl:variable name="partName"> |
454 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
471 |
<xsl:call-template name="specialSubfieldSelect"> |
455 |
</xsl:call-template> |
472 |
<xsl:with-param name="axis">p</xsl:with-param> |
456 |
</xsl:variable> |
473 |
<xsl:with-param name="anyCodes">p</xsl:with-param> |
457 |
<xsl:variable name="partName"> |
474 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
458 |
<xsl:call-template name="specialSubfieldSelect"> |
475 |
</xsl:call-template> |
459 |
<xsl:with-param name="axis">p</xsl:with-param> |
476 |
</xsl:variable> |
460 |
<xsl:with-param name="anyCodes">p</xsl:with-param> |
477 |
<xsl:if test="string-length(normalize-space($partNumber))"> |
461 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
478 |
<xsl:call-template name="chopPunctuation"> |
462 |
</xsl:call-template> |
479 |
<xsl:with-param name="chopString" select="$partNumber"/> |
463 |
</xsl:variable> |
480 |
</xsl:call-template> |
464 |
<xsl:if test="string-length(normalize-space($partNumber))"> |
481 |
</xsl:if> |
465 |
<xsl:call-template name="chopPunctuation"> |
482 |
<xsl:if test="string-length(normalize-space($partName))"> |
466 |
<xsl:with-param name="chopString" select="$partNumber"/> |
483 |
<xsl:call-template name="chopPunctuation"> |
467 |
</xsl:call-template> |
484 |
<xsl:with-param name="chopString" select="$partName"/> |
468 |
</xsl:if> |
485 |
</xsl:call-template> |
469 |
<xsl:if test="string-length(normalize-space($partName))"> |
486 |
</xsl:if> |
470 |
<xsl:call-template name="chopPunctuation"> |
487 |
</xsl:template> |
471 |
<xsl:with-param name="chopString" select="$partName"/> |
488 |
<xsl:template name="specialSubfieldSelect"> |
472 |
</xsl:call-template> |
489 |
<xsl:param name="anyCodes"/> |
473 |
</xsl:if> |
490 |
<xsl:param name="axis"/> |
474 |
</xsl:template> |
491 |
<xsl:param name="beforeCodes"/> |
475 |
|
492 |
<xsl:param name="afterCodes"/> |
476 |
<xsl:template name="specialSubfieldSelect"> |
493 |
<xsl:variable name="str"> |
477 |
<xsl:param name="anyCodes"/> |
494 |
<xsl:for-each select="marc:subfield"> |
478 |
<xsl:param name="axis"/> |
495 |
<xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])"> |
479 |
<xsl:param name="beforeCodes"/> |
496 |
<xsl:value-of select="text()"/> |
480 |
<xsl:param name="afterCodes"/> |
497 |
<xsl:text></xsl:text> |
481 |
<xsl:variable name="str"> |
498 |
</xsl:if> |
482 |
<xsl:for-each select="marc:subfield"> |
499 |
</xsl:for-each> |
483 |
<xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])"> |
500 |
</xsl:variable> |
484 |
<xsl:value-of select="text()"/> |
501 |
<xsl:value-of select="substring($str,1,string-length($str)-1)"/> |
485 |
<xsl:text> </xsl:text> |
502 |
</xsl:template> |
486 |
</xsl:if> |
|
|
487 |
</xsl:for-each> |
488 |
</xsl:variable> |
489 |
<xsl:value-of select="substring($str,1,string-length($str)-1)"/> |
490 |
</xsl:template> |
491 |
|
492 |
</xsl:stylesheet> |
503 |
</xsl:stylesheet> |