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] |