<axsl:stylesheet xmlns:xx="http://xml.sandre.eaufrance.fr/scenario/com_labo/1" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:sa_ref="http://xml.sandre.eaufrance.fr/scenario/referentiel/2" xmlns:axsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <axsl:output method="text" omit-xml-declaration="no" standalone="yes" indent="yes"/>
    <!--<axsl:variable name="chemin">http://195.220.97.105:8080/exist/xmldb/db/sandre/Referentiels/old_referentiel.xml</axsl:variable>-->
    <!--2026-03-02 - Ajout d'un avertissement A4.1 pour tester la cohérence entre support et fraction analysée lorsqu'un groupe de paramètre est déclaré.-->
    <axsl:variable name="DateMAJ">2021-04-16</axsl:variable>
    <axsl:variable name="cheminPAR">http://xml.sandre.eaufrance.fr/exist/sandre/Referentiels/PAR.xml</axsl:variable>
    <axsl:variable name="cheminSUP">http://xml.sandre.eaufrance.fr/exist/sandre/Referentiels/SUP.xml</axsl:variable>
    <axsl:variable name="cheminFAN">http://xml.sandre.eaufrance.fr/exist/sandre/Referentiels/FAN.xml</axsl:variable>
    <axsl:variable name="testFanSup">
        <axsl:for-each select="document($cheminFAN)//sa_ref:Referentiel/sa_ref:FractionAnalysee">
            <axsl:text>'</axsl:text>
            <axsl:value-of select="current()/sa_ref:CdFractionAnalysee/text()"/>
            <axsl:text>-</axsl:text>
            <axsl:value-of select="current()/sa_ref:Support/sa_ref:CdSupport/text()"/>
            <axsl:text>'</axsl:text>
            <axsl:if test="position() != last()">
                <axsl:text>, </axsl:text>
            </axsl:if>
        </axsl:for-each>
    </axsl:variable>
    <axsl:template match="*|@*" mode="schematron-get-full-path">
        <axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
        <axsl:text>/</axsl:text>
        <axsl:if test="count(. | ../@*) = count(../@*)">@</axsl:if>
        <axsl:value-of select="name()"/>
        <axsl:text>[</axsl:text>
        <axsl:value-of select="1+count(preceding-sibling::*[name()=name(current())])"/>
        <axsl:text>]</axsl:text>
    </axsl:template>
    <axsl:template match="/">
        <axsl:apply-templates select="/" mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande//*[name()='CdIntervenant']" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:Intervenant/xx:CdIntervenant/text()=current()"/>
            <axsl:otherwise>E4.2/Tous les intervenants mis en jeu au sein d'un fichier DOIVENT être déclarés en amont du fichier. L'intervenant dont le code est '<axsl:value-of select="text()"/>' n'est pas déclaré.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:StationPrelevement/xx:CdStationPrelevement" priority="4000" mode="M1">
        <axsl:variable name="CodeStation">
            <axsl:value-of select="./text()"/>
        </axsl:variable>
        <axsl:variable name="OrigineCodeStation">
            <axsl:value-of select="./@schemeAgencyID"/>
        </axsl:variable>
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:StationPrelevement/xx:CdStationPrelevement[(./text()=$CodeStation) and ./@schemeAgencyID=$OrigineCodeStation]"/>
            <axsl:otherwise>E4.6/Toutes les stations de prélevement DOIVENT être déclarées en amont du fichier. 
La station de prélevement dont le code est '<axsl:value-of select="text()"/>' (origine du code:'<axsl:value-of select="$OrigineCodeStation"/>') n'est pas déclarée.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:LocalPrelevement" priority="4000" mode="M1">
        <axsl:variable name="CodeLocalisation">
            <axsl:value-of select="./xx:CdLocalPrelevement/text()"/>
        </axsl:variable>
        <axsl:variable name="OrigineCodeLocalisation">
            <axsl:value-of select="./xx:CdLocalPrelevement/@schemeAgencyID"/>
        </axsl:variable>
        <axsl:variable name="CodeStation">
            <axsl:value-of select="preceding-sibling::xx:StationPrelevement/xx:CdStationPrelevement/text()"/>
        </axsl:variable>
        <axsl:variable name="OrigineCodeStation">
            <axsl:value-of select="preceding-sibling::xx:StationPrelevement/xx:CdStationPrelevement/@schemeAgencyID"/>
        </axsl:variable>
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:StationPrelevement/xx:LocalPrelevement/xx:CdLocalPrelevement[(./text()=$CodeLocalisation) and ./@schemeAgencyID=$OrigineCodeLocalisation]"/>
            <axsl:otherwise>E4.6/Toutes les localisations de prélevement DOIVENT être déclarées en amont du fichier. 
La localisation de prélevement dont le code est '<axsl:value-of select="$CodeLocalisation"/>' (origine du code:'<axsl:value-of select="$OrigineCodeLocalisation"/>'), rattachée a la station '<axsl:value-of select="preceding-sibling::xx:StationPrelevement/xx:CdStationPrelevement/text()"/>', n'est pas déclarée.#</axsl:otherwise>
        </axsl:choose>
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:StationPrelevement[(./xx:CdStationPrelevement/text()=$CodeStation) and (./xx:CdStationPrelevement/@schemeAgencyID=$OrigineCodeStation)]/xx:LocalPrelevement/xx:CdLocalPrelevement[(./text()=$CodeLocalisation) and ./@schemeAgencyID=$OrigineCodeLocalisation]"/>
            <axsl:otherwise>E4.21/La localisation de prélevement dont le code est '<axsl:value-of select="$CodeLocalisation"/>' (origine du code:'<axsl:value-of select="$OrigineCodeLocalisation"/>') n'a pas été declarée comme étant rattachée à la station de prélèvement '<axsl:value-of select="$CodeStation"/>' (origine du code:'<axsl:value-of select="$OrigineCodeStation"/>').#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:StationPrelevement" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="(not(./xx:CoordXStationPrelevement) and not(./xx:CoordYStationPrelevement) and not(./xx:ProjectStationPrelevement))or ((./xx:CoordXStationPrelevement) and (./xx:CoordYStationPrelevement) and (./xx:ProjectStationPrelevement)) "/>
            <axsl:otherwise>E4.7/Toute coordonnée géographique mentionnée pour une station de prélevement 
DOIT être accompagnée du type de projection géographique. Les coordonnées géographiques de la station '<axsl:value-of select="./xx:CdStationPrelevement/text()"/>' (<axsl:value-of select="./xx:LbStationPrelevement/text()"/>) sont incomplètes.#</axsl:otherwise>
        </axsl:choose>
        <axsl:choose>
            <axsl:when test="(not(./xx:AltitudeStationPrelevement) and not(./xx:ProjectAltiStationPrelevement)) or ((./xx:AltitudeStationPrelevement) and (./xx:ProjectAltiStationPrelevement)) "/>
            <axsl:otherwise>E4.8/Toute coordonnée altimetrique mentionnée pour une station  de prélevement 
DOIT être accompagnée du type de projection altimétrique. Les coordonnées altimétriques de la station '<axsl:value-of select="./xx:CdStationPrelevement/text()"/>' (<axsl:value-of select="./xx:LbStationPrelevement/text()"/>) sont incomplètes.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:StationPrelevement/xx:LocalPrelevement" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="(not(./xx:CoordXLocalPrelevement) and not(./xx:CoordYLocalPrelevement) and not(./xx:ProjLocalPrelevement))or ((./xx:CoordXLocalPrelevement) and (./xx:CoordYLocalPrelevement) and (./xx:ProjLocalPrelevement)) "/>
            <axsl:otherwise>E4.7/Toute coordonnée géographique mentionnée pour une localisation de prélevement 
DOIT être accompagnée du type de projection géographique. Les coordonnées géographiques de la localisation '<axsl:value-of select="./xx:CdLocalPrelevement/text()"/>' (<axsl:value-of select="./xx:LbLocalPrelevement/text()"/>) sont incomplètes.#</axsl:otherwise>
        </axsl:choose>
        <axsl:choose>
            <axsl:when test="(not(./xx:ProjAltiLocalPrelevement) and not(./xx:AltMinLocalPrelevement) and not(./xx:AltMaxLocalPrelevement)) or ((./xx:ProjAltiLocalPrelevement) and (./xx:AltMinLocalPrelevement) and (./xx:AltMaxLocalPrelevement)) "/>
            <axsl:otherwise>E4.8/Toute coordonnée altimétrique mentionnée pour une localisation  de prélevement 
DOIT être accompagnée du type de projection altimétrique. Les coordonnées altimétriques de la localisation '<axsl:value-of select="./xx:CdLocalPrelevement/text()"/>' (<axsl:value-of select="./xx:LbLocalPrelevement/text()"/>) sont incomplètes.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Echantillon/xx:GroupeParametres/xx:CdGroupeParametres" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:GroupeParametres/xx:CdGroupeParametres/text()=current()"/>
            <axsl:otherwise>E4.9/Information:Le groupe de paramètres <axsl:value-of select="text()"/>' n'est pas déclaré. Le contenu de ce groupe de parametres a donc été préalablement envoyé et reste donc inchangé.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:DateDebutApplicationDemande" priority="4000" mode="M1">
        <axsl:variable name="AnneeDebut">
            <axsl:value-of select="substring(text(),1,4)"/>
        </axsl:variable>
        <axsl:variable name="MoisDebut">
            <axsl:value-of select="substring(text(),6,2)"/>
        </axsl:variable>
        <axsl:variable name="JourDebut">
            <axsl:value-of select="substring(text(),9,2)"/>
        </axsl:variable>
        <xsl:if test="//xx:COM_LABO/xx:Demande/xx:DateFinApplicationDemande">
            <axsl:variable name="AnneeFin">
                <axsl:value-of select="substring(//xx:COM_LABO/xx:Demande/xx:DateFinApplicationDemande,1,4)"/>
            </axsl:variable>
            <axsl:variable name="MoisFin">
                <axsl:value-of select="substring(//xx:COM_LABO/xx:Demande/xx:DateFinApplicationDemande,6,2)"/>
            </axsl:variable>
            <axsl:variable name="JourFin">
                <axsl:value-of select="substring(//xx:COM_LABO/xx:Demande/xx:DateFinApplicationDemande,9,2)"/>
            </axsl:variable>
            <axsl:choose>
                <axsl:when test="($AnneeFin&gt;$AnneeDebut) or (($AnneeFin&gt;=$AnneeDebut) and ($MoisFin&gt;$MoisDebut)) or (($AnneeFin&gt;=$AnneeDebut) and ($MoisFin&gt;=$MoisDebut) and ($JourFin&gt;=$JourDebut))"/>
                <axsl:otherwise>E4.11/La date de début d'application de la demande DOIT être inférieure ou égale à la demande de fin d'application <axsl:value-of select="$AnneeDebut"/>
                    <axsl:value-of select="$MoisDebut"/>
                    <axsl:value-of select="$JourDebut"/>.#</axsl:otherwise>
            </axsl:choose>
        </xsl:if>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:TypeDemande[text()='3']" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="(//xx:COM_LABO/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Preleveur/xx:CdIntervenant]) and (//xx:COM_LABO/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Laboratoire/xx:CdIntervenant])"/>
            <axsl:otherwise>E4.12/Au sein d'une demande mixte, le prestataire DOIT au moins être mentionné en tant que préleveur d'un prélevement 
et laboratoire d'un échantillon.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:TypeDemande[text()='1']" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Preleveur/xx:CdIntervenant]"/>
            <axsl:otherwise>E4.13/Au sein d'une demande de prélevements, le prestataire DOIT au moins être mentionné en tant que préleveur d'un prélevement.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:TypeDemande[text()='2']" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="//xx:COM_LABO/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Laboratoire/xx:CdIntervenant]"/>
            <axsl:otherwise>E4.14/Au sein d'une demande d'analyses, le prestataire DOIT au moins être mentionné en tant que laboratoire d'un échantillon.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <!--<axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:MesureEnvironnementale/xx:Parametre/xx:CdParametre" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="./text()=document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:ParametreEnvironnemental]/sa_ref:CdParametre"/>
            <axsl:otherwise>E4.15/Tout paramètre faisant l'objet d'une mesure environnementale DOIT être référencé par le SANDRE comme étant un parametre de nature environnementale.
Le parametre '<axsl:value-of select="./text()"/>' n'est pas de nature environnementale.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>-->
    <axsl:variable name="slash">
        <axsl:text>/</axsl:text>
    </axsl:variable>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:CdPrelevement" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="./@schemeAgencyID=//xx:COM_LABO/xx:Intervenant/xx:CdIntervenant/text()"/>
            <axsl:otherwise>E4.16/L'intervenant dont le code est '<axsl:value-of select="./@schemeAgencyID"/>', ayant codifié le prélevement '<axsl:value-of select="text()"/>' DOIT etre déclaré en amont du fichier d'échange.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Echantillon[./xx:Laboratoire/xx:CdIntervenant/text()!=preceding-sibling::xx:Preleveur/xx:CdIntervenant/text()]" priority="4000" mode="M1">
        <axsl:choose>
            <axsl:when test="count(./xx:Analyse/xx:InsituAna[./text()='1'])='0'"/>
            <axsl:otherwise>E4.17/Lorsqu'un prélevement donne lieu a des mesures in situ et des analyses a realiser en laboratoire, si le preleveur est different du laboratoire, alors les mesures in situ DOIVENT etre 
regroupées dans un échantillon distinct, dont le laboratoire destinataire correspond au preleveur. Le prelevement erroné est'<axsl:value-of select="preceding-sibling::xx:CdPrelevement/text()"/>'.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
    <axsl:key name="Echantillons" match="//xx:COM_LABO/xx:Demande/xx:Prelevement" use="xx:Echantillon/xx:Laboratoire/xx:CdIntervenant/text()"/>
    <axsl:key name="Prelevements" match="//xx:COM_LABO/xx:Demande/xx:Prelevement" use="xx:CdPrelevement/text()"/>
    <axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement" priority="4000" mode="M1">
        <axsl:variable name="Support" select="./xx:Support/xx:CdSupport/text()"/>
        <axsl:for-each select="./xx:Echantillon/xx:Analyse"> 
            <axsl:variable name="valueTestFanSup">
                <axsl:text>'</axsl:text>
                <axsl:value-of select="current()/xx:FractionAnalysee/xx:CdFractionAnalysee/text()"/>
                <axsl:text>-</axsl:text>
                <axsl:value-of select="$Support"/>
                <axsl:text>'</axsl:text>
            </axsl:variable>
            <xsl:choose>
                <xsl:when test="contains($testFanSup, $valueTestFanSup)"/>
                <axsl:otherwise>E4.150/La fraction analysée '<axsl:value-of select="./xx:FractionAnalysee/xx:CdFractionAnalysee"/>' (<axsl:value-of select="document($cheminFAN)/sa_ref:REFERENTIELS/sa_ref:Referentiel/sa_ref:FractionAnalysee[./sa_ref:CdFractionAnalysee/text() = current()/xx:FractionAnalysee/xx:CdFractionAnalysee/text()]/sa_ref:LbFractionAnalysee"/>) associée à une analyse est incohérente par rapport au support prélevé
                    '<axsl:value-of select="$Support"/>' (<axsl:value-of select="document($cheminSUP)/sa_ref:REFERENTIELS/sa_ref:Referentiel/sa_ref:Support[./sa_ref:CdSupport/text() = $Support]/sa_ref:LbSupport"/>) .Erreur sur une analyse portant sur le '.# </axsl:otherwise>
            </xsl:choose>
        </axsl:for-each>
        
        <axsl:choose>
            <axsl:when test="count(./xx:Echantillon[./xx:Laboratoire/xx:CdIntervenant/text()=preceding-sibling::xx:Echantillon/xx:Laboratoire/xx:CdIntervenant]/xx:Laboratoire/xx:CdIntervenant/text())=0"/>
            <axsl:otherwise>E4.19/Pour un prélèvement donné, il ne DOIT pas y avoir plus d'un échantillon adressé au meme laboratoire. Le prélevement erroné est celui réalisé sur la station '
			<axsl:value-of select="./xx:StationPrelevement/xx:CdStationPrelevement"/>' en date du '<axsl:value-of select="./xx:DatePrel"/>', et portant sur le support '<axsl:value-of select="./xx:Support/xx:CdSupport"/>' (<axsl:value-of select="document($cheminSUP)//sa_ref:Referentiel/sa_ref:Support[./sa_ref:CdSupport/text()=current()/xx:Support/xx:CdSupport]/sa_ref:LbSupport"/>).#</axsl:otherwise>
        </axsl:choose>
        <axsl:choose>
            <axsl:when test="count(//xx:COM_LABO/xx:Demande/xx:Prelevement[./xx:CdPrelevement/text()=preceding-sibling::xx:Prelevement/xx:CdPrelevement/text()])=0"/>
            <!--<axsl:when test="count(key('Prelevements',./xx:CdPrelevement))='1'"/>-->
            <axsl:otherwise>E4.29/Plusieurs prélèvements ont le même code '<axsl:value-of select="//xx:COM_LABO/xx:Demande/xx:Prelevement[./xx:CdPrelevement/text()=preceding-sibling::xx:Prelevement/xx:CdPrelevement/text()]/xx:CdPrelevement/text()"/>'. Le code d'un prélèvement DOIT être unique.#</axsl:otherwise>
        </axsl:choose>
        <axsl:apply-templates mode="M1"/>
    </axsl:template>
      <!-- Contrôle cohérence FractionAnalysee / Support via FAN -->
<axsl:template match="//xx:COM_LABO/xx:Demande/xx:Prelevement/xx:Echantillon/xx:GroupeParametres/xx:CdGroupeParametres" priority="4000" mode="M1">

    <!-- 1) Code de groupe rencontré dans l'échantillon -->
    <axsl:variable name="cdGp" select="normalize-space(.)"/>

    <!-- 2) Groupe déclaré au niveau racine de COM_LABO -->
    <axsl:variable name="groupeRacine" select="//xx:COM_LABO/xx:GroupeParametres                            [normalize-space(xx:CdGroupeParametres) = $cdGp]"/>

    <!-- 3) Vérification de la déclaration du groupe -->
    <axsl:choose>
        <axsl:when test="$groupeRacine"/>
        <axsl:otherwise>
            E4.9/Information : le groupe de paramètres '
            <axsl:value-of select="$cdGp"/>
            ' n'est pas déclaré au niveau racine. Le contenu reste inchangé.#
        </axsl:otherwise>
    </axsl:choose>

    <!-- 4) Contrôle FAN/SUP seulement si le groupe est déclaré -->
    <axsl:if test="$groupeRacine">

        <!-- 4.a) Fraction analysée (déclaration du groupe racine) -->
        <axsl:variable name="fraction" select="normalize-space($groupeRacine/xx:Analyse/xx:FractionAnalysee/xx:CdFractionAnalysee)"/>

        <!-- 4.b) Support (porté par le PRELEVEMENT) -->
        <!-- .. = GroupeParametres, ../.. = Echantillon, ../../.. = Prelevement -->
        <axsl:variable name="support" select="normalize-space(../../../xx:Support/xx:CdSupport)"/>

        <!-- 4.c) Clé métier fraction-support -->
        <axsl:variable name="valueFanSup">
            <axsl:text>'</axsl:text>
            <axsl:value-of select="$fraction"/>
            <axsl:text>-</axsl:text>
            <axsl:value-of select="$support"/>
            <axsl:text>'</axsl:text>
        </axsl:variable>

        <!-- 4.d) Vérification dans la liste FAN (variable $testFanSup) -->
        <axsl:choose>
            <axsl:when test="string($fraction) and string($support)                              and contains($testFanSup, $valueFanSup)"/>
            <axsl:otherwise>
                A4.1/Avertissement : la fraction analysée '<axsl:value-of select="$fraction"/>' déclarée dans le groupe de paramètre et associée au support '<axsl:value-of select="$support"/>' déclaré dans le prélévement est incohérente par rapport au référentiel des fractions analysées. Avertissement portant sur le groupe de paramètres '<axsl:value-of select="$cdGp"/>'.#
            </axsl:otherwise>
        </axsl:choose>
    </axsl:if>

    <!-- 5) Poursuite du traitement -->
    <axsl:apply-templates mode="M1"/>
</axsl:template>
    <axsl:template match="text()" priority="-1" mode="M1"/>
    <axsl:template match="text()" priority="-1"/>
</axsl:stylesheet>