<axsl:stylesheet xmlns:xx="http://xml.sandre.eaufrance.fr/scenario/labo_dest/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>--><axsl:variable name="cheminPAR">http://192.168.1.105:8080/exist/xmldb/db/sandre/Referentiels/PAR.xml</axsl:variable><axsl:variable name="cheminSUP">http://192.168.1.105:8080/exist/xmldb/db/sandre/Referentiels/SUP.xml</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:LABO_DEST/xx:Demande//*[name()='CdIntervenant']" priority="4000" mode="M1"><axsl:choose><axsl:when test="//xx:LABO_DEST/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:LABO_DEST/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:LABO_DEST/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:LABO_DEST/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:LABO_DEST/xx:Demande/xx:DateFinApplicationDemande"><axsl:variable name="AnneeFin"><axsl:value-of select="substring(//xx:LABO_DEST/xx:Demande/xx:DateFinApplicationDemande,1,4)"/></axsl:variable><axsl:variable name="MoisFin"><axsl:value-of select="substring(//xx:LABO_DEST/xx:Demande/xx:DateFinApplicationDemande,6,2)"/></axsl:variable><axsl:variable name="JourFin"><axsl:value-of select="substring(//xx:LABO_DEST/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 a 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:LABO_DEST/xx:Demande/xx:TypeDemande[text()='3']" priority="4000" mode="M1"><axsl:choose><axsl:when test="(//xx:LABO_DEST/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Preleveur/xx:CdIntervenant]) and (//xx:LABO_DEST/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:LABO_DEST/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:LABO_DEST/xx:Demande/xx:TypeDemande[text()='1']" priority="4000" mode="M1"><axsl:choose><axsl:when test="//xx:LABO_DEST/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:LABO_DEST/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:LABO_DEST/xx:Demande/xx:TypeDemande[text()='2']" priority="4000" mode="M1"><axsl:choose><axsl:when test="//xx:LABO_DEST/xx:Demande/xx:Prestataire/xx:CdIntervenant[text()=//xx:LABO_DEST/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:LABO_DEST/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 parametre faisant l'objet d'une mesure environnementale DOIT etre référencé par le SANDRE comme étant un parametre de nature environnementale.
Le paramètre '<axsl:value-of select="./text()"/>' n'est pas de nature environnementale.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:CdPrelevement" priority="4000" mode="M1"><axsl:choose><axsl:when test="./@schemeAgencyID=//xx:LABO_DEST/xx:Intervenant/xx:CdIntervenant/text()"/><axsl:otherwise>E4.16/L'intervenant dont le code est '<axsl:value-of select="./@schemeAgencyID"/>', ayant codifie le prelevement <axsl:value-of select="text()"/> DOIT être déclaré en amont du fichier d'echange.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/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 prelevement 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 
regroupees dans un échantillon distinct, dont le laboratoire destinataire correspond au préleveur.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:key name="Echantillons" match="//xx:LABO_DEST/xx:Demande/xx:Prelevement" use="xx:Echantillon/xx:Laboratoire/xx:CdIntervenant/text()"/><axsl:key name="Prelevements" match="//xx:LABO_DEST/xx:Demande/xx:Prelevement" use="xx:CdPrelevement/text()"/><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement" priority="4000" mode="M1"><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:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[string-length(./xx:RsAna/text())=0]" priority="4000" mode="M1"><axsl:choose><axsl:when test="(./xx:RqAna/text()='5') or (./xx:RqAna/text()='0')"/><axsl:otherwise>E4.30/Le résultat d'analyse du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ne peut pas etre nul, à condition d'être accompagné d'un code remarque égal à
0 (pour analyse non réalisée) ou 5 (pour incomptable).#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[./xx:RqAna/text()='4']" priority="4000" mode="M1"><axsl:choose><axsl:when test="(document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:ParametreMicrobiologique) and (current()/xx:UniteReference/xx:CdUniteReference='X') and((current()/xx:RsAna/text()='1') or (current()/xx:RsAna/text()='2'))"/><axsl:otherwise>E4.31/Erreur au niveau du résultat du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). Le code remarque 4 est réservé aux résultats de paramètre microbiologique qualitatif de type Présence ou Absence.
 Le résultat prend alors deux valeurs possibles '1' (Absence) ou '2' (présence). Le code de l'unité de mesure associé au résultat du paramètre DOIT prendre pour valeur 'X' (sans objet) 
.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[./xx:RqAna/text()=0]" priority="4000" mode="M1"><axsl:choose><axsl:when test="string-length(./xx:RsAna/text())=0"/><axsl:otherwise>E4.32/Erreur au niveau de l'analyse portant sur le paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>'. Celle-ci n'a pas été réalisée (code remarque associé égal à 0), et le résultat d'analyse est pourtant différent d'une valeur nulle.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[./xx:RqAna/text()=5]" priority="3" mode="M1"><axsl:choose><axsl:when test="string-length(./xx:RsAna/text())=0"/><axsl:otherwise>E4.33/Erreur au niveau de l'analyse portant sur le paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>'. Le résultat est incomptable (code remarque associé égal à 5), et celui-ci ('<axsl:value-of select="./xx:RsAna"/>') est pourtant différent d'une valeur nulle.#</axsl:otherwise></axsl:choose><axsl:choose><axsl:when test="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()][(./sa_ref:ParametreMicrobiologique) or (./sa_ref:ParametreHydrobiologique)]"/><axsl:otherwise>E4.34/Erreur au niveau du résultat du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). Le code remarque 5 (Incomptable) est réservé aux résultats de paramètre microbiologique.
 .#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[./xx:RqAna/text()=6]" priority="4000" mode="M1"><axsl:choose><axsl:when test="string-length(./xx:RsAna/text())=0"/><axsl:otherwise>E4.35/Erreur au niveau de l'analyse portant sur le paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>'. Les taxons ne sont pas individualisables (code remarque associé égal à 6), et le résultat d'analyse ('<axsl:value-of select="./xx:RsAna"/>') est pourtant différent d'une valeur nulle. Il est recommandé d'utiliser le code remarque 8 (dénombrement &amp;gt;résultat).#</axsl:otherwise></axsl:choose><axsl:choose><axsl:when test="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()][./sa_ref:ParametreMicrobiologique]"/><axsl:otherwise>E4.36/Erreur au niveau du résultat du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). Le code remarque 6 (taxons non individualisables) est réservé aux résultats de paramètre hydrobiologique.
 .#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[(./xx:RqAna/text()='8') or (./xx:RqAna/text()='9')]" priority="4000" mode="M1"><axsl:choose><axsl:when test="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()][(./sa_ref:ParametreMicrobiologique) or (./sa_ref:ParametreHydrobiologique)]"/><axsl:otherwise>E4.37/Erreur au niveau du résultat du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). Les codes remarque 8 (Dénombrement&amp;gt;valeur) et 9 (Dénombrement&amp;lt;valeur) sont réservés au résultat de paramètre microbiologique ou hydrobiologique.
 .#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse[(./xx:RqAna/text()='2') or (./xx:RqAna/text()='3') or (./xx:RqAna/text()='7') or (./xx:RqAna/text()='10')]" priority="4000" mode="M1"><axsl:choose><axsl:when test="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()][(./sa_ref:ParametreChimique) or (./sa_ref:ParametrePhysique)]"/><axsl:otherwise>E4.38/Erreur au niveau du résultat du paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). Les codes remarque '2' (&amp;lt;seuil de détection), '3' (&amp;lt;seuil de saturation), '7' (traces, LD&amp;lt;resultat&amp;lt;LQ) et '10' (&amp;lt; seuil de quantification) sont réservés aux résultats de paramètre physique ou chimique.
 #</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="//xx:LABO_DEST/xx:Demande/xx:Prelevement/xx:Echantillon/xx:Analyse" priority="2" mode="M1"><axsl:choose><axsl:when test="not(document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:ValeursPossiblesParametre) or not(document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()])  or (document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[not(./sa_ref:ParametreMicrobiologique) and (./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text())]/sa_ref:ValeursPossiblesParametre/sa_ref:CdValeursPossiblesParametre/text()=current()/xx:RsAna/text()) or (document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[(./sa_ref:ParametreMicrobiologique) and (./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text())])"/><axsl:otherwise>E4.39/Erreur au niveau du résultat d'analyse portant sur le paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' ('<axsl:value-of select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:NomParametre"/>'). La valeur du résultat '<axsl:value-of select="./xx:RsAna"/>' est inconnue. Les codes de valeurs possibles pour le résultat d'une analyse portant sur le paramètre '<axsl:value-of select="./xx:Parametre/xx:CdParametre"/>' sont <axsl:for-each select="document($cheminPAR)//sa_ref:Referentiel/sa_ref:Parametre[./sa_ref:CdParametre/text()=current()/xx:Parametre/xx:CdParametre/text()]/sa_ref:ValeursPossiblesParametre">'<axsl:value-of select="./sa_ref:CdValeursPossiblesParametre/text()"/>' ('<axsl:value-of select="./sa_ref:LbValeursPossiblesParametre/text()"/>');</axsl:for-each>
.#</axsl:otherwise></axsl:choose><axsl:apply-templates mode="M1"/></axsl:template><axsl:template match="text()" priority="-1" mode="M1"/><axsl:template match="text()" priority="-1"/></axsl:stylesheet>