Statistics
| Revision:

root / tmp / org.txm.oriflamms.rcp / groovy / org / txm / macro / oriflamms / prepare / oriflamms-convert-inscriptions-oriflammsxml.xsl @ 2398

History | View | Annotate | Download (8.9 kB)

1
<?xml version="1.0"?>
2
<xsl:stylesheet
3
	xmlns:edate="http://exslt.org/dates-and-times"
4
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5
	xmlns:tei="http://www.tei-c.org/ns/1.0"
6
	xmlns:xd="http://www.pnp-software.com/XSLTdoc"
7
	xmlns:txm="http://textometrie.org/1.0"
8
	xmlns:xi="http://www.w3.org/2001/XInclude"
9
	xmlns:svg="http://www.w3.org/2000/svg"
10
	xmlns:math="http://www.w3.org/1998/Math/MathML"
11
	exclude-result-prefixes="tei edate xd txm xi svg math" version="2.0">
12

    
13
	<xsl:output method="xml" encoding="utf-8"
14
		omit-xml-declaration="no" indent="yes" />
15

    
16
	<xd:doc type="stylesheet">
17
		<xd:short>
18
			Cette feuille permet de convertir la transcription tokénisée des
19
			Chartes de Fontenay au format XML-TEI du projet Oriflamms.
20
		</xd:short>
21
		<xd:detail>
22
			This stylesheet is free software; you can redistribute it and/or
23
			modify it under the terms of the GNU Lesser General Public
24
			License as published by the Free Software Foundation; either
25
			version 3 of the License, or (at your option) any later version.
26

    
27
			This stylesheet is distributed in the hope that it will be useful,
28
			but WITHOUT ANY WARRANTY; without even the implied warranty of
29
			MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
30
			Lesser General Public License for more details.
31

    
32
			You should have received a copy of GNU Lesser Public License with
33
			this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
34
		</xd:detail>
35
		<xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
36
		<xd:copyright>2015, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
37
	</xd:doc>
38

    
39
	<xsl:variable name="filename">
40
		<xsl:analyze-string select="document-uri(.)"
41
			regex="^(.*)/([^/]+)\.[^/]+$">
42
			<xsl:matching-substring>
43
				<xsl:value-of select="regex-group(2)" />
44
			</xsl:matching-substring>
45
		</xsl:analyze-string>
46
	</xsl:variable>
47

    
48

    
49
	<xsl:strip-space elements="*" />
50
	<xsl:template match="/">
51
		<xsl:apply-templates />
52
	</xsl:template>
53

    
54

    
55
	<xsl:template match="*">
56
		<xsl:copy>
57
			<xsl:apply-templates select="@*" />
58
			<xsl:apply-templates
59
				select="*|processing-instruction()|comment()|text()" />
60
		</xsl:copy>
61
	</xsl:template>
62

    
63
	<xsl:template match="comment()|text()">
64
		<xsl:copy />
65
	</xsl:template>
66

    
67
	<xsl:template match="processing-instruction()" />
68

    
69
	<!-- On supprime les attributs par défaut de la DTD TEI -->
70

    
71
	<xsl:template match="@*">
72
		<xsl:choose>
73
			<xsl:when
74
				test="matches(name(.),'^(part|instant|anchored|full)$')" />
75
			<!-- <xsl:when test="matches(name(.),'rend')"> <xsl:choose> <xsl:when 
76
				test="matches(.,'^aggl$')"><xsl:attribute name="rend">space-after(none)</xsl:attribute></xsl:when> 
77
				<xsl:otherwise><xsl:copy/></xsl:otherwise> </xsl:choose> </xsl:when> -->
78
			<xsl:otherwise>
79
				<xsl:copy />
80
			</xsl:otherwise>
81
		</xsl:choose>
82
	</xsl:template>
83

    
84
	<xsl:template match="tei:teiHeader">
85
		<xsl:copy>
86
			<xsl:apply-templates select="@*" />
87
			<xsl:apply-templates />
88
		</xsl:copy>
89
	</xsl:template>
90

    
91

    
92
	<xsl:template match="tei:revisionDesc">
93
		<xsl:copy>
94
			<xsl:apply-templates select="@*" />
95
			<change xmlns="http://www.tei-c.org/ns/1.0" when="2007-01-01"
96
				who="#DS">Publication du document original</change>
97
			<!-- information récupérée à partir de /TEI/text[1]/front[1]/titlePage[1]/docDate[1] -->
98
			<change xmlns="http://www.tei-c.org/ns/1.0"
99
				when="{format-date(current-date(),'[Y]-[M01]-[D01]')}" who="#auto">Conversion
100
				automatique au format XML-TEI-Oriflamms</change>
101
			<xsl:apply-templates />
102
		</xsl:copy>
103
	</xsl:template>
104

    
105
	<xsl:template match="tei:encodingDesc">
106
		<xsl:copy>
107
			<xsl:apply-templates select="@*" />
108
			<xsl:apply-templates />
109
			<xsl:if test="not(//tei:prefixDef[@ident='ori'])">
110
				<listPrefixDef xmlns="http://www.tei-c.org/ns/1.0">
111
					<prefixDef xmlns="http://www.tei-c.org/ns/1.0"
112
						ident="ori" matchPattern="([a-z]+)"
113
						replacementPattern="oriflamms-annotation-scheme.xml#$1">
114
						<p>
115
							In the context of this project, private URIs with the prefix
116
							"ori" point to
117
							<gi>interp</gi>
118
							elements in the project's
119
							oriflamms-annotation-scheme.xml file.
120
						</p>
121
					</prefixDef>
122
				</listPrefixDef>
123
			</xsl:if>
124
		</xsl:copy>
125
	</xsl:template>
126

    
127
	<!-- On restructure le document pour avoir un TEI par charte -->
128

    
129
	<!-- TEI devient teiCorpus -->
130

    
131
	<xsl:template match="tei:TEI">
132
		<xsl:element name="teiCorpus"
133
			xmlns="http://www.tei-c.org/ns/1.0">
134
			<xsl:apply-templates select="@*" />
135
			<xsl:apply-templates select="tei:teiHeader" />
136
			<facsimile xmlns="http://www.tei-c.org/ns/1.0">
137
				<xsl:apply-templates select="tei:facsimile" />
138
			</facsimile>
139
			<xsl:apply-templates select="tei:text" />
140
		</xsl:element>
141
	</xsl:template>
142

    
143
	<xsl:template match="tei:facsimile">
144
		<xsl:apply-templates />
145
	</xsl:template>
146

    
147

    
148
	<!-- on supprime l'élément text de niveau 1 et travaille directement sur 
149
		le niveau 2 (l'élément group intermédiaire disparait) -->
150

    
151
	<xsl:template match="tei:TEI/tei:text">
152
		<xsl:apply-templates select="descendant::tei:text" />
153
	</xsl:template>
154

    
155
	<xsl:template
156
		match="tei:text//tei:text[descendant::*[@facs]]">
157

    
158
		<TEI xmlns="http://www.tei-c.org/ns/1.0">
159
			<teiHeader xmlns="http://www.tei-c.org/ns/1.0">
160
				<fileDesc xmlns="http://www.tei-c.org/ns/1.0">
161
					<titleStmt xmlns="http://www.tei-c.org/ns/1.0">
162
						<title xmlns="http://www.tei-c.org/ns/1.0">
163
							<xsl:text>Acte original </xsl:text>
164
							<xsl:value-of
165
								select="substring-after(preceding-sibling::comment()[contains(.,'acte original')][1],'acte original ')" />
166
						</title>
167
						<author xmlns="http://www.tei-c.org/ns/1.0">
168
							<xsl:value-of select="descendant::tei:docAuthor" />
169
						</author>
170
					</titleStmt>
171
					<publicationStmt
172
						xmlns="http://www.tei-c.org/ns/1.0">
173
						<p xmlns="http://www.tei-c.org/ns/1.0">See the header of the teiCorpus</p>
174
					</publicationStmt>
175
					<!-- les éléments listWit et listBibl sont placés dans sourceDesc -->
176
					<sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
177
						<xsl:copy-of select="descendant::tei:listWit" />
178
						<xsl:copy-of select="descendant::tei:listBibl[1]"></xsl:copy-of>
179
					</sourceDesc>
180
				</fileDesc>
181
				<profileDesc xmlns="http://www.tei-c.org/ns/1.0">
182
					<!-- docDate devient profileDesc/creation/date[@type='documentCreation'] -->
183
					<creation xmlns="http://www.tei-c.org/ns/1.0">
184
						<xsl:apply-templates
185
							select="descendant::tei:docDate" />
186
					</creation>
187
					<!-- argument devient profileDesc/abstract -->
188
					<xsl:apply-templates
189
						select="descendant::tei:argument" />
190
				</profileDesc>
191
			</teiHeader>
192
			<text xmlns="http://www.tei-c.org/ns/1.0">
193
				<xsl:apply-templates select="@*" />
194
				<xsl:variable name="facsID">
195
					<xsl:value-of
196
						select="replace(descendant::*[@facs][1]/@facs,'^#','')" />
197
				</xsl:variable>
198
				<milestone xmlns="http://www.tei-c.org/ns/1.0"
199
					unit="surface">
200
					<xsl:attribute name="xml:id">
201
            <xsl:value-of
202
						select="concat('surf_',$filename,'_',translate($facsID,' ()','_--'))" />
203
          </xsl:attribute>
204
				</milestone>
205
				<xsl:if test="not(descendant::tei:pb[@facs])">
206
					<pb xmlns="http://www.tei-c.org/ns/1.0">
207
						<xsl:attribute name="facs">
208
              <xsl:choose>
209
                <xsl:when
210
							test="matches(descendant::*[@facs][1]/@facs,'^#')">
211
                  <xsl:value-of
212
							select="//tei:graphic[following-sibling::tei:zone[@xml:id=$facsID]]/@url" />
213
                  <!--<xsl:value-of select="$facsID"/>-->
214
                </xsl:when>
215
                <xsl:otherwise><xsl:value-of
216
							select="descendant::*[@facs][1]/@facs" /></xsl:otherwise>
217
              </xsl:choose>
218
            </xsl:attribute>
219
					</pb>
220
				</xsl:if>
221
				<body xmlns="http://www.tei-c.org/ns/1.0">
222
					<xsl:apply-templates
223
						select="descendant::tei:div1" />
224
				</body>
225
			</text>
226
		</TEI>
227
	</xsl:template>
228

    
229
	<xsl:template
230
		match="tei:text//tei:text[not(descendant::*[@facs])]">
231
		<xsl:comment>
232
			No facs attribute provided for any element in this text (n="
233
			<xsl:value-of select="@n" />
234
			")!
235
		</xsl:comment>
236
		<xsl:comment>
237
			<xsl:copy-of select="." />
238
		</xsl:comment>
239
	</xsl:template>
240

    
241
	<xsl:template match="tei:docDate[ancestor::tei:group]">
242
		<date type="documentCreation" xmlns="http://www.tei-c.org/ns/1.0">
243
			<xsl:apply-templates select="@*" />
244
			<xsl:apply-templates />
245
		</date>
246
	</xsl:template>
247

    
248
	<xsl:template match="tei:argument">
249
		<abstract xmlns="http://www.tei-c.org/ns/1.0">
250
			<xsl:apply-templates />
251
		</abstract>
252
	</xsl:template>
253

    
254
	<!-- on ajoute un attribut pour faciliter l'identification des segments 
255
		à ne pas aligner -->
256

    
257
	<xsl:template
258
		match="tei:choice/tei:expan|tei:choice/tei:corr|tei:div1[@type='edition']">
259
		<xsl:copy>
260
			<xsl:apply-templates select="@*" />
261
			<xsl:attribute name="ana">ori:align-no</xsl:attribute>
262
			<xsl:apply-templates />
263
		</xsl:copy>
264
	</xsl:template>
265

    
266

    
267
</xsl:stylesheet>