Statistics
| Revision:

root / tmp / org.txm.oriflamms.rcp / res / oriflamms-convert-inscriptions-oriflammsxml.xsl @ 719

History | View | Annotate | Download (9.8 kB)

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