Revision 489

tmp/org.txm.oriflamms.rcp/bin/oriflamms-convert-graalc-oriflammsxml.xsl (revision 489)
1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
4
  xmlns:xd="http://www.pnp-software.com/XSLTdoc"
5
  xmlns:txm="http://textometrie.org/1.0"
6
  exclude-result-prefixes="tei edate xd txm" version="2.0">
7

  
8
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="no"/>
9
  
10
  <xd:doc type="stylesheet">
11
    <xd:short>
12
      Cette feuille permet de convertir la transcription compacte de la 
13
      Queste del saint Graal au format XML-TEI du projet Oriflamms.
14
    </xd:short>
15
    <xd:detail>
16
      This stylesheet is free software; you can redistribute it and/or
17
      modify it under the terms of the GNU Lesser General Public
18
      License as published by the Free Software Foundation; either
19
      version 3 of the License, or (at your option) any later version.
20
      
21
      This stylesheet is distributed in the hope that it will be useful,
22
      but WITHOUT ANY WARRANTY; without even the implied warranty of
23
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24
      Lesser General Public License for more details.
25
      
26
      You should have received a copy of GNU Lesser Public License with
27
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
28
    </xd:detail>
29
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
30
    <xd:copyright>2014, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
31
  </xd:doc>
32
  
33
  <xsl:template match="/">
34
    <xsl:apply-templates/>
35
  </xsl:template>
36
  
37
  
38
  <xsl:template match="*">
39
        <xsl:copy>
40
          <xsl:apply-templates select="@*"/>
41
          <xsl:apply-templates select="*|processing-instruction()|comment()|text()"/>
42
        </xsl:copy>
43
  </xsl:template>
44

  
45
  <xsl:template match="comment()|text()">
46
    <xsl:copy/>
47
  </xsl:template>
48
  
49
  <xsl:template match="processing-instruction()"></xsl:template>
50

  
51
  <!-- On supprime les attributs par défaut de la DTD TEI -->
52
  
53
  <xsl:template match="@*">
54
    <xsl:choose>
55
      <xsl:when test="matches(name(.),'^(part|instant|anchored|full)$')"/>
56
      <xsl:when test="matches(name(.),'rend')">
57
        <xsl:choose>
58
          <xsl:when test="matches(.,'^aggl$')"><xsl:attribute name="rend">space-after(none)</xsl:attribute></xsl:when>
59
          <xsl:otherwise><xsl:copy/></xsl:otherwise>
60
        </xsl:choose>
61
      </xsl:when>
62
      <xsl:otherwise><xsl:copy/></xsl:otherwise>
63
    </xsl:choose>
64
  </xsl:template>
65

  
66
  <xsl:template match="tei:teiHeader">    
67
      <xsl:copy>
68
        <xsl:apply-templates select="@*"/>
69
        <xsl:apply-templates/>
70
      </xsl:copy>    
71
  </xsl:template>
72

  
73
<xsl:template match="tei:revisionDesc">
74
  <xsl:copy>
75
  <xsl:apply-templates select="@*"/>
76
  <change xmlns="http://www.tei-c.org/ns/1.0" when="{format-date(current-date(),'[Y]-[M01]-[D01]')}" who="#auto">Conversion automatique au format XML-TEI-Oriflamms</change>
77
  <xsl:apply-templates/>
78
  </xsl:copy>
79
</xsl:template>
80
  
81
  <xsl:template match="tei:encodingDesc">
82
    <xsl:copy>
83
      <xsl:apply-templates select="@*"/>
84
      <xsl:apply-templates/>
85
      <xsl:if test="not(//tei:prefixDef[@ident='ori'])">
86
        <listPrefixDef xmlns="http://www.tei-c.org/ns/1.0">
87
          <prefixDef xmlns="http://www.tei-c.org/ns/1.0" ident="ori" 
88
            matchPattern="([a-z]+)" 
89
            replacementPattern="oriflamms-annotation-scheme.xml#$1">
90
            <p>In the context of this project, private URIs with the prefix
91
              "ori" point to <gi>interp</gi> elements in the project's
92
              oriflamms-annotation-scheme.xml file.
93
            </p>
94
          </prefixDef>
95
        </listPrefixDef>
96
      </xsl:if>
97
    </xsl:copy>
98
  </xsl:template>
99

  
100

  
101
<xsl:template match="tei:cb[@rend='hidden']">
102
  <xsl:comment>cb factice supprimé</xsl:comment>
103
</xsl:template>
104

  
105
<xsl:template match="tei:note|tei:supplied[not(descendant::tei:lb)]">
106
  <xsl:copy>
107
    <xsl:apply-templates select="@*"/>
108
    <xsl:attribute name="ana">
109
      <xsl:if test="@ana"><xsl:value-of select="concat(@ana,' ')"/></xsl:if>
110
      <xsl:text>ori:align-no</xsl:text>
111
    </xsl:attribute>
112
    <xsl:apply-templates/>
113
  </xsl:copy>
114
</xsl:template>
115
  
116
  <xsl:template match="tei:supplied[descendant::tei:lb]">
117
    <xsl:comment>Ajout éditorial supprimé.</xsl:comment>
118
  </xsl:template>
119

  
120
<!--<xsl:template match="tei:pb[not(preceding-sibling::*[1][self::tei:milestone[@unit='surface']] or ancestor::tei:supplied)]">
121
  <milestone xmlns="http://www.tei-c.org/ns/1.0" unit="surface" facs="{@facs}"/>
122
  <xsl:copy>
123
    <xsl:apply-templates select="@*"/>
124
  </xsl:copy>
125
</xsl:template>-->
126

  
127
<xsl:template match="tei:w[matches(@type,'^PON')]">
128
  <pc xmlns="http://www.tei-c.org/ns/1.0">
129
    <xsl:apply-templates select="@*"/>
130
    <xsl:analyze-string select="." regex="^(.*)%(.*)%(.*)$">
131
      <xsl:matching-substring>
132
        <xsl:choose>
133
          <xsl:when test="matches(regex-group(3),'^$')">
134
            <xsl:attribute name="ana">ori:align-no</xsl:attribute>
135
            <reg xmlns="http://www.tei-c.org/ns/1.0" ana="ori:align-no"><xsl:value-of select="regex-group(1)"/></reg>
136
          </xsl:when>
137
          <xsl:when test="matches(regex-group(1),'^$')">
138
            <orig xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="regex-group(3)"/></orig>
139
          </xsl:when>
140
          <xsl:otherwise>
141
            <choice xmlns="http://www.tei-c.org/ns/1.0">
142
              <reg xmlns="http://www.tei-c.org/ns/1.0" ana="ori:align-no"><xsl:value-of select="regex-group(1)"/></reg>
143
              <orig xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="regex-group(3)"/></orig>
144
            </choice>
145
          </xsl:otherwise>
146
        </xsl:choose>        
147
      </xsl:matching-substring>
148
      <xsl:non-matching-substring><xsl:value-of select="."/></xsl:non-matching-substring>
149
    </xsl:analyze-string>
150
  </pc>
151
</xsl:template>
152

  
153
  <xsl:template match="tei:orig">
154
    <xsl:apply-templates/>
155
  </xsl:template>
156

  
157

  
158

  
159
  <xsl:template match="tei:w[not(matches(@type,'^PON'))]//text()|tei:del[not(ancestor::tei:w or descendant::tei:w)]//text()">
160
    <xsl:choose>
161
      <xsl:when test="matches(.,'^\s*$')"><xsl:copy/></xsl:when>
162
      <xsl:otherwise>
163
        <xsl:analyze-string select="." regex="#?\*[ijuvIJUVí]|#[A-Za-zÀ-ÿſ]|\{{\{{[^}}]+\}}\}}|#?\(\([^)]+\)\).?|_">
164
          <xsl:matching-substring>
165
            <xsl:choose>
166
              <xsl:when test="matches(.,'\(\(')">
167
                <xsl:analyze-string select="." regex="^#?\(\(([^\)]+)\)\)(.?)$">
168
                  <xsl:matching-substring>
169
                    <xsl:variable name="capitalize">
170
                      <xsl:choose>
171
                        <xsl:when test="matches(.,'^#') or matches(.,'_#')">yes</xsl:when>
172
                        <xsl:otherwise>no</xsl:otherwise>
173
                      </xsl:choose>
174
                    </xsl:variable>
175
                    <xsl:variable name="nextLetter"><xsl:value-of select="regex-group(2)"/></xsl:variable>
176
                    <xsl:variable name="abbrexpan">
177
                      <xsl:value-of select="replace(regex-group(1),'#','')"/>
178
                      <!--<xsl:value-of select="regex-group(1)"/>-->
179
                    </xsl:variable>
180
                    
181
                    <xsl:variable name="abbr">
182
                      <xsl:choose>
183
                        <xsl:when test="matches($abbrexpan,'_')"><xsl:value-of select="substring-before($abbrexpan,'_')"/></xsl:when>
184
                        <xsl:when test="matches($abbrexpan,'^#?(.&#x0305;|.&#x0363;|.&#x0364;|.&#x0365;|bn&#x0305;|ch&#x02BC;&#xA75B;|ch&#x0305;&#xA75B;|ch&#xA75B;&#x0305;|gn&#x0363;t|qn&#x0363;t|&#x035B;|&#x1DD1;|&#x204A;|&#x223B;|&#xA76F;|&#xA770;|&#xF153;|&#xF158;|&#xF1C8;)$')">
185
                          <xsl:value-of select="$abbrexpan"/>
186
                        </xsl:when>
187
                        <xsl:otherwise>xxx</xsl:otherwise>
188
                      </xsl:choose>
189
                    </xsl:variable>
190
                    <xsl:variable name="expannocap" as="element()">
191
                      <expan xmlns="http://www.tei-c.org/ns/1.0">
192
                        <xsl:choose>
193
                          <xsl:when test="matches($abbrexpan,'_')">
194
                            <xsl:analyze-string select="substring-after($abbrexpan,'_')" regex="\[([^\]]+)\]">
195
                              <xsl:matching-substring>
196
                                <ex xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="regex-group(1)"/></ex>
197
                              </xsl:matching-substring>
198
                              <xsl:non-matching-substring>
199
                                <xsl:copy/>
200
                              </xsl:non-matching-substring>
201
                            </xsl:analyze-string>
202
                          </xsl:when>
203
                          <xsl:when test="matches($abbrexpan,'^bn&#x0305;$')">b<ex xmlns="http://www.tei-c.org/ns/1.0">ie</ex>n</xsl:when>
204
                          <xsl:when test="matches($abbrexpan,'^(ch&#x02BC;&#xA75B;|ch&#x0305;&#xA75B;|ch&#xA75B;&#x0305;)$')">ch<ex xmlns="http://www.tei-c.org/ns/1.0">evalie</ex>r</xsl:when>
205
                          <xsl:when test="matches($abbrexpan,'gn&#x0363;t')">g<ex xmlns="http://www.tei-c.org/ns/1.0">r</ex><c xmlns="http://www.tei-c.org/ns/1.0" rend="position(combsup)">a</c>nt</xsl:when>
206
                          <xsl:when test="matches($abbrexpan,'qn&#x0363;t')">q<ex xmlns="http://www.tei-c.org/ns/1.0">u</ex><c xmlns="http://www.tei-c.org/ns/1.0" rend="position(combsup)">a</c>nt</xsl:when>
207
                          <xsl:when test="matches($abbrexpan,'.&#x0305;$')">
208
                            <xsl:value-of select="substring($abbrexpan,1,1)"/>
209
                            <xsl:choose>
210
                              <xsl:when test="matches($abbrexpan,'^[aeiou]') and matches($nextLetter,'[bmnp]')"><ex xmlns="http://www.tei-c.org/ns/1.0">m</ex></xsl:when>
211
                              <xsl:when test="matches($abbrexpan,'^[aeiou]')"><ex xmlns="http://www.tei-c.org/ns/1.0">n</ex></xsl:when>
212
                              <xsl:when test="matches($abbrexpan,'^[q]')"><ex xmlns="http://www.tei-c.org/ns/1.0">ue</ex></xsl:when>
213
                              <xsl:when test="matches($abbrexpan,'^[p]')"><ex xmlns="http://www.tei-c.org/ns/1.0">re</ex></xsl:when>
214
                              <xsl:otherwise>‹bar›</xsl:otherwise>
215
                            </xsl:choose>
216
                          </xsl:when>
217
                          <xsl:when test="matches($abbrexpan,'.&#x0363;')">
218
                            <xsl:value-of select="substring($abbrexpan,1,1)"/>
219
                            <xsl:choose>
220
                              <xsl:when test="matches($abbrexpan,'^[Qq]')"><ex xmlns="http://www.tei-c.org/ns/1.0">u</ex></xsl:when>
221
                              <xsl:otherwise><ex xmlns="http://www.tei-c.org/ns/1.0">r</ex></xsl:otherwise>
222
                            </xsl:choose>
223
                            <c xmlns="http://www.tei-c.org/ns/1.0" rend="position(combsup)">a</c>
224
                          </xsl:when>
225
                          <xsl:when test="matches($abbrexpan,'.&#x0364;')">
226
                            <xsl:value-of select="substring($abbrexpan,1,1)"/>
227
                            <xsl:choose>
228
                              <xsl:when test="matches($abbrexpan,'^[Qq]')"><ex xmlns="http://www.tei-c.org/ns/1.0">u</ex></xsl:when>
229
                              <xsl:otherwise><ex xmlns="http://www.tei-c.org/ns/1.0">r</ex></xsl:otherwise>
230
                            </xsl:choose>
231
                            <c xmlns="http://www.tei-c.org/ns/1.0" rend="position(combsup)">e</c>
232
                          </xsl:when>
233
                          <xsl:when test="matches($abbrexpan,'.&#x0365;')">
234
                            <xsl:value-of select="substring($abbrexpan,1,1)"/>
235
                            <xsl:choose>
236
                              <xsl:when test="matches($abbrexpan,'^[Qq]')"><ex xmlns="http://www.tei-c.org/ns/1.0">u</ex></xsl:when>
237
                              <xsl:otherwise><ex xmlns="http://www.tei-c.org/ns/1.0">r</ex></xsl:otherwise>
238
                            </xsl:choose>
239
                            <c xmlns="http://www.tei-c.org/ns/1.0" rend="position(combsup)">i</c>
240
                          </xsl:when>
241
                          <xsl:when test="matches($abbrexpan,'&#xA76F;') and matches($nextLetter,'[bmnp]')">
242
                            <ex xmlns="http://www.tei-c.org/ns/1.0">com</ex>
243
                          </xsl:when>
244
                          <xsl:when test="matches($abbrexpan,'&#xA76F;')">
245
                            <ex xmlns="http://www.tei-c.org/ns/1.0">con</ex>
246
                          </xsl:when>
247
                          <xsl:when test="matches($abbrexpan,'&#x035B;|&#xF1C8;')">
248
                            <ex xmlns="http://www.tei-c.org/ns/1.0">er</ex>
249
                          </xsl:when>
250
                          <xsl:when test="matches($abbrexpan,'&#x204A;|&#xF158;')">
251
                            <ex xmlns="http://www.tei-c.org/ns/1.0">et</ex>
252
                          </xsl:when>
253
                          <xsl:when test="matches($abbrexpan,'&#x1DD1;|&#xF153;')">
254
                            <ex xmlns="http://www.tei-c.org/ns/1.0">ur</ex>
255
                          </xsl:when>
256
                          <xsl:when test="matches($abbrexpan,'&#xA770;')">
257
                            <ex xmlns="http://www.tei-c.org/ns/1.0">us</ex>
258
                          </xsl:when>
259
                          <xsl:otherwise>
260
                            <ex xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="$abbrexpan"/></ex><!--<xsl:comment>Unknown expan!</xsl:comment>-->
261
                          </xsl:otherwise>
262
                        </xsl:choose></expan>
263
                    </xsl:variable>
264
                    <xsl:variable name="expan">
265
                      <xsl:choose>
266
                        <xsl:when test="$capitalize eq 'yes'">
267
                          <expan xmlns="http://www.tei-c.org/ns/1.0">
268
                            <xsl:for-each select="$expannocap/node()">
269
                              <xsl:choose>
270
                                <xsl:when test="self::text()[not(preceding-sibling::*)]">
271
                                  <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-small"><xsl:value-of select="upper-case(substring(.,1,1))"/></g><xsl:value-of select="substring(.,2)"/>
272
                                </xsl:when>
273
                                <xsl:when test="self::*[not(preceding-sibling::text())]">
274
                                  <xsl:copy><g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-small"><xsl:value-of select="upper-case(substring(.,1,1))"/></g><xsl:value-of select="substring(.,2)"/></xsl:copy>
275
                                </xsl:when>
276
                                <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise>
277
                              </xsl:choose>
278
                            </xsl:for-each>
279
                          </expan>
280
                        </xsl:when>
281
                        <xsl:otherwise><xsl:copy-of select="$expannocap"/></xsl:otherwise>
282
                      </xsl:choose>
283
                    </xsl:variable>
284
                    <xsl:choose>
285
                      <xsl:when test="matches($abbr,'.+')">
286
                        <choice xmlns="http://www.tei-c.org/ns/1.0">
287
                          <abbr xmlns="http://www.tei-c.org/ns/1.0"><xsl:copy-of select="$abbr"/></abbr>
288
                          <xsl:copy-of select="$expan"/>
289
                        </choice>
290
                      </xsl:when>
291
                      <xsl:otherwise><xsl:copy-of select="$expan"/><!--<xsl:comment>Unknown abbr!</xsl:comment>--></xsl:otherwise>
292
                    </xsl:choose>
293
                    <xsl:value-of select="$nextLetter"/>
294
                  </xsl:matching-substring>
295
                  <xsl:non-matching-substring><xsl:copy-of select="."/><!--<xsl:comment>Unknown abbr-expan!</xsl:comment>--></xsl:non-matching-substring>
296
                </xsl:analyze-string>
297
              </xsl:when>
298
              <xsl:when test="matches(.,'#\*([ij])')">
299
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-j"><xsl:value-of select="upper-case(regex-group(1))"/></g>
300
              </xsl:when>
301
              <xsl:when test="matches(.,'#\*([uv])')">
302
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-v"><xsl:value-of select="upper-case(regex-group(1))"/></g>
303
              </xsl:when>
304
              <xsl:when test="matches(.,'\*í')">
305
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-i ori:facs-iacute">j</g>
306
              </xsl:when>
307
              <xsl:when test="matches(.,'\*([ij])')">
308
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-j"><xsl:value-of select="regex-group(1)"/></g>
309
              </xsl:when>
310
              <xsl:when test="matches(.,'\*([uv])')">
311
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-v"><xsl:value-of select="regex-group(1)"/></g>
312
              </xsl:when>
313
              <xsl:when test="matches(.,'#\*([IJ])')">
314
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-I"><xsl:value-of select="lower-case(regex-group(1))"/></g>
315
              </xsl:when>
316
              <xsl:when test="matches(.,'#\*([UV])')">
317
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-V"><xsl:value-of select="lower-case(regex-group(1))"/></g>
318
              </xsl:when>
319
              <xsl:when test="matches(.,'\*([IJ])')">
320
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-I"><xsl:value-of select="regex-group(1)"/></g>
321
              </xsl:when>
322
              <xsl:when test="matches(.,'\*([UV])')">
323
                <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-V"><xsl:value-of select="regex-group(1)"/></g>
324
              </xsl:when>
325
              <xsl:when test="matches(.,'#ſ')">
326
                <xsl:analyze-string select="." regex="^#(.)">
327
                  <xsl:matching-substring>
328
                    <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-caps ori:facs-slong">S</g>
329
                  </xsl:matching-substring>
330
                </xsl:analyze-string>
331
              </xsl:when>
332
              <!--  -->
333
<!--              <xsl:when test="matches(.,'#')">
334
                <xsl:analyze-string select="." regex="^#(.)">
335
                  <xsl:matching-substring>
336
                    <choice xmlns="http://www.tei-c.org/ns/1.0">
337
                      <abbr xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="regex-group(1)"/></abbr>
338
                      <expan xmlns="http://www.tei-c.org/ns/1.0"><ex xmlns="http://www.tei-c.org/ns/1.0"><g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-small">E</g>t</ex></expan>
339
                    </choice>
340
                  </xsl:matching-substring>
341
                </xsl:analyze-string>
342
              </xsl:when>              -->
343
              <xsl:when test="matches(.,'#[A-Z]')">
344
                <xsl:analyze-string select="." regex="^#(.)">
345
                  <xsl:matching-substring>
346
                    <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-caps"><xsl:value-of select="lower-case(regex-group(1))"/></g>
347
                  </xsl:matching-substring>
348
                </xsl:analyze-string>
349
              </xsl:when>
350
              <xsl:when test="matches(.,'#[^(]')">
351
                <xsl:analyze-string select="." regex="^#(.+)$">
352
                  <xsl:matching-substring>
353
                    <g xmlns="http://www.tei-c.org/ns/1.0" ana="ori:dipl-small"><xsl:value-of select="upper-case(regex-group(1))"/></g>
354
                  </xsl:matching-substring>
355
                </xsl:analyze-string>
356
              </xsl:when>
357
              <xsl:when test="matches(.,'\{\{([^}}]+)\}\}')">
358
                <xsl:analyze-string select="." regex="^\{{\{{([^:]*):([^:]*):([^:]*):([^:]*):?([^:]*)\}}\}}$">
359
                  <xsl:matching-substring>
360
                    <xsl:variable name="lettrine"><xsl:value-of select="regex-group(1)"/></xsl:variable>
361
                    <xsl:variable name="size"><xsl:value-of select="regex-group(2)"/></xsl:variable>
362
                    <xsl:variable name="sizeAct"><xsl:value-of select="regex-group(3)"/></xsl:variable>
363
                    <xsl:variable name="color"><xsl:value-of select="regex-group(4)"/></xsl:variable>
364
                    <xsl:variable name="deco"><xsl:value-of select="regex-group(5)"/></xsl:variable>
365
                    <xsl:variable name="rend">
366
                      <xsl:value-of select="concat('size(',$size,')')"/>
367
                      <xsl:if test="matches($sizeAct,'.+')"><xsl:value-of select="concat(' sizeAct(',$sizeAct,')')"/></xsl:if>
368
                      <xsl:if test="matches($color,'.+')"><xsl:value-of select="concat(' color(',$color,')')"/></xsl:if>
369
                      <xsl:if test="matches($deco,'.+')"><xsl:value-of select="concat(' deco(',$deco,')')"/></xsl:if>
370
                    </xsl:variable>
371
                    <g xmlns="http://www.tei-c.org/ns/1.0" type="lettrine" rend="{$rend}"><xsl:value-of select="$lettrine"/></g>
372
                  </xsl:matching-substring>
373
                </xsl:analyze-string>
374
              </xsl:when>
375
              
376
              <xsl:when test="matches(.,'__')">
377
                <space xmlns="http://www.tei-c.org/ns/1.0" ana="ori:figement"/>
378
              </xsl:when>
379
              <xsl:when test="matches(.,'_')">
380
                <space xmlns="http://www.tei-c.org/ns/1.0"/>
381
              </xsl:when>              
382
              <xsl:otherwise>Match: <xsl:copy/></xsl:otherwise>
383
            </xsl:choose>
384
          </xsl:matching-substring>
385
          <xsl:non-matching-substring>
386
            <xsl:copy/>
387
          </xsl:non-matching-substring>
388
        </xsl:analyze-string>
389
      </xsl:otherwise>
390
    </xsl:choose>
391
  </xsl:template>
392
  
393

  
394

  
395
</xsl:stylesheet>
tmp/org.txm.oriflamms.rcp/bin/oriflamms-transcr-2-w-id-table-Fontenay.xsl (revision 489)
1
<?xml version="1.0"?>
2
<xsl:stylesheet  
3
  xmlns:xd="http://www.pnp-software.com/XSLTdoc"
4
  xmlns:edate="http://exslt.org/dates-and-times"
5
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
6
  xmlns:me="http://www.menota.org/ns/1.0"
7
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
8
  exclude-result-prefixes="#all"
9
  version="2.0">
10

  
11
  <xd:doc type="stylesheet">
12
    <xd:short>
13
      
14
    </xd:short>
15
    <xd:detail>
16
      This stylesheet is free software; you can redistribute it and/or
17
      modify it under the terms of the GNU Lesser General Public
18
      License as published by the Free Software Foundation; either
19
      version 3 of the License, or (at your option) any later version.
20
      
21
      This stylesheet is distributed in the hope that it will be useful,
22
      but WITHOUT ANY WARRANTY; without even the implied warranty of
23
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24
      Lesser General Public License for more details.
25
      
26
      You should have received a copy of GNU Lesser Public License with
27
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
28
    </xd:detail>
29
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
30
    <xd:copyright>2012, CNRS / ICAR (ICAR3 LinCoBaTO)</xd:copyright>
31
  </xd:doc>
32
  
33

  
34
  <xsl:output method="xml" encoding="utf-8"/>
35

  
36
  <xsl:strip-space elements="*"/>
37

  
38
  <xsl:template match="/">
39
    <text>
40
      <xsl:apply-templates select="descendant::tei:w|descendant::tei:pc"/>
41
    </text>
42
  </xsl:template>
43
  
44

  
45
<xsl:template match="tei:w|tei:pc">
46
  <xsl:call-template name="word"/>
47
</xsl:template>
48
  
49
  <xsl:template match="tei:seg[@type='wp']">
50
    <xsl:call-template name="word"/>
51
  </xsl:template>
52
  
53
  <xsl:template name="word">
54
    <!--<xsl:if test="self::tei:w"></xsl:if>-->
55
    <xsl:choose>
56
      <xsl:when test="descendant::tei:lb">
57
        <xsl:apply-templates select="tei:seg[@type='wp']"/>
58
      </xsl:when>
59
      <xsl:when test="matches(@xml:id,'[a-z]$')">
60
        <w-add id="{@xml:id}"><xsl:apply-templates/></w-add>
61
        <xsl:text>&#xa;</xsl:text>
62
      </xsl:when>
63
      <xsl:otherwise>
64
        <w id="{@xml:id}"><xsl:apply-templates/></w>
65
        <xsl:text>&#xa;</xsl:text>
66
      </xsl:otherwise>
67
    </xsl:choose>
68
    
69
  </xsl:template>
70
  
71
  <xsl:template match="tei:choice">
72
    <xsl:apply-templates select="tei:abbr|tei:orig|tei:sic"/>
73
  </xsl:template>
74

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

  
11
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="no"/>
12
  
13
  <xd:doc type="stylesheet">
14
    <xd:short>
15
      Cette feuille permet de convertir les transcription du 
16
      Cartulaire Blanc de Saint-Denis au format XML-TEI du projet Oriflamms.
17
    </xd:short>
18
    <xd:detail>
19
      This stylesheet is free software; you can redistribute it and/or
20
      modify it under the terms of the GNU Lesser General Public
21
      License as published by the Free Software Foundation; either
22
      version 3 of the License, or (at your option) any later version.
23
      
24
      This stylesheet is distributed in the hope that it will be useful,
25
      but WITHOUT ANY WARRANTY; without even the implied warranty of
26
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27
      Lesser General Public License for more details.
28
      
29
      You should have received a copy of GNU Lesser Public License with
30
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
31
    </xd:detail>
32
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
33
    <xd:copyright>2015, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
34
  </xd:doc>
35
  
36
  <!--<xsl:strip-space elements="*"/>-->
37
  
38
  <xsl:param name="baseMsSiglum">CB</xsl:param>
39
  
40
  <xsl:variable name="baseMsPattern"><xsl:value-of select="concat('^#?',$baseMsSiglum,'| #?',$baseMsSiglum)"/></xsl:variable>
41
  
42
  <xsl:template match="*|comment()">
43
    <!-- Copy the current node -->
44
    <xsl:copy>
45
      <!-- Including any attributes it has and any child nodes -->
46
      <xsl:apply-templates select="@*|node()"/>
47
    </xsl:copy>
48
  </xsl:template>
49
  
50
  <xsl:template match="processing-instruction()"/>
51

  
52
  <!-- On supprime les attributs par défaut de la DTD TEI -->
53
  
54
  <xsl:template match="@*">
55
    <xsl:choose>
56
      <xsl:when test="matches(name(.),'^(part|instant|anchored|full)$')"/>
57
      <xsl:otherwise><xsl:copy/></xsl:otherwise>
58
    </xsl:choose>
59
  </xsl:template>
60

  
61
<xsl:template match="@facs">
62
  <xsl:attribute name="facs"><xsl:value-of select="replace(.,'\.tif$','.png','i')"/></xsl:attribute>
63
</xsl:template>
64

  
65
  <xsl:template match="tei:teiHeader">    
66
      <xsl:copy>
67
        <xsl:apply-templates select="@*"/>
68
        <xsl:apply-templates/>
69
      </xsl:copy>    
70
  </xsl:template>
71
    
72

  
73
<xsl:template match="tei:revisionDesc">
74
  <xsl:copy>
75
  <xsl:apply-templates select="@*"/>
76
    <change xmlns="http://www.tei-c.org/ns/1.0" when="2007-01-01" who="#DS">Publication du document original</change>
77
    <!-- information récupérée à partir de /TEI/text[1]/front[1]/titlePage[1]/docDate[1] -->
78
    <change xmlns="http://www.tei-c.org/ns/1.0" when="{format-date(current-date(),'[Y]-[M01]-[D01]')}" who="#auto">Conversion automatique au format XML-TEI-Oriflamms</change>
79
  <xsl:apply-templates/>
80
  </xsl:copy>
81
</xsl:template>
82
  
83
  <xsl:template match="tei:encodingDesc">
84
    <xsl:copy>
85
      <xsl:apply-templates select="@*"/>
86
      <xsl:apply-templates/>
87
      <xsl:if test="not(//tei:prefixDef[@ident='ori'])">
88
        <listPrefixDef xmlns="http://www.tei-c.org/ns/1.0">
89
          <prefixDef xmlns="http://www.tei-c.org/ns/1.0" ident="ori" 
90
            matchPattern="([a-z]+)" 
91
            replacementPattern="oriflamms-annotation-scheme.xml#$1">
92
            <p>In the context of this project, private URIs with the prefix
93
              "ori" point to <gi>interp</gi> elements in the project's
94
              oriflamms-annotation-scheme.xml file.
95
            </p>
96
          </prefixDef>
97
        </listPrefixDef>
98
      </xsl:if>
99
    </xsl:copy>
100
  </xsl:template>
101

  
102
<xsl:template match="tei:sourceDesc">
103
  <xsl:copy>
104
    <xsl:apply-templates select="@*"/>
105
    <msDesc xmlns="http://www.tei-c.org/ns/1.0">
106
      <msIdentifier xmlns="http://www.tei-c.org/ns/1.0" xml:id="CB">
107
        <country xmlns="http://www.tei-c.org/ns/1.0">France</country>
108
        <settlement xmlns="http://www.tei-c.org/ns/1.0">Paris</settlement>
109
        <institution xmlns="http://www.tei-c.org/ns/1.0">Archives nationales</institution>
110
        <idno xmlns="http://www.tei-c.org/ns/1.0">LL 1157</idno>
111
      </msIdentifier>
112
    </msDesc>
113
    <xsl:apply-templates/>
114
  </xsl:copy>
115
</xsl:template>
116

  
117
<!-- On restructure le document pour avoir un TEI par charte -->
118
  
119
  <!-- TEI devient teiCorpus -->
120
  
121
  <xsl:template match="tei:TEI">
122
    <xsl:element name="teiCorpus" xmlns="http://www.tei-c.org/ns/1.0">
123
      <xsl:apply-templates select="@*"/>
124
      <xsl:apply-templates/>
125
    </xsl:element>
126
  </xsl:template>
127

  
128
  <!-- on supprime l'élément text de niveau 1 et travaille directement sur le niveau 2 (l'élément group intermédiaire disparait)-->
129
  
130
<!--  <xsl:template match="tei:TEI/tei:text">
131
    <xsl:apply-templates select="descendant::tei:text"/>
132
  </xsl:template>-->
133

  
134
 
135
  <xsl:template match="tei:text[descendant::tei:text]">
136
    <xsl:apply-templates/>
137
<!--    <teiCorpus xmlns="http://www.tei-c.org/ns/1.0">
138
      <teiHeader xmlns="http://www.tei-c.org/ns/1.0">
139
        <fileDesc xmlns="http://www.tei-c.org/ns/1.0">
140
          <titleStmt xmlns="http://www.tei-c.org/ns/1.0">
141
            <title xmlns="http://www.tei-c.org/ns/1.0">
142
              <xsl:value-of select="tei:group[1]/tei:head[1]"/>
143
            </title>            
144
          </titleStmt>
145
          <publicationStmt xmlns="http://www.tei-c.org/ns/1.0">
146
            <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
147
          </publicationStmt>
148
          <sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
149
            <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
150
          </sourceDesc>
151
        </fileDesc>
152
        <profileDesc xmlns="http://www.tei-c.org/ns/1.0">
153
          <!-\- argument devient profileDesc/abstract -\->
154
          <xsl:apply-templates select="descendant::tei:argument[1]"/>
155
        </profileDesc>        
156
      </teiHeader>
157
      <xsl:apply-templates/>
158
    </teiCorpus>-->
159
  </xsl:template>
160
  
161
  <xsl:template match="tei:text[descendant::tei:text]/tei:front">
162
    <xsl:choose>
163
      <xsl:when test="descendant::tei:div">
164
        <TEI xmlns="http://www.tei-c.org/ns/1.0" ana="ori:align-no">
165
          <teiHeader xmlns="http://www.tei-c.org/ns/1.0">
166
            <fileDesc xmlns="http://www.tei-c.org/ns/1.0">
167
              <titleStmt xmlns="http://www.tei-c.org/ns/1.0">
168
                <title xmlns="http://www.tei-c.org/ns/1.0">
169
                  <xsl:text>Introduction</xsl:text>
170
                </title>
171
              </titleStmt>
172
              <publicationStmt 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 top level teiCorpus</p>
174
              </publicationStmt>
175
              <sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
176
                <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
177
              </sourceDesc>
178
            </fileDesc>
179
          </teiHeader>
180
          <text xmlns="http://www.tei-c.org/ns/1.0">
181
            <body xmlns="http://www.tei-c.org/ns/1.0">
182
              <xsl:apply-templates select="tei:div"/>
183
            </body>
184
            
185
          </text>
186
        </TEI>
187
      </xsl:when>
188
      <xsl:otherwise>
189
        <xsl:comment><xsl:copy-of select="."/></xsl:comment>
190
      </xsl:otherwise>
191
    </xsl:choose>
192
  </xsl:template>
193
  
194
  <xsl:template match="tei:text[descendant::tei:text]/tei:back">
195
    <xsl:choose>
196
      <xsl:when test="descendant::tei:div">
197
        <TEI xmlns="http://www.tei-c.org/ns/1.0" ana="ori:align-no">
198
          <teiHeader xmlns="http://www.tei-c.org/ns/1.0">
199
            <fileDesc xmlns="http://www.tei-c.org/ns/1.0">
200
              <titleStmt xmlns="http://www.tei-c.org/ns/1.0">
201
                <title xmlns="http://www.tei-c.org/ns/1.0">
202
                  <xsl:text>Appendices</xsl:text>
203
                </title>
204
              </titleStmt>
205
              <publicationStmt xmlns="http://www.tei-c.org/ns/1.0">
206
                <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
207
              </publicationStmt>
208
              <sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
209
                <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
210
              </sourceDesc>
211
            </fileDesc>
212
          </teiHeader>
213
          <text xmlns="http://www.tei-c.org/ns/1.0">
214
            <body xmlns="http://www.tei-c.org/ns/1.0">
215
              <xsl:apply-templates select="descendant::tei:div"/>
216
            </body>
217
            
218
          </text>
219
        </TEI>
220
      </xsl:when>
221
      <xsl:otherwise>
222
        <xsl:comment><xsl:copy-of select="."/></xsl:comment>
223
      </xsl:otherwise>
224
    </xsl:choose>
225
  </xsl:template>
226

  
227
  <xsl:template match="tei:text//tei:text[not(descendant::tei:text) and descendant::tei:div[@type='transcription']]">
228
    <TEI xmlns="http://www.tei-c.org/ns/1.0">
229
      <teiHeader xmlns="http://www.tei-c.org/ns/1.0">
230
        <fileDesc xmlns="http://www.tei-c.org/ns/1.0">
231
          <titleStmt xmlns="http://www.tei-c.org/ns/1.0">
232
            <title xmlns="http://www.tei-c.org/ns/1.0">
233
              <xsl:text>Acte </xsl:text>
234
              <xsl:value-of select="descendant::tei:head[1]"></xsl:value-of>
235
            </title>            
236
          </titleStmt>
237
          <publicationStmt xmlns="http://www.tei-c.org/ns/1.0">
238
            <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the top level teiCorpus</p>
239
          </publicationStmt>
240
          <!-- les éléments listWit et listBibl sont placés dans sourceDesc -->
241
          <sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
242
            <!--<xsl:copy-of select="descendant::tei:listWit[1]"/>-->
243
            <xsl:choose>
244
              <xsl:when test="descendant::tei:div[@type='tradition']">
245
                <xsl:copy-of select="descendant::tei:div[@type='tradition']/node()[not(self::tei:div[@type='comments'])]"/>
246
              </xsl:when>
247
              <xsl:otherwise>
248
                <p>Aucune information</p>
249
              </xsl:otherwise>
250
            </xsl:choose>
251
            
252
            <!--<xsl:copy-of select="descendant::tei:listBibl[1]"></xsl:copy-of>-->
253
          </sourceDesc>
254
        </fileDesc>
255
        <profileDesc xmlns="http://www.tei-c.org/ns/1.0">
256
          <!-- docDate devient profileDesc/creation/date[@type='documentCreation'] -->
257
          <creation xmlns="http://www.tei-c.org/ns/1.0"><xsl:apply-templates select="descendant::tei:docDate/tei:date"/></creation>
258
          <!-- front/div[@type="summary"] devient profileDesc/abstract -->
259
          <xsl:if test="descendant::tei:div[@type='short-summary']">
260
            <abstract xmlns="http://www.tei-c.org/ns/1.0" rend="short-summary">
261
              <xsl:apply-templates select="descendant::tei:div[@type='short-summary']/node()"/>
262
            </abstract>            
263
          </xsl:if>
264
        </profileDesc>
265
      </teiHeader>
266
      <text xmlns="http://www.tei-c.org/ns/1.0">
267
        <xsl:apply-templates/>
268
      </text>
269
    </TEI>
270
  </xsl:template>
271
  
272
  <xsl:template match="tei:text//tei:text[not(descendant::tei:text) and not(descendant::tei:div[@type='transcription'])]">
273
    <xsl:comment>Texte sans transcription !</xsl:comment>
274
    <xsl:comment><xsl:copy-of select="."/></xsl:comment>
275
  </xsl:template>
276
  
277
  <xsl:template match="tei:text[not(descendant::tei:text)]/tei:front
278
    |tei:text[not(descendant::tei:text)]/tei:back
279
    |tei:div[matches(@type,'comments|notes')]">
280
    <xsl:copy>
281
      <xsl:apply-templates select="@*"/>
282
      <xsl:attribute name="ana">ori:align-no</xsl:attribute>
283
      <xsl:apply-templates/>
284
    </xsl:copy>    
285
  </xsl:template>
286
  
287

  
288
<xsl:template match="tei:group">
289
  <xsl:apply-templates/>
290
</xsl:template>
291
  
292
  <xsl:template match="tei:milestone">
293
    <xsl:choose>
294
      <xsl:when test="parent::tei:group"/>
295
      <xsl:otherwise>
296
        <xsl:copy-of select="."/>
297
      </xsl:otherwise>
298
    </xsl:choose>
299
  </xsl:template>
300

  
301
<xsl:template match="tei:group/tei:head"/>
302

  
303
  <!-- on supprime listWit du corps du texte (cf. l'entête) -->
304
  <xsl:template match="tei:listWit|tei:div[@type='tradition']"/>
305

  
306
<!-- on supprime les entêtes et pied de pages (non alignables) -->
307
  
308
  <xsl:template match="tei:fw">
309
    <xsl:comment>fw : <xsl:copy-of select="."/></xsl:comment>
310
  </xsl:template>
311

  
312
  <!-- on ajoute un attribut pour faciliter l'identification des segments à ne pas aligner -->
313
  
314
  <xsl:template match="tei:choice/tei:expan|tei:choice/tei:corr|tei:supplied|tei:note|tei:witDetail|tei:lem[@resp='#OGJ']">
315
    <xsl:copy>
316
      <xsl:apply-templates select="@*"/>
317
      <xsl:attribute name="ana">ori:align-no</xsl:attribute>
318
      <xsl:apply-templates/>
319
    </xsl:copy>
320
  </xsl:template>
321
  
322
  <xsl:template match="tei:milestone[@unit='page']">
323
    <xsl:if test="@facs">
324
      <milestone xmlns="http://www.tei-c.org/ns/1.0" unit="surface">
325
        <xsl:attribute name="facs">
326
          <xsl:value-of select="@facs"/>
327
        </xsl:attribute>
328
      </milestone>
329
    </xsl:if>
330
    <pb xmlns="http://www.tei-c.org/ns/1.0">
331
      <xsl:apply-templates select="@*[not(name()='unit')]"/>
332
    </pb>
333
  </xsl:template>
334
  
335

  
336
<!--<xsl:template 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='no']]">
337
  <xsl:choose>
338
    <!-\- patch d'espace blanc devant les sauts de ligne à l'intérieur de mots -\->
339
    <xsl:when test="matches(.,'\s+$')"><xsl:value-of select="replace(.,'\s+$','')"/></xsl:when>
340
    <xsl:otherwise><xsl:copy/></xsl:otherwise>
341
  </xsl:choose>
342
</xsl:template>-->
343

  
344
</xsl:stylesheet>
tmp/org.txm.oriflamms.rcp/bin/oriflamms-tokenize-words.xsl (revision 489)
1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
4
  xmlns:xd="http://www.pnp-software.com/XSLTdoc"
5
  xmlns:txm="http://textometrie.org/1.0"
6
  exclude-result-prefixes="tei edate xd txm" version="2.0">
7

  
8
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="no"/>
9
  
10
  <xd:doc type="stylesheet">
11
    <xd:short>
12
      Cette feuille XSLT permet de pré-tokeniser par mot des fichiers au format
13
      XML-TEI Oriflamms brut
14
    </xd:short>
15
    <xd:detail>
16
      This stylesheet is free software; you can redistribute it and/or
17
      modify it under the terms of the GNU Lesser General Public
18
      License as published by the Free Software Foundation; either
19
      version 3 of the License, or (at your option) any later version.
20
      
21
      This stylesheet is distributed in the hope that it will be useful,
22
      but WITHOUT ANY WARRANTY; without even the implied warranty of
23
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24
      Lesser General Public License for more details.
25
      
26
      You should have received a copy of GNU Lesser Public License with
27
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
28
    </xd:detail>
29
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
30
    <xd:copyright>2014, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
31
  </xd:doc>
32
  
33
<!--  <xsl:template match="/">
34
    <xsl:apply-templates/>
35
  </xsl:template>
36
-->  
37
  
38
  <xsl:template match="*">
39
        <xsl:copy>
40
          <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()"/>
41
        </xsl:copy>
42
  </xsl:template>
43

  
44
  <xsl:template match="comment()|processing-instruction()|text()">
45
    <xsl:copy/>
46
  </xsl:template>
47

  
48
  <!-- On supprime les attributs par défaut de la DTD TEI -->
49
  
50
  <xsl:template match="@*">
51
    <xsl:choose>
52
      <xsl:when test="matches(name(.),'^(part|instant|anchored|full)$')"/>
53
      <xsl:otherwise><xsl:copy/></xsl:otherwise>
54
    </xsl:choose>
55
  </xsl:template>
56

  
57
<!-- on on ajoute l'info sur la tokenisation par TXM dans le header -->
58

  
59
  <xsl:template match="/*/tei:teiHeader/tei:fileDesc/tei:titleStmt">
60
    <xsl:copy>
61
      <xsl:apply-templates select="@*|node()"/>
62
      <respStmt xmlns="http://www.tei-c.org/ns/1.0">
63
        <resp xmlns="http://www.tei-c.org/ns/1.0">Tokénisation des mots et/ou des caractères</resp>
64
        <name xmlns="http://www.tei-c.org/ns/1.0" xml:id="TXM">Logiciel TXM (http://textometrie.ens-lyon.fr)</name>
65
      </respStmt>
66
    </xsl:copy>
67
  </xsl:template>
68

  
69

  
70
  <xsl:template match="/*/tei:teiHeader">    
71
      <xsl:copy>
72
        <xsl:apply-templates select="@*|node()"/>
73
        <xsl:if test="not(tei:revisionDesc)">
74
          <revisionDesc xmlns="http://www.tei-c.org/ns/1.0">
75
            <xsl:call-template name="change-txm"></xsl:call-template>
76
          </revisionDesc>
77
        </xsl:if>
78
      </xsl:copy>    
79
  </xsl:template>
80
  
81
  <xsl:template match="/*/tei:teiHeader//tei:revisionDesc">
82
    <xsl:copy>
83
      <xsl:apply-templates select="@*|node()"/>
84
      <xsl:call-template name="change-txm"/>
85
    </xsl:copy>
86
  </xsl:template>
87

  
88
<xsl:template name="change-txm">
89
  <change when="{format-date(current-date(),'[Y]-[M01]-[D01]')}" who="#TXM" xmlns="http://www.tei-c.org/ns/1.0">Tokenisation des mots</change>
90
</xsl:template>
91
  
92
  <xsl:template match="tei:w|tei:pc">
93
    <xsl:copy-of select="."/>
94
  </xsl:template>
95
  
96
  <xsl:template match="tei:text//text()">
97
  <xsl:choose>
98
    <!--<xsl:when test="not(ancestor::tei:text/tei:body/tei:div1/tei:p)"><xsl:copy/></xsl:when>-->
99
    <xsl:when test="matches(.,'^\s*$')"><xsl:copy/></xsl:when>
100
    <xsl:when test="matches(local-name(parent::*),'^(abbr|expan|sic|corr)$')"><xsl:copy/></xsl:when>
101
    <xsl:when test="ancestor::*/@ana[contains(.,'ori:align-no')]"><xsl:copy/></xsl:when>
102
    <xsl:when test="ancestor::tei:note"><xsl:copy/></xsl:when>
103
    <xsl:when test="ancestor::tei:witDetail"><xsl:copy/></xsl:when>
104
    <xsl:when test="parent::tei:hi and matches(.,'\w+') and not(matches(.,'\s')) and not(preceding-sibling::* or following-sibling::*)"><xsl:copy/></xsl:when>
105
    <xsl:when test="parent::tei:am|parent::tei:ex"><xsl:copy/></xsl:when>
106
    <!--<xsl:when test="parent::tei:rdg[not(matches(@wit,'^#?A'))]"><xsl:copy/></xsl:when>-->
107
    <xsl:when test="ancestor::tei:pc|ancestor::tei:w"><xsl:copy/></xsl:when>
108
    <xsl:otherwise>
109
      <xsl:analyze-string select="." regex="\w+|\p{{P}}+|\s+">
110
        <xsl:matching-substring>
111
          <xsl:choose>
112
            <xsl:when test="matches(.,'^\w+$')"><w xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="."/></w></xsl:when>
113
<!--            <xsl:when test="matches(.,'^\p{P}+$')"><orig xmlns="http://www.tei-c.org/ns/1.0"><pc xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="."/></pc></orig></xsl:when>-->
114
            <xsl:when test="matches(.,'^\p{P}+$')"><pc xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="."/></pc></xsl:when>
115
            <xsl:otherwise><xsl:copy/></xsl:otherwise>
116
          </xsl:choose>
117
        </xsl:matching-substring>
118
        <xsl:non-matching-substring>
119
          <xsl:comment>Type de caractère non reconnu</xsl:comment><xsl:copy/>
120
        </xsl:non-matching-substring>
121
      </xsl:analyze-string>
122
    </xsl:otherwise>
123
  </xsl:choose>
124
</xsl:template>
125

  
126
<xsl:template match="tei:choice">
127
  <xsl:choose>
128
    <xsl:when test="descendant::tei:pc">
129
      <pc xmlns="http://www.tei-c.org/ns/1.0">
130
        <xsl:apply-templates select="descendant::tei:pc[1]/@*"/>
131
        <xsl:copy>
132
          <xsl:apply-templates/>
133
        </xsl:copy>
134
      </pc>
135
    </xsl:when>
136
    <xsl:when test="descendant::tei:w">
137
      <xsl:copy>
138
        <xsl:apply-templates select="@*"/>
139
        <xsl:apply-templates/>
140
      </xsl:copy>
141
    </xsl:when>
142
    <xsl:when test="ancestor::tei:pc|ancestor::tei:w">
143
      <xsl:copy-of select="."/>
144
    </xsl:when>
145
    <xsl:otherwise><w xmlns="http://www.tei-c.org/ns/1.0"><xsl:copy-of select="."/></w></xsl:otherwise>
146
  </xsl:choose>  
147
</xsl:template>
148
  
149
  
150
  
151
<!--  <xsl:template match="tei:pc[ancestor::tei:choice]">
152
    <xsl:apply-templates/>
153
  </xsl:template>
154
-->
155
  
156
  <xsl:template match="tei:choice/tei:orig[child::tei:pc]|tei:choice/tei:reg[child::tei:pc]">
157
    <xsl:copy>
158
      <xsl:apply-templates select="@*"/>
159
      <xsl:value-of select="normalize-space(.)"/>
160
    </xsl:copy>
161
  </xsl:template>
162

  
163

  
164
  <!-- <xsl:template match="tei:hi[matches(.,'\w+') and not(matches(.,'\s')) and not(descendant::tei:w) and not(ancestor::*/@ana[contains(.,'ori:align-no')])]|tei:am|tei:ex"> -->
165
  
166
  <!--<xsl:template match="*[ancestor::tei:text and descendant::text()[matches(.,'\w')] and not(descendant::text()[matches(.,'\S\s|\s\S|\p{P}')])]">-->
167
  
168

  
169
  <xsl:template match="*[matches(.,'\w+') 
170
    and ancestor::tei:text 
171
    and not(matches(local-name(),'^(front|body|back|div.*|head|closer|p|ab|lg|l|.*[Nn]ame|num|cell|row|q|w|pc|title|term|emph|note|witDetail|foreign|ref|app|lem|rdg)$'))
172
    and not(matches(local-name(parent::*),'^(choice|subst|app)$'))
173
    and not(descendant::text()[matches(.,'\S\s|\s\S|\p{P}')]) 
174
    and not(descendant::tei:w or descendant::tei:pc) 
175
    and not(ancestor::*/@ana[contains(.,'ori:align-no')])]|tei:am|tei:ex">
176
  <w xmlns="http://www.tei-c.org/ns/1.0"><xsl:copy-of select="."/></w>
177
</xsl:template>
178
 
179
  <!-- <xsl:template match="*[matches(local-name(),'[Nn]ame$') and not(descendant::text()[matches(.,'\S\s|\s\S|\p{P}')])]"> -->
180
 
181
  
182
  <xsl:template match="*[matches(local-name(),'^.*[Nn]ame$') 
183
    and ancestor::tei:text 
184
    and not(descendant::*[matches(local-name(),'^(.*[Nn]ame|w|pc|num|term|ref)$')]) 
185
    and not(descendant::text()[matches(.,'\S\s|\s\S|\p{P}')])]">
186
    <xsl:copy>
187
      <xsl:apply-templates select="@*"/>
188
<!--      <xsl:for-each select="child::text()">
189
        <xsl:value-of select="concat('[',.,']')"/>
190
      </xsl:for-each>-->
191
      <w xmlns="http://www.tei-c.org/ns/1.0">
192
        <xsl:for-each select="child::node()">
193
          <xsl:copy-of select="."/>
194
        </xsl:for-each>
195
      </w>
196
    </xsl:copy>
197
    
198
  </xsl:template>
199
  
200

  
201
  <!--<xsl:template match="tei:sic[not(parent::tei:choice or descendant::tei:w or ancestor::*/@ana[contains(.,'ori:align-no')])]|tei:corr[not(parent::tei:choice or descendant::tei:w or ancestor::*/@ana[contains(.,'ori:align-no')])]">
202
  <w xmlns="http://www.tei-c.org/ns/1.0"><xsl:copy-of select="."/></w>
203
</xsl:template>-->
204

  
205
</xsl:stylesheet>
tmp/org.txm.oriflamms.rcp/bin/oriflamms-addxmlid.xsl (revision 489)
1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0" 
4
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
  exclude-result-prefixes="tei edate" version="2.0">
6

  
7
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no"/>
8

  
9
  <xsl:template match="*">
10
    <xsl:copy>
11
      <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()"/>
12
    </xsl:copy>
13
  </xsl:template>
14

  
15
  <xsl:template match="@*|processing-instruction()|comment()|text()">
16
    <xsl:copy/>
17
  </xsl:template>
18

  
19
<xsl:param name="elements">w|lb|cb|pb|pc|milestone|seg</xsl:param>
20
  
21
  <xsl:variable name="elementsregex"><xsl:value-of select="concat('^(',$elements,')$')"/></xsl:variable>
22
  
23
  <xsl:variable name="filename">
24
    <xsl:analyze-string select="document-uri(.)" regex="^(.*)/([^/]+)$">
25
      <xsl:matching-substring>
26
        <xsl:value-of select="replace(regex-group(2),'(-ori)?(-wp?)?\.[^.]+$','')"/>
27
      </xsl:matching-substring>
28
    </xsl:analyze-string></xsl:variable>
29
  
30
  
31
<xsl:template match="*[matches(local-name(),$elementsregex)]">
32
  <xsl:variable name="elementname">
33
    <xsl:value-of select="local-name()"></xsl:value-of>
34
  </xsl:variable>
35
  <xsl:variable name="number" as="xs:integer">
36
    <xsl:number level="any"/>
37
  </xsl:variable>
38
  <xsl:copy>
39
    <xsl:if test="not(@xml:id)">
40
      <xsl:attribute name="xml:id">
41
        <xsl:choose>
42
          <xsl:when test="$elementname='milestone' and @unit='surface'">
43
            <xsl:value-of select="concat('surf_',$filename,'_',substring-before(@facs,'.'))"/>
44
          </xsl:when>
45
          <xsl:when test="$elementname='pb'">
46
            <xsl:value-of select="concat('page_',$filename,'_',$number)"/>
47
          </xsl:when>
48
          <xsl:when test="$elementname='cb'">
49
            <xsl:value-of select="concat('col_',$filename,'_',$number)"/>
50
          </xsl:when>
51
          <xsl:when test="$elementname='lb'">
52
            <xsl:value-of select="concat('line_',$filename,'_',$number)"/>
53
          </xsl:when>
54
          <xsl:when test="$elementname='seg' and @type='wp'">
55
            <xsl:value-of select="concat('wp_',$filename,'_',$number)"/>
56
          </xsl:when>
57
          <xsl:otherwise>
58
            <xsl:value-of select="concat($elementname,'_',$filename,'_',$number)"/>
59
          </xsl:otherwise>
60
        </xsl:choose>
61
      </xsl:attribute>
62
    </xsl:if>
63
    <xsl:if test="not(@n) and not(matches($elementname,'^(w|pc|seg)$'))">
64
      <xsl:attribute name="n"><xsl:value-of select="$number"/></xsl:attribute>
65
    </xsl:if>
66
    <xsl:if test="$elementname='lb' and @type='rejet' and not(@corresp)">
67
      <xsl:attribute name="corresp">
68
<!--        <xsl:choose>
69
          <xsl:when test="@n">
70
            <xsl:value-of select="concat('#line_',$filename,'_',@n)"/>
71
          </xsl:when>
72
          <xsl:otherwise>
73
            <xsl:value-of select="concat('#line_',$filename,'_',$number + 1)"/>
74
          </xsl:otherwise>
75
        </xsl:choose>-->
76
        <xsl:value-of select="concat('#line_',$filename,'_',$number + 1)"/>
77
      </xsl:attribute>      
78
    </xsl:if>
79
    <xsl:apply-templates select="@*"/>
80
    <xsl:apply-templates/>
81
  </xsl:copy>
82
</xsl:template>
83

  
84

  
85

  
86
</xsl:stylesheet>
tmp/org.txm.oriflamms.rcp/bin/txm-front-teioriflammsc-xtz.xsl (revision 489)
1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
4
  xmlns:me="http://www.menota.org/ns/1.0"
5
  xmlns:bfm="http://bfm.ens-lsh.fr/ns/1.0"
6
  xmlns:xd="http://www.pnp-software.com/XSLTdoc"
7
  exclude-result-prefixes="#all" version="2.0">
8

  
9
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no"/>
10
  
11

  
12
  <xd:doc type="stylesheet">
13
    <xd:short>
14
      Cette feuille XSLT prépare les fichiers au format TEI Oriflamms
15
      (tokénisés par mot) à l'imppportation dans TXM avec le module XTZ
16
      (étape 2 "front").
17
    </xd:short>
18
    <xd:detail>
19
      This stylesheet is free software; you can redistribute it and/or
20
      modify it under the terms of the GNU Lesser General Public
21
      License as published by the Free Software Foundation; either
22
      version 3 of the License, or (at your option) any later version.
23
      
24
      This stylesheet is distributed in the hope that it will be useful,
25
      but WITHOUT ANY WARRANTY; without even the implied warranty of
26
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27
      Lesser General Public License for more details.
28
      
29
      You should have received a copy of GNU Lesser Public License with
30
      this stylesheet. If not, see http://www.gnu.org/licenses/lgpl.html
31
    </xd:detail>
32
    <xd:author>Alexei Lavrentiev alexei.lavrentev@ens-lyon.fr</xd:author>
33
    <xd:copyright>2016, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
34
  </xd:doc>
35
  
36

  
37
  <xsl:template match="*" mode="#all">
38
    <xsl:copy>
39
      <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="#current"/>
40
    </xsl:copy>
41
  </xsl:template>
42
  
43
  <xsl:template match="comment()|processing-instruction()|text()|@*">
44
    <xsl:copy>
45
      <xsl:apply-templates/>
46
    </xsl:copy>
47
  </xsl:template>
48
  
49
  <xsl:template match="comment()|processing-instruction()|@*" mode="expan letters-all 
50
    letters-alignable characters-alignable">
51
    <xsl:copy>
52
      <xsl:apply-templates/>
53
    </xsl:copy>
54
  </xsl:template>
55

  
56
  <xsl:variable name="filename">
57
    <xsl:analyze-string select="document-uri(.)" regex="^(.*)/([^/]+)\.xml$">
58
      <xsl:matching-substring>
59
        <xsl:value-of select="replace(regex-group(2),'-c$','')"/>
60
      </xsl:matching-substring>
61
    </xsl:analyze-string>
62
  </xsl:variable>
63
  
64
  <xsl:template match="tei:facsimile"/>
65
  
66
<xsl:template match="tei:teiCorpus">
67
  <TEI xmlns="http://www.tei-c.org/ns/1.0">
68
    <text>
69
      <!-- on ajoute des attributs utiles pour la création de partitions et de sous-corpus -->
70
      <xsl:apply-templates/>
71
    </text>
72
  </TEI>
73
</xsl:template>
74

  
75

  
76
<xsl:template match="tei:TEI[ancestor::tei:teiCorpus]">
77
<xsl:apply-templates/>
78
</xsl:template>
79
  
80
  <xsl:template match="tei:teiHeader">
81
    <!--<xsl:copy-of select="."/>-->
82
  </xsl:template>
83
  
84
  <xsl:template match="tei:text[not(ancestor::tei:teiCorpus)]">
85
    <xsl:element name="text" namespace="http://www.tei-c.org/ns/1.0">
86
      <!-- on ajoute des attributs utiles pour la création de partitions et de sous-corpus -->
87
      <xsl:apply-templates select="@*"/>
88
     <xsl:apply-templates/> 
89
    </xsl:element>
90
  </xsl:template>
91
  
92
  <xsl:template match="tei:text[ancestor::tei:teiCorpus]">
93
    <div type="text" id="{$filename}-{count(preceding::tei:text) + 1}" xmlns="http://www.tei-c.org/ns/1.0">
94
      <xsl:apply-templates select="@*|node()"/>
95
    </div>
96
  </xsl:template>
97

  
98
<xsl:template match="tei:milestone[@unit='surface']">
99
  <pb xmlns="http://www.tei-c.org/ns/1.0" n="{following::tei:pb[1]/@n}" facs="{@facs}" xml:id="{@xml:id}"/>
100
</xsl:template>
101
  
102
  <xsl:template match="tei:pb">
103
    <milestone unit="ms-page" xmlns="http://www.tei-c.org/ns/1.0">
104
      <xsl:apply-templates select="@*"/>
105
    </milestone>
106
  </xsl:template>
107

  
108
<xsl:template match="tei:w[not(tei:seg[@type='wp'])]">
109
  <xsl:element name="w" namespace="http://www.tei-c.org/ns/1.0">
110
    <xsl:apply-templates select="@*"/>
111
    <xsl:attribute name="expan"><xsl:apply-templates mode="expan" select="descendant::tei:c"/></xsl:attribute>
112
    <xsl:attribute name="letters-all"><xsl:apply-templates mode="letters-all" select="descendant::tei:c"/></xsl:attribute>
113
    <xsl:attribute name="letters-alignable"><xsl:apply-templates mode="letters-alignable" select="descendant::tei:c"/></xsl:attribute>
114
    <xsl:attribute name="characters"><xsl:apply-templates mode="characters-alignable" select="descendant::tei:c"/></xsl:attribute>
115
    <xsl:attribute name="abbr-n">
116
      <xsl:choose>
117
        <xsl:when test="descendant::tei:abbr">
118
          <xsl:value-of select="count(descendant::tei:abbr)"/>
119
        </xsl:when>
120
        <xsl:when test="descendant::tei:expan">
121
          <xsl:value-of select="count(descendant::tei:expan)"/>
122
        </xsl:when>
123
        <xsl:when test="descendant::tei:ex">
124
          <xsl:value-of select="count(descendant::tei:ex)"/>
125
        </xsl:when>
126
        <xsl:otherwise>0</xsl:otherwise>
127
      </xsl:choose>
128
    </xsl:attribute>
129
    <xsl:attribute name="ref"><xsl:value-of select="concat($filename,', f. ',preceding::tei:pb[1]/@n,', col. ',preceding::tei:cb[1]/@n,', l. ',preceding::tei:lb[1]/@n)"/></xsl:attribute>
130
    <xsl:apply-templates/>
131
  </xsl:element>
132
</xsl:template>
133
  
134
  <xsl:template match="tei:w[tei:seg[@type='wp']]">
135
    <xsl:element name="w-lb" namespace="http://www.tei-c.org/ns/1.0">
136
      <xsl:apply-templates select="@*"/>
137
      <xsl:attribute name="expan"><xsl:apply-templates mode="expan" select="descendant::tei:c"/></xsl:attribute>
138
      <xsl:attribute name="letters-all"><xsl:apply-templates mode="letters-all" select="descendant::tei:c"/></xsl:attribute>
139
      <xsl:attribute name="letters-alignable"><xsl:apply-templates mode="letters-alignable" select="descendant::tei:c"/></xsl:attribute>
140
      <xsl:attribute name="characters"><xsl:apply-templates mode="characters-alignable" select="descendant::tei:c"/></xsl:attribute>
141
      <xsl:attribute name="abbr-n">
142
        <xsl:choose>
143
          <xsl:when test="descendant::tei:abbr">
144
            <xsl:value-of select="count(descendant::tei:abbr)"/>
145
          </xsl:when>
146
          <xsl:when test="descendant::tei:expan">
147
            <xsl:value-of select="count(descendant::tei:expan)"/>
148
          </xsl:when>
149
          <xsl:when test="descendant::tei:ex">
150
            <xsl:value-of select="count(descendant::tei:ex)"/>
151
          </xsl:when>
152
          <xsl:otherwise>0</xsl:otherwise>
153
        </xsl:choose>
154
      </xsl:attribute>      <xsl:attribute name="ref"><xsl:value-of select="concat($filename,', f. ',preceding::tei:pb[1]/@n,', col. ',preceding::tei:cb[1]/@n,', l. ',preceding::tei:lb[1]/@n)"/></xsl:attribute>
155
      <xsl:apply-templates/>
156
    </xsl:element>
157
  </xsl:template>
158
  
159
  <xsl:template match="tei:seg[@type='wp']">
160
    <xsl:element name="w" namespace="http://www.tei-c.org/ns/1.0">
161
      <xsl:apply-templates select="@*"/>
162
      <xsl:attribute name="expan"><xsl:apply-templates mode="expan" select="descendant::tei:c"/></xsl:attribute>
163
      <xsl:attribute name="letters-all"><xsl:apply-templates mode="letters-all" select="descendant::tei:c"/></xsl:attribute>
164
      <xsl:attribute name="letters-alignable"><xsl:apply-templates mode="letters-alignable" select="descendant::tei:c"/></xsl:attribute>
165
      <xsl:attribute name="characters"><xsl:apply-templates mode="characters-alignable" select="descendant::tei:c"/></xsl:attribute>
166
      <xsl:attribute name="abbr-n">
167
        <xsl:choose>
168
          <xsl:when test="descendant::tei:abbr">
169
            <xsl:value-of select="count(descendant::tei:abbr)"/>
170
          </xsl:when>
171
          <xsl:when test="descendant::tei:expan">
172
            <xsl:value-of select="count(descendant::tei:expan)"/>
173
          </xsl:when>
174
          <xsl:when test="descendant::tei:ex">
175
            <xsl:value-of select="count(descendant::tei:ex)"/>
176
          </xsl:when>
177
          <xsl:otherwise>0</xsl:otherwise>
178
        </xsl:choose>
179
      </xsl:attribute>
180
      <xsl:attribute name="ref"><xsl:value-of select="concat($filename,', f. ',preceding::tei:pb[1]/@n,', col. ',preceding::tei:cb[1]/@n,', l. ',preceding::tei:lb[1]/@n)"/></xsl:attribute>
181
      <xsl:apply-templates/>
182
    </xsl:element>
183
  </xsl:template>
184
  
185
  <xsl:template match="tei:pc[not(child::tei:reg or @ana='ori:align-no')]">
186
    <xsl:element name="w" namespace="http://www.tei-c.org/ns/1.0">
187
      <xsl:apply-templates select="@*"/>
188
      <xsl:attribute name="type">pc</xsl:attribute>
189
      <xsl:attribute name="expan"><xsl:apply-templates select="descendant::tei:c"/></xsl:attribute>
190
      <xsl:attribute name="letters-all"/>
191
      <xsl:attribute name="letters-alignable"/>
192
      <xsl:attribute name="characters"><xsl:apply-templates mode="characters-alignable" select="descendant::tei:c"/></xsl:attribute>
193
      <xsl:attribute name="abbr-n">
194
        <xsl:value-of select="0"/>
195
      </xsl:attribute>
196
      <xsl:attribute name="ref"><xsl:value-of select="concat($filename,', f. ',preceding::tei:pb[1]/@n,', col. ',preceding::tei:cb[1]/@n,', l. ',preceding::tei:lb[1]/@n)"/></xsl:attribute>
197
      <xsl:apply-templates/>
198
    </xsl:element>
199
  </xsl:template>
200
  
201
  <xsl:template match="tei:pc[child::tei:reg or @ana='ori:align-no']">
202
    <xsl:comment><xsl:copy-of select="."/></xsl:comment>
203
  </xsl:template>
204

  
205
  <xsl:template match="tei:choice[tei:abbr]">
206
    <xsl:apply-templates select="tei:abbr"/>
207
  </xsl:template>
208
  
209
  <xsl:template match="tei:choice[tei:abbr]" mode="expan">
210
    <xsl:apply-templates select="tei:expan" mode="#current"/>
211
  </xsl:template>
212
  
213
  <xsl:template match="tei:choice[tei:abbr]" mode="letters-all">
214
    <xsl:apply-templates select="tei:expan" mode="#current"/>
215
  </xsl:template>
216
  
217
  <xsl:template match="tei:choice[tei:abbr]" mode="letters-alignable">
218
    <xsl:apply-templates select="tei:expan" mode="#current"/>
219
  </xsl:template>
220

  
221
  <xsl:template match="tei:choice[tei:abbr]" mode="characters-alignable">
222
    <xsl:apply-templates select="tei:abbr" mode="#current"/>
223
  </xsl:template>
224
  
225
  <xsl:template match="tei:choice[tei:orig]" mode="#all">
226
    <xsl:apply-templates select="tei:orig" mode="#current"/>
227
  </xsl:template>
228
  
229
  <xsl:template match="tei:reg" mode="#all"></xsl:template>
230
  
231
  <xsl:template match="tei:orig" mode="#all">
232
    <xsl:apply-templates mode="#current"/>
233
  </xsl:template>
234
  
235
  <xsl:template match="tei:ex" mode="expan">
236
    <xsl:text>(</xsl:text>
237
    <xsl:value-of select="."/>
238
    <xsl:text>)</xsl:text>
239
  </xsl:template>
240
  
241
  <xsl:template match="tei:ex" mode="letters-all">
242
    <xsl:value-of select="."/>
243
  </xsl:template>
244
  
245
  <xsl:template match="tei:ex" mode="letters-alignable"/>
246
  
247
  <xsl:template match="tei:ex" mode="characters-alignable">
248
    <xsl:choose>
249
      <xsl:when test="matches(.,'^\s*(cum|com|con)\s*$','i')">&#xA76F;</xsl:when>
250
      <xsl:when test="matches(.,'^\s*et\s*$','i')">&#x204A;</xsl:when>
251
      <xsl:when test="matches(.,'^\sest\s*$','i')">&#x223B;</xsl:when>
252
      <xsl:when test="matches(.,'^\s*us\s*$','i')">&#xA770;</xsl:when>
253
      <xsl:otherwise/>
254
    </xsl:choose>
255
  </xsl:template>
256
  
257
  <xsl:template match="tei:supplied"></xsl:template>
258
  
259

  
260
<xsl:template match="tei:c">
261
  <xsl:element name="c" namespace="http://www.tei-c.org/ns/1.0">
262
    <xsl:apply-templates select="@*"/>
263
    <xsl:attribute name="expan">
264
      <xsl:apply-templates select="." mode="expan"/>
265
    </xsl:attribute>
266
    <xsl:attribute name="letters-all">
267
      <xsl:apply-templates select="." mode="letters-all"/>
268
    </xsl:attribute>
269
    <xsl:attribute name="letters-alignable">
270
      <xsl:apply-templates select="." mode="letters-alignable"></xsl:apply-templates>
271
    </xsl:attribute>
272
    <xsl:attribute name="characters">
273
      <xsl:apply-templates mode="characters-alignable"/>
274
    </xsl:attribute>
275
    <xsl:attribute name="abbr-n">
276
      <xsl:choose>
277
        <xsl:when test="ancestor::tei:abbr and not(following-sibling::tei:c)">1</xsl:when>
278
        <xsl:when test="ancestor::tei:expan and not(following-sibling::tei:c)">1</xsl:when>
279
        <!--<xsl:when test="ancestor::tei:ex and not(following-sibling::tei:c)">1</xsl:when>-->
280
        <xsl:otherwise>0</xsl:otherwise>
281
      </xsl:choose>
282
    </xsl:attribute>
283
    <xsl:attribute name="ref"><xsl:value-of select="concat($filename,', f. ',preceding::tei:pb[1]/@n,', col. ',preceding::tei:cb[1]/@n,', l. ',preceding::tei:lb[1]/@n)"/></xsl:attribute>
284
    <xsl:apply-templates/>
285
  </xsl:element>
286
</xsl:template>
287
  
288
  <xsl:template match="tei:c" mode="expan">
289
    <xsl:if test="not(@type='am') and not(ancestor::tei:abbr[parent::tei:choice/tei:expan[not(tei:ex)]])">
290
      <xsl:apply-templates mode="letters-alignable"/>
291
    </xsl:if>
292
    <xsl:choose>
293
      <xsl:when test="not(following-sibling::tei:c) and ancestor::tei:abbr[parent::tei:choice/tei:expan/tei:ex]">
294
        <xsl:text>(</xsl:text>
295
        <xsl:value-of select="ancestor::tei:choice/tei:expan/tei:ex"/>
296
        <xsl:text>)</xsl:text>
297
      </xsl:when>
298
      <xsl:when test="not(following-sibling::tei:c) and ancestor::tei:abbr[parent::tei:choice/tei:expan[not(tei:ex)]]">
299
        <xsl:text>(</xsl:text>
300
        <xsl:value-of select="ancestor::tei:choice/tei:expan"/>
301
        <xsl:text>)</xsl:text>
302
      </xsl:when>
303
      <xsl:when test="not(following-sibling::tei:c) and following-sibling::*[1][self::tei:choice[tei:abbr[not(child::node())]]]">
304
        <xsl:text>(</xsl:text>
305
        <xsl:value-of select="following-sibling::tei:choice[1]//tei:ex"/>
306
        <xsl:text>)</xsl:text>
307
      </xsl:when>
308
      <xsl:otherwise/>
309
    </xsl:choose>
310
  </xsl:template>
311
  
312
  <xsl:template match="tei:c" mode="letters-all">
313
    <xsl:if test="not(@type='am') and not(ancestor::tei:abbr[parent::tei:choice/tei:expan[not(tei:ex)]])">
314
      <xsl:apply-templates mode="letters-alignable"/>
315
    </xsl:if>
316
    <xsl:choose>
317
      <xsl:when test="not(following-sibling::tei:c) and ancestor::tei:abbr[parent::tei:choice/tei:expan/tei:ex]">
318
        <xsl:value-of select="ancestor::tei:choice/tei:expan/tei:ex"/>
319
      </xsl:when>
320
      <xsl:when test="not(following-sibling::tei:c) and ancestor::tei:abbr[parent::tei:choice/tei:expan[not(tei:ex)]]">
321
        <xsl:value-of select="ancestor::tei:choice/tei:expan"/>
322
      </xsl:when>
323
      <xsl:when test="not(following-sibling::tei:c) and following-sibling::*[1][self::tei:choice[tei:abbr[not(child::node())]]]">
324
        <xsl:value-of select="following-sibling::tei:choice[1]//tei:ex"/>
325
      </xsl:when>
326
      <xsl:otherwise/>
327
    </xsl:choose>
328
  </xsl:template>
329
  
330
  <xsl:template match="tei:c" mode="letters-alignable">
331
    <xsl:choose>
332
      <xsl:when test="@type='am' and not(ancestor::tei:abbr[parent::tei:choice/tei:expan[not(tei:ex)]])"/>
333
      <xsl:otherwise><xsl:apply-templates mode="letters-alignable"/></xsl:otherwise>
334
    </xsl:choose>
335
  </xsl:template>
336
  
337
  <xsl:template match="tei:c" mode="characters-alignable">
338
    <xsl:apply-templates mode="characters-alignable"/>
339
  </xsl:template>
340
  
341
  <xsl:template match="tei:g[@type='am']" mode="letters-alignable letters-all"></xsl:template>
342
  
343
  <xsl:template match="tei:g[@type='am' and matches(.,'\p{M}')]" mode="characters-alignable"></xsl:template>
344

  
345

  
346
<!--  <xsl:template match="tei:w//text()" mode="letters-alignable characters-alignable">
347
    <xsl:choose>
348
      <xsl:when test="ancestor::tei:c">
349
        <xsl:analyze-string select="." regex="\p{{M}}">
350
          <xsl:matching-substring/>
351
          <xsl:non-matching-substring><xsl:value-of select="."/></xsl:non-matching-substring>
352
        </xsl:analyze-string>      
353
      </xsl:when>
354
      <xsl:otherwise/>
355
    </xsl:choose>
356
  </xsl:template>
357
-->
358

  
359
  <xsl:template match="tei:w//text()" mode="expan letters-all">
360
    <xsl:choose>
361
      <xsl:when test="ancestor::tei:c">
362
        <xsl:value-of select="."></xsl:value-of>
363
      </xsl:when>
364
      <xsl:otherwise/>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff