Statistics
| Revision:

root / tmp / org.txm.oriflamms.rcp / res / oriflamms-tokenize-words-1-tag.xsl @ 2398

History | View | Annotate | Download (5.2 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
	exclude-result-prefixes="tei edate xd txm" version="2.0">
9

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

    
13
	<xd:doc type="stylesheet">
14
		<xd:short>
15
			Cette feuille XSLT permet de pré-tokeniser par mot des fichiers au format
16
			XML-TEI Oriflamms brut
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>2014, CNRS / ICAR (Équipe CACTUS)</xd:copyright>
34
	</xd:doc>
35

    
36
	<!-- <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> -->
37

    
38
	<xsl:template match="*">
39
		<xsl:copy>
40
			<xsl:apply-templates
41
				select="*|@*|processing-instruction()|comment()|text()" />
42
		</xsl:copy>
43
	</xsl:template>
44

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

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

    
52
	<xsl:template match="@*">
53
		<xsl:choose>
54
			<xsl:when
55
				test="matches(name(.),'^(part|instant|anchored|full)$')" />
56
			<xsl:otherwise>
57
				<xsl:copy />
58
			</xsl:otherwise>
59
		</xsl:choose>
60
	</xsl:template>
61

    
62
	<!-- <xsl:template match="tei:teiHeader"> <xsl:copy-of select="."/> </xsl:template> -->
63
	<xsl:template
64
		match="tei:text/tei:body/tei:div1[@type='original']//tei:p//text()">
65
		<xsl:choose>
66
			<!--<xsl:when test="not(ancestor::tei:text/tei:body/tei:div1/tei:p)"><xsl:copy/></xsl:when> -->
67
			<xsl:when test="matches(.,'^\s*$')">
68
				<xsl:copy />
69
			</xsl:when>
70
			<xsl:when
71
				test="matches(local-name(parent::*),'^(abbr|expan|sic|corr)$')">
72
				<xsl:copy />
73
			</xsl:when>
74
			<xsl:when test="matches(ancestor::*/@*,'ori:align-no')">
75
				<xsl:copy />
76
			</xsl:when>
77
			<xsl:when test="ancestor::tei:note">
78
				<xsl:copy />
79
			</xsl:when>
80
			<xsl:when
81
				test="parent::tei:hi and matches(.,'\w+') and not(matches(.,'\s'))">
82
				<xsl:copy />
83
			</xsl:when>
84
			<xsl:when test="parent::tei:am">
85
				<xsl:copy />
86
			</xsl:when>
87
			<xsl:when test="parent::tei:rdg[not(matches(@wit,'^#?A'))]">
88
				<xsl:copy />
89
			</xsl:when>
90
			<xsl:when test="ancestor::tei:pc">
91
				<xsl:copy />
92
			</xsl:when>
93
			<xsl:otherwise>
94
				<xsl:analyze-string select="."
95
					regex="\w+|\p{{P}}+|\s+">
96
					<xsl:matching-substring>
97
						<xsl:choose>
98
							<xsl:when test="matches(.,'^\w+$')">
99
								<w xmlns="http://www.tei-c.org/ns/1.0">
100
									<xsl:value-of select="." />
101
								</w>
102
							</xsl:when>
103
							<!-- <xsl:when test="matches(.,'^\p{P}+$')"><orig xmlns="http://www.tei-c.org/ns/1.0"><pc 
104
								xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="."/></pc></orig></xsl:when> -->
105
							<xsl:when test="matches(.,'^\p{P}+$')">
106
								<pc xmlns="http://www.tei-c.org/ns/1.0">
107
									<xsl:value-of select="." />
108
								</pc>
109
							</xsl:when>
110
							<xsl:otherwise>
111
								<xsl:copy />
112
							</xsl:otherwise>
113
						</xsl:choose>
114
					</xsl:matching-substring>
115
					<xsl:non-matching-substring>
116
						<xsl:comment>
117
							Type de caractère non reconnu
118
						</xsl:comment>
119
						<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
131
						select="descendant::tei:pc[1]/@*" />
132
					<xsl:copy>
133
						<xsl:apply-templates />
134
					</xsl:copy>
135
				</pc>
136
			</xsl:when>
137
			<xsl:otherwise>
138
				<w xmlns="http://www.tei-c.org/ns/1.0">
139
					<xsl:copy-of select="." />
140
				</w>
141
			</xsl:otherwise>
142
		</xsl:choose>
143
	</xsl:template>
144

    
145
	<!-- <xsl:template match="tei:pc[ancestor::tei:choice]"> <xsl:apply-templates/> 
146
		</xsl:template> -->
147

    
148
	<xsl:template
149
		match="tei:choice/tei:orig[child::tei:pc]|tei:choice/tei:reg[child::tei:pc]">
150
		<xsl:copy>
151
			<xsl:apply-templates select="@*" />
152
			<xsl:value-of select="normalize-space(.)" />
153
		</xsl:copy>
154
	</xsl:template>
155

    
156
	<xsl:template
157
		match="tei:hi[matches(.,'\w+') and not(matches(.,'\s'))]|tei:am">
158
		<w xmlns="http://www.tei-c.org/ns/1.0">
159
			<xsl:copy-of select="." />
160
		</w>
161
	</xsl:template>
162

    
163

    
164

    
165
	<xsl:template
166
		match="tei:sic[not(parent::tei:choice)]|tei:corr[not(parent::tei:choice)]">
167
		<w xmlns="http://www.tei-c.org/ns/1.0">
168
			<xsl:copy-of select="." />
169
		</w>
170
	</xsl:template>
171

    
172
</xsl:stylesheet>