source: trunk/bibnemomaf01_xml.xsl @ 16

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

add total nb of publications in years table. see ticket:6

  • Property svn:keywords set to Id
File size: 8.3 KB
Line 
1<?xml version="1.0" encoding="iso-8859-1"?>
2
3<!--
4module :
5sortir les références bibliographiques par pseudo-année
6
7source :
8/usr/home/fplod/incas/bibnemo/src/bibnemomaf/bibnemomaf01_xml.xsl sur aedon.locean-ipsl.upmc.fr
9
10update :
11$Id$
12++ plein de trucs
13fplod 2007-06-08T08:36:48Z aedon.locean-ipsl.upmc.fr (Darwin)
14add total nb of publications in one cell. quite interesting usage of
15XPATH to determine mininum and maximum value of a element !
16fplod 2007-05-21T14:06:53Z aedon.locean-ipsl.upmc.fr (Darwin)
17ajout de plot nbpub/years
18fplod 2007-05-04T08:02:29Z aedon.locean-ipsl.upmc.fr (Darwin)
19externalisation de biblioentry
20passage de itemizedlist à sect1 pour homogénéisation sur présentation par auteur(et parce que je préfère)
21fplod 2007-04-02T08:53:30Z aedon.locean-ipsl.upmc.fr (Darwin)
22journal dans biblioset
23fplod 2007-03-30T12:38:34Z aedon.locean-ipsl.upmc.fr (Darwin)
24creation
25-->
26
27<xsl:stylesheet
28 id="id" version="1.0"
29 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
30
31<xsl:output
32 method="xml"
33 indent="yes"
34 encoding="ISO-8859-1"
35 omit-xml-declaration="no"
36 doctype-public="-//OASIS//DTD DocBook XML V4.5//EN"
37 doctype-system="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"/>
38
39<xsl:include href="biblioentry_xml.xsl"/>
40
41<xsl:variable name="list_years" select="///pubdate[not( self::node() = following::pubdate )]"/>
42
43<xsl:template name="years">
44<!--
45creation of an informatable of nb years
46each entry of the table is a link #year_xxxx
47-->
48<xsl:element name="informaltable">
49 <xsl:attribute name="id">years</xsl:attribute>
50 <xsl:attribute name="summary">years of publications</xsl:attribute>
51 <xsl:element name="tgroup">
52  <xsl:variable name="nb_cols" select="count($list_years)"/>
53  <xsl:attribute name="cols"><xsl:value-of select="$nb_cols"/></xsl:attribute>
54  <xsl:attribute name="align">center</xsl:attribute>
55  <xsl:attribute name="colsep">1</xsl:attribute>
56  <xsl:attribute name="rowsep">1</xsl:attribute>
57  <xsl:for-each select="///pubdate[not( self::node() = following::pubdate )]">
58   <xsl:sort order="descending" data-type="number" select="."/>
59   <xsl:element name="colspec">
60    <xsl:attribute name="colname">year_<xsl:value-of select="."/></xsl:attribute>
61   </xsl:element>
62  </xsl:for-each>
63  <xsl:element name="tbody">
64   <xsl:element name="row">
65    <xsl:for-each select="///pubdate[not( self::node() = following::pubdate )]">
66     <xsl:sort order="descending" data-type="number" select="."/>
67     <xsl:element name="entry">
68      <xsl:attribute name="colname"><xsl:text>year_</xsl:text><xsl:value-of select="."/></xsl:attribute>
69      <xsl:element name="ulink">
70       <xsl:attribute name="url"><xsl:text>#year_</xsl:text><xsl:value-of select="."/></xsl:attribute>
71       <xsl:value-of select="."/>
72      </xsl:element>
73     </xsl:element>
74    </xsl:for-each>
75   </xsl:element>
76   <xsl:element name="row">
77    <xsl:for-each select="///pubdate[not( self::node() = following::pubdate )]">
78     <xsl:sort order="descending" data-type="number" select="."/>
79     <xsl:element name="entry">
80      <xsl:attribute name="colname"><xsl:text>year_</xsl:text><xsl:value-of select="."/></xsl:attribute>
81      <xsl:element name="emphasis">
82       <xsl:attribute name="role">bold</xsl:attribute>
83<xsl:variable name="nb_current">
84 <xsl:variable name="current_year"><xsl:value-of select="."/></xsl:variable>
85 <xsl:value-of select="count(/descendant::biblioentry[child::biblioset[child::pubdate=$current_year]])"/>
86</xsl:variable>
87       <xsl:value-of select="$nb_current"/>
88      </xsl:element>
89     </xsl:element>
90    </xsl:for-each>
91   </xsl:element>
92   <xsl:variable name="year_min">
93    <xsl:value-of select="///pubdate[not(. &gt; ///pubdate)]"/>
94   </xsl:variable>
95   <xsl:variable name="year_max">
96    <xsl:value-of select="///pubdate[not(. &lt; ///pubdate)]"/>
97   </xsl:variable>
98   <xsl:element name="row">
99    <xsl:element name="entry">
100     <xsl:attribute name="namest"><xsl:value-of select="concat('year_',$year_max)"/></xsl:attribute>
101      <xsl:attribute name="nameend"><xsl:value-of select="concat('year_',$year_min)"/></xsl:attribute>
102     <xsl:element name="emphasis">
103      <xsl:attribute name="role">bold</xsl:attribute>
104       <xsl:value-of select="count(/descendant::biblioentry)"/>
105     </xsl:element>
106    </xsl:element>
107   </xsl:element>
108  </xsl:element>
109 </xsl:element>
110</xsl:element>
111</xsl:template>
112
113<xsl:template match="bibliography">
114
115<article lang="en">
116<title>NEMO - Publications - Papers by years</title>
117<articleinfo>
118<authorgroup>
119<author><personname><firstname>Sébastien</firstname> <surname>Masson</surname></personname></author>
120<author><personname><firstname>Françoise</firstname> <surname>Pinsard</surname></personname></author>
121<!--++-->
122</authorgroup>
123<keywordset>
124<keyword>NEMO</keyword>
125</keywordset>
126<!-- ++ date -->
127</articleinfo>
128<highlights id="top">
129<para>
130This page intents to provide an exhaustive list of the papers that have used
131NEMO or OPA and/or results from them.
132Obvioulsy many papers are missing.
133If you find omissions or mistakes please ask some modification via
134<xsl:element name="ulink">
135 <xsl:attribute name="url">
136  <xsl:value-of select="'./bibnemomain.php'"/>
137 </xsl:attribute>
138 <xsl:text>Nemo Survey main page</xsl:text>
139</xsl:element>.
140</para>
141</highlights>
142<para>
143You can also see <quote>NEMO - Publications - Papers</quote> sorted by
144<xsl:text>authors</xsl:text>
145authors in
146<xsl:element name="ulink">
147 <xsl:attribute name="url">
148  <xsl:value-of select="'./bibnemomaf02.html'"/>
149 </xsl:attribute>
150 <xsl:text>one big document </xsl:text>
151</xsl:element>
152<xsl:text> or in </xsl:text>
153<xsl:element name="ulink">
154 <xsl:attribute name="url">
155  <xsl:value-of select="'../many/bibnemomaf03/index.html'"/>
156 </xsl:attribute>
157 <xsl:text>several </xsl:text>
158</xsl:element> <xsl:text> (one by author)</xsl:text>.
159</para>
160
161<para>
162Last update of the bibliography databank : <xsl:value-of select="bibliographyinfo/date"/>
163</para>
164
165<xsl:call-template name="years"/>
166
167<figure id="fig_pubbyyears"><title>Nb of publications by years</title>
168<mediaobject> 
169<imageobject> 
170<imagedata fileref="../../images/years.png" format="PNG"/>
171</imageobject>
172<textobject><phrase>[years.png]</phrase></textobject>
173</mediaobject>
174</figure>
175
176<sect1 id="intro">
177<title>Introduction</title>
178<para>
179This document provide bibliography sorted by year.
180</para>
181</sect1>
182
183   <!-- loop on years -->
184   <xsl:for-each select="$list_years">
185    <xsl:sort order="descending" data-type="number" select="."/>
186    <xsl:call-template name="one_year">
187     <xsl:with-param name="year" select="."/>
188    </xsl:call-template>
189   </xsl:for-each>
190</article>
191</xsl:template>
192
193<xsl:template match="bibliographyinfo/date"/>
194<xsl:template match="bibliography/title"/>
195
196<xsl:template name="one_year">
197<xsl:param name="year"/>
198<!--
199 <xsl:message>call template avec <xsl:value-of select="$year"/></xsl:message>
200 <xsl:message>noeud courant <xsl:value-of select="name(.)"/></xsl:message>
201-->
202 <xsl:message>
203year_<xsl:value-of select="$year"/> : <xsl:value-of select="count(/descendant::biblioentry[child::biblioset[child::pubdate=$year]]) + count(/descendant::biblioentry[child::date=$year])"/> 
204</xsl:message>
205 <xsl:element name="sect1">
206  <xsl:attribute name="id"><xsl:value-of select="concat('year_',$year)"/></xsl:attribute>
207  <xsl:element name="title">
208   <xsl:value-of select="$year"/>
209   <xsl:element name="ulink">
210   <xsl:attribute name="url"><xsl:text>#top</xsl:text></xsl:attribute>
211   <xsl:element name="inlinemediaobject">
212     <xsl:element name="imageobject">
213      <xsl:element name="imagedata">
214       <xsl:attribute name="fileref">../../images/globalicondl11x10_up.gif</xsl:attribute>
215      </xsl:element>
216     </xsl:element>
217     <xsl:element name="textobject">
218      <xsl:element name="phrase">
219       <xsl:text>top</xsl:text>
220      </xsl:element>
221     </xsl:element>
222    </xsl:element>
223   </xsl:element>
224  </xsl:element>
225  <orderedlist>
226   <xsl:for-each select="/descendant::biblioentry[child::biblioset[child::pubdate=$year]]|/descendant::biblioentry[child::date=$year]">
227    <xsl:sort order="ascending" data-type="text" select="./authorgroup/author/personname/surname"/>
228    <xsl:sort order="ascending" data-type="text" select="./authorgroup/author/personname/firstname"/>
229    <xsl:call-template name="one_biblioentry">
230     <xsl:with-param name="visu_modif" select="'visu'"/>
231     <xsl:with-param name="my_biblioentry" select="."/>
232    </xsl:call-template>
233   </xsl:for-each>
234  </orderedlist>
235 </xsl:element>
236</xsl:template>
237
238</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.