<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:iso="http://purl.oclc.org/dsdl/schematron" xmlns:lom="http://ltsc.ieee.org/xsd/LOM" xmlns:lomfr="http://www.lom-fr.fr/xsd/LOMFR" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"><!--Implementers: please note that overriding process-prolog or process-root is 
    the preferred method for meta-stylesheets to use where possible. The name or details of 
    this mode may change during 1Q 2007.-->


<!--PHASES-->


<!--PROLOG-->

   <axsl:output xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:svrl="http://purl.oclc.org/dsdl/svrl" method="xml" omit-xml-declaration="no" standalone="yes" indent="yes"/>

<!--KEYS-->


<!--DEFAULT RULES-->


<!--MODE: SCHEMATRON-FULL-PATH-->
<!--This mode can be used to generate an ugly though full XPath for locators-->

   <axsl:template match="*" mode="schematron-get-full-path">
      <axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
      <axsl:text>/</axsl:text>
      <axsl:choose>
         <axsl:when test="namespace-uri()=''">
            <axsl:value-of select="name()"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:text>*:</axsl:text>
            <axsl:value-of select="local-name()"/>
            <axsl:text>[namespace-uri()='</axsl:text>
            <axsl:value-of select="namespace-uri()"/>
            <axsl:text>']</axsl:text>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:variable name="preceding" select="count(preceding-sibling::*[local-name()=local-name(current())                                   and namespace-uri() = namespace-uri(current())])"/>
      <axsl:text>[</axsl:text>
      <axsl:value-of select="1+ $preceding"/>
      <axsl:text>]</axsl:text>
   </axsl:template>
   <axsl:template match="@*" mode="schematron-get-full-path">
      <axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
      <axsl:text>/</axsl:text>
      <axsl:choose>
         <axsl:when test="namespace-uri()=''">@sch:schema</axsl:when>
         <axsl:otherwise>
            <axsl:text>@*[local-name()='</axsl:text>
            <axsl:value-of select="local-name()"/>
            <axsl:text>' and namespace-uri()='</axsl:text>
            <axsl:value-of select="namespace-uri()"/>
            <axsl:text>']</axsl:text>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--MODE: SCHEMATRON-FULL-PATH-2-->
<!--This mode can be used to generate prefixed XPath for humans-->

   <axsl:template match="node() | @*" mode="schematron-get-full-path-2">
      <axsl:for-each select="ancestor-or-self::*">
         <axsl:text>/</axsl:text>
         <axsl:value-of select="name(.)"/>
         <axsl:if test="preceding-sibling::*[name(.)=name(current())]">
            <axsl:text>[</axsl:text>
            <axsl:value-of select="count(preceding-sibling::*[name(.)=name(current())])+1"/>
            <axsl:text>]</axsl:text>
         </axsl:if>
      </axsl:for-each>
      <axsl:if test="not(self::*)">
         <axsl:text/>/@<axsl:value-of select="name(.)"/>
      </axsl:if>
   </axsl:template>

<!--MODE: GENERATE-ID-FROM-PATH -->

   <axsl:template match="/" mode="generate-id-from-path"/>
   <axsl:template match="text()" mode="generate-id-from-path">
      <axsl:apply-templates select="parent::*" mode="generate-id-from-path"/>
      <axsl:value-of select="concat('.text-', 1+count(preceding-sibling::text()), '-')"/>
   </axsl:template>
   <axsl:template match="comment()" mode="generate-id-from-path">
      <axsl:apply-templates select="parent::*" mode="generate-id-from-path"/>
      <axsl:value-of select="concat('.comment-', 1+count(preceding-sibling::comment()), '-')"/>
   </axsl:template>
   <axsl:template match="processing-instruction()" mode="generate-id-from-path">
      <axsl:apply-templates select="parent::*" mode="generate-id-from-path"/>
      <axsl:value-of select="concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')"/>
   </axsl:template>
   <axsl:template match="@*" mode="generate-id-from-path">
      <axsl:apply-templates select="parent::*" mode="generate-id-from-path"/>
      <axsl:value-of select="concat('.@', name())"/>
   </axsl:template>
   <axsl:template match="*" mode="generate-id-from-path" priority="-0.5">
      <axsl:apply-templates select="parent::*" mode="generate-id-from-path"/>
      <axsl:text>.</axsl:text>
      <axsl:choose>
         <axsl:when test="count(. | ../namespace::*) = count(../namespace::*)">
            <axsl:value-of select="concat('.namespace::-',1+count(namespace::*),'-')"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:value-of select="concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--MODE: GENERATE-ID-2 -->

   <axsl:template match="/" mode="generate-id-2">U</axsl:template>
   <axsl:template match="*" mode="generate-id-2" priority="2">
      <axsl:text>U</axsl:text>
      <axsl:number level="multiple" count="*"/>
   </axsl:template>
   <axsl:template match="node()" mode="generate-id-2">
      <axsl:text>U.</axsl:text>
      <axsl:number level="multiple" count="*"/>
      <axsl:text>n</axsl:text>
      <axsl:number count="node()"/>
   </axsl:template>
   <axsl:template match="@*" mode="generate-id-2">
      <axsl:text>U.</axsl:text>
      <axsl:number level="multiple" count="*"/>
      <axsl:text>_</axsl:text>
      <axsl:value-of select="string-length(local-name(.))"/>
      <axsl:text>_</axsl:text>
      <axsl:value-of select="translate(name(),':','.')"/>
   </axsl:template><!--Strip characters-->
   <axsl:template match="text()" priority="-1"/>

<!--SCHEMA METADATA-->

   <axsl:template match="/">
      <svrl:schematron-output xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" title="" schemaVersion="">
         <svrl:ns-prefix-in-attribute-values uri="http://ltsc.ieee.org/xsd/LOM" prefix="lom"/>
         <svrl:ns-prefix-in-attribute-values uri="http://www.lom-fr.fr/xsd/LOMFR" prefix="lomfr"/>
         <svrl:ns-prefix-in-attribute-values uri="http://www.w3.org/2001/XMLSchema-instance" prefix="xsi"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">eltsObligatoires</axsl:attribute>
            <axsl:attribute name="name">Test de présence des éléments obligatoires</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M3"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">eltsSupprimes</axsl:attribute>
            <axsl:attribute name="name">Tests de non utilisation des éléments qui étaient présents en LOM et qui ont été supprimés en LOMFR</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M4"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">vocabSupprimes</axsl:attribute>
            <axsl:attribute name="name">Tests de non utilisation des vocabulaires qui étaient présents en LOM et qui ont été supprimés en LOMFR</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M5"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">cardinalites</axsl:attribute>
            <axsl:attribute name="name">Tests de non répétabilité des éléments qui sont passés de répétables en LOM à non répétables en LOMFR</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M6"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">langstring</axsl:attribute>
            <axsl:attribute name="name">Tests d'unicité des balises string par langue et présence obligatoire de l'attribut language pour chaque élément de type LangString</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M7"/>
         <svrl:active-pattern>
            <axsl:attribute name="id">vocab</axsl:attribute>
            <axsl:attribute name="name">Tests de présence des balises source et value et de leurs valeurs pour chaque élément</axsl:attribute>
            <axsl:apply-templates/>
         </svrl:active-pattern>
         <axsl:apply-templates select="/" mode="M8"/>
      </svrl:schematron-output>
   </axsl:template>

<!--SCHEMATRON PATTERNS-->


<!--PATTERN eltsObligatoiresTest de présence des éléments obligatoires-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Test de présence des éléments obligatoires</svrl:text>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general" priority="3999" mode="M3">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:identifier/lom:catalog"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:identifier/lom:catalog">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "general" : Le document LOMFR doit avoir un identifiant dans un catalogue précisé (élément "identifier / catalog").</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:identifier/lom:entry"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:identifier/lom:entry">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "general" : Le document LOMFR doit avoir un identifiant (élément "identifier / entry").</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:title/lom:string"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:title/lom:string">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "general" : Le document LOMFR doit présenter un titre (élément "title").</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M3"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M3"/>
   <axsl:template match="@*|node()" priority="-2" mode="M3">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M3"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M3"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--PATTERN eltsSupprimesTests de non utilisation des éléments qui étaient présents en LOM et qui ont été supprimés en LOMFR-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Tests de non utilisation des éléments qui étaient présents en LOM et qui ont été supprimés en LOMFR</svrl:text>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational" priority="3999" mode="M4">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="not(lom:interactivityType)"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="not(lom:interactivityType)">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "educational" : L'élément "interactivityType" a été supprimé dans le LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="not(lom:interactivityLevel)"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="not(lom:interactivityLevel)">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "educational" : L'élément "interactivityLevel" a été supprimé dans le LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="not(lom:semanticDensity)"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="not(lom:semanticDensity)">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "educational" : L'élément "semanticDensity" a été supprimé dans le LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M4"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M4"/>
   <axsl:template match="@*|node()" priority="-2" mode="M4">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M4"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M4"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--PATTERN vocabSupprimesTests de non utilisation des vocabulaires qui étaient présents en LOM et qui ont été supprimés en LOMFR-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Tests de non utilisation des vocabulaires qui étaient présents en LOM et qui ont été supprimés en LOMFR</svrl:text>

	<!--RULE -->

   <axsl:template match="lom:lom/lom:educational/lom:learningResourceType/lom:value" priority="3999" mode="M5">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="lom:lom/lom:educational/lom:learningResourceType/lom:value"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="not(text() = 'problem statement'  or text() = 'self assessment' or text() = 'diagram' or text() = 'figure' or text() = 'graph' or text() = 'index' or text() = 'slide' or text() = 'table' or text() = 'narrative text')"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="not(text() = 'problem statement' or text() = 'self assessment' or text() = 'diagram' or text() = 'figure' or text() = 'graph' or text() = 'index' or text() = 'slide' or text() = 'table' or text() = 'narrative text')">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "educational", élément "learningResourceType" : La valeur "<axsl:text/>
                  <axsl:value-of select="text()"/>
                  <axsl:text/>" a été supprimée de ce vocabulaire dans le LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M5"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M5"/>
   <axsl:template match="@*|node()" priority="-2" mode="M5">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M5"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M5"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--PATTERN cardinalitesTests de non répétabilité des éléments qui sont passés de répétables en LOM à non répétables en LOMFR-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Tests de non répétabilité des éléments qui sont passés de répétables en LOM à non répétables en LOMFR</svrl:text>

	<!--RULE -->

   <axsl:template match="lom:lom/lom:general" priority="3999" mode="M6">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="lom:lom/lom:general"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="count(lom:description) &lt;= 1"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="count(lom:description) &lt;= 1">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "general" : L'élément "description" n'est pas répétable en LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M6"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="lom:lom/lom:lifeCycle/lom:contribute" priority="3998" mode="M6">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="lom:lom/lom:lifeCycle/lom:contribute"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="count(lom:entity) &lt;= 1"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="count(lom:entity) &lt;= 1">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "lifeCycle" : L'élément "entity" n'est pas répétable en LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M6"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="lom:lom/lom:educational" priority="3997" mode="M6">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="lom:lom/lom:educational"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="count(lom:description) &lt;= 1"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="count(lom:description) &lt;= 1">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "educational" : L'élément "description" n'est pas répétable en LOMFR.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M6"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M6"/>
   <axsl:template match="@*|node()" priority="-2" mode="M6">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M6"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M6"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--PATTERN langstringTests d'unicité des balises string par langue et présence obligatoire de l'attribut language pour chaque élément de type LangString-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Tests d'unicité des balises string par langue et présence obligatoire de l'attribut language pour chaque élément de type LangString</svrl:text>

	<!--RULE -->

   <axsl:template match="/lom:lom//lom:string" priority="3998" mode="M7">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom//lom:string"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="@language"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="@language">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text> Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>/<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : la présence d'un attribut "language" pour les balises "string" des éléments de type LangString est obligatoire.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M7"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom//child::node()[lom:string]" priority="3996" mode="M7">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom//child::node()[lom:string]"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="count(lom:string[@language = preceding-sibling::node()/@language]) = 0"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="count(lom:string[@language = preceding-sibling::node()/@language]) = 0">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de type LangString ne doivent contenir qu'une balise "string" par langue. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M7"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M7"/>
   <axsl:template match="@*|node()" priority="-2" mode="M7">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M7"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M7"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>

<!--PATTERN vocabTests de présence des balises source et value et de leurs valeurs pour chaque élément-->

   <svrl:text xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema">Tests de présence des balises source et value et de leurs valeurs pour chaque élément</svrl:text>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lom:structure" priority="3993" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lom:structure"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lom:structure/lom:source" priority="3992" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lom:structure/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lom:aggregationLevel" priority="3991" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lom:aggregationLevel"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lom:aggregationLevel/lom:source" priority="3990" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lom:aggregationLevel/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:lifeCycle/lom:status" priority="3989" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:lifeCycle/lom:status"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:lifeCycle/lom:status/lom:source" priority="3988" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:lifeCycle/lom:status/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:metaMetadata/lom:contribute/lom:role" priority="3987" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:metaMetadata/lom:contribute/lom:role"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:metaMetadata/lom:contribute/lom:role/lom:source" priority="3986" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:metaMetadata/lom:contribute/lom:role/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:type" priority="3985" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:type"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:type/lom:source" priority="3984" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:type/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:intendedEndUserRole" priority="3983" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:intendedEndUserRole"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:intendedEndUserRole/lom:source" priority="3982" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:intendedEndUserRole/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:difficulty" priority="3981" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:difficulty"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:difficulty/lom:source" priority="3980" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:difficulty/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:rights/lom:cost" priority="3979" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:rights/lom:cost"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:rights/lom:cost/lom:source" priority="3978" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:rights/lom:cost/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:rights/lom:copyrightAndOtherRestrictions" priority="3977" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:rights/lom:copyrightAndOtherRestrictions"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:rights/lom:copyrightAndOtherRestrictions/lom:source" priority="3976" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:rights/lom:copyrightAndOtherRestrictions/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:classification/lom:purpose" priority="3975" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:classification/lom:purpose"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:classification/lom:purpose/lom:source" priority="3974" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:classification/lom:purpose/lom:source"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="value" select="parent::node()/node()[name() = 'value']"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(parent::node())"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lomfr:documentType" priority="3973" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lomfr:documentType"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lomfr:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lomfr:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lomfr:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lomfr:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:general/lomfr:documentType/lomfr:source" priority="3972" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:general/lomfr:documentType/lomfr:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lomfr:activity" priority="3971" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lomfr:activity"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lomfr:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lomfr:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lomfr:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lomfr:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lomfr:activity/lomfr:source" priority="3970" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lomfr:activity/lomfr:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le vocabulaire de cet élément est issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:lifeCycle/lom:contribute/lom:role" priority="3969" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:lifeCycle/lom:contribute/lom:role"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:lifeCycle/lom:contribute/lom:role[lom:value/text() = 'author' or  lom:value/text() = 'publisher' or  lom:value/text() = 'graphical designer' or  lom:value/text() = 'instructional designer' or  lom:value/text() = 'subject matter expert' or  lom:value/text() = 'content provider' or  lom:value/text() = 'technical implementer' or  lom:value/text() = 'unknown' or  lom:value/text() = 'initiator' or  lom:value/text() = 'editor' or  lom:value/text() = 'script writer' or  lom:value/text() = 'terminator' or  lom:value/text() = 'validator' or  lom:value/text() = 'educational validator' or  lom:value/text() = 'technical validator']/lom:source" priority="3968" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:lifeCycle/lom:contribute/lom:role[lom:value/text() = 'author' or  lom:value/text() = 'publisher' or  lom:value/text() = 'graphical designer' or  lom:value/text() = 'instructional designer' or  lom:value/text() = 'subject matter expert' or  lom:value/text() = 'content provider' or  lom:value/text() = 'technical implementer' or  lom:value/text() = 'unknown' or  lom:value/text() = 'initiator' or  lom:value/text() = 'editor' or  lom:value/text() = 'script writer' or  lom:value/text() = 'terminator' or  lom:value/text() = 'validator' or  lom:value/text() = 'educational validator' or  lom:value/text() = 'technical validator']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:lifeCycle/lom:contribute/lom:role[lom:value/text() = 'contributeur']/lom:source" priority="3967" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:lifeCycle/lom:contribute/lom:role[lom:value/text() = 'contributeur']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name" priority="3966" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name[lom:value/text() = 'pc-dos' or  lom:value/text() = 'ms-windows' or  lom:value/text() = 'macos' or  lom:value/text() = 'unix' or  lom:value/text() = 'multi-os' or  lom:value/text() = 'none' or lom:value/text() = 'any' or  lom:value/text() = 'opera' or  lom:value/text() = 'ms-internet explorer' or  lom:value/text() = 'amaya' or  lom:value/text() = 'netscape communicator']/lom:source" priority="3965" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name[lom:value/text() = 'pc-dos' or  lom:value/text() = 'ms-windows' or  lom:value/text() = 'macos' or  lom:value/text() = 'unix' or  lom:value/text() = 'multi-os' or  lom:value/text() = 'none' or lom:value/text() = 'any' or  lom:value/text() = 'opera' or  lom:value/text() = 'ms-internet explorer' or  lom:value/text() = 'amaya' or  lom:value/text() = 'netscape communicator']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name[lom:value/text() = 'linux' or lom:value/text() = 'firefox' or lom:value/text() = 'safari']/lom:source" priority="3964" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite/lom:name[lom:value/text() = 'linux' or lom:value/text() = 'firefox' or lom:value/text() = 'safari']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite[lom:type/lom:value = 'operating system']/lom:name/lom:value" priority="3963" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite[lom:type/lom:value = 'operating system']/lom:name/lom:value"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'pc-dos' or  text() = 'ms-windows' or  text() = 'macos' or  text() = 'unix' or  text() = 'multi-os' or  text() = 'none' or text() = 'linux'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'pc-dos' or text() = 'ms-windows' or text() = 'macos' or text() = 'unix' or text() = 'multi-os' or text() = 'none' or text() = 'linux'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "technical", élément "name" : Le vocabulaire "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" est lié au navigateur (type = 'browser') et non au système d'exploitation (type = 'operating system').</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:technical/lom:requirement/lom:orComposite[lom:type/lom:value = 'browser']/lom:name/lom:value" priority="3962" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:technical/lom:requirement/lom:orComposite[lom:type/lom:value = 'browser']/lom:name/lom:value"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'any' or  text() = 'opera' or  text() = 'ms-internet explorer' or  text() = 'amaya' or  text() = 'netscape communicator' or text() = 'firefox' or text() = 'safari'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'any' or text() = 'opera' or text() = 'ms-internet explorer' or text() = 'amaya' or text() = 'netscape communicator' or text() = 'firefox' or text() = 'safari'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "technical", élément "name" : Le vocabulaire "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" est lié au système d'exploitation (type = 'operating system') et non au navigateur (type = 'browser').</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:learningResourceType" priority="3961" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:learningResourceType"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:learningResourceType[lom:value/text() = 'exercise' or lom:value/text() = 'simulation' or lom:value/text() = 'questionnaire' or lom:value/text() = 'exam' or lom:value/text() = 'experiment' or lom:value/text() = 'lecture']/lom:source" priority="3960" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:learningResourceType[lom:value/text() = 'exercise' or lom:value/text() = 'simulation' or lom:value/text() = 'questionnaire' or lom:value/text() = 'exam' or lom:value/text() = 'experiment' or lom:value/text() = 'lecture']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:learningResourceType[lom:value/text() = 'démonstration' or lom:value/text() = 'évaluation' or lom:value/text() = 'animation' or lom:value/text() = 'tutoriel' or lom:value/text() = 'glossaire' or lom:value/text() = 'guide' or lom:value/text() = 'matériel de référence' or lom:value/text() = 'méthodologie' or lom:value/text() = 'outil' or lom:value/text() = 'scénario pédagogique']/lom:source" priority="3959" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:learningResourceType[lom:value/text() = 'démonstration' or lom:value/text() = 'évaluation' or lom:value/text() = 'animation' or lom:value/text() = 'tutoriel' or lom:value/text() = 'glossaire' or lom:value/text() = 'guide' or lom:value/text() = 'matériel de référence' or lom:value/text() = 'méthodologie' or lom:value/text() = 'outil' or lom:value/text() = 'scénario pédagogique']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:context" priority="3958" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:context"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:context[lom:value/text() = 'school' or  lom:value/text() = 'higher education' or  lom:value/text() = 'training' or  lom:value/text() = 'other']/lom:source" priority="3957" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:context[lom:value/text() = 'school' or  lom:value/text() = 'higher education' or  lom:value/text() = 'training' or  lom:value/text() = 'other']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:educational/lom:context[lom:value/text() = 'enseignement primaire' or lom:value/text() = 'enseignement secondaire' or lom:value/text() = 'licence' or lom:value/text() = 'master' or lom:value/text() = 'doctorat' or lom:value/text() = 'formation continue' or lom:value/text() = 'formation en entreprise']/lom:source" priority="3956" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:educational/lom:context[lom:value/text() = 'enseignement primaire' or lom:value/text() = 'enseignement secondaire' or lom:value/text() = 'licence' or lom:value/text() = 'master' or lom:value/text() = 'doctorat' or lom:value/text() = 'formation continue' or lom:value/text() = 'formation en entreprise']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:relation/lom:kind" priority="3955" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:relation/lom:kind"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:value"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:value">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément value.</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="lom:source"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="lom:source">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="name(ancestor::node()[$nbAncestor - 2])"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="name(.)"/>
                  <axsl:text/>" : les éléments de types vocabulaires doivent contenir un élément source. </svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:relation/lom:kind[lom:value/text() = 'ispartof' or  lom:value/text() = 'haspart' or  lom:value/text() = 'isversionof' or  lom:value/text() = 'hasversion' or  lom:value/text() = 'isformatof' or  lom:value/text() = 'hasformat' or  lom:value/text() = 'references' or  lom:value/text() = 'isreferencedby' or  lom:value/text() = 'isbasedon' or  lom:value/text() = 'isbasisfor' or  lom:value/text() = 'requires' or  lom:value/text() = 'isrequiredby']/lom:source" priority="3954" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:relation/lom:kind[lom:value/text() = 'ispartof' or  lom:value/text() = 'haspart' or  lom:value/text() = 'isversionof' or  lom:value/text() = 'hasversion' or  lom:value/text() = 'isformatof' or  lom:value/text() = 'hasformat' or  lom:value/text() = 'references' or  lom:value/text() = 'isreferencedby' or  lom:value/text() = 'isbasedon' or  lom:value/text() = 'isbasisfor' or  lom:value/text() = 'requires' or  lom:value/text() = 'isrequiredby']/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOM, il doit avoir comme source "LOMv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>

	<!--RULE -->

   <axsl:template match="/lom:lom/lom:relation/lom:kind[lom:value/text() = &#34;est associée à&#34; or lom:value/text() = &#34;est la traduction de&#34; or lom:value/text() = &#34;fait l'objet d’une traduction&#34; or lom:value/text() = &#34;est la localisation de&#34; or lom:value/text() = &#34;fait l'objet d’une localisation&#34; or lom:value/text() = &#34;est pré-requis de&#34; or lom:value/text() = &#34;a pour pré-requis&#34;]/lom:source" priority="3953" mode="M8">
      <svrl:fired-rule xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" context="/lom:lom/lom:relation/lom:kind[lom:value/text() = &#34;est associée à&#34; or lom:value/text() = &#34;est la traduction de&#34; or lom:value/text() = &#34;fait l'objet d’une traduction&#34; or lom:value/text() = &#34;est la localisation de&#34; or lom:value/text() = &#34;fait l'objet d’une localisation&#34; or lom:value/text() = &#34;est pré-requis de&#34; or lom:value/text() = &#34;a pour pré-requis&#34;]/lom:source"/>
      <axsl:variable name="eltName" select="name(parent::node())"/>
      <axsl:variable name="nbAncestor" select="count(ancestor::node())"/>
      <axsl:variable name="categorieName" select="name(ancestor::node()[$nbAncestor - 2])"/>

		<!--ASSERT -->

      <axsl:choose>
         <axsl:when test="text() = 'LOMFRv1.0'"/>
         <axsl:otherwise>
            <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" xmlns:xs="http://www.w3.org/2001/XMLSchema" test="text() = 'LOMFRv1.0'">
               <axsl:attribute name="location">
                  <axsl:apply-templates select="." mode="schematron-get-full-path"/>
               </axsl:attribute>
               <svrl:text>Erreur catégorie "<axsl:text/>
                  <axsl:value-of select="$categorieName"/>
                  <axsl:text/>", élément "<axsl:text/>
                  <axsl:value-of select="$eltName"/>
                  <axsl:text/>" : Le mot "<axsl:text/>
                  <axsl:value-of select="parent::node()/node()[name() = 'value']"/>
                  <axsl:text/>" appartient à un vocabulaire issu du LOMFR, il doit avoir comme source "LOMFRv1.0"</svrl:text>
            </svrl:failed-assert>
         </axsl:otherwise>
      </axsl:choose>
      <axsl:apply-templates select="@*|*|comment()|processing-instruction()" mode="M8"/>
   </axsl:template>
   <axsl:template match="text()" priority="-1" mode="M8"/>
   <axsl:template match="@*|node()" priority="-2" mode="M8">
      <axsl:choose><!--Housekeeping: SAXON warns if attempting to find the attribute
                           of an attribute-->
         <axsl:when test="not(@*)">
            <axsl:apply-templates select="node()" mode="M8"/>
         </axsl:when>
         <axsl:otherwise>
            <axsl:apply-templates select="@*|node()" mode="M8"/>
         </axsl:otherwise>
      </axsl:choose>
   </axsl:template>
</axsl:stylesheet>
