Project

General

Profile

1
<?xml version="1.0"?>
2
<!--
3
  *  '$RCSfile: eml-resource-2.0.0.xsl,v $'
4
  *      Authors: Matthew Brooke
5
  *    Copyright: 2000 Regents of the University of California and the
6
  *               National Center for Ecological Analysis and Synthesis
7
  *  For Details: http://www.nceas.ucsb.edu/
8
  *
9
  *   '$Author: cjones $'
10
  *     '$Date: 2004/10/05 23:50:34 $'
11
  * '$Revision: 1.1 $'
12
  *
13
  * This program is free software; you can redistribute it and/or modify
14
  * it under the terms of the GNU General Public License as published by
15
  * the Free Software Foundation; either version 2 of the License, or
16
  * (at your option) any later version.
17
  *
18
  * This program is distributed in the hope that it will be useful,
19
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
  * GNU General Public License for more details.
22
  *
23
  * You should have received a copy of the GNU General Public License
24
  * along with this program; if not, write to the Free Software
25
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26
  *
27
  * This is an XSLT (http://www.w3.org/TR/xslt) stylesheet designed to
28
  * convert an XML file that is valid with respect to the eml-variable.dtd
29
  * module of the Ecological Metadata Language (EML) into an HTML format
30
  * suitable for rendering with modern web browsers.
31
-->
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
33
  <!--<xsl:import href="eml-party-2.0.0.xsl"/>
34
  <xsl:import href="eml-distribution-2.0.0.xsl"/>
35
  <xsl:import href="eml-coverage-2.0.0.xsl"/>-->
36
  <xsl:output method="html" encoding="iso-8859-1"
37
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
38
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
39
    indent="yes" />  
40

    
41
  <!-- This module is for resouce and it is self-contained (it is table)-->
42
  <xsl:template name="resource">
43
    <xsl:param name="resfirstColStyle"/>
44
    <xsl:param name="ressubHeaderStyle"/>
45
    <xsl:param name="creator">Data Set Owner(s):</xsl:param>
46

    
47
      <!--
48
      <xsl:for-each select="alternateIdentifier">
49
        <xsl:call-template name="resourcealternateIdentifier">
50
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
51
        </xsl:call-template>
52
      </xsl:for-each>
53

    
54
      <xsl:for-each select="shortName">
55
        <xsl:call-template name="resourceshortName">
56
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
57
         </xsl:call-template>
58
      </xsl:for-each>
59

    
60
      <xsl:for-each select="title">
61
        <xsl:call-template name="resourcetitle">
62
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
63
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
64
        </xsl:call-template>
65
      </xsl:for-each>
66

    
67
       <xsl:for-each select="pubDate">
68
        <xsl:call-template name="resourcepubDate" >
69
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
70
         </xsl:call-template>
71
      </xsl:for-each>
72

    
73
      <xsl:for-each select="language">
74
        <xsl:call-template name="resourcelanguage" >
75
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
76
         </xsl:call-template>
77
      </xsl:for-each>
78

    
79
      <xsl:for-each select="series">
80
        <xsl:call-template name="resourceseries" >
81
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
82
        </xsl:call-template>
83
      </xsl:for-each>
84

    
85
      <xsl:if test="creator">
86
        <tr>
87
          <td class="{$ressubHeaderStyle}" colspan="2">
88
            <h3><xsl:value-of select="$creator"/></h3>
89
          </td>
90
        </tr>
91
      </xsl:if>
92
      <xsl:for-each select="creator">
93
        <xsl:call-template name="resourcecreator">
94
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
95
        </xsl:call-template>
96
      </xsl:for-each>
97

    
98
      <xsl:if test="metadataProvider">
99
        <tr><td class="{$ressubHeaderStyle}" colspan="2">
100
        <xsl:text>Metadata Provider(s):</xsl:text>
101
      </td></tr>
102
      </xsl:if>
103
       <xsl:for-each select="metadataProvider">
104
        <xsl:call-template name="resourcemetadataProvider">
105
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
106
        </xsl:call-template>
107
      </xsl:for-each>
108

    
109
      <xsl:if test="associatedParty">
110
        <tr>
111
          <td class="{$ressubHeaderStyle}" colspan="2">
112
            <h3><xsl:text>Associated Parties:</xsl:text></h3>
113
          </td>
114
        </tr>
115
      </xsl:if>
116
      <xsl:for-each select="associatedParty">
117
        <xsl:call-template name="resourceassociatedParty">
118
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
119
        </xsl:call-template>
120
      </xsl:for-each>
121

    
122
      <xsl:for-each select="abstract">
123
        <xsl:call-template name="resourceabstract" >
124
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
125
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
126
        </xsl:call-template>
127
      </xsl:for-each>
128

    
129
      <xsl:if test="keywordSet">
130
        <tr><td class="{$ressubHeaderStyle}" colspan="2">
131
             <xsl:text>Keywords:</xsl:text></td></tr>
132
      </xsl:if>
133
      <xsl:for-each select="keywordSet">
134
        <xsl:call-template name="resourcekeywordSet" >
135
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
136
        </xsl:call-template>
137
      </xsl:for-each>
138

    
139
      <xsl:for-each select="additionalInfo">
140
        <xsl:call-template name="resourceadditionalInfo" >
141
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
142
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
143
        </xsl:call-template>
144
      </xsl:for-each>
145

    
146
      <xsl:for-each select="intellectualRights">
147
        <xsl:call-template name="resourceintellectualRights" >
148
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
149
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
150
        </xsl:call-template>
151
      </xsl:for-each>
152

    
153
      <xsl:for-each select="distribution">
154
        <xsl:call-template name="resourcedistribution">
155
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
156
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
157

    
158
	 <xsl:with-param name="index" select="position()"/>
159
          <xsl:with-param name="docid" select="$docid"/>
160
        </xsl:call-template>
161
      </xsl:for-each>
162

    
163
    <xsl:for-each select="coverage">
164
      <xsl:call-template name="resourcecoverage">
165
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
166
          <xsl:with-param name="ressubHeaderStyle" select="$ressubHeaderStyle"/>
167
      </xsl:call-template>
168
    </xsl:for-each>
169
    -->
170

    
171
  </xsl:template>
172

    
173
  <!-- style the alternate identifier elements -->
174
  <xsl:template name="resourcealternateIdentifier" >
175
      <xsl:param name="resfirstColStyle"/>
176
      <xsl:param name="ressecondColStyle"/>
177
      <xsl:if test="normalize-space(.)!=''">
178
      <tr>
179
        <td class="{$resfirstColStyle}">Alternate Identifier:</td>
180
        <td class="{$ressecondColStyle}"><xsl:value-of select="."/></td>
181
      </tr>
182
      </xsl:if>
183
  </xsl:template>
184

    
185

    
186
  <!-- style the short name elements -->
187
  <xsl:template name="resourceshortName">
188
      <xsl:param name="resfirstColStyle"/>
189
      <xsl:param name="ressecondColStyle"/>
190
      <xsl:if test="normalize-space(.)!=''">
191
      <tr>
192
        <td class="{$resfirstColStyle}">Short Name:</td>
193
        <td class="{$ressecondColStyle}"><xsl:value-of select="."/></td>
194
      </tr>
195
      </xsl:if>
196
  </xsl:template>
197

    
198

    
199
  <!-- style the title element -->
200
  <xsl:template name="resourcetitle" >
201
      <xsl:param name="resfirstColStyle"/>
202
      <xsl:param name="ressecondColStyle"/>
203
      <xsl:if test="normalize-space(.)!=''">
204
      <tr>
205
        <td class="{$resfirstColStyle}">Title:</td>
206
        <td class="{$ressecondColStyle}">
207
          <em class="bold"><xsl:value-of select="."/></em>
208
        </td>
209
      </tr>
210
      </xsl:if>
211
  </xsl:template>
212

    
213
  <xsl:template name="resourcecreator" >
214
      <xsl:param name="resfirstColStyle"/>
215
      <tr><td colspan="2">
216
       <xsl:call-template name="party">
217
              <xsl:with-param name="partyfirstColStyle" select="$resfirstColStyle"/>
218
       </xsl:call-template>
219
      </td></tr>
220
   </xsl:template>
221

    
222
  <xsl:template name="resourcemetadataProvider" >
223
      <xsl:param name="resfirstColStyle"/>
224
      <tr><td colspan="2">
225
      <xsl:call-template name="party">
226
            <xsl:with-param name="partyfirstColStyle" select="$resfirstColStyle"/>
227
      </xsl:call-template>
228
      </td></tr>
229
  </xsl:template>
230

    
231
  <xsl:template name="resourceassociatedParty">
232
      <xsl:param name="resfirstColStyle"/>
233
      <tr><td colspan="2">
234
      <xsl:call-template name="party">
235
          <xsl:with-param name="partyfirstColStyle" select="$resfirstColStyle"/>
236
      </xsl:call-template>
237
      </td></tr>
238
  </xsl:template>
239

    
240

    
241
  <xsl:template name="resourcepubDate">
242
      <xsl:param name="resfirstColStyle"/>
243
      <xsl:if test="normalize-space(../pubDate)!=''">
244
      <tr><td class="{$resfirstColStyle}">
245
        Publication Date:</td><td class="{$secondColStyle}">
246
        <xsl:value-of select="../pubDate"/></td></tr>
247
      </xsl:if>
248
  </xsl:template>
249

    
250

    
251
  <xsl:template name="resourcelanguage">
252
      <xsl:param name="resfirstColStyle"/>
253
      <xsl:if test="normalize-space(.)!=''">
254
      <tr><td class="{$resfirstColStyle}">
255
        Language:</td><td class="{$secondColStyle}">
256
        <xsl:value-of select="."/></td></tr>
257
      </xsl:if>
258
  </xsl:template>
259

    
260

    
261
  <xsl:template name="resourceseries">
262
      <xsl:param name="resfirstColStyle"/>
263
      <xsl:if test="normalize-space(../series)!=''">
264
      <tr><td class="{$resfirstColStyle}">
265
        Series:</td><td class="{$secondColStyle}">
266
        <xsl:value-of select="../series"/></td></tr>
267
      </xsl:if>
268
  </xsl:template>
269

    
270

    
271
  <xsl:template name="resourceabstract">
272
     <xsl:param name="resfirstColStyle"/>
273
     <xsl:param name="ressecondColStyle"/>
274
     <tr>
275
       <td class="{$resfirstColStyle}"><xsl:text>Abstract:</xsl:text></td>
276
       <td>
277
         <xsl:call-template name="text">
278
           <xsl:with-param name="textfirstColStyle" select="$resfirstColStyle"/>
279
           <xsl:with-param name="textsecondColStyle" select="$ressecondColStyle"/>
280
         </xsl:call-template>
281
       </td>
282
     </tr>
283
  </xsl:template>
284

    
285

    
286
  <!--<xsl:template match="keywordSet[1]" mode="resource">
287
        <xsl:param name="ressubHeaderStyle"/>
288
        <xsl:param name="resfirstColStyle"/>
289
        <tr><td class="{$ressubHeaderStyle}" colspan="2">
290
        <xsl:text>Keywords:</xsl:text></td></tr>
291
        <xsl:call-template name="renderKeywordSet">
292
          <xsl:with-param name="resfirstColStyle" select="$resfirstColStyle"/>
293
        </xsl:call-template>
294
  </xsl:template>-->
295

    
296
  <xsl:template name="resourcekeywordSet">
297
      <xsl:for-each select="keywordThesaurus">
298
        <xsl:if test="normalize-space(.)!=''">
299
          <xsl:value-of select="."/>
300
          <xsl:text>: </xsl:text>
301
        </xsl:if>
302
        <xsl:if test="normalize-space(keyword)!=''">
303
        <ul>
304
          <xsl:for-each select="keyword">
305
            <li><xsl:value-of select="."/>
306
            <xsl:if test="./@keywordType and normalize-space(./@keywordType)!=''">
307
              (<xsl:value-of select="./@keywordType"/>)
308
            </xsl:if>
309
            </li>
310
          </xsl:for-each>
311
        </ul>
312
        </xsl:if>
313
      </xsl:for-each>
314
        <xsl:if test="normalize-space(keyword)!=''">
315
        <ul>
316
          <xsl:for-each select="keyword">
317
            <li><xsl:value-of select="."/>
318
            <xsl:if test="./@keywordType and normalize-space(./@keywordType)!=''">
319
              (<xsl:value-of select="./@keywordType"/>)
320
            </xsl:if>
321
            </li>
322
          </xsl:for-each>
323
        </ul>
324
        </xsl:if>
325
  </xsl:template>
326

    
327
   <xsl:template name="resourceadditionalInfo">
328
     <xsl:param name="ressubHeaderStyle"/>
329
     <xsl:param name="resfirstColStyle"/>
330
     <tr><td class="{$ressubHeaderStyle}" colspan="2">
331
        <xsl:text>Additional Information:</xsl:text>
332
     </td></tr>
333
     <tr><td class="{$resfirstColStyle}">&#160;</td>
334
         <td>
335
           <xsl:call-template name="text">
336
             <xsl:with-param name="textfirstColStyle" select="$resfirstColStyle"/>
337
           </xsl:call-template>
338
         </td>
339
     </tr>
340
  </xsl:template>
341

    
342

    
343
   <xsl:template name="resourceintellectualRights">
344
     <xsl:param name="resfirstColStyle"/>
345
     <xsl:param name="ressecondColStyle"/>
346
       <xsl:call-template name="text">
347
         <xsl:with-param name="textsecondColStyle" select="$ressecondColStyle"/>
348
       </xsl:call-template>
349
  </xsl:template>
350

    
351
   <xsl:template name="resourcedistribution">
352
     <xsl:param name="ressubHeaderStyle"/>
353
     <xsl:param name="resfirstColStyle"/>
354
     <xsl:param name="index"/>
355
     <xsl:param name="docid"/>
356
     <tr><td colspan="2">
357
        <xsl:call-template name="distribution">
358
          <xsl:with-param name="disfirstColStyle" select="$resfirstColStyle"/>
359
          <xsl:with-param name="dissubHeaderStyle" select="$ressubHeaderStyle"/>
360
          <xsl:with-param name="level">toplevel</xsl:with-param>
361
          <xsl:with-param name="distributionindex" select="$index"/>
362
          <xsl:with-param name="docid" select="$docid"/>
363
        </xsl:call-template>
364
     </td></tr>
365
  </xsl:template>
366

    
367
  <xsl:template name="resourcecoverage">
368
     <xsl:param name="ressubHeaderStyle"/>
369
     <xsl:param name="resfirstColStyle"/>
370
     <tr><td colspan="2">
371
        <xsl:call-template name="coverage">
372
        </xsl:call-template>
373
     </td></tr>
374
  </xsl:template>
375

    
376

    
377
</xsl:stylesheet>
(42-42/58)