| Nom.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template name="insérerSautLigneAprèsTexte">
<xsl:param name="texte"/>
<xsl:value-of select="$texte" />
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="Nom">
<xsl:call-template name="insérerSautLigneAprèsTexte">
<xsl:with-param name="texte" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Concert.xml |
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Concert>
<Entête> Les Concerts d'Anacréon </Entête>
<Date>Jeudi 17 Janvier 2002, 20H30</Date>
<Lieu>Chapelle des Ursules</Lieu>
<Ensemble> "A deux violes esgales" </Ensemble>
<Interprète>
<Nom> Jonathan Dunford </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Sylvia Abramowicz </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Benjamin Perrot </Nom>
<Instrument>Théorbe et Guitare baroque</Instrument>
</Interprète>
<TitreConcert>
Folies d'Espagne et diminutions d'Italie
</TitreConcert>
<Compositeurs>
<Compositeur>M. Marais</Compositeur>
<Compositeur>D. Castello</Compositeur>
<Compositeur>F. Rognoni</Compositeur>
</Compositeurs>
</Concert> |
| Résultat |
Jonathan Dunford Sylvia Abramowicz Benjamin Perrot |
| xsl:text |
<xsl:text>
<!-- modèle de transformation -->
... texte brut (pas de texte XML et encore moins XSL) ...
<!-- fin du modèle de transformation -->
</xsl:text> |
| Résultat |
flûte à bec
:
Michel Keustermans et Laura Pok
viole d'amour
:
Vinciane Baudhuin
oboe da caccia
:
Blai Justo
viole de gambe
:
Rika Murata , Martin Bauer , Sophie Watillon
violone
:
Benoit vanden Bemden
orgue positif et clavecin
:
Jacques Willemijns |
| Résultat |
flûte à bec : Michel Keustermans et Laura Pok. viole d'amour : Vinciane Baudhuin. oboe da caccia : Blai Justo. viole de gambe : Rika Murata, Martin Bauer, Sophie Watillon. violone : Benoit vanden Bemden. orgue positif et clavecin : Jacques Willemijns. |
| ProgrammeConcert.xsl |
<?xml version="1.0" encoding="UCS-2"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="Role">
<xsl:value-of select="./child::text()"/> :
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
<xsl:value-of select="Interprète"/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
<xsl:value-of select="Interprète[1]"/> et <xsl:value-of
select="Interprète[2]"/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Interprète">
<xsl:value-of select="."/><xsl:if test="not(position() =
last())">, </xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<Role>\n \t \t \t \t viole de gambe\n \t \t \t \t <Interprète> ... |
<xsl:template match="Role">
<xsl:value-of select="normalize-space(./child::text())"/> :
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
<xsl:value-of select="Interprète"/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
<xsl:value-of select="Interprète[1]"/> et <xsl:value-of
select="Interprète[2]"/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Interprète">
<xsl:value-of select="."/><xsl:if test="not(posiotion() =
last())">, </xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
| Résultat |
flûte à bec :
Michel Keustermans et Laura Pok viole d'amour :
Vinciane Baudhuin oboe da caccia :
Blai Justo viole de gambe :
Rika Murata , Martin Bauer , Sophie Watillon violone :
Benoit vanden Bemden orgue positif et clavecin :
Jacques Willemijns |
<xsl:template match="Role">
<xsl:value-of select="normalize-space(./child::text())"/> :
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
!<xsl:value-of select="Interprète"/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
!<xsl:value-of select="Interprète[1]"/> et <xsl:value-of
select="Interprète[2]"/>
</xsl:when>
<xsl:otherwise>
!<xsl:for-each select="Interprète">
<xsl:value-of select="."/><xsl:if test="not(position() =
last())">, </xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
| Résultat |
flûte à bec :
! Michel Keustermans et Laura Pok viole d'amour :
! Vinciane Baudhuin oboe da caccia :
! Blai Justo viole de gambe :
! Rika Murata , Martin Bauer , Sophie Watillon violone :
! Benoit vanden Bemden orgue positif et clavecin :
! Jacques Willemijns |
<xsl:template match="Role">
*<xsl:value-of select="normalize-space(./child::text())"/> :
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
<xsl:value-of select="Interprète"/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
<xsl:value-of select="Interprète[1]"/> et <xsl:value-of
select="Interprète[2]"/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Interprète">
<xsl:value-of select="."/><xsl:if test="not(position() =
last())">, </xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
| Résultat |
*flûte à bec :
Michel Keustermans et Laura Pok
*viole d'amour :
Vinciane Baudhuin
*oboe da caccia :
Blai Justo
*viole de gambe :
Rika Murata , Martin Bauer , Sophie Watillon
*violone :
Benoit vanden Bemden
*orgue positif et clavecin :
Jacques Willemijns |
<xsl:template match="Role">\n \n \t \t \t *<xsl:value-of select="normalize-space(./child::text())"/> :\n \t \t \t <xsl:choose> ... |
<xsl:template match="Role">
<xsl:text>
</xsl:text>
<xsl:value-of select="normalize-space(./child::text())"/> :
<xsl:choose>
...
</xsl:choose>
</xsl:template> |
<xsl:template match="Role">
<xsl:text>
</xsl:text>
<xsl:value-of select=
"normalize-space(./child::text())"/> <xsl:text> : </xsl:text>
<xsl:choose>
...
</xsl:choose>
</xsl:template> |
<xsl:template match="Role">
<xsl:text>
</xsl:text>
<xsl:value-of select=
"normalize-space(./child::text())"/> : <xsl:text/>
<xsl:choose>
...
</xsl:choose>
</xsl:template> |
| ProgrammeConcert.xsl |
<?xml version="1.0" encoding="UCS-2"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="Role">
<xsl:text>
</xsl:text>
<xsl:value-of select="normalize-space(./child::text())"/> : <xsl:text/>
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
<xsl:value-of select="normalize-space(Interprète)"/>.<xsl:text/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
<xsl:value-of select="normalize-space(Interprète[1])"/>
<xsl:text> et </xsl:text>
<xsl:value-of select="normalize-space(Interprète[2])"/>.<xsl:text/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Interprète">
<xsl:value-of select="normalize-space(.)"/>
<xsl:if test="not(position() = last())">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>.</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
flûte à bec : Michel Keustermans et Laura Pok. viole d'amour : Vinciane Baudhuin. oboe da caccia : Blai Justo. viole de gambe : Rika Murata, Martin Bauer, Sophie Watillon. violone : Benoit vanden Bemden. orgue positif et clavecin : Jacques Willemijns. |
| xsl:text |
<xsl:text disable-output-escaping="...">
... texte brut (pas de texte XML et encore moins XSL) ...
</xsl:text> |
| Résultat |
flûte à bec : Michel Keustermans & Laura Pok. viole d'amour : Vinciane Baudhuin. oboe da caccia : Blai Justo. viole de gambe : Rika Murata, Martin Bauer, Sophie Watillon. violone : Benoit vanden Bemden. orgue positif et clavecin : Jacques Willemijns. |
| ProgrammeConcert.xsl |
<?xml version="1.0" encoding="UCS-2"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='xml'
encoding='ISO-8859-1' /> <!-- mode xml activé ici !!! -->
<xsl:template match="Role">
<xsl:text>
</xsl:text>
<xsl:value-of select="normalize-space(./child::text())"/> : <xsl:text/>
<xsl:choose>
<xsl:when test="count(./Interprète) = 1 ">
<xsl:value-of select="normalize-space(Interprète)"/>.<xsl:text/>
</xsl:when>
<xsl:when test="count(./Interprète) = 2 ">
<xsl:value-of select="normalize-space(Interprète[1])"/>
<xsl:text disable-output-escaping="no"> & </xsl:text>
<xsl:value-of select="normalize-space(Interprète[2])"/>.<xsl:text/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Interprète">
<xsl:value-of select="normalize-space(.)"/>
<xsl:if test="not(position() = last())">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>.</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> flûte à bec : Michel Keustermans & Laura Pok. viole d'amour : Vinciane Baudhuin. oboe da caccia : Blai Justo. viole de gambe : Rika Murata, Martin Bauer, Sophie Watillon. violone : Benoit vanden Bemden. orgue positif et clavecin : Jacques Willemijns. |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> flûte à bec : Michel Keustermans & Laura Pok. viole d'amour : Vinciane Baudhuin. oboe da caccia : Blai Justo. viole de gambe : Rika Murata, Martin Bauer, Sophie Watillon. violone : Benoit vanden Bemden. orgue positif et clavecin : Jacques Willemijns. |
<xsl:template match="Concert">
<xsl:variable name="mouvement">
<insert>
<Ensemble>
<Nom><xsl:value-of select="NomEnsemble"/></Nom>
<Direction><xsl:value-of select="Chef"/></Direction>
</Ensemble>
<Concert>
<Date><xsl:value-of select="Date"/></Date>
<Ville><xsl:value-of select="Ville"/></Ville>
<Lieu><xsl:value-of select="Salle"/></Lieu>
<Titre><xsl:value-of select="TitreConcert"/></Titre>
</Concert>
</insert>
</xsl:variable>
<xsl:copy-of select="$mouvement"/>
</xsl:template> |
| instanciation de ce modèle |
<insert>
<Ensemble>
<Nom>...</Nom>
<Direction>...</Direction>
</Ensemble>
<Concert>
<Date>...</Date>
<Ville>...</Ville>
<Lieu>...</Lieu>
<Titre>...></Titre>
</Concert>
</insert> |
| declamationTaille.xml |
<?xml version="1.0" encoding="UTF-16"?>
<texte>
<référence>
Pièces de viole du 5° livre, 1725
Marin Marais
</référence>
<titre>
Le Tableau de l'Opération de la Taille
</titre>
<paroles>
<p>L'aspect de l'apareil.</p>
<p>Fremissement en le voyant.</p>
<p>Resolution pour y monter.</p>
<p>Parvenu jusqu'au hault;</p>
<p>descente dudit apareil.</p>
<p>Reflexions serieuses.</p>
<p>Entrelassement des soyes
Entre les bras et les jambes.</p>
<p>Icy se fait l'incision.</p>
<p>Introduction de la tenette.</p>
<p>Ici l'on tire la piere.</p>
<p>Icy l'on perd quasi la voix.</p>
<p>Ecoulement du sang.</p>
<p>Icy l'on oste les soyes.</p>
<p>Icy l'on vous transporte dans le lit.</p>
</paroles>
</texte> |
| synopsisRecitant.xml |
<?xml version="1.0" encoding="UTF-16"?>
<synopsisRécitant>
<prologue/>
<Numeros>
<NoMesure>1</NoMesure>
<NoMesure>8</NoMesure>
<NoMesure>11</NoMesure>
<NoMesure>15</NoMesure>
<NoMesure>20</NoMesure>
<NoMesure>22</NoMesure>
<NoMesure>23</NoMesure>
<NoMesure>27</NoMesure>
<NoMesure>31</NoMesure>
<NoMesure>39</NoMesure>
<NoMesure>44</NoMesure>
<NoMesure>48</NoMesure>
<NoMesure>50</NoMesure>
<NoMesure>53</NoMesure>
</Numeros>
</synopsisRécitant> |
| synopsisRecitant.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure No="1">L'aspect de l'apareil.</mesure>
<mesure No="8">Fremissement en le voyant.</mesure>
<mesure No="11">Resolution pour y monter.</mesure>
<mesure No="15">Parvenu jusqu'au hault;</mesure>
<mesure No="20">descente dudit apareil.</mesure>
<mesure No="22">Reflexions serieuses.</mesure>
<mesure No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure No="27">Icy se fait l'incision.</mesure>
<mesure No="31">Introduction de la tenette.</mesure>
<mesure No="39">Ici l'on tire la piere.</mesure>
<mesure No="44">Icy l'on perd quasi la voix.</mesure>
<mesure No="48">Ecoulement du sang.</mesure>
<mesure No="50">Icy l'on oste les soyes.</mesure>
<mesure No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| Elément source littéral à contenu calculé |
<mesure No="...">
...
</mesure> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
...
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<mesure No="...">
...
</mesure> |
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
...
<mesure No="...(1)...">
...(2)...
</mesure>
</xsl:for-each>
</xsl:template> |
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<mesure No="...(1)...">
<xsl:value-of select="$declamation/paroles/p[position()=$i]"/>
</mesure>
</xsl:for-each>
</xsl:template> |
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<mesure No="$declamation/paroles/p[position() = $i]">
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</mesure>
</xsl:for-each>
</xsl:template> |
| interventionRecitant.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure No="$declamation/paroles/p[position() = $i]">L'aspect de l'apareil.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Fremissement en le voyant.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Resolution pour y monter.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Parvenu jusqu'au hault;</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">descente dudit apareil.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Reflexions serieuses.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Icy se fait l'incision.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Introduction de la tenette.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Ici l'on tire la piere.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Icy l'on perd quasi la voix.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Ecoulement du sang.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Icy l'on oste les soyes.</mesure>
<mesure No="$declamation/paroles/p[position() = $i]">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<mesure No="...(1)...">
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</mesure>
</xsl:for-each>
</xsl:template> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<mesure No="{.}">
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</mesure>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| interventionRecitant.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure No="1">L'aspect de l'apareil.</mesure>
<mesure No="8">Fremissement en le voyant.</mesure>
<mesure No="11">Resolution pour y monter.</mesure>
<mesure No="15">Parvenu jusqu'au hault;</mesure>
<mesure No="20">descente dudit apareil.</mesure>
<mesure No="22">Reflexions serieuses.</mesure>
<mesure No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure No="27">Icy se fait l'incision.</mesure>
<mesure No="31">Introduction de la tenette.</mesure>
<mesure No="39">Ici l'on tire la piere.</mesure>
<mesure No="44">Icy l'on perd quasi la voix.</mesure>
<mesure No="48">Ecoulement du sang.</mesure>
<mesure No="50">Icy l'on oste les soyes.</mesure>
<mesure No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
<Ensemble>
<Nom>
<xsl:value-of select="NomEnsemble"/>
</Nom>
<Direction>
<xsl:value-of select="Chef"/>
</Direction>
</Ensemble> |
<xsl:element name="Ensemble">
<xsl:element name="Nom">
<xsl:value-of select="NomEnsemble"/>
</xsl:element>
<xsl:element name="Direction">
<xsl:value-of select="Chef"/>
</xsl:element>
</xsl:element> |
<xsl:element name="{$x}">
...
</xsl:element> |
| xsl:element |
<xsl:element name="...">
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:element> |
| prepareInsert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="/">
<Mouvements>
<xsl:apply-templates/>
</Mouvements>
</xsl:template>
<xsl:template match="Concert">
<xsl:variable name="mouvement">
<insert>
<Ensemble>
<Nom>
<xsl:value-of select="NomEnsemble"/>
</Nom>
<Direction>
<xsl:value-of select="Chef"/>
</Direction>
</Ensemble>
<Concert>
<Date>
<xsl:value-of select="Date"/>
</Date>
<Ville>
<xsl:value-of select="Ville"/>
</Ville>
<Lieu>
<xsl:value-of select="Salle"/>
</Lieu>
<Titre>
<xsl:value-of select="TitreConcert"/>
</Titre>
</Concert>
</insert>
</xsl:variable>
<xsl:copy-of select="$mouvement"/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<xsl:template match="Concert">
<xsl:variable name="mouvement">
<xsl:element name="insert">
<xsl:element name="Ensemble">
<xsl:element name="Nom">
<xsl:value-of select="NomEnsemble"/>
</xsl:element>
<xsl:element name="Direction">
<xsl:value-of select="Chef"/>
</xsl:element>
</xsl:element>
<xsl:element name="Concert">
<xsl:element name="Date">
<xsl:value-of select="Date"/>
</xsl:element>
<xsl:element name="Ville">
<xsl:value-of select="Ville"/>
</xsl:element>
<xsl:element name="Lieu">
<xsl:value-of select="Salle"/>
</xsl:element>
<xsl:element name="Titre">
<xsl:value-of select="TitreConcert"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:variable>
<xsl:copy-of select="$mouvement"/>
</xsl:template> |
| mapping.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<mapping>
<table>ACCORD</table>
<ACCORD>
<DEDEC>
<field>beginning_date</field>
<type>BusinessDate</type>
</DEDEC>
<CCETF>
<field>state</field>
<type>String</type>
</CCETF>
<NOACA>
<field>company_id</field>
<type>String</type>
</NOACA>
<NOPOA>
<field>contract_nbr</field>
<type>String</type>
</NOPOA>
<CCPAA1>
<field>country_code</field>
<type>Integer</type>
</CCPAA1>
</ACCORD>
<table>COMPANY</table>
<COMPANY>
<NOACA>
<field>company_id</field>
<type>String</type>
</NOACA>
<LSACA1>
<field>company_name</field>
<type>String</type>
</LSACA1>
<CCPAA1>
<field>country_code</field>
<type>Integer</type>
</CCPAA1>
<LAACA1>
<field>address</field>
<type>String</type>
</LAACA1>
<URL>
<field>URL</field>
<type>String</type>
</URL>
<STATRAT>
<field>quality_code</field>
<type>String</type>
</STATRAT>
</COMPANY>
</mapping> |
| accord.xml |
<?xml version="1.0" encoding="UTF-16"?> <table name="ACCORD"> DEDEC<tab/>DATE<br/> CCETF<tab/>CHAR(1)<br/> NOACA<tab/>CHAR(6)<br/> NOPOA<tab/>VARCHAR2(35)<br/> CCPAA1<tab/>NUMBER(4)<br/> </table> |
| company.xml |
<?xml version="1.0" encoding="UTF-16" ?> <table name="COMPANY"> NOACA<tab/>CHAR(6)<br/> LSACA1<tab/>VARCHAR2(35)<br/> CCPAA1<tab/>NUMBER(4)<br/> LAACA1<tab/>VARCHAR2(35)<br/> URL<tab/>VARCHAR2(40)<br/> STATRAT<tab/>VARCHAR2(1)<br/> </table> |
| fields.xml |
<?xml version="1.0" encoding="UTF-16"?>
<fields>
<field id="DEDEC" >beginning_date</field>
<field id="CCETF" >state </field>
<field id="NOACA" >company_id </field>
<field id="NOPOA" >contract_nbr </field>
<field id="CCPAA1" >country_code </field>
<field id="LSACA1" >company_name </field>
<field id="LAACA1" >address </field>
<field id="URL" >URL </field>
<field id="STATRAT">quality_code </field>
</fields> |
| tables.xml |
<?xml version="1.0" encoding="UTF-16" ?> <!DOCTYPE tables [ <!ENTITY accord SYSTEM 'accord.xml'> <!ENTITY company SYSTEM 'company.xml'> ]> <tables> &accord; &company; </tables> |
<?xml version="1.0" encoding="UTF-16" ?>
<tables>
<table name="ACCORD">
DEDEC<tab/>DATE<br/>
CCETF<tab/>CHAR(1)<br/>
NOACA<tab/>CHAR(6)<br/>
NOPOA<tab/>VARCHAR2(35)<br/>
CCPAA1<tab/>NUMBER(4)<br/>
</table>
<table name="COMPANY">
NOACA<tab/>CHAR(6)<br/>
LSACA1<tab/>VARCHAR2(35)<br/>
CCPAA1<tab/>NUMBER(4)<br/>
LAACA1<tab/>VARCHAR2(35)<br/>
URL<tab/>VARCHAR2(40)<br/>
STATRAT<tab/>VARCHAR2(1)<br/>
</table>
</tables> |
table ACCORD : nom de colonne = DEDEC; type = DATE nom de colonne = CCETF; type = CHAR(1) nom de colonne = NOACA; type = CHAR(6) nom de colonne = NOPOA; type = VARCHAR2(35) nom de colonne = CCPAA1; type = NUMBER(4) table COMPANY : nom de colonne = NOACA; type = CHAR(6) nom de colonne = LSACA1; type = VARCHAR2(35) nom de colonne = CCPAA1; type = NUMBER(4) nom de colonne = LAACA1; type = VARCHAR2(35) nom de colonne = URL; type = VARCHAR2(40) nom de colonne = STATRAT; type = VARCHAR2(1) |
| essai.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="table">
<xsl:text/>table <xsl:value-of select="@name"/> :<xsl:text>
</xsl:text>
<xsl:for-each select="tab">
<xsl:text>nom de colonne = </xsl:text>
<xsl:value-of select="normalize-space(
preceding-sibling::text()[1])"/>
<xsl:text>; type = </xsl:text>
<xsl:value-of select="normalize-space(
following-sibling::text()[1])"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<$elementName> <field>...</field> <type>...</type> </$elementName> |
<DEDEC> <field>...</field> <type>...</type> </DEDEC> |
<?xml version="1.0" encoding="ISO-8859-1"?>
<mapping>
<table>ACCORD</table>
<ACCORD>
<DEDEC>
<field>beginning_date</field>
<type>BusinessDate</type>
</DEDEC>
<CCETF>
<field>state</field>
<type>String</type>
</CCETF>
<NOACA>
<field>company_id</field>
<type>String</type>
</NOACA>
...
|
<xsl:for-each select="tab">
<!-- ici : elementName = le texte situé juste avant le <tab> courant -->
<xsl:element name="{$elementName}">
<field>
<!--
ici placer la traduction de $elementName,
obtenue par un dictionnaire
-->
</field>
<type>
<!-- ici: typeSQL = le texte situé juste après le <tab> courant -->
<xsl:choose>
<xsl:when test="contains( $typeSQL, 'CHAR' )" >
<xsl:text>String</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'DATE' )" >
<xsl:text>BusinessDate</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'NUMBER' )" >
<xsl:text>Integer</xsl:text>
</xsl:when>
</xsl:choose>
</type>
</xsl:element>
</xsl:for-each> |
| mapping.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="dicoFileRef">fields.xml</xsl:param>
<xsl:variable name="Dictionnaire" select="document($dicoFileRef)/fields"/>
<xsl:template match="/">
<mapping>
<xsl:apply-templates/>
</mapping>
</xsl:template>
<xsl:template name="traduction">
<xsl:param name="motId"/>
<xsl:variable
name="saTraduction"
select="$Dictionnaire/field[@id=$motId]" />
<xsl:value-of select="normalize-space($saTraduction)" />
</xsl:template>
<xsl:template match="table">
<table>
<xsl:value-of select="@name"/>
</table>
<xsl:element name="{@name}">
<xsl:for-each select="tab">
<xsl:variable name="elementName"
select="normalize-space(
preceding-sibling::text()[1]
)"/>
<xsl:element name="{$elementName}">
<field>
<xsl:call-template name="traduction">
<xsl:with-param name="motId" select="$elementName" />
</xsl:call-template>
</field>
<type>
<xsl:variable name="typeSQL" select="normalize-space(
following-sibling::text()[1]
)"/>
<xsl:choose>
<xsl:when test="contains( $typeSQL, 'CHAR' )" >
<xsl:text>String</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'DATE' )" >
<xsl:text>BusinessDate</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'NUMBER' )" >
<xsl:text>Integer</xsl:text>
</xsl:when>
</xsl:choose>
</type>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| xsl:element |
<xsl:element name="..." namespace="...">
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:element> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://concerts.anacreon.fr/viole-de-gambe"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<mesure No="{.}">
<xsl:value-of select="$declamation/paroles/p[position()=$i]"/>
</mesure>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant xmlns="http://concerts.anacreon.fr/viole-de-gambe">
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure No="1">L'aspect de l'apareil.</mesure>
<mesure No="8">Fremissement en le voyant.</mesure>
<mesure No="11">Resolution pour y monter.</mesure>
<mesure No="15">Parvenu jusqu'au hault;</mesure>
<mesure No="20">descente dudit apareil.</mesure>
<mesure No="22">Reflexions serieuses.</mesure>
<mesure No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure No="27">Icy se fait l'incision.</mesure>
<mesure No="31">Introduction de la tenette.</mesure>
<mesure No="39">Ici l'on tire la piere.</mesure>
<mesure No="44">Icy l'on perd quasi la voix.</mesure>
<mesure No="48">Ecoulement du sang.</mesure>
<mesure No="50">Icy l'on oste les soyes.</mesure>
<mesure No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:vdg="http://concerts.anacreon.fr/viole-de-gambe"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<vdg:récitant>
<xsl:apply-templates/>
</vdg:récitant>
</xsl:template>
<xsl:template match="prologue">
<vdg:prologue>
<xsl:value-of select="$declamation/titre"/>
</vdg:prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<vdg:mesure No="{.}">
<xsl:value-of select="$declamation/paroles/p[position()=$i]"/>
</vdg:mesure>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<vdg:récitant xmlns:vdg="http://concerts.anacreon.fr/viole-de-gambe">
<vdg:prologue>
Le Tableau de l'Opération de la Taille
</vdg:prologue>
<vdg:mesure No="1">L'aspect de l'apareil.</vdg:mesure>
<vdg:mesure No="8">Fremissement en le voyant.</vdg:mesure>
<vdg:mesure No="11">Resolution pour y monter.</vdg:mesure>
<vdg:mesure No="15">Parvenu jusqu'au hault;</vdg:mesure>
<vdg:mesure No="20">descente dudit apareil.</vdg:mesure>
<vdg:mesure No="22">Reflexions serieuses.</vdg:mesure>
<vdg:mesure No="23">Entrelassement des soyes
Entre les bras et les jambes.</vdg:mesure>
<vdg:mesure No="27">Icy se fait l'incision.</vdg:mesure>
<vdg:mesure No="31">Introduction de la tenette.</vdg:mesure>
<vdg:mesure No="39">Ici l'on tire la piere.</vdg:mesure>
<vdg:mesure No="44">Icy l'on perd quasi la voix.</vdg:mesure>
<vdg:mesure No="48">Ecoulement du sang.</vdg:mesure>
<vdg:mesure No="50">Icy l'on oste les soyes.</vdg:mesure>
<vdg:mesure No="53">Icy l'on vous transporte dans le lit.</vdg:mesure>
</vdg:récitant> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<xsl:element name="mesure"
namespace="http://concerts.anacreon.fr/viole-de-gambe">
<xsl:attribute name="No"><xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="$declamation/paroles/p[position()=$i]"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="1">L'aspect de l'apareil.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="8">Fremissement en le voyant.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="11">Resolution pour y monter.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="15">Parvenu jusqu'au hault;</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="20">descente dudit apareil.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="22">Reflexions serieuses.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="27">Icy se fait l'incision.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="31">Introduction de la tenette.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="39">Ici l'on tire la piere.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="44">Icy l'on perd quasi la voix.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="48">Ecoulement du sang.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="50">Icy l'on oste les soyes.</mesure>
<mesure xmlns="http://concerts.anacreon.fr/viole-de-gambe" No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| Concert.xml |
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Concert>
<Entête> Les Concerts d'Anacréon </Entête>
<Date>Jeudi 17 Janvier 2002, 20H30</Date>
<Lieu>Chapelle des Ursules</Lieu>
<Ensemble> "A deux violes esgales" </Ensemble>
<Interprète>
<Nom> Jonathan Dunford </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Sylvia Abramowicz </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Benjamin Perrot </Nom>
<Instrument>Théorbe et Guitare baroque</Instrument>
</Interprète>
<TitreConcert>
Folies d'Espagne et diminutions d'Italie
</TitreConcert>
<Compositeurs>
<Compositeur>M. Marais</Compositeur>
<Compositeur>D. Castello</Compositeur>
<Compositeur>F. Rognoni</Compositeur>
</Compositeurs>
</Concert> |
| Concert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='xml' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="/">
<Interprètes>
<xsl:apply-templates/>
</Interprètes>
</xsl:template>
<xsl:template match="Interprète">
<Interprète>
<xsl:attribute name="Nom">
<xsl:value-of select="./Nom"/>
</xsl:attribute>
<xsl:attribute name="Instrument">
<xsl:value-of select="./Instrument"/>
</xsl:attribute>
</Interprète>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <Interprètes> <Interprète Nom=" Jonathan Dunford " Instrument="Basse de viole"/> <Interprète Nom=" Sylvia Abramowicz " Instrument="Basse de viole"/> <Interprète Nom=" Benjamin Perrot " Instrument="Théorbe et Guitare baroque"/> </Interprètes> |
| xsl:attribute |
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute> |
| xsl:attribute |
<xsl:element name="...">
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
... autres instructions <xsl:attribute> ...
<!-- modèle de transformation propre à xsl:element -->
...
<!-- fin du modèle de transformation propre à xsl:element -->
</xsl:element> |
| xsl:attribute |
<xxx>
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
... autres instructions <xsl:attribute> ...
<!-- modèle de transformation propre à l'élément xxx -->
...
<!-- fin du modèle de transformation propre à l'élément xxx -->
<xxx> |
| interventionRecitant.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure No="1">L'aspect de l'apareil.</mesure>
<mesure No="8">Fremissement en le voyant.</mesure>
<mesure No="11">Resolution pour y monter.</mesure>
<mesure No="15">Parvenu jusqu'au hault;</mesure>
<mesure No="20">descente dudit apareil.</mesure>
<mesure No="22">Reflexions serieuses.</mesure>
<mesure No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure No="27">Icy se fait l'incision.</mesure>
<mesure No="31">Introduction de la tenette.</mesure>
<mesure No="39">Ici l'on tire la piere.</mesure>
<mesure No="44">Icy l'on perd quasi la voix.</mesure>
<mesure No="48">Ecoulement du sang.</mesure>
<mesure No="50">Icy l'on oste les soyes.</mesure>
<mesure No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| fusion.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<!-- c'est ici que cela change -->
<mesure>
<xsl:attribute name="No">
<xsl:value-of select="."/>
<xsl:attribute/>
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</mesure>
<!-- -->
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| mapping.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<mapping>
<table>ACCORD</table>
<ACCORD>
<DEDEC>
<field>beginning_date</field>
<type>BusinessDate</type>
</DEDEC>
<CCETF CHAR="1">
<field>state</field>
<type>String</type>
</CCETF>
<NOACA CHAR="6">
<field>company_id</field>
<type>String</type>
</NOACA>
<NOPOA VARCHAR2="35">
<field>contract_nbr</field>
<type>String</type>
</NOPOA>
<CCPAA1 NUMBER="4">
<field>country_code</field>
<type>Integer</type>
</CCPAA1>
</ACCORD>
<table>COMPANY</table>
<COMPANY>
<NOACA CHAR="6">
<field>company_id</field>
<type>String</type>
</NOACA>
<LSACA1 VARCHAR2="35">
<field>company_name</field>
<type>String</type>
</LSACA1>
<CCPAA1 NUMBER="4">
<field>country_code</field>
<type>Integer</type>
</CCPAA1>
<LAACA1 VARCHAR2="35">
<field>address</field>
<type>String</type>
</LAACA1>
<URL VARCHAR2="40">
<field>URL</field>
<type>String</type>
</URL>
<STATRAT VARCHAR2="1">
<field>quality_code</field>
<type>String</type>
</STATRAT>
</COMPANY>
</mapping> |
<xsl:template match="table">
<table>
<xsl:value-of select="@name"/>
</table>
<xsl:element name="{@name}">
<xsl:for-each select="tab">
<xsl:variable name="elementName"
select="normalize-space(
preceding-sibling::text()[1]
)"/>
<xsl:element name="{$elementName}">
<field>
<xsl:call-template name="traduction">
<xsl:with-param name="motId" select="$elementName" />
</xsl:call-template>
</field>
<type>
<xsl:variable name="typeSQL" select="normalize-space(
following-sibling::text()[1]
)"/>
<xsl:choose>
<xsl:when test="contains( $typeSQL, 'CHAR' )" >
<xsl:text>String</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'DATE' )" >
<xsl:text>BusinessDate</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'NUMBER' )" >
<xsl:text>Integer</xsl:text>
</xsl:when>
</xsl:choose>
</type>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template> |
<xsl:variable name="typeSQL" select="normalize-space(
following-sibling::text()[1]
)"/>
<!-- ici, typeSQL vaut par exemple "NUMBER(4)" -->
<xsl:variable name="attributeName"
select="substring-before( $typeSQL, '(' )"/>
<!-- dans ce cas, attributeName vaut "NUMBER" -->
<xsl:variable name="typeSQL-after"
select="substring-after( $typeSQL, '(' )"/>
<!-- et typeSQL-after vaut "4)" -->
<xsl:variable name="attributeValue"
select="substring-before( $typeSQL-after, ')' )"/>
<!-- et finalement attributeValue vaut "4" --> |
<xsl:variable name="typeSQL" select="normalize-space(
following-sibling::text()[1]
)"/>
<xsl:variable name="attributeName"
select="substring-before( $typeSQL, '(' )"/>
<xsl:variable name="typeSQL-after"
select="substring-after( $typeSQL, '(' )"/>
<xsl:variable name="attributeValue"
select="substring-before( $typeSQL-after, ')' )"/>
<xsl:if test="$attributeName">
<xsl:attribute name="{$attributeName}" >
<xsl:value-of select="$attributeValue"/>
</xsl:attribute>
</xsl:if> |
| mapping.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="dicoFileRef">fields.xml</xsl:param>
<xsl:variable name="Dictionnaire" select="document($dicoFileRef)/fields"/>
<xsl:template match="/">
<mapping>
<xsl:apply-templates/>
</mapping>
</xsl:template>
<xsl:template name="traduction">
<xsl:param name="motId"/>
<xsl:variable
name="saTraduction"
select="$Dictionnaire/field[@id=$motId]" />
<xsl:value-of select="normalize-space($saTraduction)" />
</xsl:template>
<xsl:template match="table">
<table>
<xsl:value-of select="@name"/>
</table>
<xsl:element name="{@name}">
<xsl:for-each select="tab">
<xsl:variable name="elementName"
select="normalize-space(
preceding-sibling::text()[1]
)"/>
<xsl:element name="{$elementName}">
<xsl:variable name="typeSQL" select="normalize-space(
following-sibling::text()[1]
)"/>
<xsl:variable name="attributeName"
select="substring-before( $typeSQL, '(' )"/>
<xsl:variable name="typeSQL-after"
select="substring-after( $typeSQL, '(' )"/>
<xsl:variable name="attributeValue"
select="substring-before( $typeSQL-after, ')' )"/>
<xsl:if test="$attributeName">
<xsl:attribute name="{$attributeName}" >
<xsl:value-of select="$attributeValue"/>
</xsl:attribute>
</xsl:if>
<field>
<xsl:call-template name="traduction">
<xsl:with-param name="motId" select="$elementName" />
</xsl:call-template>
</field>
<type>
<xsl:choose>
<xsl:when test="contains( $typeSQL, 'CHAR' )" >
<xsl:text>String</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'DATE' )" >
<xsl:text>BusinessDate</xsl:text>
</xsl:when>
<xsl:when test="contains( $typeSQL, 'NUMBER' )" >
<xsl:text>Integer</xsl:text>
</xsl:when>
</xsl:choose>
</type>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| xsl:attribute |
<xsl:attribute name="..." namespace="...">
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:element> |
| mapping.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<xsl:element name="mesure" >
<xsl:attribute name="No"
namespace="http://concerts.anacreon.fr/viole-de-gambe">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="1">L'aspect de l'apareil.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="8">Fremissement en le voyant.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="11">Resolution pour y monter.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="15">Parvenu jusqu'au hault;</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="20">descente dudit apareil.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="22">Reflexions serieuses.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="27">Icy se fait l'incision.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="31">Introduction de la tenette.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="39">Ici l'on tire la piere.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="44">Icy l'on perd quasi la voix.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="48">Ecoulement du sang.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="50">Icy l'on oste les soyes.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| mapping.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:vdg="http://concerts.anacreon.fr/viole-de-gambe"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:param name="declamationFileRef" select="'declamationTaille.xml'" />
<xsl:variable name="declamation"
select="document( $declamationFileRef )/texte" />
<xsl:template match="/">
<récitant>
<xsl:apply-templates/>
</récitant>
</xsl:template>
<xsl:template match="prologue">
<prologue>
<xsl:value-of select="$declamation/titre"/>
</prologue>
</xsl:template>
<xsl:template match="Numeros">
<xsl:for-each select="NoMesure">
<xsl:variable name="i" select="position()" />
<xsl:element name="mesure" >
<xsl:attribute name="vdg:No">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="$declamation/paroles/p[position() = $i]"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant xmlns:vdg="http://concerts.anacreon.fr/viole-de-gambe">
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure vdg:No="1">L'aspect de l'apareil.</mesure>
<mesure vdg:No="8">Fremissement en le voyant.</mesure>
<mesure vdg:No="11">Resolution pour y monter.</mesure>
<mesure vdg:No="15">Parvenu jusqu'au hault;</mesure>
<mesure vdg:No="20">descente dudit apareil.</mesure>
<mesure vdg:No="22">Reflexions serieuses.</mesure>
<mesure vdg:No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure vdg:No="27">Icy se fait l'incision.</mesure>
<mesure vdg:No="31">Introduction de la tenette.</mesure>
<mesure vdg:No="39">Ici l'on tire la piere.</mesure>
<mesure vdg:No="44">Icy l'on perd quasi la voix.</mesure>
<mesure vdg:No="48">Ecoulement du sang.</mesure>
<mesure vdg:No="50">Icy l'on oste les soyes.</mesure>
<mesure vdg:No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| Concert.xml |
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Concert>
<Entête> "Les Concerts d'Anacréon" </Entête>
<Date>Jeudi 17 Janvier 2002, 20H30</Date>
<Lieu>Chapelle des Ursules</Lieu>
<Ensemble> "A deux violes esgales" </Ensemble>
</Concert> |
| Concert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='html' encoding='ISO-8859-1' />
<xsl:attribute-set name="body-attributes">
<xsl:attribute name="leftmargin">150</xsl:attribute>
<xsl:attribute name="bgcolor">#ddeeff</xsl:attribute>
<xsl:attribute name="text">black</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="/Concert/Entête"/></title>
</head>
<xsl:element name="body" use-attribute-sets="body-attributes">
<xsl:apply-templates/>
</xsl:element>
</html>
</xsl:template>
<xsl:template match="Ensemble">
<H2 align="center"> Ensemble <xsl:value-of select="."/></H2>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> «Les Concerts d'Anacréon» </title>
</head>
<body leftmargin="150" bgcolor="#ddeeff" text="black">
<H2 align="center"> Ensemble «A deux violes esgales» </H2>
</body>
</html> |
| xsl:attribute-set |
<xsl:attribute-set name="...">
<!-- modèle de transformation propre à xsl:attribute-set -->
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<!-- etc. autant d'attributs que l'on veut, mais rien que des attributs -->
<!-- fin du modèle de transformation propre à xsl:attribute-set -->
</xsl:attribute-set> |
<xsl:attribute-set name="truc">
<xsl:attribute name="machin">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:attribute name="bidule">
<xsl:value-of select=".."/>
</xsl:attribute>
</xsl:attribute-set> |
| xsl:attribute-set |
<xsl:attribute-set name="..." use-attribute-sets="...">
<!-- modèle de transformation propre à xsl:attribute-set -->
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<xsl:attribute name="...">
<!-- modèle de transformation propre à xsl:attribute -->
...
<!-- fin du modèle de transformation propre à xsl:attribute -->
</xsl:attribute>
<!-- etc. autant d'attributs que l'on veut, mais rien que des attributs -->
<!-- fin du modèle de transformation propre à xsl:attribute-set -->
</xsl:attribute-set> |
| plagesCD.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<plages>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" org="fech">
Grave
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp">
Presto / Prestissimo
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded">
Adagio
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp" org="fech">
Presto Récit de basse
</plage>
</plages> |
| codesPlages.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<codes>
<artistes>
<artiste id="cplu" name="Christine Plubeau"/>
<artiste id="nspt" name="Noëlle Spieth"/>
<artiste id="eblq" name="Eric Bellocq"/>
<artiste id="fmrt" name="Frédéric Martin"/>
<artiste id="oded" name="Odile Edouard"/>
<artiste id="fech" name="Freddy Eichelberger"/>
<artiste id="dsmp" name="David Simpson"/>
</artistes>
<instruments>
<instrument id="vdg" name="Viole de gambe"/>
<instrument id="clv" name="Clavecin"/>
<instrument id="thb" name="Théorbe"/>
<instrument id="vl1" name="Violon baroque"/>
<instrument id="vl2" name="Violon baroque"/>
<instrument id="org" name="Orgue positif"/>
<instrument id="vlc" name="Violoncelle baroque"/>
</instruments>
</codes> |
| sonates-jacquet-dlg.xml |
<?xml version="1.0" encoding="UTF-16"?>
<sonates>
<compositeur>
Elizabeth Jacquet de la Guerre
</compositeur>
<recueil>
Manuscrit des sonates en duo et trio
copiées par Sébastien de Brossard vers 1695
</recueil>
<sonate>
<titre>
Suonata IV en sol mineur a 2 Violini soli
e Violoncello obligato con organo
</titre>
<mouvement effectif="bc-violons-orgue">
<titre>Grave</titre>
</mouvement>
<mouvement effectif="tutti">
<titre>Presto / Prestissimo</titre>
</mouvement>
<mouvement effectif="bc-violons">
<titre>Adagio</titre>
</mouvement>
<mouvement effectif="tutti-orgue">
<titre>Presto Récit de basse</titre>
</mouvement>
</sonate>
<!-- autres sonates à suivre ici -->
</sonates> |
<xsl:attribute-set name="bc">
<xsl:attribute name="vdg">cplu</xsl:attribute>
<xsl:attribute name="clv">nspt</xsl:attribute>
<xsl:attribute name="thb">eblq</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="vls">
<xsl:attribute name="vl1">fmrt</xsl:attribute>
<xsl:attribute name="vl2">oded</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="tt" use-attribute-sets="bc vls">
<xsl:attribute name="vcl">dsmp</xsl:attribute>
</xsl:attribute-set> |
<xsl:template match="sonate">
<xsl:for-each select="mouvement">
<xsl:choose>
<xsl:when test="@effectif = 'bc-violons-orgue'">
<xsl:element name="plage" use-attribute-sets="bc vls">
<xsl:attribute name="org">fech</xsl:attribute>
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when> |
| plagesCD.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:attribute-set name="bc">
<xsl:attribute name="vdg">cplu</xsl:attribute>
<xsl:attribute name="clv">nspt</xsl:attribute>
<xsl:attribute name="thb">eblq</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="vls">
<xsl:attribute name="vl1">fmrt</xsl:attribute>
<xsl:attribute name="vl2">oded</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="tt" use-attribute-sets="bc vls">
<xsl:attribute name="vcl">dsmp</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="sonate">
<xsl:for-each select="mouvement">
<xsl:choose>
<xsl:when test="@effectif = 'bc-violons-orgue'">
<xsl:element name="plage" use-attribute-sets="bc vls">
<xsl:attribute name="org">fech</xsl:attribute>
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when>
<xsl:when test="@effectif = 'bc-violons'">
<xsl:element name="plage" use-attribute-sets="bc vls">
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when>
<xsl:when test="@effectif = 'bc-violoncelle'">
<xsl:element name="plage" use-attribute-sets="bc">
<xsl:attribute name="vlc">dsmp</xsl:attribute>
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when>
<xsl:when test="@effectif = 'tutti-orgue'">
<xsl:element name="plage" use-attribute-sets="tt">
<xsl:attribute name="org">fech</xsl:attribute>
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when>
<xsl:when test="@effectif = 'tutti'">
<xsl:element name="plage" use-attribute-sets="tt">
<xsl:value-of select="titre"/>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| plagesCD.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:attribute-set name="bc">
<xsl:attribute name="vdg">cplu</xsl:attribute>
<xsl:attribute name="clv">nspt</xsl:attribute>
<xsl:attribute name="thb">eblq</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="vls">
<xsl:attribute name="vl1">fmrt</xsl:attribute>
<xsl:attribute name="vl2">oded</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="tt" use-attribute-sets="bc vls">
<xsl:attribute name="vcl">dsmp</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="sonate">
<xsl:for-each select="mouvement">
<xsl:choose>
<xsl:when test="@effectif = 'bc-violons-orgue'">
<plage xsl:use-attribute-sets="bc vls">
<xsl:attribute name="org">fech</xsl:attribute>
<xsl:value-of select="titre"/>
</plage>
</xsl:when>
<xsl:when test="@effectif = 'bc-violons'">
<plage xsl:use-attribute-sets="bc vls">
<xsl:value-of select="titre"/>
</plage>
</xsl:when>
<xsl:when test="@effectif = 'bc-violoncelle'">
<plage xsl:use-attribute-sets="bc">
<xsl:attribute name="vlc">dsmp</xsl:attribute>
<xsl:value-of select="titre"/>
</plage>
</xsl:when>
<xsl:when test="@effectif = 'tutti-orgue'">
<plage xsl:use-attribute-sets="tt">
<xsl:attribute name="org">fech</xsl:attribute>
<xsl:value-of select="titre"/>
</plage>
</xsl:when>
<xsl:when test="@effectif = 'tutti'">
<plage xsl:use-attribute-sets="tt">
<xsl:value-of select="titre"/>
</plage>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<xsl:template name="bc">
<xsl:attribute name="vdg">cplu</xsl:attribute>
<xsl:attribute name="clv">nspt</xsl:attribute>
<xsl:attribute name="thb">eblq</xsl:attribute>
</xsl:template>
<xsl:template name="vls">
<xsl:attribute name="vl1">fmrt</xsl:attribute>
<xsl:attribute name="vl2">oded</xsl:attribute>
</xsl:template>
<xsl:template name="tt">
<xsl:call-template name="bc"/>
<xsl:call-template name="vls"/>
<xsl:attribute name="vcl">dsmp</xsl:attribute>
</xsl:template> |
<mouvement effectif="bc-violons-orgue">
<titre>Grave</titre>
</mouvement> |
<mouvement>
<titre>Grave</titre>
<effectif>
<basseContinue/>
<violons/>
<orgue/>
</effectif>
</mouvement> |
| sonates-jacquet-dlg.xml |
<?xml version="1.0" encoding="UTF-16"?>
<sonates>
<compositeur>
Elizabeth Jacquet de la Guerre
</compositeur>
<recueil>
Manuscrit des sonates en duo et trio
copiées par Sébastien de Brossard vers 1695
</recueil>
<sonate>
<titre>
Suonata IV en sol mineur a 2 Violini soli
e Violoncello obligato con organo
</titre>
<mouvement>
<titre>Grave</titre>
<effectif>
<basseContinue/>
<violons/>
<orgue/>
</effectif>
</mouvement>
<mouvement>
<titre>Presto / Prestissimo</titre>
<effectif>
<tutti/>
</effectif>
</mouvement>
<mouvement>
<titre>Adagio</titre>
<effectif>
<basseContinue/>
<violons/>
</effectif>
</mouvement>
<mouvement>
<titre>Presto Récit de basse</titre>
<effectif>
<tutti/>
<orgue/>
</effectif>
</mouvement>
</sonate>
<!-- autres sonates à suivre ici -->
</sonates> |
<plage>
<xsl:apply-templates select="effectif" />
<xsl:value-of select="titre" />
</plage> |
<xsl:template match="effectif">
<xsl:apply-templates />
</xsl:template> |
<xsl:template match="basseContinue">
<xsl:call-template name="bc"/>
</xsl:template> |
<xsl:template match="vents">
<xsl:call-template name="flhb"/>
</xsl:template> |
<xsl:template name="flhb">
<xsl:attribute name="fl">xxx</xsl:attribute>
<xsl:attribute name="hb">yyy</xsl:attribute>
</xsl:template> |
| plagesCD.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template name="bc">
<xsl:attribute name="vdg">cplu</xsl:attribute>
<xsl:attribute name="clv">nspt</xsl:attribute>
<xsl:attribute name="thb">eblq</xsl:attribute>
</xsl:template>
<xsl:template name="vls">
<xsl:attribute name="vl1">fmrt</xsl:attribute>
<xsl:attribute name="vl2">oded</xsl:attribute>
</xsl:template>
<xsl:template name="tt">
<xsl:call-template name="bc"/>
<xsl:call-template name="vls"/>
<xsl:attribute name="vcl">dsmp</xsl:attribute>
</xsl:template>
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="sonate">
<xsl:for-each select="mouvement">
<plage>
<xsl:apply-templates select="effectif" />
<xsl:value-of select="titre" />
</plage>
</xsl:for-each>
</xsl:template>
<xsl:template match="basseContinue">
<xsl:call-template name="bc"/>
</xsl:template>
<xsl:template match="violons">
<xsl:call-template name="vls"/>
</xsl:template>
<xsl:template match="tutti">
<xsl:call-template name="tt"/>
</xsl:template>
<xsl:template match="orgue">
<xsl:attribute name="org">fech</xsl:attribute>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
<xsl:when test="@effectif = 'bc-violons'">
<plage xsl:use-attribute-sets="bc vls">
<xsl:attribute name="vl1">xxx</xsl:attribute>
<xsl:value-of select="titre"/>
</plage>
</xsl:when> |
| Concert.xml |
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Concert>
<Entête> "Les Concerts d'Anacréon" </Entête>
<Date>Jeudi 17 Janvier 2002, 20H30</Date>
<Lieu>Chapelle des Ursules</Lieu>
<Ensemble> "A deux violes esgales" </Ensemble>
<Interprète>
<Nom> Jonathan Dunford </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Silvia Abramowicz </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Benjamin Perrot </Nom>
<Instrument>Théorbe et Guitare baroque</Instrument>
</Interprète>
<TitreConcert>
Folies d'Espagne et diminutions d'Italie
</TitreConcert>
<Compositeurs>
<Compositeur>M. Marais</Compositeur>
<Compositeur>D. Castello</Compositeur>
<Compositeur>F. Rognoni</Compositeur>
</Compositeurs>
</Concert> |
| Concert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='xml' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="/">
<Interprètes>
<xsl:apply-templates/>
</Interprètes>
</xsl:template>
<xsl:template match="Interprète">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="Nom">
<xsl:copy>
<xsl:apply-templates mode="copie"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Instrument">
<xsl:copy>
<xsl:apply-templates mode="copie"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
<xsl:template match="text()" mode="copie" >
<xsl:copy/>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<Interprètes>
<Interprète>
<Nom> Jonathan Dunford </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Silvia Abramowicz </Nom>
<Instrument>Basse de viole</Instrument>
</Interprète>
<Interprète>
<Nom> Benjamin Perrot </Nom>
<Instrument>Théorbe et Guitare baroque</Instrument>
</Interprète>
</Interprètes> |
| Concert.xsl |
<<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='xml' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="/">
<Interprètes>
<xsl:apply-templates/>
</Interprètes>
</xsl:template>
<xsl:template match="Interprète">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="Nom">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="Instrument">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| xsl:copy |
<xsl:copy>
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:copy> |
| xsl:copy |
<xsl:copy use-attribute-sets="...">
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:copy> |
<xsl:template match="...">
<!-- modèle de transformation -->
...
<xsl:copy/>
...
<!-- fin du modèle de transformation -->
</xsl:template> |
<xsl:template match="...">
<!-- modèle de transformation -->
...
<xsl:copy>
<!-- modèle de transformation propre à xsl:copy -->
...
<!-- fin du modèle de transformation propre à xsl:copy -->
</xsl:copy>
...
<!-- fin du modèle de transformation -->
</xsl:template> |
| interventionsRecitant.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<récitant>
<prologue>
Le Tableau de l'Opération de la Taille
</prologue>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="1">L'aspect de l'apareil.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="8">Fremissement en le voyant.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="11">Resolution pour y monter.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="15">Parvenu jusqu'au hault;</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="20">descente dudit apareil.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="22">Reflexions serieuses.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23">Entrelassement des soyes
Entre les bras et les jambes.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="27">Icy se fait l'incision.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="31">Introduction de la tenette.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="39">Ici l'on tire la piere.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="44">Icy l'on perd quasi la voix.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="48">Ecoulement du sang.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="50">Icy l'on oste les soyes.</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="53">Icy l'on vous transporte dans le lit.</mesure>
</récitant> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:copy/>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
|
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> </mesures> |
<xsl:template match="mesure">
<xsl:copy>
texte sur mesure
</xsl:copy>
</xsl:template> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<mesures>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe">
texte sur mesure
</mesure>
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe">
texte sur mesure
</mesure>
<!-- etc. -->
</mesures> |
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No">23</xsl:attribute>
</xsl:copy>
</xsl:template> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" No="23"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" No="23"/> <!-- etc. --> </mesures> |
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="{namespace::ns0}">23</xsl:attribute>
</xsl:copy>
</xsl:template> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23"/> <!-- etc. --> </mesures> |
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="namespace::ns0">23</xsl:attribute>
</xsl:copy>
</xsl:template> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" xmlns:ns0.6="namespace::ns0" ns0.6:No="23"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" xmlns:ns0.6="namespace::ns0" ns0.6:No="23"/> <!-- etc. --> </mesures> |
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="ns0">23</xsl:attribute>
</xsl:copy>
</xsl:template> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" xmlns:ns0.6="ns0" ns0.6:No="23"/> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" xmlns:ns0.6="ns0" ns0.6:No="23"/> <!-- etc. --> </mesures> |
<mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"
ns0:No="1">
L'aspect de l'apareil.
</mesure> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="{namespace::ns0}">23</xsl:attribute>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23">L'aspect de l'apareil.</mesure> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="23">Fremissement en le voyant.</mesure> <!-- etc. --> </mesures> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="{namespace::ns0}">
<xsl:value-of select="attribute::ns0:No"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
Error on line 17 of copie.xsl: Namespace prefix ns0 has not been declared Transformation failed: Failed to compile stylesheet. 1 error detected. |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="{namespace::ns0}">
<xsl:value-of select="attribute::No"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="">L'aspect de l'apareil.</mesure> <mesure xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe" ns0:No="">Fremissement en le voyant.</mesure> <!-- etc. --> </mesures> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:copy>
<xsl:attribute name="No" namespace="{namespace::ns0}">
<xsl:value-of select="attribute::ns0:No"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"> <mesure ns0:No="1">L'aspect de l'apareil.</mesure> <mesure ns0:No="8">Fremissement en le voyant.</mesure> <mesure ns0:No="11">Resolution pour y monter.</mesure> <mesure ns0:No="15">Parvenu jusqu'au hault;</mesure> <mesure ns0:No="20">descente dudit apareil.</mesure> <mesure ns0:No="22">Reflexions serieuses.</mesure> <!-- etc. --> </mesures> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<mesures>
<xsl:apply-templates/>
</mesures>
</xsl:template>
<xsl:template match="mesure">
<xsl:element name="mesure">
<xsl:attribute name="No" namespace="{namespace::ns0}">
<xsl:value-of select="attribute::ns0:No"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| plagesCD.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<plages>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" org="fech">
Grave
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp">
Presto / Prestissimo
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded">
Adagio
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp" org="fech">
Presto Récit de basse
</plage>
</plages> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="plage">
<xsl:copy>
<xsl:for-each select="attribute::*">
<xsl:copy/>
</xsl:for-each>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <plages> <plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded" org="fech">Grave</plage> <plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded" vcl="dsmp">Presto / Prestissimo</plage> <plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded">Adagio</plage> <plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded" vcl="dsmp" org="fech">Presto Récit de basse</plage> </plages> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="plage">
<xsl:copy>
<xsl:apply-templates select="attribute::*"/>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="attribute::*">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet> |
| taille.xml |
<?xml version="1.0" encoding="ISO-8859-1"?> <mesures xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"> <mesure ns0:No="1">L'aspect de l'apareil.</mesure> <mesure ns0:No="8">Fremissement en le voyant.</mesure> <!-- etc. --> </mesures> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<paroles>
<xsl:for-each select="child::mesures/namespace::*">
<xsl:copy/>
</xsl:for-each>
</paroles>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <paroles xmlns:ns0="http://concerts.anacreon.fr/viole-de-gambe"/> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:copy>
<truc>
abcd
</truc>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<truc>
abcd
</truc> |
| xsl:comment |
<xsl:comment>
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:comment> |
| Concert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='html' encoding='ISO-8859-1' />
<xsl:strip-space elements='Compositeurs'/>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="/Concert/Entête"/></title>
</head>
<body bgcolor="white" text="black">
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="Entête">
<xsl:comment>
<xsl:text>dans Entête : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<p> <xsl:value-of select="."/> présentent </p>
</xsl:template>
<xsl:template match="Date">
<xsl:comment>
<xsl:text>dans Date : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<H1 align="center"> Concert du <xsl:value-of select="."/> </H1>
</xsl:template>
<xsl:template match="Lieu">
<xsl:comment>
<xsl:text>dans Lieu : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<H4 align="center"> <xsl:value-of select="."/> </H4>
</xsl:template>
<xsl:template match="Ensemble">
<xsl:comment>
<xsl:text>dans Ensemble : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<H2 align="center"> Ensemble <xsl:value-of select="."/></H2>
</xsl:template>
<xsl:template match="Compositeurs">
<xsl:comment>
<xsl:text>dans Compositeurs : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<H3 align="center"> Oeuvres de <br/> <xsl:apply-templates/> </H3>
</xsl:template>
<xsl:template match="Compositeur">
<xsl:comment>
<xsl:text>dans Compositeur : </xsl:text><xsl:value-of select="."/>
</xsl:comment>
<xsl:value-of select="."/>
<xsl:if test="not(position() = last())">, </xsl:if>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Concert.html |
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Les Concerts d'Anacréon </title>
</head>
<body bgcolor="white" text="black">
<!--dans Entête : Les Concerts d'Anacréon -->
<p> Les Concerts d'Anacréon présentent </p>
<!--dans Date : Jeudi 17 Janvier 2002, 20H30-->
<H1 align="center"> Concert du Jeudi 17 Janvier 2002, 20H30</H1>
<!--dans Lieu : Chapelle des Ursules-->
<H4 align="center">Chapelle des Ursules</H4>
<!--dans Ensemble : "A deux violes esgales" -->
<H2 align="center"> Ensemble «A deux violes esgales» </H2>
<!--dans Compositeurs : M. MaraisD. CastelloF. Rognoni-->
<H3 align="center"> Oeuvres de <br>
<!--dans Compositeur : M. Marais-->M. Marais,
<!--dans Compositeur : D. Castello-->D. Castello,
<!--dans Compositeur : F. Rognoni-->F. Rognoni
</H3>
</body>
</html> |
| xsl:processing-instruction |
<xsl:processing-instruction name="...">
<!-- modèle de transformation -->
...
<!-- fin du modèle de transformation -->
</xsl:processing-instruction> |
<xsl:processing-instruction name="xm-replace-text">
<xsl:text> {para}</xsl:text>
</xsl:processing-instruction> |
| Concert.xml |
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<maisons>
<maison id="1">
<RDC>
<cuisine surface='12m2'>
Evier inox. Mobilier encastré.
</cuisine>
<WC>
Lavabo. Cumulus 200L.
</WC>
<séjour surface='40m2'>
Cheminée en pierre. Poutres au plafond.
Carrelage terre cuite. Grande baie vitrée.
</séjour>
<bureau surface='15m2'>
Bibliothèque encastrée.
</bureau>
<garage/>
</RDC>
<étage>
<terrasse>Palmier en zinc figurant le désert.</terrasse>
<chambre surface='28m2' fenêtre='3'>
Carrelage terre cuite poncée.
<alcôve surface='8m2' fenêtre='1'>
Lambris.
</alcôve>
</chambre>
<chambre surface='18m2'>
Lambris.
</chambre>
<salleDeBains surface='15m2'>
Douche, baignoire, lavabo.
</salleDeBains>
</étage>
</maison>
<maison id="2">
<RDC>
<cuisine surface='12m2'>
en ruine.
</cuisine>
<garage/>
</RDC>
<étage>
<terrasse>
vue sur la mer
</terrasse>
<salleDeBains surface='15m2'>
Douche.
</salleDeBains>
</étage>
</maison>
<maison id="3">
<RDC>
<séjour surface='40m2'>
paillasson à l'entrée
</séjour>
</RDC>
<étage>
<chambre surface='18m2'>
porte cochère.
</chambre>
</étage>
</maison>
</maisons> |
| Concert.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method='xml' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="*">
<xsl:element name="{local-name(.)}">
<xsl:attribute name="numéro">
<xsl:number count="*" level="multiple"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<maisons numéro="1">
<maison numéro="1.1">
<RDC numéro="1.1.1">
<cuisine numéro="1.1.1.1"/>
<WC numéro="1.1.1.2"/>
<séjour numéro="1.1.1.3"/>
<bureau numéro="1.1.1.4"/>
<garage numéro="1.1.1.5"/>
</RDC>
<étage numéro="1.1.2">
<terrasse numéro="1.1.2.1"/>
<chambre numéro="1.1.2.2">
<alcôve numéro="1.1.2.2.1"/>
</chambre>
<chambre numéro="1.1.2.3"/>
<salleDeBains numéro="1.1.2.4"/>
</étage>
</maison>
<maison numéro="1.2">
<RDC numéro="1.2.1">
<cuisine numéro="1.2.1.1"/>
<garage numéro="1.2.1.2"/>
</RDC>
<étage numéro="1.2.2">
<terrasse numéro="1.2.2.1"/>
<salleDeBains numéro="1.2.2.2"/>
</étage>
</maison>
<maison numéro="1.3">
<RDC numéro="1.3.1">
<séjour numéro="1.3.1.1"/>
</RDC>
<étage numéro="1.3.2">
<chambre numéro="1.3.2.1"/>
</étage>
</maison>
</maisons> |
| Variante |
<xsl:number count="*" level="any"/> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<maisons numéro="1">
<maison numéro="2">
<RDC numéro="3">
<cuisine numéro="4"/>
<WC numéro="5"/>
<séjour numéro="6"/>
<bureau numéro="7"/>
<garage numéro="8"/>
</RDC>
<étage numéro="9">
<terrasse numéro="10"/>
<chambre numéro="11">
<alcôve numéro="12"/>
</chambre>
<chambre numéro="13"/>
<salleDeBains numéro="14"/>
</étage>
</maison>
<maison numéro="15">
<RDC numéro="16">
<cuisine numéro="17"/>
<garage numéro="18"/>
</RDC>
<étage numéro="19">
<terrasse numéro="20"/>
<salleDeBains numéro="21"/>
</étage>
</maison>
<maison numéro="22">
<RDC numéro="23">
<séjour numéro="24"/>
</RDC>
<étage numéro="25">
<chambre numéro="26"/>
</étage>
</maison>
</maisons> |
| Variante |
<xsl:number count="*" level="single"/> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?>
<maisons numéro="1">
<maison numéro="1">
<RDC numéro="1">
<cuisine numéro="1"/>
<WC numéro="2"/>
<séjour numéro="3"/>
<bureau numéro="4"/>
<garage numéro="5"/>
</RDC>
<étage numéro="2">
<terrasse numéro="1"/>
<chambre numéro="2">
<alcôve numéro="1"/>
</chambre>
<chambre numéro="3"/>
<salleDeBains numéro="4"/>
</étage>
</maison>
<maison numéro="2">
<RDC numéro="1">
<cuisine numéro="1"/>
<garage numéro="2"/>
</RDC>
<étage numéro="2">
<terrasse numéro="1"/>
<salleDeBains numéro="2"/>
</étage>
</maison>
<maison numéro="3">
<RDC numéro="1">
<séjour numéro="1"/>
</RDC>
<étage numéro="2">
<chambre numéro="1"/>
</étage>
</maison>
</maisons> |
| xsl:number |
<xsl:number
level="..." <!-- 'single' (par défaut), 'any' ou 'multiple'-->
count="..." <!-- motif XPath -->
from= "..." <!-- motif XPath -->
value="..." <!-- expression XPath -->
format="..." <!-- {}une chaîne de caractères -->
lang="..." <!-- {}code langue (en, fr, etc.) -->
letter-value="..." <!-- {}'alphabetic' ou 'traditional' -->
grouping-separator="..." <!-- {}un caractère -->
grouping-size="..." <!-- {}un entier -->
/> |
| plagesCD.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<plages>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" org="fech">
Grave
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp">
Presto / Prestissimo
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded">
Adagio
</plage>
<plage vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt"
vl2="oded" vlc="dsmp" org="fech">
Presto Récit de basse
</plage>
</plages> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="plage">
<xsl:copy>
<xsl:apply-templates select="attribute::*"/>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
<xsl:template match="attribute::*">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet> |
| copie.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='xml' indent="yes" encoding='ISO-8859-1' />
<xsl:template match="/">
<plages>
<xsl:apply-templates/>
</plages>
</xsl:template>
<xsl:template match="plage">
<xsl:variable name="numero"><xsl:number/></xsl:variable>
<plage No="{$numero}">
<xsl:apply-templates select="attribute::*"/>
<xsl:value-of select="."/>
</plage>
</xsl:template>
<xsl:template match="attribute::*">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<?xml version="1.0" encoding="ISO-8859-1"?> <plages> <plage No="1" vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded" org="fech">Grave</plage> <plage No="2" thb="eblq" vdg="cplu" clv="nspt" vl1="fmrt" vl2="oded" vcl="dsmp">Presto / Prestissimo</plage> <plage No="3" vdg="cplu" clv="nspt" thb="eblq" vl1="fmrt" vl2="oded">Adagio</plage> <plage No="4" thb="eblq" vdg="cplu" clv="nspt" vl1="fmrt" vl2="oded" vcl="dsmp" org="fech">Presto Récit de basse</plage> </plages> |
| canevasdoc.xml |
<?xml version="1.0" encoding="ISO-8859-1"?>
<article lang="fr">
<sect1>
<titre>A</titre>
<règle importance="1">R1R1R</règle>
<sect2>
<titre>B</titre>
<para>bbb</para>
</sect2>
<sect2>
<titre>C</titre>
<sect3>
<titre>D</titre>
<para>ddd
<règle importance="3">R2R2R</règle>
<note>Nt</note>ddd/
<note>Nv</note>
</para>
</sect3>
<sect3>
<titre>E</titre>
<para>eee
<note>Nah</note>eee;
</para>
<para>e,e,e</para>
<règle importance="1">R3R3R</règle>
<programlisting>ay</programlisting>
<para>e;e;e</para>
<programlisting>bg</programlisting>
<para>e!e!e
<règle importance="2">R4R4R</règle>
<note>Naa</note>(eee)
<note>Nzz</note>[eee]
<note>NEE</note>(e,e,e)
</para>
</sect3>
<sect3>
<titre>F</titre>
<programlisting>ck</programlisting>
</sect3>
</sect2>
</sect1>
<sect1>
<titre>G</titre>
<sect2>
<titre>H</titre>
<para>hhh</para>
<para>hhh/
<note>Nhx</note>hhh;
</para>
</sect2>
</sect1>
</article> |
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle"
level="any"/>.<xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="para">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle" level="any"/>
<xsl:text>.</xsl:text>
<xsl:apply-templates mode="inpara"/>
</xsl:template>
<xsl:template match="note" mode="inpara">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteNote=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="programlisting">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteProgramlisting=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="titre">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteTitre=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="règle" mode="inpara">
<xsl:apply-templates select="."/>
</xsl:template>
<xsl:template match="règle">
<xsl:number count="sect1 |sect2 |sect3 |titre |para |
note |programlisting |règle" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteRègle=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()" mode="inpara">
<xsl:if test="normalize-space(.)">
<xsl:text>textePara=</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet> |
| Résultat (level="any") |
1.sect1
2.texteTitre=A
3.texteRègle=R1R1R
4.sect2
5.texteTitre=B
6.textePara=bbb
7.sect2
8.texteTitre=C
9.sect3
10.texteTitre=D
11.textePara=ddd
12.texteRègle=R2R2R
13.texteNote=Nt textePara=ddd/
14.texteNote=Nv
15.sect3
16.texteTitre=E
17.textePara=eee
18.texteNote=Nah textePara=eee;
19.textePara=e,e,e
20.texteRègle=R3R3R
21.texteProgramlisting=ay
22.textePara=e;e;e
23.texteProgramlisting=bg
24.textePara=e!e!e
25.texteRègle=R4R4R
26.texteNote=Naa textePara=(eee)
27.texteNote=Nzz textePara=[eee]
28.texteNote=NEE textePara=(e,e,e)
29.sect3
30.texteTitre=F
31.texteProgramlisting=ck
32.sect1
33.texteTitre=G
34.sect2
35.texteTitre=H
36.textePara=hhh
37.textePara=hhh/
38.texteNote=Nhx textePara=hhh; |
| Résultat (level="single") |
1.sect1
1.texteTitre=A
2.texteRègle=R1R1R
3.sect2
1.texteTitre=B
2.textePara=bbb
4.sect2
1.texteTitre=C
2.sect3
1.texteTitre=D
2.textePara=ddd
1.texteRègle=R2R2R
2.texteNote=Nt textePara=ddd/
3.texteNote=Nv
3.sect3
1.texteTitre=E
2.textePara=eee
1.texteNote=Nah textePara=eee;
3.textePara=e,e,e
4.texteRègle=R3R3R
5.texteProgramlisting=ay
6.textePara=e;e;e
7.texteProgramlisting=bg
8.textePara=e!e!e
1.texteRègle=R4R4R
2.texteNote=Naa textePara=(eee)
3.texteNote=Nzz textePara=[eee]
4.texteNote=NEE textePara=(e,e,e)
4.sect3
1.texteTitre=F
2.texteProgramlisting=ck
2.sect1
1.texteTitre=G
2.sect2
1.texteTitre=H
2.textePara=hhh
3.textePara=hhh/
1.texteNote=Nhx textePara=hhh; |
| Résultat (level="multiple") |
1.sect1
1.1.texteTitre=A
1.2.texteRègle=R1R1R
1.3.sect2
1.3.1.texteTitre=B
1.3.2.textePara=bbb
1.4.sect2
1.4.1.texteTitre=C
1.4.2.sect3
1.4.2.1.texteTitre=D
1.4.2.2.textePara=ddd
1.4.2.2.1.texteRègle=R2R2R
1.4.2.2.2.texteNote=Nt textePara=ddd/
1.4.2.2.3.texteNote=Nv
1.4.3.sect3
1.4.3.1.texteTitre=E
1.4.3.2.textePara=eee
1.4.3.2.1.texteNote=Nah textePara=eee;
1.4.3.3.textePara=e,e,e
1.4.3.4.texteRègle=R3R3R
1.4.3.5.texteProgramlisting=ay
1.4.3.6.textePara=e;e;e
1.4.3.7.texteProgramlisting=bg
1.4.3.8.textePara=e!e!e
1.4.3.8.1.texteRègle=R4R4R
1.4.3.8.2.texteNote=Naa textePara=(eee)
1.4.3.8.3.texteNote=Nzz textePara=[eee]
1.4.3.8.4.texteNote=NEE textePara=(e,e,e)
1.4.4.sect3
1.4.4.1.texteTitre=F
1.4.4.2.texteProgramlisting=ck
2.sect1
2.1.texteTitre=G
2.2.sect2
2.2.1.texteTitre=H
2.2.2.textePara=hhh
2.2.3.textePara=hhh/
2.2.3.1.texteNote=Nhx textePara=hhh;
|
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 | sect2 |sect3"
level="multiple"/>.<xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="para">
<xsl:apply-templates mode="inpara"/>
</xsl:template>
<xsl:template match="note" mode="inpara">
<xsl:number count="note" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteNote=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="programlisting">
<xsl:text>texteProgramlisting=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="titre">
<xsl:text>texteTitre=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="règle" mode="inpara">
<xsl:apply-templates select="."/>
</xsl:template>
<xsl:template match="règle">
<xsl:text>texteRègle=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()" mode="inpara">
<xsl:if test="normalize-space(.)">
<xsl:text>textePara=</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
1.sect1
texteTitre=A
texteRègle=R1R1R
1.1.sect2
texteTitre=B
textePara=bbb
1.2.sect2
texteTitre=C
1.2.1.sect3
texteTitre=D
textePara=ddd
texteRègle=R2R2R
1.texteNote=Nt textePara=ddd/
2.texteNote=Nv
1.2.2.sect3
texteTitre=E
textePara=eee
3.texteNote=Nah textePara=eee;
textePara=e,e,e
texteRègle=R3R3R
texteProgramlisting=ay
textePara=e;e;e
texteProgramlisting=bg
textePara=e!e!e
texteRègle=R4R4R
4.texteNote=Naa textePara=(eee)
5.texteNote=Nzz textePara=[eee]
6.texteNote=NEE textePara=(e,e,e)
1.2.3.sect3
texteTitre=F
texteProgramlisting=ck
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh; |
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 | sect2 |sect3"
level="multiple"/>.<xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="para">
<xsl:apply-templates mode="inpara"/>
</xsl:template>
<xsl:template match="note" mode="inpara">
<xsl:number count="note" from="sect3" level="any"/>
<xsl:text>.</xsl:text>
<xsl:text>texteNote=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="programlisting">
<xsl:text>texteProgramlisting=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="titre">
<xsl:text>texteTitre=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="règle" mode="inpara">
<xsl:apply-templates select="."/>
</xsl:template>
<xsl:template match="règle">
<xsl:text>texteRègle=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()" mode="inpara">
<xsl:if test="normalize-space(.)">
<xsl:text>textePara=</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet> |
| Résultat (from="sect3" pour les notes) |
1.sect1
texteTitre=A
texteRègle=R1R1R
1.1.sect2
texteTitre=B
textePara=bbb
1.2.sect2
texteTitre=C
1.2.1.sect3
texteTitre=D
textePara=ddd
texteRègle=R2R2R
1.texteNote=Nt textePara=ddd/
2.texteNote=Nv
1.2.2.sect3
texteTitre=E
textePara=eee
1.texteNote=Nah textePara=eee;
textePara=e,e,e
texteRègle=R3R3R
texteProgramlisting=ay
textePara=e;e;e
texteProgramlisting=bg
textePara=e!e!e
texteRègle=R4R4R
2.texteNote=Naa textePara=(eee)
3.texteNote=Nzz textePara=[eee]
4.texteNote=NEE textePara=(e,e,e)
1.2.3.sect3
texteTitre=F
texteProgramlisting=ck
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
1.texteNote=Nhx textePara=hhh; |
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:apply-templates select="//règle" mode="recap"/>
</xsl:template>
<!-- etc. -->
<xsl:template match="règle" mode="inpara">
<xsl:apply-templates select="."/>
</xsl:template>
<xsl:template match="règle">
<xsl:text>texteRègle=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="règle" mode="recap">
<xsl:number value="position()"/>. <xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="text()" mode="inpara">
<xsl:if test="normalize-space(.)">
<xsl:text>textePara=</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
<!-- etc. -->
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh;
Règles importantes :
1. R1R1R
2. R2R2R
3. R3R3R
4. R4R4R
|
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:for-each select="//règle">
<xsl:sort select="@importance"/>
<xsl:number value="position()"/>. <xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 | sect2 |sect3"
level="multiple"/>.<xsl:value-of select="name()"/>
<xsl:apply-templates/>
</xsl:template>
<!-- etc. -->
</xsl:stylesheet> |
| Résultat |
<!-- etc. -->
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh;
Règles importantes :
1. R1R1R
2. R3R3R
3. R4R4R
4. R2R2R
|
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:for-each select="//règle">
<xsl:sort select="@importance"/>
<xsl:value-of select="position()"/>. <xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<!-- etc. -->
</xsl:stylesheet> |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:for-each select="//règle">
<xsl:sort select="@importance"/>
<xsl:number value="position()" format="I"/>. <xsl:value-of
select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<!-- etc. -->
</xsl:stylesheet> |
| Résultat |
<!-- etc. -->
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh;
Règles importantes :
I. R1R1R
II. R3R3R
III. R4R4R
IV. R2R2R
|
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.1"> <!-- compatibilité Saxon 6.5 -->
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:variable name="lesRègles">
<xsl:for-each select="//règle">
<xsl:sort select="@importance"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="$lesRègles//règle">
<xsl:number/>. <xsl:value-of select="."/><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 | sect2 |sect3"
level="multiple"/>.<xsl:value-of select="name()"/>
<xsl:apply-templates/>
</xsl:template>
<!-- etc. comme avant -->
</xsl:stylesheet> |
| Résultat |
<!-- etc. -->
2.sect1
texteTitre=G
2.1.sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh;
Règles importantes :
1. R1R1R
2. R3R3R
3. R4R4R
4. R2R2R
|
| Numéro hiérarchique |
valeur: 2 4 2 5 format: A I-1.a rendu : B IV-2.e format: 001 a.i.1 rendu : 002 d.ii.5 |
| sequence.xsl |
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method='text' encoding='ISO-8859-1' />
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>Règles importantes :
</xsl:text>
<xsl:for-each select="//règle">
<xsl:sort select="@importance"/>
<xsl:number value="position()" format='I'/>
<xsl:text> </xsl:text>
<xsl:value-of select="."/><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="sect1 | sect2 |sect3">
<xsl:number count="sect1 | sect2 |sect3"
level="multiple" format="I-1.a "/>
<xsl:value-of select="name()"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="para">
<xsl:apply-templates mode="inpara"/>
</xsl:template>
<xsl:template match="note" mode="inpara">
<xsl:number count="note" level="any" format="1."/>
<xsl:text>texteNote=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="programlisting">
<xsl:text>texteProgramlisting=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="titre">
<xsl:text>texteTitre=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="règle" mode="inpara">
<xsl:apply-templates select="."/>
</xsl:template>
<xsl:template match="règle">
<xsl:text>texteRègle=</xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()" mode="inpara">
<xsl:if test="normalize-space(.)">
<xsl:text>textePara=</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet> |
| Résultat |
I sect1
texteTitre=A
texteRègle=R1R1R
I-1 sect2
texteTitre=B
textePara=bbb
I-2 sect2
texteTitre=C
I-2.a sect3
texteTitre=D
textePara=ddd
texteRègle=R2R2R
1.texteNote=Nt textePara=ddd/
2.texteNote=Nv
I-2.b sect3
texteTitre=E
textePara=eee
3.texteNote=Nah textePara=eee;
textePara=e,e,e
texteRègle=R3R3R
texteProgramlisting=ay
textePara=e;e;e
texteProgramlisting=bg
textePara=e!e!e
texteRègle=R4R4R
4.texteNote=Naa textePara=(eee)
5.texteNote=Nzz textePara=[eee]
6.texteNote=NEE textePara=(e,e,e)
I-2.c sect3
texteTitre=F
texteProgramlisting=ck
II sect1
texteTitre=G
II-1 sect2
texteTitre=H
textePara=hhh
textePara=hhh/
7.texteNote=Nhx textePara=hhh;
Règles importantes :
I R1R1R
II R3R3R
III R4R4R
IV R2R2R
|
| preceding-sibling::*[1] | Table | following-sibling::*[1] |