Newer
Older
web-services / loterre-xslt / v1 / control / Controle_SKOS_RDF_Concept_SansModal.xsl
@Nicolas Thouvenin Nicolas Thouvenin on 25 May 2021 158 KB first import for loterre ws
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" version="2.0"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:skos="http://www.w3.org/2004/02/skos/core#"
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:cc="http://creativecommons.org/ns#"
    xmlns:inist="http://www.inist.fr/Ontology#" 
    xmlns:exslt="http://exslt.org/common"
    xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:skosxl="http://www.w3.org/2008/05/skos-xl#"
    xmlns:tps="http://www.termsciences.fr/vocabs/"
    xmlns:owl="http://www.w3.org/2002/07/owl#" 
    xmlns:isothes="http://purl.org/iso25964/skos-thes#"
    exclude-result-prefixes="xsl xd rdf skos skosxl dc dcterms cc inist tps" >
     
    <xsl:output  method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
   <!-- <xsl:param name="page"/>
    <xsl:template match="/">
        <xsl:text disable-output-escaping='yes'>
		&lt;!DOCTYPE html&gt;
	</xsl:text>
    </xsl:template>-->
    <xd:doc scope="stylesheet">
        <xd:desc>
            <xd:p><xd:b>Created on:</xd:b> Apr 14, 2016</xd:p>
            <xd:p><xd:b>Modified on:</xd:b>Sep 10, 2019</xd:p>
            <xd:p><xd:b>Modified on:</xd:b>June 06, 2020</xd:p>
            <xd:p><xd:b>Modified on:</xd:b> Dec 22, 2020</xd:p>
            <xd:p><xd:b>Modified on:</xd:b> Jun 04, 2021</xd:p>
            <xd:p><xd:b>Author:</xd:b> khayari</xd:p>
            <xd:p></xd:p>
        </xd:desc>
    </xd:doc>
    
    <xsl:key name="ConceptSchemeElemByName" match="//skos:ConceptScheme/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="ConceptSchemeElemByNameRDF" match="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="ConceptElemByName" match="//skos:Concept/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="ConceptElemByNameRDF" match="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="CollectionElemByName" match="//skos:Collection/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="CollectionElemByNameCG" match="//isothes:ConceptGroup/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="CollectionElemByNameRDF" match="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Collection' or @rdf:resource='http://purl.org/iso25964/skos-thes#ConceptGroup']]/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="LabelElemByName" match="//skosxl:Label/*" use="concat(name(),'_',@xml:lang)"/>
    <xsl:key name="LabelElemByNameRDF" match="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2008/05/skos-xl#Label']]/*" use="concat(name(),'_',@xml:lang)"/>
    
    <xsl:variable name="fichier" select="/rdf:RDF"/>
    <xsl:variable name="apos">'</xsl:variable>
    <xsl:variable name="quot">"</xsl:variable>
    <xsl:variable name="crochetG">[</xsl:variable>
    <xsl:variable name="crochetD">]</xsl:variable>
<!--    <xsl:variable name="newline"><xsl:text>&#10;</xsl:text></xsl:variable>-->
    <xsl:variable name="newline" select="'&#10;'"/>
    <xsl:variable name="tab"><xsl:text> </xsl:text></xsl:variable> 
    <!--    <xsl:variable name="tab" select="'&#9;'"/> --><!-- ne fonctionne pas  -->
    <xsl:variable name="carriageReturn"><xsl:text>&#13;</xsl:text></xsl:variable>
    
    <xsl:variable name="uriRessource">
        <xsl:choose>
            <xsl:when test="//skos:ConceptScheme">
                <xsl:value-of select="//skos:ConceptScheme/@rdf:about"/>
            </xsl:when>
            <xsl:when test="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                <xsl:value-of select="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/@rdf:about"/>
            </xsl:when>
            <xsl:when test="//owl:Ontology[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                <xsl:value-of select="//owl:Ontology[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/@rdf:about"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="rdf:RDF/skos:Concept[1]/skos:inScheme/@rdf:resource or rdf:RDF/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']][1]/skos:inScheme/@rdf:resource"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="languesRessource">
        <xsl:for-each select="distinct-values(//skos:prefLabel/@xml:lang | //rdfs:label/@xml:lang)">
            <xsl:sort select="."/>
            <lng>
            <xsl:value-of select="."/>
            </lng>
        </xsl:for-each>
    </xsl:variable>
 
    <xsl:variable name="champsRessource">
        <xsl:for-each select="distinct-values(//skos:Concept/node())">
            <xsl:sort select="."/>
            <field>
                <xsl:value-of select="."/>
            </field>
        </xsl:for-each>
    </xsl:variable>
    
    <!--calcul du pourcentage de structuration -->
    <xsl:variable name="NbBroader" select="count(//skos:broader)"/>
    <xsl:variable name="NbConcepts">
        <xsl:choose>
            <xsl:when test="//skos:Concept">
                <xsl:value-of select="count(//skos:Concept)"/>
            </xsl:when>
            <xsl:when test="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]">
                <xsl:value-of select="count(//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']])"/>
            </xsl:when>
        </xsl:choose>
    </xsl:variable>
    <xsl:variable name="structuration" select="round($NbBroader div $NbConcepts) * 100"/>
    <!--===================================================
        Contrôles de cohérence des fichiers SKOS
         ====================================================-->
     <xsl:template match="rdf:RDF">
         <!-- résultat stocké dans une variable -->
        <xsl:variable name="CONTROLES">
            <Controle>
                <xsl:if test="//skos:Concept">

                <!-- pas d'attribut xml:lang -->
                <xsl:if test="skos:Concept/skos:prefLabel[not(@xml:lang)] | skos:Concept/rdfs:label[not(@xml:lang)]">
                       <tr>
                           <td class="A">@lang</td>
                           <td>Terme préférentiel sans code langue</td>
                            <td>
                               <xsl:text>Le concept </xsl:text>
                               <a>
                                   <xsl:attribute name="href">
                                       <xsl:value-of select="skos:Concept[skos:prefLabel[not(@xml:lang)]]/@rdf:about"/>
                                   </xsl:attribute>
                                   <xsl:value-of select="skos:Concept[skos:prefLabel[not(@xml:lang)]]/skos:prefLabel[not(@xml:lang)][1] | skos:Concept[rdfs:label[not(@xml:lang)]]/rdfs:label[not(@xml:lang)][1]"/>
                               </a>
                               <xsl:text> présente un terme préférentiel qui n'a pas d'attribut code langue ("xml:lang").</xsl:text>
                           </td>
                       </tr>
                </xsl:if>
                   <!-- recherche de doublons au niveau des termes au sein du même concept ou entre 2 concepts différents-->
                    <xsl:for-each select="//skos:prefLabel[parent::skos:Concept and not(.='')] | //rdfs:label[parent::skos:Concept and not(.='')]">
                        <xsl:call-template name="TermUniqueness">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/>
                        </xsl:call-template>
                    </xsl:for-each>
                    <xsl:for-each select="//skos:altLabel[parent::skos:Concept and not(.='') ]">
                        <xsl:call-template name="TermUniqueness2">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/>
                        </xsl:call-template>
                    </xsl:for-each> 
                    <xsl:for-each select="//skos:hiddenLabel[parent::skos:Concept and not(.='')]">
                        <xsl:call-template name="TermUniqueness3">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/>
                        </xsl:call-template>
                    </xsl:for-each>
                   <!-- recherche dd'orphelins-->
                   <xsl:if test="$structuration &gt; 50">
                       <xsl:for-each select="//skos:Concept[not(skos:broader)]">
                           <xsl:variable name="uriConcept" select="@rdf:about"/>
                           <xsl:variable name="prefFre" select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                           <xsl:choose>
                               <xsl:when test="skos:topConceptOf | //skos:hasTopConcept[@rdf:resource=$uriConcept] ">
                                   
                               </xsl:when>
                               <xsl:otherwise>
                                   <xsl:if test="not($fichier//skos:broader[@rdf:resource=$uriConcept])">
                                     <tr>
                                         <td class="A">R-OR</td>
                                         <td>Concept orphelin</td>
                                         <td>Le concept 
                                             <a>
                                                 <xsl:attribute name="href">
                                                     <xsl:value-of select="$uriConcept"/>
                                                 </xsl:attribute>
                                                 <xsl:value-of select="$prefFre"/>
                                             </a> est orphelin.
                                         </td>
                                     </tr>
                                    </xsl:if>
                               </xsl:otherwise>
                           </xsl:choose>
                         <!--  <xsl:call-template name="orphelin">
                               <xsl:with-param name="uriConcept" select="@rdf:about"/>
                               <xsl:with-param name="prefFre" select="skos:prefLabel[@xml:lang='fr'][1]"/>
                           </xsl:call-template>-->
                       </xsl:for-each>
                   </xsl:if>
                </xsl:if>
                <xsl:if test="//rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']">
                    <!-- pas d'attribut xml:lang -->
                    <xsl:if test="rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']/skos:prefLabel[not(@xml:lang)] | rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']/rdfs:label[not(@xml:lang)]">
                        <tr>
                            <td class="A">@lang</td>
                            <td>Terme préférentiel sans code langue</td>
                            <td>
                                <xsl:text>Le concept </xsl:text>
                                <a>
                                    <xsl:attribute name="href">
                                        <xsl:value-of select="rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept' and skos:prefLabel[not(@xml:lang)]]/@rdf:about"/>
                                    </xsl:attribute>
                                    <xsl:value-of select="rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept' and skos:prefLabel[not(@xml:lang)]]/skos:prefLabel[not(@xml:lang)][1] | rdf:Description[rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept' and rdfs:label[not(@xml:lang)]]/rdfs:label[not(@xml:lang)][1]"/>
                                </a>
                                <xsl:text> présente un terme préférentiel qui n'a pas d'attribut code langue ("xml:lang").</xsl:text>
                            </td>
                        </tr>
                    </xsl:if>
                    <!-- recherche de doublons au niveau des termes au sein du même concept ou entre 2 concepts différents-->
                    <xsl:for-each select="//skos:prefLabel[../rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] | //rdfs:label[../rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] ">
                        <xsl:call-template name="TermUniqueness">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/>
                        </xsl:call-template>
                    </xsl:for-each>
                    <xsl:for-each select="//skos:altLabel[../rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']">
                        <xsl:call-template name="TermUniqueness2">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/> 
                        </xsl:call-template>
                    </xsl:for-each> 
                    <xsl:for-each select="//skos:hiddenLabel[../rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']">
                        <xsl:call-template name="TermUniqueness3">
                            <xsl:with-param name="language" select="@xml:lang"/>
                            <xsl:with-param name="term" select="."/>
                            <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>  
                            <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                            <xsl:with-param name="position" select="position()"/>
                        </xsl:call-template>
                    </xsl:for-each>
                    <!-- recherche dd'orphelins-->
                    <xsl:if test="$structuration &gt; 50">
                        <xsl:for-each select="//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and not(skos:broader)]">
                            <xsl:variable name="uriConcept" select="@rdf:about"/>
                            <xsl:variable name="prefFre" select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                            <xsl:choose>
                                <xsl:when test="skos:topConceptOf | //skos:hasTopConcept[@rdf:resource=$uriConcept] ">
                                    
                                </xsl:when>
                                <xsl:otherwise>
                                     <xsl:if test="not($fichier//skos:broader[@rdf:resource=$uriConcept])">
                                         <tr>
                                             <td class="A">R-OR</td>
                                             <td>Concept orphelin</td>
                                             <td>Le concept 
                                                 <a>
                                                     <xsl:attribute name="href">
                                                         <xsl:value-of select="$uriConcept"/>
                                                     </xsl:attribute>
                                                     <xsl:value-of select="$prefFre"/>
                                                 </a> est orphelin.
                                             </td>
                                         </tr>
                                     </xsl:if>
                                </xsl:otherwise>
                            </xsl:choose>
                        </xsl:for-each>
                    </xsl:if>
                    
                </xsl:if>
                       
                <xsl:apply-templates select="skos:Concept">
                        <!--        <xsl:sort select="skos:prefLabel[@xml:lang='fr'][1]"/>-->
                </xsl:apply-templates>
                <xsl:apply-templates select="rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]">
                    <!--                        <xsl:sort select="skos:prefLabel[@xml:lang='fr'][1]"/>-->
                </xsl:apply-templates>
          </Controle>
        </xsl:variable>

        <xsl:apply-templates select="exslt:node-set($CONTROLES)//Controle"/>  
 
    </xsl:template>
<!--==========================================================
        node-set Controle
        ==========================================================-->
      <xsl:template match="Controle">
       <html lang="fr">
            <head>
                <title>Contrôles du fichier : <xsl:choose>
                        <xsl:when test="$fichier/skos:ConceptScheme">
                            <xsl:value-of select="$fichier/skos:ConceptScheme/dc:title[@xml:lang='fr']"/>
                        </xsl:when>
                        <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                            <xsl:value-of select="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/dc:title[@xml:lang='fr']"/>
                        </xsl:when> 
                    </xsl:choose>
                </title>
                <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
                <link rel="stylesheet" href="anomalies.css" />
                <link rel="stylesheet" href="modal.css" />
                <link rel="stylesheet" href="header2.css" />
                <style id="compiled-css" type="text/css">
                    table, tr, td, th
                    {
                    border: 1px solid black;
                    border-collapse:collapse;
                    }
                    tr.header
                    {
                    cursor:pointer;
                    }
                </style>
                <script src="http://code.jquery.com/jquery-1.9.1.js"><xsl:text>&#10;</xsl:text></script>
                <script type="text/javascript">
<![CDATA[
    $(function(){
      
$('.header').click(function(){
   $(this).find('span').text(function(_, value){return value=='-'?'+':'-'});
    $(this).nextUntil('tr.header').slideToggle(100, function(){
    });
});

    });
]]>
                </script>
            </head>
            <body>
                   <h3>Statistiques du fichier <em>
                            <xsl:choose>
                                <xsl:when test="$fichier/skos:ConceptScheme">
                                    <xsl:value-of select="$fichier/skos:ConceptScheme/dc:title[@xml:lang='fr']"/>
                                </xsl:when>
                                <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                                    <xsl:value-of select="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/dc:title[@xml:lang='fr']"/>
                                </xsl:when> 
                            </xsl:choose>
                        </em> :</h3>
                <table class="anomalies">
                    <thead>
                        <tr>
                            <!--<tr class="header">-->
                            <th>Données</th>
                            <th>Détails</th>
                        </tr>
                    </thead>
                      <!-- élement ConceptScheme -->
                    <!--                    
                    <tr class="header">
                        <th colspan="2"><span>-</span><mark>Schéma(s) de concepts</mark>. La ressource contient <xsl:value-of select="count($fichier/skos:ConceptScheme)"/> schéma(s) de concepts. [Cliquer ici pour déplier/replier]</th>
                        </tr>
                     <xsl:for-each select="$fichier//skos:ConceptScheme/*[generate-id()=generate-id(key('ConceptSchemeElemByName', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans skos:ConceptScheme</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('ConceptSchemeElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>  -->
                    <xsl:if test="$fichier//skos:ConceptScheme or $fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']] ">
                        
                    <tr class="header">
                        <th colspan="2"><span>-</span><mark>Schéma(s) de concepts</mark>. La ressource contient 
                            <xsl:choose>
                                <xsl:when test="$fichier/skos:ConceptScheme">
                                    <xsl:value-of select="count($fichier/skos:ConceptScheme)"/>
                                </xsl:when>
                                <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                                    <xsl:value-of select="count($fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']])"/>
                                </xsl:when> 
                            </xsl:choose> schéma(s) de concepts. [Cliquer ici pour déplier/replier]</th>
                    </tr>
                    <xsl:for-each select="$fichier//skos:ConceptScheme/*[generate-id()=generate-id(key('ConceptSchemeElemByName', concat(name(),'_',@xml:lang))[1])]">
                        <tr>
                            <td>Élément <em><xsl:choose>
                                <xsl:when test="@xml:lang">
                                    <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="name()"/>
                                </xsl:otherwise>
                            </xsl:choose></em> dans "skos:ConceptScheme"</td> 
                            <td>Élément utilisé <xsl:value-of select="count(key('ConceptSchemeElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                        </tr>
                    </xsl:for-each>
                    <xsl:for-each select="$fichier//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/*[generate-id()=generate-id(key('ConceptSchemeElemByNameRDF', concat(name(),'_',@xml:lang))[1])]">
                        <tr>
                            <td>Élément <em><xsl:choose>
                                <xsl:when test="@xml:lang">
                                    <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="name()"/>
                                </xsl:otherwise>
                            </xsl:choose></em> dans "rdf:Description" de type "ConceptScheme"</td> 
                            <td>Élément utilisé <xsl:value-of select="count(key('ConceptSchemeElemByNameRDF', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                        </tr>
                    </xsl:for-each>
                    </xsl:if>
                      <!-- élément Concept -->
                    <tr class="header">
                        <th colspan="2"><span>-</span><mark>Concepts</mark>. La ressource contient 
                            <xsl:choose>
                                <xsl:when test="$fichier/skos:Concept">
                                    <xsl:value-of select="count($fichier/skos:Concept)"/>
                                </xsl:when>
                                <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]">
                                    <xsl:value-of select="count($fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']])"/>
                                </xsl:when> 
                            </xsl:choose> concepts. [Cliquer ici pour déplier/replier]</th>
                    </tr>
                    <xsl:for-each select="$fichier//skos:Concept/*[generate-id()=generate-id(key('ConceptElemByName', concat(name(),'_',@xml:lang))[1])]">
                        <tr>
                            <td>Élément <em><xsl:choose>
                                <xsl:when test="@xml:lang">
                                    <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="name()"/>
                                </xsl:otherwise>
                            </xsl:choose></em> dans "skos:Concept"</td> 
                            <td>Élément utilisé <xsl:value-of select="count(key('ConceptElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                        </tr>
                    </xsl:for-each>
                    <xsl:for-each select="$fichier//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]/*[generate-id()=generate-id(key('ConceptElemByNameRDF', concat(name(),'_',@xml:lang))[1])]">
                        <tr>
                            <td>Élément <em><xsl:choose>
                                <xsl:when test="@xml:lang">
                                    <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="name()"/>
                                </xsl:otherwise>
                            </xsl:choose></em> dans "rdf:Description" de type "Concept"</td> 
                            <td>Élément utilisé <xsl:value-of select="count(key('ConceptElemByNameRDF', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                        </tr>
                    </xsl:for-each>
                   <!-- <tr class="header">
                        <th colspan="2"><span>-</span><mark>Concepts</mark>. La ressource contient <xsl:value-of select="count($fichier/skos:Concept)"/> concepts. [Cliquer ici pour déplier/replier]</th>
                        </tr>
                        <xsl:for-each select="$fichier//skos:Concept/*[generate-id()=generate-id(key('ConceptElemByName', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                        <xsl:when test="@xml:lang">
                                            <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                        </xsl:when>
                                        <xsl:otherwise>
                                            <xsl:value-of select="name()"/>
                                        </xsl:otherwise>
                                    </xsl:choose></em> dans skos:Concept</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('ConceptElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                             </tr>
                        </xsl:for-each>-->
                    
                    <xsl:if test="$fichier//skos:Collection or $fichier/isothes:ConceptGroup or $fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Collection' or @rdf:resource='http://purl.org/iso25964/skos-thes#ConceptGroup']] ">
                        <!-- élément Collection -->
                        <!--<tr class="header">
                            <th colspan="2"><span>-</span><mark>Collections</mark>. La ressource contient <xsl:value-of select="count($fichier/skos:Collection)"/> collections. [Cliquer ici pour déplier/replier]</th>
                        </tr>
                        <xsl:for-each select="$fichier//skos:Collection/*[generate-id()=generate-id(key('CollectionElemByName', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans skos:Collection</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('CollectionElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>-->
                        <!-- élement Collection -->
                        <tr class="header">
                            <th colspan="2"><span>-</span><mark>Collections</mark>. La ressource contient 
                                <xsl:choose>
                                    <xsl:when test="$fichier/skos:Collection">
                                        <xsl:value-of select="count($fichier/skos:Collection)"/>
                                    </xsl:when>
                                    <xsl:when test="$fichier/isothes:ConceptGroup">
                                        <xsl:value-of select="count($fichier/isothes:ConceptGroup)"/>
                                    </xsl:when>
                                    <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Collection' or @rdf:resource='http://purl.org/iso25964/skos-thes#ConceptGroup']]">
                                        <xsl:value-of select="count($fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Collection' or @rdf:resource='http://purl.org/iso25964/skos-thes#ConceptGroup']])"/>
                                    </xsl:when> 
                                </xsl:choose> collections. [Cliquer ici pour déplier/replier]</th>
                        </tr>
                        <xsl:for-each select="$fichier//skos:Collection/*[generate-id()=generate-id(key('CollectionElemByName', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans "skos:Collection"</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('CollectionElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>
                        <xsl:for-each select="$fichier//isothes:ConceptGroup/*[generate-id()=generate-id(key('CollectionElemByNameCG', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans "skos:ConceptGroup"</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('CollectionElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>
                        <xsl:for-each select="$fichier//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Collection' or @rdf:resource='http://purl.org/iso25964/skos-thes#ConceptGroup']]/*[generate-id()=generate-id(key('CollectionElemByNameRDF', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans "rdf:Description" de type "Collection/ConceptGroup"</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('CollectionElemByNameRDF', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>
                    </xsl:if>
                    <!-- élément Label -->
                    <xsl:if test="$fichier//skosxl:Label or $fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2008/05/skos-xl#Label']]">
                        <tr class="header">
                            <th colspan="2"><span>-</span><mark>Labels (skosxl)</mark>. La ressource contient 
                                <xsl:choose>
                                    <xsl:when test="$fichier/skosxl:Label">
                                        <xsl:value-of select="count($fichier/skosxl:Label)"/>
                                    </xsl:when>
                                    <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2008/05/skos-xl#Label']]">
                                        <xsl:value-of select="count($fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2008/05/skos-xl#Label']])"/>
                                    </xsl:when> 
                                </xsl:choose> Labels (skosxl). [Cliquer ici pour déplier/replier]</th>
                        </tr>
                        <xsl:for-each select="$fichier//skosxl:Label/*[generate-id()=generate-id(key('LabelElemByName', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans "skosxl:Label"</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('LabelElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>
                        <xsl:for-each select="$fichier//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2008/05/skos-xl#Label']]/*[generate-id()=generate-id(key('LabelElemByNameRDF', concat(name(),'_',@xml:lang))[1])]">
                            <tr>
                                <td>Élément <em><xsl:choose>
                                    <xsl:when test="@xml:lang">
                                        <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="name()"/>
                                    </xsl:otherwise>
                                </xsl:choose></em> dans "rdf:Description" de type "Label"</td> 
                                <td>Élément utilisé <xsl:value-of select="count(key('LabelElemByNameRDF', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                            </tr>
                        </xsl:for-each>
                        
                        <!--<tr class="header">
                        <th colspan="2"><span>-</span><mark>skosxl:Labels</mark>. La ressource contient <xsl:value-of select="count($fichier/skosxl:Label)"/> "skosxl:Label". [Cliquer ici pour déplier/replier]</th>
                    </tr>
                    <xsl:for-each select="$fichier//skosxl:Label/*[generate-id()=generate-id(key('LabelElemByName', concat(name(),'_',@xml:lang))[1])]">
                        <tr>
                            <td>Élément <em><xsl:choose>
                                <xsl:when test="@xml:lang">
                                    <xsl:value-of select="concat(name(),'_',@xml:lang)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="name()"/>
                                </xsl:otherwise>
                            </xsl:choose></em> dans skosxl:Label</td> 
                            <td>Élément utilisé <xsl:value-of select="count(key('LabelElemByName', concat(name(),'_',@xml:lang)))"/> fois.</td> 
                        </tr>
                    </xsl:for-each>-->
                    </xsl:if>
                </table>
                <!-- Nouvelle table : anomalies -->
                <xsl:choose>
                     <xsl:when test="not(.='')">
                           <h3>Liste d'anomalies du fichier <em>
                               <xsl:choose>
                                   <xsl:when test="$fichier/skos:ConceptScheme">
                                     <xsl:value-of select="$fichier/skos:ConceptScheme/dc:title[@xml:lang='fr']"/>
                                   </xsl:when>
                                   <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                                       <xsl:value-of select="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/dc:title[@xml:lang='fr']"/>
                                   </xsl:when> 
                               </xsl:choose>
                               </em> :</h3> 
                          
                         <input type="text" id="myInput" onkeyup="myFunction()" placeholder="Chercher une anomalie.." title="Saisir un code"></input>
                        
                         <table id="myTable" class="anomalies">
                              <thead>
                                  <tr>
                                    <!--<tr class="header">-->
                                      <th>Anomalie</th>
                                      <th>Description</th>
                                      <th>Détails</th>
                                  </tr>
                              </thead>
                              <tbody>
                                <xsl:copy-of select="./*"/>
                              </tbody>
                          </table>
                         <script type="text/javascript" src="js/result_header.js"><xsl:text> </xsl:text></script> 
                     </xsl:when>
                    <xsl:otherwise>
                        <h3>Aucune anomalie n'a été détectée au niveau du fichier <em>
                            <xsl:choose>
                                <xsl:when test="$fichier/skos:ConceptScheme">
                                    <xsl:value-of select="$fichier/skos:ConceptScheme/dc:title[@xml:lang='fr']"/>
                                </xsl:when>
                                <xsl:when test="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]">
                                    <xsl:value-of select="$fichier/rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#ConceptScheme']]/dc:title[@xml:lang='fr']"/>
                                </xsl:when> 
                            </xsl:choose>
                        </em>.</h3> 
                    </xsl:otherwise>
                </xsl:choose>
                <script>
                    // tell the embed parent frame the height of the content
                    //<![CDATA[
                    if (window.parent && window.parent.parent){
                    window.parent.parent.postMessage(["resultsFrame", {
                    height: document.body.getBoundingClientRect().height,
                    slug: "7ty3b"
                    }], "*")
                    }
                    //]]>
                    // always overwrite window.name, in case users try to set it manually
                    window.name = "result"
                </script> 
            </body>
       </html>
    </xsl:template>
    
   <!-- ==========================================================================================================================
   skos:Concept
   =============================================================================================================================--> 
     <xsl:template match="skos:Concept">
        <xsl:variable name="ID" select="@rdf:about"/>
        <!--contrôle d'unicité de l'identifiant -->
        <xsl:choose>
            <xsl:when test="following::skos:Concept[@rdf:about=$ID]">
            <xsl:variable name="id">
                <xsl:value-of select="following::skos:Concept[@rdf:about=$ID]/@rdf:about"/>
            </xsl:variable>
            <xsl:variable name="pref">
                <xsl:value-of select="following::skos:Concept[@rdf:about=$ID]/skos:prefLabel[@xml:lang='fr'][1] | following::skos:Concept[@rdf:about=$ID]/rdfs:label[@xml:lang='fr'][1]"/>
            </xsl:variable> 
            <tr>
                <td  class="A">D-Id</td>
                <td >Doublon au niveau des identifiants (uri) de concepts</td>
                <td>
                    <xsl:text>Les concepts </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$id"/>
<!--                             <xsl:value-of select="concat(translate($fichier/skos:ConceptScheme/dc:title[@xml:lang='fr'], ' ', '_'),'.html#', $id)"/> -->
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> et </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                                                        <xsl:value-of select="$id"/>
<!--                            <xsl:value-of select="concat(translate($fichier/skos:ConceptScheme/dc:title[@xml:lang='fr'], ' ', '_'),'.html#', $id)"/> -->
                        </xsl:attribute>
                        <xsl:value-of select="$pref"/>
                    </a>
                    <xsl:text> ont le même identifiant.</xsl:text>
                 </td>
<!--                <td>Les concepts <xsl:value-of select="concat(' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/> et <xsl:value-of select="concat(' [', $pref, ']')"/> ont le même identifiant : <xsl:value-of select="$id"/> </td>-->
                <!--<td>
                   <xsl:value-of select="concat($ID, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/>
                </td>
                <td>
                     <xsl:value-of select="concat($id, ' [', $pref, ']')"/>
                 </td>-->
              </tr>
        </xsl:when>
            <xsl:otherwise>
               <!-- <tr>
                    <td  class="AV">C0</td>
                    <td >Contrôle d'unicité des identifiants</td>
                    <td>Contrôle OK.</td>
                </tr>-->
            </xsl:otherwise>
        </xsl:choose>
         <!--URI mal formé-->
<!--         <xsl:for-each select="child::*">-->
             <xsl:for-each select="self::node()|node()">
             <xsl:if test="contains(@*, '%20')">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (espace) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., '%20')]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $newline)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (retour à la ligne) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $newline)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $apos)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (apostrophe) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $apos)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $quot)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (double quotes) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $quot)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $crochetG)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (crochet gauche) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $crochetG)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $crochetD)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (crochet droit) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $crochetD)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $carriageReturn)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (retour chariot) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $carriageReturn)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $tab)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (tabulation) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $tab)]"/>).</td>
                 </tr>
             </xsl:if>
         </xsl:for-each>
         
         
        <!--contrôle d'unicité des préférentiels pour un même concept -->
 <!--       <xsl:for-each select="skos:prefLabel">
            <xsl:variable name="lang" select="@xml:lang"/>
         <!-\- <xsl:if test="count(skos:prefLabel[@xml:lang=following-sibling::skos:prefLabel/@xml:lang]) &gt; 1">
              <xsl:variable name="lang" select="skos:prefLabel[@xml:lang=following-sibling::skos:prefLabel/@xml:lang]/@xml:lang"/>
              <xsl:for-each select="skos:prefLabel[@xml:lang=following-sibling::skos:prefLabel/@xml:lang]">   -\->
            <xsl:if test="$lang=following-sibling::skos:prefLabel/@xml:lang">
                <tr>
                      <td  class="A">NP</td>
                      <td >Plusieurs préférentiels d'une même langue pour un même concept </td>
                      <td>
                          <xsl:text>Le concept </xsl:text>
                          
                          <a>
                              <xsl:attribute name="href">
                                  <xsl:value-of select="../@rdf:about"/>
                              </xsl:attribute>
                              <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1]"/>
                          </a>
                          <xsl:text> présente plusieurs préférentiels d'une même langue (</xsl:text>
                          <xsl:value-of select="$lang"/>
                          <xsl:text>).</xsl:text>
                      </td>
                   </tr>
            </xsl:if>
              <!-\-</xsl:for-each>
                </xsl:if>-\->
        </xsl:for-each>-->
 
        <!-- test balises vides -->
        <xsl:for-each select="skos:prefLabel | skos:altLabel | skos:hiddenLabel | skos:definition | skos:note | skos:scopeNote | skos:historyNote | skos:editorialNote | skos:example | 
            inist:semCategory | inist:domain | tps:subjectField | tps:semCategory | tps:applicationSubset | dc:identifier | 
            dcterms:identifier | dcterms:bibliographicalCitation | dcterms:source">
            <xsl:if test=".=''">
                <tr>
                    <td class="E">E-0</td>
                    <td>Propriété vide</td>
                    <td>
                        <xsl:text>Le concept </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="../@rdf:about"/>
                            </xsl:attribute>
                            <xsl:choose>
                                <xsl:when test="../skos:prefLabel[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']">
                                     <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="../@rdf:about"/>
                                </xsl:otherwise>
                            </xsl:choose>
                           
                        </a>
                        <xsl:text> présente une propriété (</xsl:text>
                        <xsl:value-of select="name(.)"/>
                        <xsl:text>) vide.</xsl:text>
                    </td>
                   <!-- <td>
                      <xsl:value-of select="concat(../@rdf:about, ' [', ../skos:prefLabel[@xml:lang='fr'][1], ']')"/> 
                     </td>-->
                </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- test attributs vides -->
        <xsl:for-each select="./*">
            <xsl:if test="@*=''">
                <tr>
                    <td class="E">@-0</td>
                    <td>Attribut vide</td>
                    <td>
                        <xsl:text>Le concept </xsl:text>
                         <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="../@rdf:about"/>
                            </xsl:attribute>
                             <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                        </a>
                        <xsl:text> présente un attribut vide (</xsl:text>
                        <xsl:value-of select="name(@*)"/>
                        <xsl:text>) au niveau de la propriété : </xsl:text>
                        <xsl:value-of select="name(.)"/>
                        <xsl:text>.</xsl:text>
                    </td>
                    <!-- <td>
                      <xsl:value-of select="concat(../@rdf:about, ' [', ../skos:prefLabel[@xml:lang='fr'][1], ']')"/> 
                     </td>-->
                </tr>
            </xsl:if>
        </xsl:for-each>
         <!--RELATIONS-->
        <!--test TA = TG -->
        <xsl:if test="skos:related/@rdf:resource=skos:broader/@rdf:resource">
            <tr>
                <td class="A">R-A1</td>
                <td>Conflit au niveau des relations : concept associé = concept générique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                     <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                         <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un même concept est à la fois concept associé et concept générique du concept courant.</xsl:text>
                </td>
               <!-- <td>
                    <xsl:value-of select="concat(@rdf:about, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/> 
                </td>-->
            </tr>
        </xsl:if>

        <!--test de reflexivité : pref=broader -->
        <xsl:if test="@rdf:about=skos:broader/@rdf:resource">
            <tr>
                <td class="A">R-FX1</td>
                <td>Relation hiérarchique reflexive</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une relation hiérarchique reflexive : il est concept générique de lui-même.</xsl:text>
                </td>
                <!--<td>
                     <xsl:value-of select="concat(@rdf:about, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/>
                </td>-->
            </tr>
        </xsl:if>
        <!--test de reflexivité : pref=related -->
        <xsl:if test="@rdf:about=skos:related/@rdf:resource">
            <tr>
                <td class="A">R-FX2</td>
                <td>Relation associative reflexive</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                   <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                       <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une relation associative reflexive : il est concept associé de lui-même.</xsl:text>
                </td>
                <!--<td>
                     <xsl:value-of select="concat(@rdf:about, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/>
                </td>-->
            </tr>
        </xsl:if>
        <!--test de boucle : narrower=broader -->
        <xsl:if test="skos:broader/@rdf:resource=skos:narrower/@rdf:resource">
            <tr>
                <td class="A">R-B3</td>
                <td>Boucle : concept spécifique = concept  générique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un concept est à la fois concept spécifique et concept générique du concept courant.</xsl:text>
                </td>
                <!--<td>
                    <xsl:value-of select="concat(@rdf:about, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/>
                </td>-->
            </tr>
        </xsl:if>
         
         <!--test conflit à 3 au niveau des relations associatives et hiérarchiques -->
         <xsl:for-each select="skos:related">
               <xsl:call-template name="Rel31">
                   <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                   <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                   <xsl:with-param name="uriRT">
                          <xsl:value-of select="@rdf:resource"/>
                   </xsl:with-param>
                </xsl:call-template>
         </xsl:for-each>
         
         <!-- 2ème test conflit à 3 au niveau des relations associatives et hiérarchiques -->
         <xsl:call-template name="Rel32">
             <xsl:with-param name="uriConcept" select="@rdf:about"/>
             <xsl:with-param name="prefFre" select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
         </xsl:call-template>

         <!--test  concept cible inexistant-->
         <xsl:for-each select="skos:related | skos:broader | skos:narrower">
             <xsl:call-template name="Rel">
                 <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                 <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                 <xsl:with-param name="uri">                
                     <xsl:value-of select="@rdf:resource"/>
                 </xsl:with-param>
             </xsl:call-template>
         </xsl:for-each>
        
         <!--test TS = TA -->
        <xsl:if test="skos:related/@rdf:resource=skos:narrower/@rdf:resource">
            <tr>
                <td class="A">R-A2</td>
                <td>Conflit au niveau des relations : concept associé = concept spécifique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un concept est à la fois concept spécifique et concept associé du concept courant.</xsl:text>
                </td>
              <!--  <td>
                    <xsl:value-of select="concat(@rdf:about, ' [', skos:prefLabel[@xml:lang='fr'][1], ']')"/> 
                </td>-->
            </tr>
        </xsl:if> 

        <!-- test symétrie des TA -->
        <xsl:for-each select="skos:related/@rdf:resource">
              <xsl:call-template name="TA">
            <xsl:with-param name="thisTA">                
                <xsl:value-of select="."/>
            </xsl:with-param>
            <xsl:with-param name="thisAbout">
                <xsl:value-of select="../../@rdf:about"/>
            </xsl:with-param>
        </xsl:call-template>
         </xsl:for-each>
        <!-- problème au niveau de skos:inScheme-->
        <xsl:if test="not(skos:inScheme/@rdf:resource)">
            <tr>
                <td class="A">CS-0</td>
                <td>Absence de rattachement du concept à la ressource</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> n'est pas rattaché à la ressource via la propriété "skos:inScheme".</xsl:text>
                </td>
                <!--  <td>
                    <xsl:value-of select="@rdf:about"/>
                </td>-->
            </tr>
        </xsl:if>
        <!--skos:inScheme différent de l'uri de la ressource-->
        <xsl:if test="not($uriRessource='') and not(skos:inScheme/@rdf:resource='')">
            <xsl:if test="not(skos:inScheme[@rdf:resource=$uriRessource])">
            <tr>
                <td class="A">CS-3</td>
                <td>Incohérence au niveau de l'identifiant de la ressource</td>
                <td>
                    <xsl:text>Le contenu (</xsl:text>
                    <xsl:value-of select="skos:inScheme/@rdf:resource"/>
                    <xsl:text>) de l'attribut "rdf:resource" de la propriété "skos:inScheme" du concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> est différent de l'identifiant de la ressource (</xsl:text>
                    <xsl:value-of select="$uriRessource"/>
                    <xsl:text>).</xsl:text>
                </td>
                <!--  <td>
                    <xsl:value-of select="@rdf:about"/>
                </td>-->
            </tr>
        </xsl:if>
        </xsl:if>
  
        <!--pref absent pour une des langues de la ressource-->
                <xsl:variable name="languesPref">
                    <xsl:for-each select="distinct-values(skos:prefLabel/@xml:lang | rdfs:label/@xml:lang)">
                <xsl:sort select="."/>
                <lng>
                            <xsl:value-of select="."/>
                 </lng>
            </xsl:for-each>
        </xsl:variable>
<!--            <xsl:text>langues des pref : </xsl:text>-->
           <xsl:choose>
               <xsl:when test="$languesPref = $languesRessource">
           <!-- <tr>
                <td class="C">XX OK <xsl:text>il existe un pref pour toutes les langues de la ressource</xsl:text></td>
 
                <td>
                  </td>
                <td>
                    
                </td>
            </tr>-->
               </xsl:when>
               <xsl:otherwise>
            <tr>
                <td class="A">LP-0</td>
                <td>Préférentiel absent pour une des langues de la ressource</td>
              <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:choose>
                            <xsl:when test="skos:prefLabel[@xml:lang='fr'] | rdfs:label[@xml:lang='fr']">
                                <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:choose>
                                    <xsl:when test="skos:prefLabel[@xml:lang='en'] | rdfs:label[@xml:lang='en']">
                                        <xsl:value-of select="skos:prefLabel[@xml:lang='en'][1] | rdfs:label[@xml:lang='en'][1]"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="@rdf:about"/>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                          
                    </a>
                    <xsl:text> n' a pas de préférentiel "</xsl:text>
                    <xsl:value-of select="$languesRessource/lng[not(.=$languesPref/lng)]"/>
                    <xsl:text>".</xsl:text>
                </td>
             </tr>
               </xsl:otherwise>
           </xsl:choose>

    </xsl:template>
     <!-- ===================================================================================================================================================
     rdf:Description type=Concept
     ======================================================================================================================================================
     --> 
     <xsl:template match="rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept']]">
        <xsl:variable name="ID" select="@rdf:about"/>
        <!--contrôle d'unicité de l'identifiant -->
        <xsl:choose>
            <xsl:when test="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$ID]">
            <xsl:variable name="id">
                <xsl:value-of select="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$ID]/@rdf:about"/>
            </xsl:variable>
            <xsl:variable name="pref">
                <xsl:value-of select="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$ID]/skos:prefLabel[@xml:lang='fr'][1]
                    | following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$ID]/rdfs:label[@xml:lang='fr'][1] "/>
            </xsl:variable> 
             <tr>
                <td  class="A">D-Id</td>
                <td >Doublon au niveau des identifiants (uri) de concepts</td>
                <td>
                    <xsl:text>Les concepts </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$id"/>
                       </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> et </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                                                        <xsl:value-of select="$id"/>
                        </xsl:attribute>
                        <xsl:value-of select="$pref"/>
                    </a>
                    <xsl:text> ont le même identifiant.</xsl:text>
                 </td>
              </tr>
        </xsl:when>
            <xsl:otherwise>
             </xsl:otherwise>
        </xsl:choose>
         
         <!--URI mal formé-->
         <!--         <xsl:for-each select="child::*">-->
         <xsl:for-each select="self::node()|node()">
             <xsl:if test="contains(@*, '%20')">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (espace) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., '%20')]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $newline)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (retour à la ligne) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $newline)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $apos)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (apostrophe) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $apos)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $quot)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (double quotes) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $quot)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $crochetG)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (crochet gauche) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $crochetG)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $crochetD)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (crochet droit) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $crochetD)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $carriageReturn)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (retour chariot) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $carriageReturn)]"/>).</td>
                 </tr>
             </xsl:if>
             <xsl:if test="contains(@*, $tab)">
                 <tr>
                     <td  class="A">URI/IRI</td>
                     <td >Un URI/IRI contient un caractère non autorisé</td>
                     <td>Un URI/IRI du concept <a>
                         <xsl:attribute name="href">
                             <xsl:value-of select="../@rdf:about"/>
                         </xsl:attribute>
                         <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'] | ../dc:title[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']"/></a> contient un caractère non autorisé (tabulation) au niveau de l'élément "<xsl:value-of select="name()"/>" (<xsl:value-of select="@*[contains(., $tab)]"/>).</td>
                 </tr>
             </xsl:if>
         </xsl:for-each>
  
        <!-- test balises vides -->
        <xsl:for-each select="skos:prefLabel | skos:altLabel | skos:hiddenLabel | skos:definition | skos:note | skos:scopeNote | skos:historyNote | skos:editorialNote | skos:example | 
            inist:semCategory | inist:domain | tps:subjectField | tps:semCategory | tps:applicationSubset | dc:identifier | 
            dcterms:identifier | dcterms:bibliographicalCitation | dcterms:source">
            <xsl:if test=".=''">
                <tr>
                    <td class="E">E-0</td>
                    <td>Propriété vide</td>
                    <td>
                        <xsl:text>Le concept </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="../@rdf:about"/>
                            </xsl:attribute>
                            <xsl:choose>
                                <xsl:when test="../skos:prefLabel[@xml:lang='fr'] | ../rdfs:label[@xml:lang='fr']">
                                    <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="../@rdf:about"/>
                                </xsl:otherwise>
                            </xsl:choose>
                        </a>
                        <xsl:text> présente une propriété (</xsl:text>
                        <xsl:value-of select="name(.)"/>
                        <xsl:text>) vide.</xsl:text>
                    </td>
                 </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- test attributs vides -->
        <xsl:for-each select="./*">
            <xsl:if test="@*=''">
                <tr>
                    <td class="E">@-0</td>
                    <td>Attribut vide</td>
                    <td>
                        <xsl:text>Le concept </xsl:text>
                         <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="../@rdf:about"/>
                            </xsl:attribute>
                             <xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                        </a>
                        <xsl:text> présente un attribut vide (</xsl:text>
                        <xsl:value-of select="name(@*)"/>
                        <xsl:text> au niveau de la propriété : </xsl:text>
                        <xsl:value-of select="name(.)"/>
                        <xsl:text>).</xsl:text>
                    </td>
                 </tr>
            </xsl:if>
        </xsl:for-each>
         <!--RELATIONS-->
        <!--test TA = TG -->
        <xsl:if test="skos:related/@rdf:resource=skos:broader/@rdf:resource">
            <tr>
                <td class="A">R-A1</td>
                <td>Conflit au niveau des relations : concept associé = concept générique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                     <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                         <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un même concept est à la fois concept associé et concept générique du concept courant.</xsl:text>
                </td>
            </tr>
        </xsl:if>

        <!--test de boucle : pref=broader -->
        <xsl:if test="@rdf:about=skos:broader/@rdf:resource">
            <tr>
                <td class="A">R-B1</td>
                <td>Boucle : un concept est générique de lui-même</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une boucle : il est concept générique de lui-même.</xsl:text>
                </td>
            </tr>
        </xsl:if>
        <!--test de boucle : pref=related -->
        <xsl:if test="@rdf:about=skos:related/@rdf:resource">
            <tr>
                <td class="A">R-B2</td>
                <td>Boucle : un concept est associé à lui-même</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                   <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                       <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une boucle : il est concept associé de lui-même.</xsl:text>
                </td>
            </tr>
        </xsl:if>
        <!--test de boucle : narrower=broader -->
        <xsl:if test="skos:broader/@rdf:resource=skos:narrower/@rdf:resource">
            <tr>
                <td class="A">R-B3</td>
                <td>Boucle : concept spécifique = concept  générique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un concept est à la fois concept spécifique et concept générique du concept courant.</xsl:text>
                </td>
             </tr>
        </xsl:if>
         <!--test conflit à 3 au niveau des relations associatives et hiérarchiques -->
         <xsl:for-each select="skos:related">
             <xsl:call-template name="Rel312">
                 <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                 <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                 <xsl:with-param name="uriRT">
                     <xsl:value-of select="@rdf:resource"/>
                 </xsl:with-param>
             </xsl:call-template>
         </xsl:for-each>
         
         <!-- 2ème test conflit à 3 au niveau des relations associatives et hiérarchiques -->
         <xsl:call-template name="Rel322">
             <xsl:with-param name="uriConcept" select="@rdf:about"/>
             <xsl:with-param name="prefFre" select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
         </xsl:call-template>
         
         <!--test  concept cible inexistant-->
         <xsl:for-each select="skos:related | skos:broader | skos:narrower">
             <xsl:call-template name="Rel2">
                 <xsl:with-param name="uriConcept" select="../@rdf:about"/>
                 <xsl:with-param name="prefFre" select="../skos:prefLabel[@xml:lang='fr'][1] | ../rdfs:label[@xml:lang='fr'][1]"/>
                 <xsl:with-param name="uri">                
                     <xsl:value-of select="@rdf:resource"/>
                 </xsl:with-param>
             </xsl:call-template>
         </xsl:for-each>
        <!--test TS = TA -->
        <xsl:if test="skos:related/@rdf:resource=skos:narrower/@rdf:resource">
            <tr>
                <td class="A">R-A2</td>
                <td>Conflit au niveau des relations : concept associé = concept spécifique</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> présente une anomalie au niveau des relations : un concept est à la fois concept spécifique et concept associé du concept courant.</xsl:text>
                </td>
           </tr>
        </xsl:if> 

        <!-- test symétrie des TA -->
        <xsl:for-each select="skos:related/@rdf:resource">
              <xsl:call-template name="TA">
            <xsl:with-param name="thisTA">                
                <xsl:value-of select="."/>
            </xsl:with-param>
            <xsl:with-param name="thisAbout">
                <xsl:value-of select="../../@rdf:about"/>
            </xsl:with-param>
        </xsl:call-template>
         </xsl:for-each>
         
        <!-- problème au niveau de skos:inScheme-->
        <xsl:if test="not(skos:inScheme/@rdf:resource)">
            <tr>
                <td class="A">SC-0</td>
                <td>Absence de rattachement du concept à la ressource</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text> n'est pas rattaché à la ressource via la propriété "skos:inScheme".</xsl:text>
                </td>
            </tr>
        </xsl:if>
  
         <!--skos:inScheme différent de l'uri de la ressource-->
        <xsl:if test="not($uriRessource='') and not(skos:inScheme/@rdf:resource='')">
            <xsl:if test="not(skos:inScheme[@rdf:resource=$uriRessource])">
            <tr>
                <td class="A">CS-3</td>
                <td>Incohérence au niveau de l'identifiant de la ressource</td>
                <td>
                    <xsl:text>Le contenu (</xsl:text>
                    <xsl:value-of select="skos:inScheme/@rdf:resource"/>
                    <xsl:text>) de l'attribut "rdf:resource" de la propriété "skos:inScheme" du concept [</xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>
                    <xsl:text>] est différent de l'identifiant de la ressource (</xsl:text>
                    <xsl:value-of select="$uriRessource"/>
                    <xsl:text>).</xsl:text>
                </td>
            </tr>
        </xsl:if>
        </xsl:if>
  
        <!--pref absent pour une des langues de la ressource-->
           <xsl:variable name="languesPref">
                    <xsl:for-each select="distinct-values(skos:prefLabel/@xml:lang | rdfs:label/@xml:lang)">
                        <xsl:sort select="."/>
                        <lng>
                                    <xsl:value-of select="."/>
                         </lng>
                    </xsl:for-each>
           </xsl:variable>
           <xsl:choose>
               <xsl:when test="$languesPref = $languesRessource">
               </xsl:when>
               <xsl:otherwise>
                    <tr>
                        <td class="A">LP-0</td>
                        <td>Préférentiel absent pour une des langues de la ressource</td>
                         <td>
                            <xsl:text>Le concept </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="@rdf:about"/>
                                </xsl:attribute>
                                <xsl:choose>
                                    <xsl:when test="skos:prefLabel[@xml:lang='fr'] | rdfs:label[@xml:lang='fr']">
                                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:choose>
                                            <xsl:when test="skos:prefLabel[@xml:lang='en'] | rdfs:label[@xml:lang='en']">
                                                <xsl:value-of select="skos:prefLabel[@xml:lang='en'][1] | rdfs:label[@xml:lang='en'][1]"/>
                                            </xsl:when>
                                            <xsl:otherwise>
                                                <xsl:value-of select="@rdf:about"/>
                                            </xsl:otherwise>
                                        </xsl:choose>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </a>
                            <xsl:text> n' a pas de préférentiel "</xsl:text>
                            <xsl:value-of select="$languesRessource/lng[not(.=$languesPref/lng)]"/>
                            <xsl:text>".</xsl:text>
                        </td>
                   </tr>
               </xsl:otherwise>
           </xsl:choose>
    </xsl:template>
   
    <!--===============================================================================================================================
        relation TA pour skos:Concept
        ================================================================================================================================
    -->
    <xsl:template name="TA">
        <xsl:param name="thisTA"/>
        <xsl:param name="thisAbout"/>
        <!-- si l'URI du TA est égal à l'URI d'un concept -->
         <xsl:if test="following::skos:Concept[@rdf:about=$thisTA]">
             <xsl:choose>
             <!-- si, en plus, ce concept a lui-même un TA qui a un URI identique à celui du concept de départ, on ne fait rien (la relation est symétrique)-->
                <xsl:when test="following::skos:Concept[@rdf:about=$thisTA]/skos:related[@rdf:resource=$thisAbout]">
                </xsl:when>
                 <!-- dans le cas contraire, la relation n'est pas symétrique -->
                 <xsl:otherwise>
                     <tr>
                         <td class="C">R-NS</td>
                         <td>Relation d'association non symétrique</td>
                         <td>
                             <xsl:text>Le concept </xsl:text>
                             <a>
                                 <xsl:attribute name="href">
                                     <xsl:value-of select="$thisAbout"/>
                                 </xsl:attribute>
                                 <xsl:value-of select="../../skos:prefLabel[@xml:lang='fr'][1] | ../../rdfs:label[@xml:lang='fr'][1]"/>
                             </a>
                             <xsl:text> est associé au concept </xsl:text>
                             <a>
                                 <xsl:attribute name="href">
                                     <xsl:value-of select="$thisTA"/>
                                 </xsl:attribute>
                                 <xsl:value-of select="following::skos:Concept[@rdf:about=$thisTA]/skos:prefLabel[@xml:lang='fr'][1]"/>
                             </a>
                             <xsl:text> mais pas l'inverse. Vous pouvez utiliser le service "Corriger les anomalies de symétrie des concepts associés dans un fichier SKOS/RDF-XML" pour y remédier.</xsl:text>
                         </td>
                       </tr>
                 </xsl:otherwise>
             </xsl:choose>
        </xsl:if>
    </xsl:template>
    <!--===============================================================================================================================
        relation TA pour rdf:Description
        ================================================================================================================================
    -->
    <xsl:template name="TA2">
        <xsl:param name="thisTA"/>
        <xsl:param name="thisAbout"/>
        <!-- si l'URI du TA est égal à l'URI d'un concept -->
        <xsl:if test="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$thisTA]">
            <xsl:choose>
                <!-- si, en plus, ce concept a lui-même un TA qui a un URI identique à celui du concept de départ, on ne fait rien (la relation est symétrique)-->
                <xsl:when test="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$thisTA]/skos:related[@rdf:resource=$thisAbout]">
                </xsl:when>
                <!-- dans le cas contraire, la relation n'est pas symétrique -->
                <xsl:otherwise>
                    <tr>
                        <td class="C">R-NS</td>
                        <td>Relation d'association non symétrique</td>
                        <td>
                            <xsl:text>Le concept </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$thisAbout"/>
                                </xsl:attribute>
                                <xsl:value-of select="../../skos:prefLabel[@xml:lang='fr'][1]"/>
                            </a>
                            <xsl:text> est associé au concept </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$thisTA"/>
                                </xsl:attribute>
                                <xsl:value-of select="following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$thisTA]/skos:prefLabel[@xml:lang='fr'][1]
                                    | following::rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$thisTA]/rdfs:label[@xml:lang='fr'][1]"/>
                            </a>
                            <xsl:text> mais pas l'inverse. Vous pouvez utiliser le service "Corriger les anomalies de symétrie des concepts associés dans un fichier SKOS/RDF-XML" pour y remédier.</xsl:text>
                        </td>
                    </tr>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:if>
    </xsl:template>
    
    <!--============================================================================================================================
        relations cibles pour skos:Concept
        =============================================================================================================================-->
    <xsl:template name="Rel">
        <xsl:param name="uri"/>
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <!-- si aucun concept n'a cet uri-->
        <xsl:if test="not(//skos:Concept[@rdf:about=$uri])">
                    <tr>
                        <td class="C">R-0</td>
                        <td>Relation vers concept inexistant</td>
                        <td>
                            <xsl:text>Le concept </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriConcept"/>
                                </xsl:attribute>
                                <xsl:value-of select="$prefFre"/>
                            </a>
                            <xsl:text> est en relation avec un concept [</xsl:text>
                                  <xsl:value-of select="$uri"/>
                            <xsl:text>] absent de la ressource. Créer ce concept ou supprimer la relation.</xsl:text>
                        </td>
                    </tr>
        </xsl:if>
    </xsl:template>
    <!--============================================================================================================================
        relations cibles pour rdf:Description
        =============================================================================================================================-->
    <xsl:template name="Rel2">
        <xsl:param name="uri"/>
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <!-- si aucun concept n'a cet uri-->
<!--        <xsl:if test="not(//rdf:Description[rdf:type[@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'] and @rdf:about=$uri])">-->
            <xsl:if test="not(//rdf:Description[@rdf:about=$uri])"> 
            <tr>
                <td class="C">R-0</td>
                <td>Relation vers concept inexistant</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> est en relation avec un concept [</xsl:text>
                    <xsl:value-of select="$uri"/>
                    <xsl:text>] absent de la ressource. Créer ce concept ou supprimer la relation.</xsl:text>
                </td>
            </tr>
        </xsl:if>
    </xsl:template>
    <!--============================================================================================================================
        clash 29 d'un skos:Concept
        =============================================================================================================================-->
    <xsl:template name="Rel31">
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="uriRT"/>
       <!-- recherche des narrowers de uriConcept (concept A dans clash 29)-->
        <xsl:for-each select="//skos:Concept[skos:broader/@rdf:resource=$uriConcept]">
            <xsl:variable name="uriNT" select="@rdf:about"/>
            <xsl:variable name="termeNT" select="skos:prefLabel[@xml:lang='fr'][1]"/>
            <!--recherche d'un concept dont l'uri est celui du RT et le générique est un des NT du premier concept-->
            <xsl:if test="//skos:Concept[@rdf:about=$uriRT and skos:broader/@rdf:resource=$uriNT]">
<!--            <tr>
                <td class="A">R-31</td>
                <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriRT"/>
                        </xsl:attribute>
                        <xsl:call-template name="pref">
                            <xsl:with-param name="uri" select="$uriRT"/>
                        </xsl:call-template>
                    </a>
                    <xsl:text> ne peut pas être un concept spécifique du concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriNT"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeNT"/>
                    </a><xsl:text> car il est associé au concept générique </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                         </a>
                    <xsl:text> de ce dernier.</xsl:text>
                </td>
            </tr>-->
              <!--  <tr>
                    <td class="A">R-31</td>
                    <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                    <td>
                        <xsl:text>Le concept </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriNT"/>
                            </xsl:attribute>
                            <xsl:value-of select="$termeNT"/>
                        </a>
                        <xsl:text> ne peut pas être un concept générique du concept </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriRT"/>
                            </xsl:attribute>
                            <xsl:call-template name="pref">
                                <xsl:with-param name="uri" select="$uriRT"/>
                            </xsl:call-template>
                        </a><xsl:text> car ce dernier est associé au concept générique </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>
                        <xsl:text> du premier.</xsl:text>
                    </td>
                </tr>-->
                <tr>
                    <td class="A">R-31</td>
                    <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                    <td>
                        <xsl:text>Le concept A </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>
                        <xsl:text> a comme concept spécifique le concept B </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriNT"/>
                            </xsl:attribute>
                            <xsl:value-of select="$termeNT"/>
                        </a>
                        <xsl:text> et comme concept associé le concept C </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriRT"/>
                            </xsl:attribute>
                            <xsl:call-template name="pref">
                                <xsl:with-param name="uri" select="$uriRT"/>
                            </xsl:call-template>
                        </a><xsl:text>. De ce fait, le concept C ne peut donc pas être un concept spécifique du concept B car le concept C ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:narrowerTransitive" et  "skos:related". Voir détails dans </xsl:text>
                        <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                       </td>
                </tr>

            </xsl:if>
        </xsl:for-each>
    </xsl:template>
    <!--============================================================================================================================
        clash 29 d'un rdf:Description
        =============================================================================================================================-->
    <xsl:template name="Rel312">
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="uriRT"/>
        -->       <!-- recherche des narrowers de uriConcept-->
        <xsl:for-each select="//rdf:Description[skos:broader/@rdf:resource=$uriConcept]">
            <xsl:variable name="uriNT" select="@rdf:about"/>
            <xsl:variable name="termeNT" select="skos:prefLabel[@xml:lang='fr'][1]"/>
            <!--recherche d'un concept dont l'uri est celui du RT et le générique est un des NT du premier concept-->
            <xsl:if test="//rdf:Description[@rdf:about=$uriRT and skos:broader/@rdf:resource=$uriNT]">
                <tr>
                    <td class="A">R-31</td>
                    <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                    <td>
                        <xsl:text>Le concept A </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>
                        <xsl:text> a comme concept spécifique le concept B </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriNT"/>
                            </xsl:attribute>
                            <xsl:value-of select="$termeNT"/>
                        </a>
                        <xsl:text> et comme concept associé le concept C </xsl:text>
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriRT"/>
                            </xsl:attribute>
                            <xsl:call-template name="pref">
                                <xsl:with-param name="uri" select="$uriRT"/>
                            </xsl:call-template>
                        </a><xsl:text>. De ce fait, le concept C ne peut donc pas être un concept spécifique du concept B car le concept C ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:narrowerTransitive" et  "skos:related". Voir détails dans </xsl:text>
                        <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
    <!--============================================================================================================================
        clash 27 d'un skos:Concept
        =============================================================================================================================-->
    <xsl:template name="Rel32">
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <!-- <xsl:param name="uriRT"/>-->
        <!-- recherche des narrowers de uriConcept (concept B dans clash 27)-->
        <xsl:for-each select="//skos:Concept[skos:broader/@rdf:resource=$uriConcept]">
            <xsl:variable name="uriNT" select="@rdf:about"/>
            <xsl:variable name="termeNT" select="skos:prefLabel[@xml:lang='fr'][1]"/>
            <!-- sélection des TA de ces narrowers -->
            <xsl:for-each select="skos:related">
                <xsl:variable name="uriRel" select="@rdf:resource"/>
                <xsl:variable name="termeRel">
                    <xsl:value-of select="//skos:Concept[@rdf:about=$uriRel]/skos:prefLabel[@xml:lang='fr'][1]"/>
                </xsl:variable>
                <!--              <xsl:text>R-XX :</xsl:text>Le concept <xsl:value-of select="$uriConcept"/>[<xsl:value-of select="$prefFre"/>] 
                est le concept générique du concept <xsl:value-of select="../../@rdf:about"/>[<xsl:value-of select="../skos:prefLabel[@xml:lang='fr'][1]"/>] 
                qui a un concept associé <xsl:value-of select="@rdf:resource"/>[<xsl:value-of select="$fichier//skos:Concept[@rdf:about=$uriRel]/skos:prefLabel[@xml:lang='fr']"/>].
-->             <!--   <xsl:call-template name="Rel4">
                    <xsl:with-param name="uriRel" select="@rdf:resource"/>
                    <xsl:with-param name="termeRel">
                        <xsl:value-of select="//skos:Concept[@rdf:about=$uriRel]/skos:prefLabel[@xml:lang='fr'][1]"/>
                    </xsl:with-param>
                    <xsl:with-param name="uriNT" select="$uriNT"/>
                    <xsl:with-param name="termeNT" select="$termeNT"/>
                    <xsl:with-param name="prefFre" select="$prefFre"/>
                    <xsl:with-param name="uriConcept" select="$uriConcept"/>
                </xsl:call-template>-->
                <xsl:if test="//skos:Concept[@rdf:about=$uriConcept and skos:broader/@rdf:resource=$uriRel]">
                    <tr>
                        <td class="A">R-32</td>
                        <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                        <td>
                            <xsl:text>Le concept A </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriNT"/>
                                </xsl:attribute>
                                <xsl:value-of select="$termeNT"/>
                            </a>
                            <xsl:text> a comme concept générique le concept B </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriConcept"/>
                                </xsl:attribute>
                                <xsl:value-of select="$prefFre"/>
                            </a>
                            <xsl:text> et comme concept associé le concept C </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriRel"/>
                                </xsl:attribute>
                                <xsl:value-of select="$termeRel"/>
                            </a><xsl:text>. De ce fait, le concept B ne peut pas avoir comme concept générique le concept C car ce dernier ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:broaderTransitive" et  "skos:related". Voir détails dans </xsl:text>
                            <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                        </td>
                    </tr>
                </xsl:if>
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>
    <!--============================================================================================================================
        suite de Rel32
        =============================================================================================================================--> 
    <!--<xsl:template name="Rel4">
        <xsl:param name="uriRel"/>
        <xsl:param name="termeRel"/>
        <xsl:param name="termeNT"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="uriNT"/>
        <xsl:param name="uriConcept"/>
        <xsl:if test="//skos:Concept[skos:broader/@rdf:resource=$uriRel]">
         <!-\-   <tr>
                <td class="C">R-32</td>
                <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> ne peut pas être un concept spécifique du concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriRel"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeRel"/>
                    </a><xsl:text> car ce dernier est un concept associé à un de ses concepts spécifiques </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriNT"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeNT"/>
                   <!-\\- </a>
                    <xsl:text> lui-même spécifique du concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>-\\->
                    </a>.
                </td>
            </tr>-\->
<!-\-            <tr>
                <td class="A">R-32</td>
                <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriNT"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeNT"/>
                    </a>
                    <xsl:text> est un concept spécifique du concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> qui a comme concept associé le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriRel"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeRel"/>
                    </a><xsl:text> ; ce dernier ne peut donc pas être un concept spécifique du premier.</xsl:text>
                </td>
            </tr> -\->
            <tr>
                <td class="A">R-32</td>
                <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                <td>
                    <xsl:text>Le concept A </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriNT"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeNT"/>
                    </a>
                    <xsl:text> a comme concept générique le concept B </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> et comme concept associé le concept C </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriRel"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeRel"/>
                    </a><xsl:text>. De ce fait, le concept B ne peut pas avoir comme concept générique le concept C car ce dernier ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:broaderTransitive" et  "skos:related". Voir détails dans </xsl:text>
                        <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                </td>
            </tr> 
        </xsl:if>
    </xsl:template>-->
    <!--============================================================================================================================
        clash 27 d'un rdf:Description
        =============================================================================================================================-->
    <xsl:template name="Rel322">
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="uriRT"/>
        <!-- recherche des narrowers de uriConcept (concept B dans clash 27)-->
        <xsl:for-each select="//rdf:Description[skos:broader/@rdf:resource=$uriConcept]">
            <xsl:variable name="uriNT" select="@rdf:about"/>
            <xsl:variable name="termeNT" select="skos:prefLabel[@xml:lang='fr'][1]"/>
            <!-- sélection des TA de ces narrowers -->
            <xsl:for-each select="skos:related">
                <xsl:variable name="uriRel" select="@rdf:resource"/>
                <xsl:variable name="termeRel">
                    <xsl:value-of select="//rdf:Description[@rdf:about=$uriRel]/skos:prefLabel[@xml:lang='fr'][1]"/>
                </xsl:variable> 
                <xsl:if test="//rdf:Description[@rdf:about=$uriConcept and skos:broader/@rdf:resource=$uriRel]">
                    <tr>
                        <td class="A">R-32</td>
                        <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                        <td>
                            <xsl:text>Le concept A </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriNT"/>
                                </xsl:attribute>
                                <xsl:value-of select="$termeNT"/>
                            </a>
                            <xsl:text> a comme concept générique le concept B </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriConcept"/>
                                </xsl:attribute>
                                <xsl:value-of select="$prefFre"/>
                            </a>
                            <xsl:text> et comme concept associé le concept C </xsl:text>
                            <a>
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$uriRel"/>
                                </xsl:attribute>
                                <xsl:value-of select="$termeRel"/>
                            </a><xsl:text>. De ce fait, le concept B ne peut pas avoir comme concept générique le concept C car ce dernier ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:broaderTransitive" et  "skos:related". Voir détails dans </xsl:text>
                            <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                        </td>
                    </tr>
                </xsl:if>
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>
    <!--============================================================================================================================
        suite de Rel322
        =============================================================================================================================--> 
 <!--   <xsl:template name="Rel42">
        <xsl:param name="uriRel"/>
        <xsl:param name="termeRel"/>
        <xsl:param name="termeNT"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="uriNT"/>
        <xsl:param name="uriConcept"/>
        <xsl:if test="//rdf:Description[skos:broader/@rdf:resource=$uriRel]">
            <tr>
                <td class="A">R-32</td>
                <td>Conflit à trois au niveau des relations associatives et hiérarchiques</td>
                <td>
                    <xsl:text>Le concept A </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriNT"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeNT"/>
                    </a>
                    <xsl:text> a comme concept générique le concept B </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> et comme concept associé le concept C </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriRel"/>
                        </xsl:attribute>
                        <xsl:value-of select="$termeRel"/>
                    </a><xsl:text>. De ce fait, le concept B ne peut pas avoir comme concept générique le concept C car ce dernier ne peut pas être lié simultanément au concept A par deux relations disjointes "skos:broaderTransitive" et  "skos:related". Voir détails dans </xsl:text>
                        <a href="https://www.w3.org/TR/skos-primer/#sectransitivebroader">SKOS-Primer</a>.
                </td>
            </tr> 
        </xsl:if>
    </xsl:template>-->
    
    
    <!-- =================================================================================
      unicité des pref
      =================================================================================== -->
    
    <xsl:template name="TermUniqueness">
        <xsl:param name="uriConcept"/>
        <xsl:param name="language"/>
        <xsl:param name="term"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="position"/>
        
        <!-- plusieurs libellés préférentiels d'une même langue au sein du même concept -->
<!--        <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and skos:prefLabel[@xml:lang=$language and position() > $position]]">-->
            <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and count(skos:prefLabel[@xml:lang=$language]) &gt;1]">
            <tr>
                <td class="A">LP-N1</td>
                <td>Plusieurs libellés préférentiels d'une même langue pour un même concept</td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> présente plusieurs libellés préférentiels (</xsl:text>
                    <xsl:for-each select="skos:prefLabel[@xml:lang=$language]">
                    <xsl:choose>
                        <xsl:when test="position()=last()">
                            <xsl:value-of select="."/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="."/>
                            <xsl:text> / </xsl:text>
                        </xsl:otherwise>
                    </xsl:choose>
                    </xsl:for-each>
                    <xsl:text>) d'une même langue (</xsl:text>
                    <xsl:value-of select="$language"/>
                    <xsl:text>).</xsl:text>
                </td>
            </tr>
        </xsl:for-each>
        <!-- ======================================rdf:Description=================================================== -->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and count(skos:prefLabel[@xml:lang=$language]) &gt;1]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LP-N1</td>
                <td>Plusieurs libellés préférentiels d'une même langue pour un même concept <xsl:value-of select="@rdf:about"/></td>
                <td>
                    <xsl:text>Le concept </xsl:text>
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>
                    <xsl:text> présente plusieurs llibellés préférentiels (</xsl:text>
                    <xsl:for-each select="skos:prefLabel[@xml:lang=$language]">
                        <xsl:choose>
                            <xsl:when test="position()=last()">
                                <xsl:value-of select="."/>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:value-of select="."/>
                                <xsl:text> / </xsl:text>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:for-each>
                    <xsl:text>) d'une même langue (</xsl:text>
                    <xsl:value-of select="$language"/>
                    <xsl:text>).</xsl:text>
                </td>
            </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- Doublon pref / alt (même langue) au sein du même concept -->
        <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and skos:altLabel[@xml:lang=$language]=$term ]">
            <tr>
                <td class="A">LP-LA1</td>
                <td>Doublon libellé préférentiel / libellé alternatif au sein du même concept</td>
<!--                <td>Le terme "<xsl:value-of select="$term"/>" est en même temps un libellé préférentiel "<xsl:value-of select="$language"/>" et et un libellé alternatif "<xsl:value-of select="skos:altLabel[@xml:lang=$language and .=$term]/@xml:lang"/>" du concept -->
                <td>Le terme "<xsl:value-of select="$term"/>" est en même temps le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") et et un libellé alternatif du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ======================================rdf:Description=================================================== -->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and skos:altLabel[@xml:lang=$language]=$term ]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                <td class="A">LP-LA1</td>
                    <td>Doublon libellé préférentiel / libellé alternatif au sein du même concept</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est en même temps le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") et et un libellé alternatif du concept 
                        <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- doublon pref : hidden (même langue) au sein du même concept -->
        <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language]=$term ]">
            <tr>
                <td class="A">LP-LC1</td>
                <td>Doublon libellé préférentiel / libellé caché au sein du même concept</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est en même temps le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") et et un libellé caché du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ======================================rdf:Description=================================================== -->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language]=$term ]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LP-LC1</td>
                    <td>Doublon libellé préférentiel / libellé caché au sein du même concept</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est en même temps le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") et et un libellé caché du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        
        
        <!-- Libellé préférentiel identique pour deux concepts différents --> 
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:prefLabel[@xml:lang=$language]=$term]">
                <tr>
                    <td class="A">LP-LP2</td>
                    <td>Libellé préférentiel identique pour deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                        </a>.
                        </td>
                </tr>
            </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->
        <xsl:for-each select="// rdf:Description[not(@rdf:about=$uriConcept) and skos:prefLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                <td class="A">LP-LP2</td>
                    <td>Libellé préférentiel identique pour deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
            </xsl:if>
        </xsl:for-each>
        <!--Doublon libellé préférentiel / libellé alternatif entre deux concepts différents  -->
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
                 <tr>
                <td class="A">LP-LA2</td>
                     <td>Doublon libellé préférentiel / libellé alternatif entre deux concepts différents</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et et un libellé alternatif du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
       <!-- ===========================rdf:Description ==============================================-->
        <xsl:for-each select="//rdf:Description[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LP-LA2</td>
                    <td>Doublon libellé préférentiel / libellé alternatif entre deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est le libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et et un libellé alternatif du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
            </xsl:if>
        </xsl:for-each>
        <!--Doublon libellé préférentiel / libellé caché entre deux concepts différents  -->
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="E">LP-LC2</td>
                <td>Doublon libellé préférentiel / libellé caché entre deux concepts différents</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et et un libellé caché du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->
        <xsl:for-each select="//rdf:Description[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="E">LP-LC2</td>
                    <td>Doublon libellé préférentiel / libellé caché entre deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé préférentiel (code langue : "<xsl:value-of select="$language"/>") du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et et un libellé caché du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
    <!-- =================================================================================
      unicité des synos
      =================================================================================== -->
    <xsl:template name="TermUniqueness2">
        <xsl:param name="uriConcept"/>
        <xsl:param name="language"/>
        <xsl:param name="term"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="position"/>
        <!-- synonyme non unique au sein du mêlme concept -->
        <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and skos:altLabel[@xml:lang=$language and position() > $position]=$term ]">
            <tr>
                <td class="A">LA-LA1</td>
                <td>Doublon au niveau des libellés alternatifs au sein du même concept</td>
                <td>Le terme "<xsl:value-of select="$term"/>" apparaît plusieurs fois comme libellé alternatif (code langue : "<xsl:value-of select="$language"/>") du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and skos:altLabel[@xml:lang=$language and position() > $position]=$term ]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LA-LA1</td>
                    <td>Doublon au niveau des libellés alternatifs au sein du même concept</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" apparaît plusieurs fois comme libellé alternatif (code langue : "<xsl:value-of select="$language"/>") du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- Libellé alternatif identique pour deux concepts différents -->
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="A">LA-LA2</td>
                <td>Libellé alternatif identique pour deux concepts différents</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->       
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LA-LA2</td>
                    <td>Libellé alternatif identique pour deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        <!--Doublon libellé alternatif / libellé caché au sein du même concept  -->
        <xsl:for-each select="//skos:Concept[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language]=$term ]">
            <tr>
                <td class="A">LA-LC1</td>
                <td>Doublon libellé alternatif / libellé caché au sein du même concept</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est en même temps un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") et et un libellé caché du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ======================================rdf:Description=========================================== -->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language]=$term ]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="A">LA-LC1</td>
                    <td>Doublon libellé alternatif / libellé caché au sein du même concept</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est en même temps un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") et et un libellé caché du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        <!-- Doublon Libellé alternatif / libellé caché entre deux concepts différents -->
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="E">LA-LC2</td>
                <td>Doublon libellé alternatif / libellé caché entre deux concepts différents</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et un libellé caché du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->       
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="E">LA-LC2</td>
                    <td>Doublon libellé alternatif / libellé caché entre deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif (code langue : "<xsl:value-of select="$language"/>") du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et un libellé caché du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
  
<!--        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:prefLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="A">DBL22</td>
                <td>Libellé alternatif non unique</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif "<xsl:value-of select="$language"/>" du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et et un libellé préférentiel "<xsl:value-of select="skos:prefLabel[@xml:lang=$language and .=$term]/@xml:lang"/>" 
                    du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.                </td>
            </tr>
        </xsl:for-each>
            <!-\- ===========================rdf:Description ==============================================-\->       
            <xsl:for-each select="//rdf:Description[not(@rdf:about=$uriConcept) and skos:prefLabel[@xml:lang=$language]=$term]">
                <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                    <tr>
                    <td class="A">DBL22</td>
                    <td>Libellé alternatif non unique</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé alternatif "<xsl:value-of select="$language"/>" du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et et un libellé préférentiel "<xsl:value-of select="skos:prefLabel[@xml:lang=$language and .=$term]/@xml:lang"/>" 
                        du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                        </a>.                </td>
                </tr>
                </xsl:if>
            </xsl:for-each>-->

    </xsl:template>
    <!-- =================================================================================
      unicité des hiddens
      =================================================================================== -->
    <xsl:template name="TermUniqueness3">
        <xsl:param name="uriConcept"/>
        <xsl:param name="language"/>
        <xsl:param name="term"/>
        <xsl:param name="prefFre"/>
        <xsl:param name="position"/>
        <!--terme caché non unique au sein du mêlme concept -->
        <xsl:if test="//skos:Concept[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language and position() > $position]=$term ]">
            <tr>
                <td class="E">LC-LC1</td>
                <td>Doublon au niveau des libellés cachés au sein du même concept</td>
                <td>Le terme "<xsl:value-of select="$term"/>" apparaît plusieurs fois comme libellé caché (code langue : "<xsl:value-of select="$language"/>") du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a>.
                </td>
            </tr>
        </xsl:if>
       <!-- ==============================================rdf:Description====================================================== -->
        <xsl:for-each select="//rdf:Description[@rdf:about=$uriConcept and skos:hiddenLabel[@xml:lang=$language and position() > $position ]=$term ]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="E">LC-LC1</td>
                    <td>Doublon au niveau des libellés cachés au sein du même concept</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" apparaît plusieurs fois comme libellé caché (code langue : "<xsl:value-of select="$language"/>") du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        <!--Libellé caché identique pour deux concepts différents  -->
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="E">LC-LC2</td>
                <td>Libellé caché identique pour deux concepts différents</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé caché (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
        </xsl:for-each>
        <!-- ===========================rdf:Description ==============================================-->       
        <xsl:for-each select="//rdf:Description[not(@rdf:about=$uriConcept) and skos:hiddenLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                    <td class="E">LC-LC2</td>
                    <td>Libellé caché identique pour deux concepts différents</td>
                    <td>Le terme "<xsl:value-of select="$term"/>" est un libellé caché (code langue : "<xsl:value-of select="$language"/>") à la fois du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="$uriConcept"/>
                            </xsl:attribute>
                            <xsl:value-of select="$prefFre"/>
                        </a> et du concept 
                        <a>
                            <xsl:attribute name="href">
                                <xsl:value-of select="@rdf:about"/>
                            </xsl:attribute>
                            <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1] | rdfs:label[@xml:lang='fr'][1]"/>
                        </a>.
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
        
        <!--<xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
            <tr>
                <td class="E">DBL32</td>
                <td>Libellé caché non unique</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé caché "<xsl:value-of select="$language"/>" du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et et un libellé alternatif "<xsl:value-of select="skos:altLabel[@xml:lang=$language and .=$term]/@xml:lang"/>" 
                    du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
         </xsl:for-each>
        <!-\- ===========================rdf:Description ==============================================-\->       
        <xsl:for-each select="//skos:Concept[not(@rdf:about=$uriConcept) and skos:altLabel[@xml:lang=$language]=$term]">
            <xsl:if test="rdf:type/@rdf:resource='http://www.w3.org/2004/02/skos/core#Concept'">
                <tr>
                <td class="E">DBL32</td>
                <td>Libellé caché non unique</td>
                <td>Le terme "<xsl:value-of select="$term"/>" est un libellé caché "<xsl:value-of select="$language"/>" du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> et et un libellé alternatif "<xsl:value-of select="skos:altLabel[@xml:lang=$language and .=$term]/@xml:lang"/>" 
                    du concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="@rdf:about"/>
                        </xsl:attribute>
                        <xsl:value-of select="skos:prefLabel[@xml:lang='fr'][1]"/>
                    </a>.
                </td>
            </tr>
            </xsl:if>
        </xsl:for-each>-->
    </xsl:template>
    <!-- ===================================================================
    orphelins
    =======================================================================-->
   <!-- <xsl:template name="orphelin">
        <xsl:param name="uriConcept"/>
        <xsl:param name="prefFre"/>
        <xsl:if test="not($fichier//skos:broader[@rdf:resource=$uriConcept])">
            <tr>
                <td class="A">R-OR</td>
                <td>Concept orphelin</td>
                <td>Le concept 
                    <a>
                        <xsl:attribute name="href">
                            <xsl:value-of select="$uriConcept"/>
                        </xsl:attribute>
                        <xsl:value-of select="$prefFre"/>
                    </a> est orphelin.
                 </td>
            </tr>
        </xsl:if>
    </xsl:template>-->
 
 <!--
     =====================================================================================
     pref
     =====================================================================================-->
     <xsl:template name="pref">
         <xsl:param name="uri"/>
         <xsl:if test="//skos:Concept[@rdf:about=$uri]">
             <xsl:value-of select="//skos:Concept[@rdf:about=$uri]/skos:prefLabel[@xml:lang='fr'][1] | //skos:Concept[@rdf:about=$uri]/rdfs:label[@xml:lang='fr'][1]"/>
         </xsl:if>
         <xsl:if test="//rdf:Description[@rdf:about=$uri]">
             <xsl:value-of select="//rdf:Description[@rdf:about=$uri]/skos:prefLabel[@xml:lang='fr'][1] | //rdf:Description[@rdf:about=$uri]/rdfs:label[@xml:lang='fr'][1]"/>
         </xsl:if> 
     </xsl:template>
 
 
    <xsl:template name="field">
           <tr>
        <td>Les champs de la ressource sont (par ordre alphabétique) : 
            <xsl:value-of select="."/>
        </td>
    </tr>
    </xsl:template>
 
   
</xsl:stylesheet>