Statistics
| Revision:

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

History | View | Annotate | Download (7.8 kB)

1 1094 mdecorde
<?xml version="1.0"?>
2 2398 sjacqu01
<xsl:stylesheet
3 2398 sjacqu01
	xmlns:edate="http://exslt.org/dates-and-times"
4 2398 sjacqu01
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5 2398 sjacqu01
	xmlns:tei="http://www.tei-c.org/ns/1.0"
6 2398 sjacqu01
	xmlns:xd="http://www.pnp-software.com/XSLTdoc"
7 2398 sjacqu01
	xmlns:txm="http://textometrie.org/1.0"
8 2398 sjacqu01
	xmlns:xi="http://www.w3.org/2001/XInclude"
9 2398 sjacqu01
	xmlns:svg="http://www.w3.org/2000/svg"
10 2398 sjacqu01
	xmlns:math="http://www.w3.org/1998/Math/MathML"
11 2398 sjacqu01
	exclude-result-prefixes="tei edate xd txm xi svg math" version="2.0">
12 1094 mdecorde
13 2398 sjacqu01
	<xsl:output method="xml" encoding="utf-8"
14 2398 sjacqu01
		omit-xml-declaration="no" indent="yes" />
15 1094 mdecorde
16 2398 sjacqu01
	<xd:doc type="stylesheet">
17 2398 sjacqu01
		<xd:short>
18 2398 sjacqu01
			Cette feuille permet de convertir les transcription des
19 2398 sjacqu01
			Chartes de Fontenay au format XML-TEI du projet Oriflamms.
20 2398 sjacqu01
		</xd:short>
21 2398 sjacqu01
		<xd:detail>
22 2398 sjacqu01
			This stylesheet is free software; you can redistribute it and/or
23 2398 sjacqu01
			modify it under the terms of the GNU Lesser General Public
24 2398 sjacqu01
			License as published by the Free Software Foundation; either
25 2398 sjacqu01
			version 3 of the License, or (at your option) any later version.
26 2398 sjacqu01
27 2398 sjacqu01
			This stylesheet is distributed in the hope that it will be useful,
28 2398 sjacqu01
			but WITHOUT ANY WARRANTY; without even the implied warranty of
29 2398 sjacqu01
			MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
30 2398 sjacqu01
			Lesser General Public License for more details.
31 2398 sjacqu01
32 2398 sjacqu01
			You should have received a copy of GNU Lesser Public License with
33 2398 sjacqu01
			this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
34 2398 sjacqu01
		</xd:detail>
35 2398 sjacqu01
		<xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
36 2398 sjacqu01
		<xd:copyright>2015, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
37 2398 sjacqu01
	</xd:doc>
38 2398 sjacqu01
39 2398 sjacqu01
	<xsl:strip-space elements="*" />
40 2398 sjacqu01
41 2398 sjacqu01
	<xsl:param name="baseMsSiglum">
42 2398 sjacqu01
		A
43 2398 sjacqu01
	</xsl:param>
44 2398 sjacqu01
45 2398 sjacqu01
	<xsl:variable name="baseMsPattern">
46 2398 sjacqu01
		<xsl:value-of
47 2398 sjacqu01
			select="concat('^#?',$baseMsSiglum,'| #?',$baseMsSiglum)" />
48 2398 sjacqu01
	</xsl:variable>
49 2398 sjacqu01
50 2398 sjacqu01
	<xsl:template match="node()">
51 2398 sjacqu01
		<!-- Copy the current node -->
52 2398 sjacqu01
		<xsl:copy>
53 2398 sjacqu01
			<!-- Including any attributes it has and any child nodes -->
54 2398 sjacqu01
			<xsl:apply-templates select="@*|node()" />
55 2398 sjacqu01
		</xsl:copy>
56 2398 sjacqu01
	</xsl:template>
57 2398 sjacqu01
58 2398 sjacqu01
	<!-- On supprime les attributs par défaut de la DTD TEI -->
59 2398 sjacqu01
60 2398 sjacqu01
	<xsl:template match="@*">
61 2398 sjacqu01
		<xsl:choose>
62 2398 sjacqu01
			<xsl:when
63 2398 sjacqu01
				test="matches(name(.),'^(part|instant|anchored|full)$')" />
64 2398 sjacqu01
			<xsl:otherwise>
65 2398 sjacqu01
				<xsl:copy />
66 2398 sjacqu01
			</xsl:otherwise>
67 2398 sjacqu01
		</xsl:choose>
68 2398 sjacqu01
	</xsl:template>
69 2398 sjacqu01
70 2398 sjacqu01
	<xsl:template match="@facs">
71 2398 sjacqu01
		<xsl:attribute name="facs">
72 2398 sjacqu01
      <xsl:value-of select="replace(.,'\tif$','.png')" />
73 1094 mdecorde
    </xsl:attribute>
74 2398 sjacqu01
	</xsl:template>
75 1094 mdecorde
76 2398 sjacqu01
	<xsl:template match="tei:teiHeader">
77 2398 sjacqu01
		<xsl:copy>
78 2398 sjacqu01
			<xsl:apply-templates select="@*" />
79 2398 sjacqu01
			<xsl:apply-templates />
80 2398 sjacqu01
		</xsl:copy>
81 2398 sjacqu01
	</xsl:template>
82 1094 mdecorde
83 1094 mdecorde
84 2398 sjacqu01
	<xsl:template match="tei:revisionDesc">
85 2398 sjacqu01
		<xsl:copy>
86 2398 sjacqu01
			<xsl:apply-templates select="@*" />
87 2398 sjacqu01
			<change xmlns="http://www.tei-c.org/ns/1.0" when="2007-01-01"
88 2398 sjacqu01
				who="#DS">Publication du document original</change>
89 2398 sjacqu01
			<!-- information récupérée à partir de /TEI/text[1]/front[1]/titlePage[1]/docDate[1] -->
90 2398 sjacqu01
			<change xmlns="http://www.tei-c.org/ns/1.0"
91 2398 sjacqu01
				when="{format-date(current-date(),'[Y]-[M01]-[D01]')}" who="#auto">Conversion
92 2398 sjacqu01
				automatique au format XML-TEI-Oriflamms</change>
93 2398 sjacqu01
			<xsl:apply-templates />
94 2398 sjacqu01
		</xsl:copy>
95 2398 sjacqu01
	</xsl:template>
96 1094 mdecorde
97 2398 sjacqu01
	<xsl:template match="tei:encodingDesc">
98 2398 sjacqu01
		<xsl:copy>
99 2398 sjacqu01
			<xsl:apply-templates select="@*" />
100 2398 sjacqu01
			<xsl:apply-templates />
101 2398 sjacqu01
			<xsl:if test="not(//tei:prefixDef[@ident='ori'])">
102 2398 sjacqu01
				<listPrefixDef xmlns="http://www.tei-c.org/ns/1.0">
103 2398 sjacqu01
					<prefixDef xmlns="http://www.tei-c.org/ns/1.0"
104 2398 sjacqu01
						ident="ori" matchPattern="([a-z]+)"
105 2398 sjacqu01
						replacementPattern="oriflamms-annotation-scheme.xml#$1">
106 2398 sjacqu01
						<p>
107 2398 sjacqu01
							In the context of this project, private URIs with the prefix
108 2398 sjacqu01
							"ori" point to
109 2398 sjacqu01
							<gi>interp</gi>
110 2398 sjacqu01
							elements in the project's
111 2398 sjacqu01
							oriflamms-annotation-scheme.xml file.
112 2398 sjacqu01
						</p>
113 2398 sjacqu01
					</prefixDef>
114 2398 sjacqu01
				</listPrefixDef>
115 2398 sjacqu01
			</xsl:if>
116 2398 sjacqu01
		</xsl:copy>
117 2398 sjacqu01
	</xsl:template>
118 1094 mdecorde
119 2398 sjacqu01
	<!-- On restructure le document pour avoir un TEI par charte -->
120 1094 mdecorde
121 2398 sjacqu01
	<!-- TEI devient teiCorpus -->
122 1094 mdecorde
123 2398 sjacqu01
	<xsl:template match="tei:TEI">
124 2398 sjacqu01
		<xsl:element name="teiCorpus"
125 2398 sjacqu01
			xmlns="http://www.tei-c.org/ns/1.0">
126 2398 sjacqu01
			<xsl:apply-templates select="@*" />
127 2398 sjacqu01
			<xsl:apply-templates />
128 2398 sjacqu01
		</xsl:element>
129 2398 sjacqu01
	</xsl:template>
130 1094 mdecorde
131 2398 sjacqu01
	<!-- on supprime l'élément text de niveau 1 et travaille directement sur
132 2398 sjacqu01
		le niveau 2 (l'élément group intermédiaire disparait) -->
133 1094 mdecorde
134 2398 sjacqu01
	<xsl:template match="tei:TEI/tei:text">
135 2398 sjacqu01
		<xsl:apply-templates select="descendant::tei:text" />
136 2398 sjacqu01
	</xsl:template>
137 1094 mdecorde
138 2398 sjacqu01
	<xsl:template match="tei:text//tei:text">
139 2398 sjacqu01
140 2398 sjacqu01
		<TEI xmlns="http://www.tei-c.org/ns/1.0">
141 2398 sjacqu01
			<teiHeader xmlns="http://www.tei-c.org/ns/1.0">
142 2398 sjacqu01
				<fileDesc xmlns="http://www.tei-c.org/ns/1.0">
143 2398 sjacqu01
					<titleStmt xmlns="http://www.tei-c.org/ns/1.0">
144 2398 sjacqu01
						<title xmlns="http://www.tei-c.org/ns/1.0">
145 2398 sjacqu01
							<xsl:text>Acte original </xsl:text>
146 2398 sjacqu01
							<xsl:value-of
147 2398 sjacqu01
								select="substring-after(preceding-sibling::comment()[contains(.,'acte original')][1],'acte original ')" />
148 2398 sjacqu01
						</title>
149 2398 sjacqu01
						<author xmlns="http://www.tei-c.org/ns/1.0">
150 2398 sjacqu01
							<xsl:value-of select="descendant::tei:docAuthor" />
151 2398 sjacqu01
						</author>
152 2398 sjacqu01
					</titleStmt>
153 2398 sjacqu01
					<publicationStmt
154 2398 sjacqu01
						xmlns="http://www.tei-c.org/ns/1.0">
155 2398 sjacqu01
						<p xmlns="http://www.tei-c.org/ns/1.0">See the header of the teiCorpus</p>
156 2398 sjacqu01
					</publicationStmt>
157 2398 sjacqu01
					<!-- les éléments listWit et listBibl sont placés dans sourceDesc -->
158 2398 sjacqu01
					<sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
159 2398 sjacqu01
						<xsl:copy-of select="descendant::tei:listWit" />
160 2398 sjacqu01
						<xsl:copy-of select="descendant::tei:listBibl[1]"></xsl:copy-of>
161 2398 sjacqu01
					</sourceDesc>
162 2398 sjacqu01
				</fileDesc>
163 2398 sjacqu01
				<profileDesc xmlns="http://www.tei-c.org/ns/1.0">
164 2398 sjacqu01
					<!-- docDate devient profileDesc/creation/date[@type='documentCreation'] -->
165 2398 sjacqu01
					<creation xmlns="http://www.tei-c.org/ns/1.0">
166 2398 sjacqu01
						<xsl:apply-templates
167 2398 sjacqu01
							select="descendant::tei:docDate" />
168 2398 sjacqu01
					</creation>
169 2398 sjacqu01
					<!-- argument devient profileDesc/abstract -->
170 2398 sjacqu01
					<xsl:apply-templates
171 2398 sjacqu01
						select="descendant::tei:argument" />
172 2398 sjacqu01
				</profileDesc>
173 2398 sjacqu01
			</teiHeader>
174 2398 sjacqu01
			<text xmlns="http://www.tei-c.org/ns/1.0">
175 2398 sjacqu01
				<body xmlns="http://www.tei-c.org/ns/1.0">
176 2398 sjacqu01
					<xsl:apply-templates
177 2398 sjacqu01
						select="descendant::tei:div1" />
178 2398 sjacqu01
				</body>
179 2398 sjacqu01
			</text>
180 2398 sjacqu01
		</TEI>
181 2398 sjacqu01
	</xsl:template>
182 2398 sjacqu01
183 2398 sjacqu01
	<xsl:template match="tei:docDate[ancestor::tei:group]">
184 2398 sjacqu01
		<date type="documentCreation" xmlns="http://www.tei-c.org/ns/1.0">
185 2398 sjacqu01
			<xsl:apply-templates select="@*" />
186 2398 sjacqu01
			<xsl:apply-templates />
187 2398 sjacqu01
		</date>
188 2398 sjacqu01
	</xsl:template>
189 2398 sjacqu01
190 2398 sjacqu01
	<xsl:template match="tei:argument">
191 2398 sjacqu01
		<abstract xmlns="http://www.tei-c.org/ns/1.0">
192 2398 sjacqu01
			<xsl:apply-templates />
193 2398 sjacqu01
		</abstract>
194 2398 sjacqu01
	</xsl:template>
195 2398 sjacqu01
196 2398 sjacqu01
197 2398 sjacqu01
	<!-- patch of the wrong use of @break -->
198 2398 sjacqu01
199 2398 sjacqu01
	<xsl:template match="tei:lb[@break='yes']">
200 2398 sjacqu01
		<xsl:copy>
201 2398 sjacqu01
			<xsl:apply-templates select="@*" />
202 2398 sjacqu01
			<xsl:attribute name="break">no</xsl:attribute>
203 2398 sjacqu01
		</xsl:copy>
204 2398 sjacqu01
	</xsl:template>
205 2398 sjacqu01
206 2398 sjacqu01
	<!-- on ajoute un attribut pour faciliter l'identification des segments
207 2398 sjacqu01
		à ne pas aligner -->
208 2398 sjacqu01
209 2398 sjacqu01
	<xsl:template
210 2398 sjacqu01
		match="tei:choice/tei:expan|tei:choice/tei:corr">
211 2398 sjacqu01
		<xsl:copy>
212 2398 sjacqu01
			<xsl:apply-templates select="@*" />
213 2398 sjacqu01
			<xsl:attribute name="ana">ori:align-no</xsl:attribute>
214 2398 sjacqu01
			<xsl:apply-templates />
215 2398 sjacqu01
		</xsl:copy>
216 2398 sjacqu01
	</xsl:template>
217 2398 sjacqu01
218 2398 sjacqu01
	<xsl:template
219 2398 sjacqu01
		match="tei:rdg[not(matches(@wit,$baseMsPattern))]">
220 2398 sjacqu01
		<xsl:copy>
221 2398 sjacqu01
			<xsl:apply-templates select="@*" />
222 2398 sjacqu01
			<xsl:attribute name="ana">ori:align-no</xsl:attribute>
223 2398 sjacqu01
			<xsl:apply-templates />
224 2398 sjacqu01
		</xsl:copy>
225 2398 sjacqu01
	</xsl:template>
226 2398 sjacqu01
227 2398 sjacqu01
	<xsl:template
228 2398 sjacqu01
		match="text()[following-sibling::*[1][self::tei:milestone or self::tei:pb or self::tei:cb or self::tei:lb] and following-sibling::tei:lb[1][@break]]">
229 2398 sjacqu01
		<xsl:choose>
230 2398 sjacqu01
			<!-- patch d'espace blanc devant les sauts de ligne à l'intérieur de mots -->
231 2398 sjacqu01
			<xsl:when test="matches(.,'\s+$')">
232 2398 sjacqu01
				<xsl:value-of select="replace(.,'\s+$','')" />
233 2398 sjacqu01
			</xsl:when>
234 2398 sjacqu01
			<xsl:otherwise>
235 2398 sjacqu01
				<xsl:copy />
236 2398 sjacqu01
			</xsl:otherwise>
237 2398 sjacqu01
		</xsl:choose>
238 2398 sjacqu01
	</xsl:template>
239 2398 sjacqu01
240 1094 mdecorde
</xsl:stylesheet>