Statistics
| Revision:

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

History | View | Annotate | Download (7.6 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 les transcription des
16 476 mdecorde
      Psautiers 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:strip-space elements="*"/>-->
37 476 mdecorde
38 476 mdecorde
  <xsl:param name="baseMsSiglum">A</xsl:param>
39 476 mdecorde
40 476 mdecorde
  <xsl:variable name="baseMsPattern"><xsl:value-of select="concat('^#?',$baseMsSiglum,'| #?',$baseMsSiglum)"/></xsl:variable>
41 476 mdecorde
42 476 mdecorde
  <xsl:template match="*|comment()">
43 476 mdecorde
    <!-- Copy the current node -->
44 476 mdecorde
    <xsl:copy>
45 476 mdecorde
      <!-- Including any attributes it has and any child nodes -->
46 476 mdecorde
      <xsl:apply-templates select="@*|node()"/>
47 476 mdecorde
    </xsl:copy>
48 476 mdecorde
  </xsl:template>
49 476 mdecorde
50 476 mdecorde
  <xsl:template match="processing-instruction()"/>
51 476 mdecorde
52 476 mdecorde
  <!-- On supprime les attributs par défaut de la DTD TEI -->
53 476 mdecorde
54 476 mdecorde
  <xsl:template match="@*">
55 476 mdecorde
    <xsl:choose>
56 476 mdecorde
      <xsl:when test="matches(name(.),'^(part|instant|anchored|full)$')"/>
57 476 mdecorde
      <xsl:otherwise><xsl:copy/></xsl:otherwise>
58 476 mdecorde
    </xsl:choose>
59 476 mdecorde
  </xsl:template>
60 476 mdecorde
61 476 mdecorde
<xsl:template match="@facs">
62 476 mdecorde
 <xsl:attribute name="facs">
63 476 mdecorde
   <xsl:choose>
64 476 mdecorde
     <xsl:when test="matches(.,'^http:')">
65 476 mdecorde
       <xsl:value-of select="substring-after(.,'nomFichier=')"/>
66 476 mdecorde
     </xsl:when>
67 476 mdecorde
     <xsl:otherwise>
68 476 mdecorde
       <xsl:value-of select="."/>
69 476 mdecorde
     </xsl:otherwise>
70 476 mdecorde
   </xsl:choose>
71 476 mdecorde
   </xsl:attribute>
72 476 mdecorde
</xsl:template>
73 476 mdecorde
74 476 mdecorde
  <xsl:template match="tei:teiHeader">
75 476 mdecorde
      <xsl:copy>
76 476 mdecorde
        <xsl:apply-templates select="@*"/>
77 476 mdecorde
        <xsl:apply-templates/>
78 476 mdecorde
      </xsl:copy>
79 476 mdecorde
  </xsl:template>
80 476 mdecorde
81 476 mdecorde
82 476 mdecorde
<xsl:template match="tei:revisionDesc">
83 476 mdecorde
  <xsl:copy>
84 476 mdecorde
  <xsl:apply-templates select="@*"/>
85 476 mdecorde
    <change xmlns="http://www.tei-c.org/ns/1.0" when="2007-01-01" who="#DS">Publication du document original</change>
86 476 mdecorde
    <!-- information récupérée à partir de /TEI/text[1]/front[1]/titlePage[1]/docDate[1] -->
87 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>
88 476 mdecorde
  <xsl:apply-templates/>
89 476 mdecorde
  </xsl:copy>
90 476 mdecorde
</xsl:template>
91 476 mdecorde
92 476 mdecorde
  <xsl:template match="tei:encodingDesc">
93 476 mdecorde
    <xsl:copy>
94 476 mdecorde
      <xsl:apply-templates select="@*"/>
95 476 mdecorde
      <xsl:apply-templates/>
96 476 mdecorde
      <xsl:if test="not(//tei:prefixDef[@ident='ori'])">
97 476 mdecorde
        <listPrefixDef xmlns="http://www.tei-c.org/ns/1.0">
98 476 mdecorde
          <prefixDef xmlns="http://www.tei-c.org/ns/1.0" ident="ori"
99 476 mdecorde
            matchPattern="([a-z]+)"
100 476 mdecorde
            replacementPattern="oriflamms-annotation-scheme.xml#$1">
101 476 mdecorde
            <p>In the context of this project, private URIs with the prefix
102 476 mdecorde
              "ori" point to <gi>interp</gi> elements in the project's
103 476 mdecorde
              oriflamms-annotation-scheme.xml file.
104 476 mdecorde
            </p>
105 476 mdecorde
          </prefixDef>
106 476 mdecorde
        </listPrefixDef>
107 476 mdecorde
      </xsl:if>
108 476 mdecorde
    </xsl:copy>
109 476 mdecorde
  </xsl:template>
110 476 mdecorde
111 476 mdecorde
<!-- On restructure le document pour avoir un TEI par charte -->
112 476 mdecorde
113 476 mdecorde
  <!-- TEI devient teiCorpus -->
114 476 mdecorde
115 476 mdecorde
  <xsl:template match="tei:TEI">
116 476 mdecorde
    <xsl:element name="teiCorpus" xmlns="http://www.tei-c.org/ns/1.0">
117 476 mdecorde
      <xsl:apply-templates select="@*"/>
118 476 mdecorde
      <xsl:apply-templates/>
119 476 mdecorde
    </xsl:element>
120 476 mdecorde
  </xsl:template>
121 476 mdecorde
122 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)-->
123 476 mdecorde
124 476 mdecorde
  <xsl:template match="tei:TEI/tei:text">
125 476 mdecorde
    <xsl:apply-templates select="descendant::tei:text"/>
126 476 mdecorde
  </xsl:template>
127 476 mdecorde
128 476 mdecorde
  <xsl:template match="tei:text//tei:text">
129 476 mdecorde
130 476 mdecorde
    <TEI xmlns="http://www.tei-c.org/ns/1.0">
131 476 mdecorde
      <teiHeader xmlns="http://www.tei-c.org/ns/1.0">
132 476 mdecorde
        <fileDesc xmlns="http://www.tei-c.org/ns/1.0">
133 476 mdecorde
          <titleStmt xmlns="http://www.tei-c.org/ns/1.0">
134 476 mdecorde
            <title xmlns="http://www.tei-c.org/ns/1.0"><xsl:text>Acte original </xsl:text>
135 476 mdecorde
              <xsl:value-of select="substring-after(preceding-sibling::comment()[contains(.,'acte original')][1],'acte original ')"/></title>
136 476 mdecorde
            <author xmlns="http://www.tei-c.org/ns/1.0"><xsl:value-of select="descendant::tei:docAuthor"/></author>
137 476 mdecorde
          </titleStmt>
138 476 mdecorde
          <publicationStmt xmlns="http://www.tei-c.org/ns/1.0">
139 476 mdecorde
            <p xmlns="http://www.tei-c.org/ns/1.0">See the header of the teiCorpus</p>
140 476 mdecorde
          </publicationStmt>
141 476 mdecorde
          <!-- les éléments listWit et listBibl sont placés dans sourceDesc -->
142 476 mdecorde
          <sourceDesc xmlns="http://www.tei-c.org/ns/1.0">
143 476 mdecorde
            <xsl:copy-of select="descendant::tei:listWit"/>
144 476 mdecorde
            <xsl:copy-of select="descendant::tei:listBibl[1]"></xsl:copy-of>
145 476 mdecorde
          </sourceDesc>
146 476 mdecorde
        </fileDesc>
147 476 mdecorde
        <profileDesc xmlns="http://www.tei-c.org/ns/1.0">
148 476 mdecorde
          <!-- docDate devient profileDesc/creation/date[@type='documentCreation'] -->
149 476 mdecorde
          <creation xmlns="http://www.tei-c.org/ns/1.0"><xsl:apply-templates select="descendant::tei:docDate"/></creation>
150 476 mdecorde
          <!-- argument devient profileDesc/abstract -->
151 476 mdecorde
          <xsl:apply-templates select="descendant::tei:argument"/>
152 476 mdecorde
        </profileDesc>
153 476 mdecorde
      </teiHeader>
154 476 mdecorde
      <text xmlns="http://www.tei-c.org/ns/1.0">
155 476 mdecorde
          <xsl:apply-templates/>
156 476 mdecorde
      </text>
157 476 mdecorde
    </TEI>
158 476 mdecorde
  </xsl:template>
159 476 mdecorde
160 476 mdecorde
  <!-- on supprime listWit du corps du texte (cf. l'entête) -->
161 476 mdecorde
  <xsl:template match="tei:listWit"/>
162 476 mdecorde
163 476 mdecorde
<!-- on supprime les entêtes et pied de pages (non alignables) -->
164 476 mdecorde
165 476 mdecorde
  <xsl:template match="tei:fw">
166 476 mdecorde
    <xsl:comment>fw : <xsl:copy-of select="."/></xsl:comment>
167 476 mdecorde
  </xsl:template>
168 476 mdecorde
169 476 mdecorde
  <!-- on ajoute un attribut pour faciliter l'identification des segments à ne pas aligner -->
170 476 mdecorde
171 476 mdecorde
  <xsl:template match="tei:choice/tei:expan|tei:choice/tei:corr|tei:supplied|tei:note">
172 476 mdecorde
    <xsl:copy>
173 476 mdecorde
      <xsl:apply-templates select="@*"/>
174 476 mdecorde
      <xsl:attribute name="ana">ori:align-no</xsl:attribute>
175 476 mdecorde
      <xsl:apply-templates/>
176 476 mdecorde
    </xsl:copy>
177 476 mdecorde
  </xsl:template>
178 476 mdecorde
179 476 mdecorde
180 476 mdecorde
<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']]">
181 476 mdecorde
  <xsl:choose>
182 476 mdecorde
    <!-- patch d'espace blanc devant les sauts de ligne à l'intérieur de mots -->
183 476 mdecorde
    <xsl:when test="matches(.,'\s+$')"><xsl:value-of select="replace(.,'\s+$','')"/></xsl:when>
184 476 mdecorde
    <xsl:otherwise><xsl:copy/></xsl:otherwise>
185 476 mdecorde
  </xsl:choose>
186 476 mdecorde
</xsl:template>
187 476 mdecorde
188 476 mdecorde
</xsl:stylesheet>