source: trunk/biblioentry_xml.xsl @ 21

Last change on this file since 21 was 21, checked in by pinsard, 17 years ago

change encoding of DOI in bibliography XML file. cf. ticket#14

File size: 7.6 KB
Line 
1<?xml version="1.0" encoding="iso-8859-1"?>
2
3<!--
4module :
5traitement d'une référence bibliographique (biblioentry)
6
7source :
8/usr/home/fplod/incas/bibnemo/src/bibnemomaf/biblioentry_xml.xsl sur aedon.locean-ipsl.upmc.fr
9
10update :
11fplod 2007-06-20T17:18:02Z aedon.locean-ipsl.upmc.fr (Darwin)
12<bibliomisc role="id"> replaced by <biblioid class="doi">
13fplod 2007-05-16T14:01:44Z aedon.locean-ipsl.upmc.fr (Darwin)
14correction in order to write doi only once
15fplod 2007-05-16T10:27:34Z aedon.locean-ipsl.upmc.fr (Darwin)
16remove biblioentry/date and publisher
17add  biblioentry/biblioset/biliomisc
18fplod 2007-05-15T07:37:46Z aedon.locean-ipsl.upmc.fr (Darwin)
19factorisation de biblioentry
20fplod 2007-05-14T15:48:04Z aedon.locean-ipsl.upmc.fr (Darwin)
21correction to add biblioentry/date (replace biblioentry/biblioset/pubdate)
22when "in press"
23fplod 2007-05-04T07:59:34Z aedon.locean-ipsl.upmc.fr (Darwin)
24factorisation de bibnemomaf01_xml.xsl, bibnemomaf02_xml.xsl,bibnemomaf04_xml.xsl
25-->
26
27<xsl:stylesheet
28 id="id" version="1.0"
29 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
30
31<xsl:include href="correction_db.xsl"/>
32
33<xsl:template name="one_biblioentry">
34 <xsl:param name="visu_modif"/>
35 <xsl:param name="my_biblioentry"/>
36 <xsl:element name="listitem">
37  <xsl:element name="para">
38    <xsl:apply-templates select="$my_biblioentry/authorgroup"/>
39    <xsl:text>, </xsl:text>
40    <xsl:if test="$my_biblioentry/descendant::pubdate">
41     <xsl:apply-templates select="$my_biblioentry/descendant::pubdate"/>
42    </xsl:if>
43    <xsl:if test="$my_biblioentry/descendant::date">
44     <xsl:apply-templates select="$my_biblioentry/descendant::date"/>
45    </xsl:if>
46    <xsl:text> : </xsl:text>
47    <xsl:apply-templates select="$my_biblioentry/title"/>
48    <xsl:text>, </xsl:text>
49    <xsl:choose>
50     <xsl:when test="$my_biblioentry/descendant::biblioset">
51      <xsl:apply-templates select="$my_biblioentry/descendant::biblioset/child::title"/>
52      <xsl:if test="$my_biblioentry/descendant::volumenum">
53       <xsl:text>, </xsl:text>
54       <xsl:apply-templates select="$my_biblioentry/descendant::volumenum"/>
55       <xsl:if test="$my_biblioentry/descendant::issuenum">
56        <xsl:text>, </xsl:text>
57        <xsl:apply-templates select="$my_biblioentry/descendant::issuenum"/>
58       </xsl:if>
59      </xsl:if>
60      <xsl:if test="$my_biblioentry/descendant::pagenums">
61       <xsl:text>, </xsl:text>
62       <xsl:apply-templates select="$my_biblioentry/descendant::pagenums"/>
63      </xsl:if>
64      <xsl:if test="$my_biblioentry/descendant::biblioset/child::bibliomisc">
65       <xsl:apply-templates select="$my_biblioentry/descendant::biblioset/child::bibliomisc"/>
66      </xsl:if>
67     </xsl:when>
68     <xsl:otherwise>
69      <xsl:apply-templates select="$my_biblioentry/publishername"/>
70     </xsl:otherwise>
71    </xsl:choose>
72    <xsl:apply-templates select="$my_biblioentry/biblioid"/>
73    <xsl:apply-templates select="$my_biblioentry/bibliomisc"/>
74  </xsl:element>
75  <xsl:if test="$visu_modif= 'modif'">
76   <xsl:call-template name="correction">
77    <xsl:with-param name="id" select="$my_biblioentry/@id"/>
78   </xsl:call-template>
79  </xsl:if>
80 </xsl:element>
81</xsl:template>
82
83<xsl:template match="authorgroup">
84 <xsl:apply-templates select="author"/>
85 <xsl:apply-templates select="corpauthor"/>
86</xsl:template>
87
88<xsl:template match="author">
89<!--
901er auteur Nom, prénom les autres Prenom Nom
91une virgule entre les auteurs sauf entre les deux derniers
92-->
93  <xsl:if test="personname/surname = ''">
94   <xsl:message>
95eee : empty surname for <xsl:value-of select="ancestor::biblioentry/@id"/>
96   </xsl:message>
97  </xsl:if>
98  <xsl:if test="personname/firstname= ''">
99   <xsl:message>
100eee : empty firstname for <xsl:value-of select="ancestor::biblioentry/@id"/>
101   </xsl:message>
102  </xsl:if>
103  <xsl:if test="personname/firstname= '.'">
104   <xsl:message>
105eee : firstname = '.' for <xsl:value-of select="ancestor::biblioentry/@id"/>
106   </xsl:message>
107  </xsl:if>
108  <xsl:choose>
109   <xsl:when test="position()=1">
110    <xsl:value-of select="personname/surname"/><xsl:text>, </xsl:text>
111    <xsl:value-of select="personname/firstname"/>
112   </xsl:when>
113   <xsl:otherwise>
114    <xsl:value-of select="personname/firstname"/><xsl:text> </xsl:text>
115    <xsl:value-of select="personname/surname"/>
116   </xsl:otherwise>
117  </xsl:choose>
118
119<!--
120une virgule entre les auteurs sauf entre les deux derniers
121-->
122  <xsl:choose>
123   <xsl:when test="count(following-sibling::*)  &gt; 1"> <!-- plusieurs suivants -->
124    <xsl:text>, </xsl:text>
125   </xsl:when>
126   <xsl:when test="count(following-sibling::*)  = 1">
127    <xsl:text> and </xsl:text> <!-- un suivant -->
128   </xsl:when>
129  </xsl:choose>
130</xsl:template>
131
132<xsl:template match="corpauthor">
133<!--
134une virgule entre les auteurs sauf entre les deux derniers
135-->
136  <xsl:choose>
137   <xsl:when test="count(following-sibling::*)  &gt; 1"> <!-- plusieurs suivants -->
138    <xsl:text>, </xsl:text>
139   </xsl:when>
140   <xsl:when test="count(following-sibling::*)  = 1">
141    <xsl:text> and </xsl:text> <!-- un suivant -->
142   </xsl:when>
143  </xsl:choose>
144  <xsl:value-of select="."/>
145</xsl:template>
146<xsl:template match="biblioentry/title">
147  <xsl:value-of select="."/>
148</xsl:template>
149
150<xsl:template match="biblioset[@relation='journal']/title">
151  <xsl:value-of select="."/>
152</xsl:template>
153<xsl:template match="publishername">
154 <xsl:message terminate="no">
155   eee : publishername
156   <xsl:value-of select="."/> exists in node
157   <xsl:value-of select="ancestor::biblioentry/@id"/>
158   eee : try to put information in biblioset
159 </xsl:message>
160</xsl:template>
161<xsl:template match="biblioset[@relation='journal']/pubdate">
162  <xsl:value-of select="."/>
163</xsl:template>
164<xsl:template match="date">
165 <xsl:message terminate="no">
166   eee : date
167   <xsl:value-of select="."/> exists in node
168   <xsl:value-of select="ancestor::biblioentry/@id"/>
169   eee : try to put information in biblioset
170 </xsl:message>
171</xsl:template>
172
173<xsl:template match="biblioset[@relation='journal']/volumenum">
174  <xsl:value-of select="."/>
175</xsl:template>
176
177<xsl:template match="biblioset[@relation='journal']/issuenum">
178  <xsl:value-of select="."/>
179</xsl:template>
180
181<xsl:template match="biblioset[@relation='journal']/pagesnum">
182  <xsl:value-of select="."/>
183</xsl:template>
184
185<xsl:template match="biblioid">
186<xsl:choose>
187<xsl:when test="@class='doi'">
188 <xsl:choose>
189  <xsl:when test=". = '???'">
190   <xsl:message> iii : no doi found for
191    <xsl:value-of select="ancestor::biblioentry/@id"/>
192   </xsl:message>
193  </xsl:when>
194 <xsl:otherwise>
195  <!-- transformer 10.1029/2003GL018906 en un lien sur http://dx.doi.org/10.1029/2003GL018906 par exemple
196  -->
197  <xsl:text>, </xsl:text>
198  <xsl:element name="ulink">
199   <xsl:attribute name="url">
200    <xsl:text>http://dx.doi.org/</xsl:text>
201    <xsl:value-of select="."/>
202   </xsl:attribute>
203   doi:<xsl:value-of select="."/>
204  </xsl:element>
205 </xsl:otherwise>
206 </xsl:choose>
207</xsl:when>
208<xsl:otherwise>
209 <xsl:message>
210eee : unknown biblioid purpose for <xsl:value-of select="ancestor::biblioentry/@id"/>
211eee : <xsl:value-of select="."/>
212 </xsl:message>
213</xsl:otherwise>
214</xsl:choose>
215</xsl:template>
216
217<xsl:template match="bibliomisc">
218<xsl:choose>
219<xsl:when test="contains(.,'In Press')">
220 <xsl:text>, </xsl:text>
221 <xsl:value-of select="."/>
222</xsl:when>
223<xsl:when test="contains(.,'In press')">
224 <xsl:text>, </xsl:text>
225 <xsl:value-of select="."/>
226</xsl:when>
227<xsl:when test="contains(.,'in press')">
228 <xsl:text>, </xsl:text>
229 <xsl:value-of select="."/>
230</xsl:when>
231<xsl:when test="contains(.,'in revision')">
232 <xsl:text>, </xsl:text>
233 <xsl:value-of select="."/>
234</xsl:when>
235<xsl:otherwise>
236 <xsl:message>
237eee : unknown bibliomisc purpose for <xsl:value-of select="ancestor::biblioentry/@id"/>
238eee : <xsl:value-of select="."/>
239 </xsl:message>
240</xsl:otherwise>
241</xsl:choose>
242</xsl:template>
243
244</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.