Update pz22usi.xsl
[metaproxy-moved-to-github.git] / xml / xslt / pz22usi.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" 
3                 xmlns="http://www.loc.gov/mods/v3"
4                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6                 xmlns:id="http://indexdata.com/xml/modsExtension/"
7                 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
8                 x-exclude-result-prefixes="mods">
9   <xsl:output method="xml" indent="yes" />
10   <!-- <xsl:template match="text()"/> -->
11
12   <xsl:template match="/pz:record">
13       <mods version="3.4"
14           xsi:schemaLocation="http://www.loc.gov/mods/v3
15                               http://www.loc.gov/standards/mods/v3/mods-3-4.xsd">
16       <originInfo>
17         <dateIssued><xsl:value-of select="normalize-space(pz:metadata[@type='date'])"/></dateIssued>
18         <publisher><xsl:value-of select="pz:metadata[@type='publication-name']"/></publisher>
19         <place>
20           <placeTerm type="text">
21             <xsl:value-of select="pz:metadata[@type='publication-place']"/>
22           </placeTerm>
23         </place>
24         <xsl:if test="pz:metadata[@type='medium'] = 'book'">
25           <issuance>monographic</issuance>
26         </xsl:if>
27       </originInfo>
28       <!-- What about mods:typeOfResource? -->
29       <location>
30         <!-- It would be good to make only the first of these "primary" -->
31         <xsl:for-each select="pz:metadata[@type='electronic-url']">
32           <url usage="primary"><xsl:value-of select="."/></url>
33         </xsl:for-each>
34         <url access="preview">$THUMBURL</url>
35       </location>
36       <titleInfo>
37         <title><xsl:value-of select="pz:metadata[@type='title']"/></title>
38       </titleInfo>
39       <xsl:for-each select="pz:metadata[@type='author']">
40         <name type="personal">
41           <displayForm><xsl:value-of select="."/></displayForm>
42           <role>
43             <roleTerm type="text">author</roleTerm>
44           </role>
45         </name>
46       </xsl:for-each>
47       <xsl:for-each select="pz:metadata[@type='title-responsibility']">
48         <name type="personal">
49           <displayForm><xsl:value-of select="."/></displayForm>
50         </name>
51       </xsl:for-each>
52       <xsl:for-each select="pz:metadata[@type='description']">
53         <abstract type="description"><xsl:value-of select="."/></abstract>
54       </xsl:for-each>
55       <xsl:for-each select="pz:metadata[@type='subject']">
56         <subject>
57           <topic><xsl:value-of select="."/></topic>
58         </subject>
59       </xsl:for-each>
60       <id:relevance>$RELEVANCE</id:relevance>
61       <!-- <location> is repeatable for multiple holdings -->
62       <location>
63         <holdingSimple>
64           <copyInformation>
65             <subLocation>
66               <xsl:value-of select="pz:metadata[@type='locallocation']"/>
67             </subLocation>
68             <shelfLocator>
69               <xsl:value-of select="pz:metadata[@type='callnumber']"/>
70             </shelfLocator>
71             <id:circ>
72               <id:available><xsl:value-of select="normalize-space(pz:metadata[@type='available'])"/></id:available>
73               <id:due>$DUE</id:due>
74             </id:circ>
75           </copyInformation>
76         </holdingSimple>
77       </location>
78       <relatedItem type="host">
79         <titleInfo>
80           <title><xsl:value-of select="pz:metadata[@type='journal-title']"/></title>
81           <!-- or -->
82           <title><xsl:value-of select="pz:metadata[@type='series-title']"/></title>
83           <!-- or -->
84           <title>$BOOKTITLE</title>
85         </titleInfo>
86         <part>
87           <detail type="volume">
88             <number><xsl:value-of select="pz:metadata[@type='volume']"/></number>
89             <!-- or -->
90             <number><xsl:value-of select="pz:metadata[@type='journal-subpart']"/></number>
91           </detail>
92           <detail type="issue">
93             <number>$ISSUE</number>
94           </detail>
95           <extent unit="pages">
96             <start>$STARTPAGE</start>
97             <end>$ENDPAGE</end>
98           </extent>
99         </part>
100       </relatedItem>
101       <physicalDescription>
102         <xsl:if test="pz:metadata[@type='medium'] = 'web'">
103           <form authority="marcform">electronic</form>
104         </xsl:if>
105         <form><xsl:value-of select="pz:metadata[@type='physical-format']"/></form>
106         <internetMediaType>$FORMAT</internetMediaType>
107         <extent><xsl:value-of select="pz:metadata[@type='physical-extent']"/></extent>
108       </physicalDescription>
109       <id:citation><xsl:value-of select="pz:metadata[@type='citation']"/></id:citation>
110       <identifier type="issn"><xsl:value-of select="pz:metadata[@type='issn']"/></identifier>
111       <identifier type="isbn"><xsl:value-of select="pz:metadata[@type='isbn']"/></identifier>
112       <identifier><xsl:value-of select="pz:metadata[@type='id']"/></identifier>
113       <accessCondition type="copyright">$COPYRIGHT</accessCondition>
114       <accessCondition type="copyrightabstract">$COPYRIGHTABSTRACT</accessCondition>
115       <language usage="primary">
116         <languageTerm type="text">$LANGUAGEITEM</languageTerm>
117       </language>
118       <language objectPart="summary">
119         <languageTerm type="text">$LANGUAGEABSTRACT</languageTerm>
120       </language>
121     </mods>
122   </xsl:template>
123 </xsl:stylesheet>