<?xml version="1.0" encoding="UTF-8"?>
<iso:schema xmlns:iso="http://purl.oclc.org/dsdl/schematron"
   xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mets="http://www.loc.gov/METS/" xmlns:premis="info:lc/xmlns/premis-v2"
   xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:spar_dc="http://bibnum.bnf.fr/ns/spar_dc" xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns:xhtml="http://www.w3.org/1999/xhtml" queryBinding="xslt2">
   <iso:title>Profil METS des SIP produits dans le cadre de la numérisation patrimoniale</iso:title>
   <iso:ns uri="info:lc/xmlns/premis-v2" prefix="premis"/>
   <iso:ns uri="http://bibnum.bnf.fr/ns/spar_dc" prefix="spar_dc"/>
   <iso:ns uri="http://www.loc.gov/METS/" prefix="mets"/>
   <iso:ns uri="http://www.w3.org/1999/xlink" prefix="xlink"/>
   <iso:ns uri="http://www.loc.gov/mix/v10" prefix="mix"/>
   <iso:ns uri="info:lc/xmlns/textMD-v3" prefix="textmd"/>
   <iso:ns uri="http://purl.org/dc/elements/1.1/" prefix="dc"/>
   <iso:ns uri="http://purl.org/dc/terms/" prefix="dcterms"/>
   <iso:ns uri="http://www.w3.org/2001/XMLSchema-instance" prefix="xsi"/>
   <iso:ns uri="http://www.loc.gov/mods/v3" prefix="mods"/>
   <iso:p>Ce profil donne les exigences de la BnF sur les manifestes produits nativement au format
      METS. Il concerne les documents 2D numérisés (monographies textuelles, périodiques, images
      fixes, manuscrits, etc.) Il est une restriction du profil METS générique BnF. Il s'agit d'une
      transcription du référentiel METS pour la numérisation publié par la BnF
      (http://www.bnf.fr/documents/ref_num_metadonnees_mets.pdf). Les degrés d'exigence sont
      exprimés selon la RFC 2119 (http://www.ietf.org/rfc/rfc2119.txt) en utilisant la traduction
      suivante : MUST=DOIT, MUST NOT=NE DOIT PAS, SHOULD= IL EST RECOMMANDE QUE, SHOULD NOT=IL EST
      DECONSEILLE QUE, MAY=PEUT. </iso:p>
   <iso:pattern>
      <iso:title>Règle 1 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil DOIT contenir un élément &lt;metsHdr&gt;.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:metsHdr)=1">Un fichier METS conforme à ce profil DOIT contenir
            un élément &lt;metsHdr&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 2 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;metsHdr&gt; DOIT être identifié par un attribut ID commençant par la
         chaîne de caractères 'HDR.'.</iso:p>
      <iso:rule context="/mets:mets/mets:metsHdr">
         <iso:assert test="@ID">L'élément &lt;metsHdr&gt; DOIT être identifié par un attribut ID
            commençant par la chaîne de caractères 'HDR.'.</iso:assert>
         <iso:assert test="starts-with(@ID, 'HDR.')">L'élément &lt;metsHdr&gt; DOIT être identifié
            par un attribut ID commençant par la chaîne de caractères 'HDR.'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 3 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;metsHdr&gt; DOIT contenir les attributs CREATEDATE et LASTMODDATE
         .</iso:p>
      <iso:rule context="/mets:mets/mets:metsHdr">
         <iso:assert test="@CREATEDATE">L'élément &lt;metsHdr&gt; DOIT contenir les attributs
            CREATEDATE et LASTMODDATE .</iso:assert>
         <iso:assert test="@LASTMODDATE">L'élément &lt;metsHdr&gt; DOIT contenir les attributs
            CREATEDATE et LASTMODDATE .</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 4 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;metsHdr&gt; DOIT contenir un élément altRecordID de TYPE
         'producerIdentifier' dont la valeur DOIT être 'NUM' ou 'IFN'.</iso:p>
      <iso:rule context="/mets:mets/mets:metsHdr">
         <iso:assert test="count(mets:altRecordID[@TYPE='producerIdentifier'])=1">L'élément
            &lt;metsHdr&gt; DOIT contenir un élément altRecordID de TYPE 'producerIdentifier' dont
            la valeur DOIT être 'NUM' ou 'IFN'.</iso:assert>
         <iso:assert
            test="mets:altRecordID[@TYPE='producerIdentifier']='NUM' or mets:altRecordID[@TYPE='producerIdentifier']='IFN'"
            >L'élément &lt;metsHdr&gt; DOIT contenir un élément altRecordID de TYPE
            'producerIdentifier' dont la valeur DOIT être 'NUM' ou 'IFN'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 5 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;metsHdr&gt; DOIT contenir un élément altRecordID de TYPE
         'productionIdentifier'.</iso:p>
      <iso:rule context="/mets:mets/mets:metsHdr">
         <iso:assert test="count(mets:altRecordID[@TYPE='productionIdentifier'])=1">L'élément
            &lt;metsHdr&gt; DOIT contenir un élément altRecordID de TYPE
            'productionIdentifier'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 6 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;altRecordID&gt; de type 'productionIdentifier' DOIT être une chaîne de
         caractères sur 7 positions si la valeur de l'élément altRecordID de type
         'producerIdentifier' est 'NUM'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:metsHdr/mets:altRecordID[@TYPE='producerIdentifier' and text()='NUM']">
         <iso:assert
            test="string-length(../mets:altRecordID[@TYPE='productionIdentifier']/text())=7"
            >L'élément &lt;altRecordID&gt; de type 'productionIdentifier' DOIT être une chaîne de
            caractères sur 7 positions si la valeur de l'élément altRecordID de type
            'producerIdentifier' est 'NUM'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 7 pour metsHdr (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;altRecordID&gt; de type 'productionIdentifier' DOIT être une chaîne de
         caractères sur 8 positions si la valeur de l'élément altRecordID de type
         'producerIdentifier' est 'iFN'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:metsHdr/mets:altRecordID[@TYPE='producerIdentifier' and text()='IFN']">
         <iso:assert
            test="string-length(../mets:altRecordID[@TYPE='productionIdentifier']/text())=8"
            >L'élément &lt;altRecordID&gt; de type 'productionIdentifier' DOIT être une chaîne de
            caractères sur 8 positions si la valeur de l'élément altRecordID de type
            'producerIdentifier' est 'iFN'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 8 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Le cas échéant, une section &lt;dmdSec&gt; DOIT être identifiée par un attribut ID, et
         la valeur de cet attribut doit commencer par la chaîne de caractères 'DMD.'.</iso:p>
      <iso:rule context="/mets:mets/mets:dmdSec">
         <iso:assert test="@ID">Le cas échéant, une section &lt;dmdSec&gt; DOIT être identifiée par
            un attribut ID, et la valeur de cet attribut doit commencer par la chaîne de caractères
            'DMD.'.</iso:assert>
         <iso:assert test="starts-with(@ID, 'DMD.')">Le cas échéant, une section &lt;dmdSec&gt; DOIT
            être identifiée par un attribut ID, et la valeur de cet attribut doit commencer par la
            chaîne de caractères 'DMD.'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 9 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Tout élément &lt;dmdSec&gt; DOIT faire l'objet d'une référence à partir d'au moins un
         élément METS.</iso:p>
      <iso:rule context="/mets:mets/mets:dmdSec">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert test="count(//*[tokenize(string(@DMDID), ' ') = $ID]) &gt;= 1">Tout élément
            &lt;dmdSec&gt; DOIT faire l'objet d'une référence à partir d'au moins un élément
            METS.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 10 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dc:type&gt; contenus dans une section dmdSec DOIVENT avoir l'une des
         valeurs suivantes : 'monograph', 'multivolume monograph', 'periodical' ou 'still
         images'.</iso:p>
      <iso:rule context="/mets:mets/mets:dmdSec/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:type">
         <iso:assert
            test="text()='monograph' or text()='multivolume monograph' or text()='periodical' or text()='still images'"
            >Les éléments &lt;dc:type&gt; contenus dans une section dmdSec DOIVENT avoir l'une des
            valeurs suivantes : 'monograph', 'multivolume monograph', 'periodical' ou 'still
            images'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 11 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dc:description&gt; contenus dans un élément &lt;dmdSec&gt; lié à un
         élément &lt;div&gt; de type 'object' DOIVENT avoir l'une des valeurs suivantes : 'cover',
         'entry', 'toc', 'index', 'no links toc', 'logo', 'binding', 'illustration',
         'advertisement', 'downgraded index', 'downgraded toc'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID=/mets:mets/mets:structMap/mets:div/mets:div//mets:div[@TYPE='object']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:description">
         <iso:assert
            test="text() = 'cover' or text() = 'entry' or text() = 'toc' or text() = 'index' or text() = 'no links toc' or text() = 'logo' or text() = 'binding' or text() = 'illustration' or text() = 'advertisement' or text() = 'downgraded index' or text() = 'downgraded toc'"
            >Les éléments &lt;dc:description&gt; contenus dans un élément &lt;dmdSec&gt; lié à un
            élément &lt;div&gt; de type 'object' DOIVENT avoir l'une des valeurs suivantes :
            'cover', 'entry', 'toc', 'index', 'no links toc', 'logo', 'binding', 'illustration',
            'advertisement', 'downgraded index', 'downgraded toc'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 12 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;dmdSec&gt; lié à un élément &lt;div&gt; de type 'set' ou 'group', DOIT
         contenir un élément &lt;dc:type&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID=/mets:mets/mets:structMap//mets:div[@TYPE='set' or @TYPE='group']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc">
         <iso:assert test="count(dc:type)&gt;=1">Un élément &lt;dmdSec&gt; lié à un élément
            &lt;div&gt; de type 'set' ou 'group', DOIT contenir un élément
            &lt;dc:type&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 13 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dmdSec&gt; liés à un élément &lt;div&gt; de TYPE 'set' ou 'group'
         DOIVENT contenir un élément &lt;dc:relation&gt; de type 'spar_dc:ark' mentionnant
         l'identifiant ARK de la notice du catalogue .</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID = /mets:mets/mets:structMap//mets:div[@TYPE='group' or @TYPE='set']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc">
         <iso:assert test="dc:relation[@xsi:type='spar_dc:ark']">Les éléments &lt;dmdSec&gt; liés à
            un élément &lt;div&gt; de TYPE 'set' ou 'group' DOIVENT contenir un élément
            &lt;dc:relation&gt; de type 'spar_dc:ark' mentionnant l'identifiant ARK de la notice du
            catalogue .</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 14 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dmdSec&gt; liés à un élément &lt;div&gt; de TYPE 'group' DOIVENT
         contenir un élément &lt;dcterms:provenance&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID = /mets:mets/mets:structMap//mets:div[@TYPE='group']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc">
         <iso:assert test="dcterms:provenance">Les éléments &lt;dmdSec&gt; liés à un élément
            &lt;div&gt; de TYPE 'group' DOIVENT contenir un élément
            &lt;dcterms:provenance&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 15 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dc:date&gt; contenus dans une section dmdSec décrivant un fascicule de
         périodique DOIVENT se conformer à la norme ISO 8601.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID=/mets:mets/mets:structMap//mets:div[@TYPE='group']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc[dc:type='periodical']/dc:date">
         <iso:assert
            test="matches(text(), '^[0-9]{4}(\-[0-9]{2})?(\-[0-9]{2})?(/[0-9]{4})?(\-[0-9]{2})?(\-[0-9]{2})?$')"
            >Les éléments &lt;dc:date&gt; contenus dans une section dmdSec décrivant un fascicule de
            périodique DOIVENT se conformer à la norme ISO 8601.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 16 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Un objet numérique de type 'periodical' ou 'multivolume monograph' DOIT contenir un
         élément &lt;dc:description&gt; de type 'spar_dc:sequentialDesignation1' dans l'élément
         &lt;dmdSec&gt; lié à l'élément &lt;div&gt; de type 'group'. Un objet numérique de type
         'still images' ou 'monograph' NE DOIT PAS contenir un élément &lt;dc:description&gt; de
         type 'spar_dc:sequentialDesignation1' dans l'élément &lt;dmdSec&gt; lié à l'élément
         &lt;div&gt; de type 'group'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec[@ID=/mets:mets/mets:structMap//mets:div[@TYPE='group']/@DMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="PeriodicalOrMPV"
            value="boolean(/mets:mets/mets:dmdSec/mets:mdWrap/mets:xmlData/spar_dc:spar_dc[dc:type/text()='periodical' or dc:type/text()='multivolume monograph'])"/>
         <iso:assert
            test="boolean(dc:description[@xsi:type='spar_dc:sequentialDesignation1']) = $PeriodicalOrMPV"
            >Un objet numérique de type 'periodical' ou 'multivolume monograph' DOIT contenir un
            élément &lt;dc:description&gt; de type 'spar_dc:sequentialDesignation1' dans l'élément
            &lt;dmdSec&gt; lié à l'élément &lt;div&gt; de type 'group'. Un objet numérique de type
            'still images' ou 'monograph' NE DOIT PAS contenir un élément &lt;dc:description&gt; de
            type 'spar_dc:sequentialDesignation1' dans l'élément &lt;dmdSec&gt; lié à l'élément
            &lt;div&gt; de type 'group'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 17 pour dmdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dc:type&gt; de type 'sequentialDesignation1/2/3' contenus dans une
         section dmdSec DOIVENT commencer par l'une des valeurs suivantes : 'Année', 'Edition',
         'Fascicule', 'Numéro', 'Partie', 'Section', 'Série', 'Tome' ou 'Volume', puis un espace,
         puis des nombres, des lettres majuscules ou des tirets.</iso:p>
      <iso:rule
         context="/mets:mets/mets:dmdSec/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:description[@xsi:type='spar_dc:sequentialDesignation1' or @xsi:type='spar_dc:sequentialDesignation2' or @xsi:type='spar_dc:sequentialDesignation3']">
         <iso:assert
            test="starts-with(text(), 'Année') or starts-with(text(), 'Edition') or starts-with(text(), 'Fascicule') or starts-with(text(), 'Numéro') or starts-with(text(), 'Partie') or starts-with(text(), 'Section') or starts-with(text(), 'Série') or starts-with(text(), 'Tome') or starts-with(text(), 'Volume')"
            >Les éléments &lt;dc:type&gt; de type 'sequentialDesignation1/2/3' contenus dans une
            section dmdSec DOIVENT commencer par l'une des valeurs suivantes : 'Année', 'Edition',
            'Fascicule', 'Numéro', 'Partie', 'Section', 'Série', 'Tome' ou 'Volume', puis un espace,
            puis des nombres, des lettres majuscules ou des tirets.</iso:assert>
         <iso:assert test="matches(text(), '^\p{L}+\s[0-9]*\-?[0-9]*[A-Z]*$')">Les éléments
            &lt;dc:type&gt; de type 'sequentialDesignation1/2/3' contenus dans une section dmdSec
            DOIVENT commencer par l'une des valeurs suivantes : 'Année', 'Edition', 'Fascicule',
            'Numéro', 'Partie', 'Section', 'Série', 'Tome' ou 'Volume', puis un espace, puis des
            nombres, des lettres majuscules ou des tirets.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 18 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil DOIT contenir un et un seul élement
         &lt;amdSec&gt;.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:amdSec)=1">Un fichier METS conforme à ce profil DOIT contenir
            un et un seul élement &lt;amdSec&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 19 pour amdSec (niveau MUST NOT)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil NE DOIT PAS contenir d'élement
         &lt;rightsMD&gt;.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert test="count(mets:rightsMD)=0">Un fichier METS conforme à ce profil NE DOIT PAS
            contenir d'élement &lt;rightsMD&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 20 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Toute sous-section d'&lt;amdSec&gt; DOIT être identifiée par un attribut ID, et la
         valeur de cet attribut doit commencer par la chaîne de caractères 'AMD.'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec/*">
         <iso:assert test="@ID">Toute sous-section d'&lt;amdSec&gt; DOIT être identifiée par un
            attribut ID, et la valeur de cet attribut doit commencer par la chaîne de caractères
            'AMD.'.</iso:assert>
         <iso:assert test="starts-with(@ID, 'AMD.')">Toute sous-section d'&lt;amdSec&gt; DOIT être
            identifiée par un attribut ID, et la valeur de cet attribut doit commencer par la chaîne
            de caractères 'AMD.'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 21 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Toute sous-section d'&lt;amdSec&gt; DOIT être identifiée par un attribut ID, et la
         valeur de cet attribut doit commencer par la chaîne de caractères 'AMD.'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec/*">
         <iso:assert test="@ID">Toute sous-section d'&lt;amdSec&gt; DOIT être identifiée par un
            attribut ID, et la valeur de cet attribut doit commencer par la chaîne de caractères
            'AMD.'.</iso:assert>
         <iso:assert test="starts-with(@ID, 'AMD.')">Toute sous-section d'&lt;amdSec&gt; DOIT être
            identifiée par un attribut ID, et la valeur de cet attribut doit commencer par la chaîne
            de caractères 'AMD.'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 22 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Toute sous-section d'&lt;amdSec&gt; DOIT faire l'objet d'une référence à partir d'au
         moins un élément METS.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec/*">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert test="count(//*[tokenize(string(@ADMID), ' ') = $ID]) &gt;= 1">Toute
            sous-section d'&lt;amdSec&gt; DOIT faire l'objet d'une référence à partir d'au moins un
            élément METS.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 23 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil DOIT contenir au moins un élément
         &lt;sourceMD&gt;.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert test="count(mets:sourceMD)&gt;=1">Un fichier METS conforme à ce profil DOIT
            contenir au moins un élément &lt;sourceMD&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 24 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;sourceMD&gt; DOIVENT contenir un élément &lt;dc:identifier&gt; de type
         spar_dc:barCode et un élément &lt;dc:identifier&gt; de type
         spar_dc:originalObjectCallNumber.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc">
         <iso:assert test="count(dc:identifier[@xsi:type='spar_dc:barCode'])=1">Les éléments
            &lt;sourceMD&gt; DOIVENT contenir un élément &lt;dc:identifier&gt; de type
            spar_dc:barCode et un élément &lt;dc:identifier&gt; de type
            spar_dc:originalObjectCallNumber.</iso:assert>
         <iso:assert test="count(dc:identifier[@xsi:type='spar_dc:originalObjectCallNumber'])=1">Les
            éléments &lt;sourceMD&gt; DOIVENT contenir un élément &lt;dc:identifier&gt; de type
            spar_dc:barCode et un élément &lt;dc:identifier&gt; de type
            spar_dc:originalObjectCallNumber.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 25 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Tous les éléments &lt;dc:identifier&gt; de même type contenus dans un élément
         &lt;sourceMD&gt; DOIVENT avoir les mêmes valeurs.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(distinct-values(mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:barCode'])) = 1"
            >Tous les éléments &lt;dc:identifier&gt; de même type contenus dans un élément
            &lt;sourceMD&gt; DOIVENT avoir les mêmes valeurs.</iso:assert>
         <iso:assert
            test="count(distinct-values(mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:originalObjectCallNumber'])) = 1"
            >Tous les éléments &lt;dc:identifier&gt; de même type contenus dans un élément
            &lt;sourceMD&gt; DOIVENT avoir les mêmes valeurs.</iso:assert>
         <iso:assert
            test="count(distinct-values(mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:reproducedObjectCallNumber'])) &lt;= 1"
            >Tous les éléments &lt;dc:identifier&gt; de même type contenus dans un élément
            &lt;sourceMD&gt; DOIVENT avoir les mêmes valeurs.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 26 pour amdSec (niveau MUST)</iso:title>
      <iso:p>S'il est utilisé, l'élément &lt;dc:identifier&gt; de type
         'spar_dc:reproducedObjectCallNumber' contenu dans un élément &lt;sourceMD&gt; DOIT être
         présent dans tous les éléments &lt;sourceMD&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:reproducedObjectCallNumber']">
         <iso:assert
            test="count(/mets:mets/mets:amdSec/mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:reproducedObjectCallNumber']) = count(/mets:mets/mets:amdSec/mets:sourceMD)"
            >S'il est utilisé, l'élément &lt;dc:identifier&gt; de type
            'spar_dc:reproducedObjectCallNumber' contenu dans un élément &lt;sourceMD&gt; DOIT être
            présent dans tous les éléments &lt;sourceMD&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 27 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;dc:identifier&gt; de type 'spar_dc:barCode' DOIVENT contenir un nombre
         sur 14 positions, puis '/', puis un nombre, puis '/', puis un nombre, ou commencer par
         'BCG' ou 'BAM'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:barCode']">
         <iso:assert
            test="matches(., '^[0-9]{14}/[0-9]*/[0-9]*$') or matches(., '^BAM') or matches(., '^BCG')"
            >Les éléments &lt;dc:identifier&gt; de type 'spar_dc:barCode' DOIVENT contenir un nombre
            sur 14 positions, puis '/', puis un nombre, puis '/', puis un nombre, ou commencer par
            'BCG' ou 'BAM'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 28 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Si l'élément &lt;dc:identifier&gt; de type 'spar_dc:barCode' DOIVENT contenir un nombre
         sur 14 positions, puis '/', puis un nombre, puis '/', puis un nombre, ou commencer par
         'BCG' ou 'BAM'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:sourceMD/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:identifier[@xsi:type='spar_dc:barCode'][matches(text(), '^[0-9]{14}/[0-9]*/[0-9]*$')]">
         <iso:assert
            test="number(substring-before(substring-after(text(), '/'), '/')) &lt;= number(substring-after(substring-after(text(), '/'), '/'))"
            >Si l'élément &lt;dc:identifier&gt; de type 'spar_dc:barCode' DOIVENT contenir un nombre
            sur 14 positions, puis '/', puis un nombre, puis '/', puis un nombre, ou commencer par
            'BCG' ou 'BAM'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 29 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;amdSec&gt; DOIT contenir au moins un élément &lt;digiprovMD&gt;.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert test="count(mets:digiprovMD)&gt;=1">L'élément &lt;amdSec&gt; DOIT contenir au
            moins un élément &lt;digiprovMD&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 30 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; doit comprendre un événement ou un agent PREMIS.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec/mets:digiprovMD">
         <iso:assert
            test="mets:mdWrap[@MIMETYPE='text/xml' and (@MDTYPE='PREMIS:EVENT' or 'PREMIS:AGENT')]"
            >Un élément &lt;digiprovMD&gt; doit comprendre un événement ou un agent
            PREMIS.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 31 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un élément &lt;mdWrap&gt; ayant comme attributs
         MIMETYPE="text/xml" et MDTYPE="PREMIS:EVENT" DOIT contenir un élément &lt;premis:event&gt;
         à l'intérieur d'un élément &lt;xmlData&gt;</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap[@MIMETYPE='text/xml' and @MDTYPE='PREMIS:EVENT']">
         <iso:assert test="mets:xmlData/premis:event">Un élément &lt;digiprovMD&gt; contenant un
            élément &lt;mdWrap&gt; ayant comme attributs MIMETYPE="text/xml" et
            MDTYPE="PREMIS:EVENT" DOIT contenir un élément &lt;premis:event&gt; à l'intérieur d'un
            élément &lt;xmlData&gt;</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 32 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un élément &lt;mdWrap&gt; ayant comme attributs
         MIMETYPE="text/xml" et MDTYPE="PREMIS:AGENT" DOIT contenir un élément &lt;premis:agent&gt;
         à l'intérieur d'un élément &lt;xmlData&gt;</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap[@MIMETYPE='text/xml' and @MDTYPE='PREMIS:AGENT']">
         <iso:assert test="mets:xmlData/premis:agent">Un élément &lt;digiprovMD&gt; contenant un
            élément &lt;mdWrap&gt; ayant comme attributs MIMETYPE="text/xml" et
            MDTYPE="PREMIS:AGENT" DOIT contenir un élément &lt;premis:agent&gt; à l'intérieur d'un
            élément &lt;xmlData&gt;</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 33 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Tout événement PREMIS compris dans un élément &lt;digiprovMD&gt; DOIT être identifié
         par un UUID. Cela DOIT être déclaré dans un élément
         &lt;premis:eventIdentifierType&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:eventIdentifier">
         <iso:assert test="premis:eventIdentifierType='UUID'">Tout événement PREMIS compris dans un
            élément &lt;digiprovMD&gt; DOIT être identifié par un UUID. Cela DOIT être déclaré dans
            un élément &lt;premis:eventIdentifierType&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 34 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Tout agent PREMIS compris dans un élément &lt;digiprovMD&gt; DOIT être identifié par un
         UUID. Cela DOIT être déclaré dans un élément &lt;premis:agentIdentifierType&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:agent/premis:agentIdentifier">
         <iso:assert test="premis:agentIdentifierType='UUID'">Tout agent PREMIS compris dans un
            élément &lt;digiprovMD&gt; DOIT être identifié par un UUID. Cela DOIT être déclaré dans
            un élément &lt;premis:agentIdentifierType&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 35 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un identifiant de type UUID DOIT comporter 36 caractères</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData">
         <iso:assert
            test="string-length(premis:event/premis:eventIdentifier/premis:eventIdentifierValue/text())=36 or string-length(premis:agent/premis:agentIdentifier/premis:agentIdentifierValue/text())=36"
            >Un identifiant de type UUID DOIT comporter 36 caractères</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 36 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Tous les identifiants de type UUID contenus dans un élément
         &lt;premis:eventIdentifierValue&gt; ou &lt;premis:agentIdentifierValue&gt; DOIVENT être
         distincts</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:eventIdentifier/premis:eventIdentifierValue) + count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:agent/premis:agentIdentifier/premis:agentIdentifierValue) = count(distinct-values(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:eventIdentifier/premis:eventIdentifierValue)) + count(distinct-values(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:agent/premis:agentIdentifier/premis:agentIdentifierValue))"
            >Tous les identifiants de type UUID contenus dans un élément
            &lt;premis:eventIdentifierValue&gt; ou &lt;premis:agentIdentifierValue&gt; DOIVENT être
            distincts</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 37 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Tous les événements PREMIS DOIVENT être liés à leurs agents PREMIS par le moyen
         d'attributs ID/ADMID des éléments &lt;digiprov&gt; et des éléments
         &lt;premis:linkingAgentIdentifierValue&gt;/&lt;premis:AgentIdentifierValue&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:linkingAgentIdentifier/premis:linkingAgentIdentifierValue">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ADMIDEvent"
            value="ancestor::mets:digiprovMD/@ADMID"/>
         <iso:assert
            test="text() = /mets:mets/mets:amdSec/mets:digiprovMD[@ID=tokenize(string($ADMIDEvent), ' ')]/mets:mdWrap/mets:xmlData/premis:agent/premis:agentIdentifier/premis:agentIdentifierValue/text()"
            >Tous les événements PREMIS DOIVENT être liés à leurs agents PREMIS par le moyen
            d'attributs ID/ADMID des éléments &lt;digiprov&gt; et des éléments
            &lt;premis:linkingAgentIdentifierValue&gt;/&lt;premis:AgentIdentifierValue&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 38 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'élément &lt;premis:linkingAgentIdentifierRole&gt; DOIT contenir l'une des valeurs
         suivantes : 'implementer', 'performer', 'authorizer' ou 'issuer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:linkingAgentIdentifier/premis:linkingAgentRole">
         <iso:assert
            test="text() = 'implementer' or text() = 'performer' or text() = 'authorizer' or text() = 'issuer'"
            >L'élément &lt;premis:linkingAgentIdentifierRole&gt; DOIT contenir l'une des valeurs
            suivantes : 'implementer', 'performer', 'authorizer' ou 'issuer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 39 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'digitization'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='digitization'])=1"
            >Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'digitization'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 40 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'digitization' DOIT mentionner deux agents PREMIS liés de
         rôle 'performer', un agent PREMIS lié de rôle 'implementer' et un élément
         &lt;premis:eventDetail&gt; contenant la valeur 'manual treatment' ou 'automatic
         treatment'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='digitization']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])=2"
            >L'événement PREMIS de type 'digitization' DOIT mentionner deux agents PREMIS liés de
            rôle 'performer', un agent PREMIS lié de rôle 'implementer' et un élément
            &lt;premis:eventDetail&gt; contenant la valeur 'manual treatment' ou 'automatic
            treatment'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'digitization' DOIT mentionner deux agents PREMIS liés de
            rôle 'performer', un agent PREMIS lié de rôle 'implementer' et un élément
            &lt;premis:eventDetail&gt; contenant la valeur 'manual treatment' ou 'automatic
            treatment'.</iso:assert>
         <iso:assert
            test="premis:eventDetail/text() = 'manual treatment' or premis:eventDetail/text() = 'automatic treatment'"
            >L'événement PREMIS de type 'digitization' DOIT mentionner deux agents PREMIS liés de
            rôle 'performer', un agent PREMIS lié de rôle 'implementer' et un élément
            &lt;premis:eventDetail&gt; contenant la valeur 'manual treatment' ou 'automatic
            treatment'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 41 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'digitization' DOIVENT être de
         type 'software' et 'hardware' pour les agents PREMIS de rôle 'performer' et 'organization'
         pour l'agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='digitization']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'digitization' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='hardware'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'digitization' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'digitization' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 42 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'colorProfile'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='colorProfile'])&lt;=1"
            >Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'colorProfile'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 43 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
         de rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='colorProfile']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])&gt;=1"
            >L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
            de rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
            de rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 44 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'colorProfile' DOIVENT être de
         type 'software' et 'hardware' pour les agents PREMIS liés de rôle 'performer' et
         'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='colorProfile']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'colorProfile' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS liés de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='hardware'])&lt;=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'colorProfile' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS liés de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'colorProfile' DOIVENT être de
            type 'software' et 'hardware' pour les agents PREMIS liés de rôle 'performer' et
            'organization' pour l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 45 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
         de rôle 'implementer', un élément &lt;premis:eventOutcome&gt; et un élément
         &lt;premis:eventOutcomeDetailNote&gt;..</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='qualityAssessment']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
            de rôle 'implementer', un élément &lt;premis:eventOutcome&gt; et un élément
            &lt;premis:eventOutcomeDetailNote&gt;..</iso:assert>
         <iso:assert test="premis:eventOutcomeInformation/premis:eventOutcome">L'événement PREMIS de
            type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié de rôle 'implementer',
            un élément &lt;premis:eventOutcome&gt; et un élément
            &lt;premis:eventOutcomeDetailNote&gt;..</iso:assert>
         <iso:assert
            test="premis:eventOutcomeInformation/premis:eventOutcomeDetail/premis:eventOutcomeDetailNote"
            >L'événement PREMIS de type 'colorProfile' DOIT mentionner au moins un agent PREMIS lié
            de rôle 'implementer', un élément &lt;premis:eventOutcome&gt; et un élément
            &lt;premis:eventOutcomeDetailNote&gt;..</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 46 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'qualityAssessment' DOIVENT être
         de type 'software' pour l'agent PREMIS lié de rôle 'performer' et 'organization' pour
         l'agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='qualityAssessment']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])&lt;=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'qualityAssessment' DOIVENT être
            de type 'software' pour l'agent PREMIS lié de rôle 'performer' et 'organization' pour
            l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'qualityAssessment' DOIVENT être
            de type 'software' pour l'agent PREMIS lié de rôle 'performer' et 'organization' pour
            l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 47 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'groupDefinition'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='groupDefinition'])&lt;=1"
            >Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'groupDefinition'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 48 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;premis:event&gt; de type 'groupDefinition' DOIT mentionner un agent
         PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='groupDefinition']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >Un élément &lt;premis:event&gt; de type 'groupDefinition' DOIT mentionner un agent
            PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 49 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les événements PREMIS de type 'userComment', 'producerComment' ou
         'digitizationRequests' DOIVENT mentionner un élément &lt;premis:eventDetail&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='userComment' or premis:eventType='producerComment' or premis:eventType='digitizationRequests']">
         <iso:assert test="premis:eventDetail">Les événements PREMIS de type 'userComment',
            'producerComment' ou 'digitizationRequests' DOIVENT mentionner un élément
            &lt;premis:eventDetail&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 50 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les événements PREMIS de type 'ocrSegmentation', 'ocerization', 'ocrCorrection',
         'olrSegmentation' et 'conversionToAlto' DOIVENT mentionner un agent PREMIS lié de rôle
         'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ocrSegmentation' or premis:eventType='ocerization' or premis:eventType='ocrCorrection' or premis:eventType='olrSegmentation' or premis:eventType='conversionToAlto']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])=1"
            >Les événements PREMIS de type 'ocrSegmentation', 'ocerization', 'ocrCorrection',
            'olrSegmentation' et 'conversionToAlto' DOIVENT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >Les événements PREMIS de type 'ocrSegmentation', 'ocerization', 'ocrCorrection',
            'olrSegmentation' et 'conversionToAlto' DOIVENT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 51 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'ocrSegmentation', 'ocerization',
         'ocrCorrection', 'olrSegmentation' et 'conversionToAlto' DOIVENT être de type 'software'
         pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS lié de rôle
         'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ocrSegmentation' or premis:eventType='ocerization' or premis:eventType='ocrCorrection' or premis:eventType='olrSegmentation' or premis:eventType='conversionToAlto']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'ocrSegmentation', 'ocerization',
            'ocrCorrection', 'olrSegmentation' et 'conversionToAlto' DOIVENT être de type 'software'
            pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS lié de
            rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'ocrSegmentation', 'ocerization',
            'ocrCorrection', 'olrSegmentation' et 'conversionToAlto' DOIVENT être de type 'software'
            pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS lié de
            rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 52 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'tocCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='tocCreation'])&lt;=1"
            >Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'tocCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 53 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'tocCreation' DOIT mentionner un agent PREMIS lié de rôle
         'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='tocCreation']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])=1"
            >L'événement PREMIS de type 'tocCreation' DOIT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'tocCreation' DOIT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 54 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'tocCreation' DOIVENT être de type
         'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS
         lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='tocCreation']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'tocCreation' DOIVENT être de type
            'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS
            lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'tocCreation' DOIVENT être de type
            'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent PREMIS
            lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 55 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'ebookCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ebookCreation'])&lt;=1"
            >Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'ebookCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 56 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'ebookCreation' DOIT mentionner un agent PREMIS lié de rôle
         'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ebookCreation']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])=1"
            >L'événement PREMIS de type 'ebookCreation' DOIT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'ebookCreation' DOIT mentionner un agent PREMIS lié de rôle
            'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 57 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'ebookCreation' DOIVENT être de
         type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent
         PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ebookCreation']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'ebookCreation' DOIVENT être de
            type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent
            PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'ebookCreation' DOIVENT être de
            type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent
            PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 58 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'adaptativeCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='adaptativeCreation'])&lt;=1"
            >Il DOIT y avoir au plus un élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'adaptativeCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 59 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'adaptativeCreation' DOIT mentionner un agent PREMIS lié de
         rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='adaptativeCreation']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='performer'])=1"
            >L'événement PREMIS de type 'adaptativeCreation' DOIT mentionner un agent PREMIS lié de
            rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='implementer'])=1"
            >L'événement PREMIS de type 'adaptativeCreation' DOIT mentionner un agent PREMIS lié de
            rôle 'performer' et un agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 60 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Les agents PREMIS liés à un événement PREMIS de type 'adaptativeCreation' DOIVENT être
         de type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour l'agent
         PREMIS lié de rôle 'implementer'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='adaptativeCreation']">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDPerformerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='performer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="UUIDImplementerAgent"
            value="premis:linkingAgentIdentifier[premis:linkingAgentRole/text()='implementer']/premis:linkingAgentIdentifierValue/text()"/>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDPerformerAgent and premis:agentType='software'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'adaptativeCreation' DOIVENT être
            de type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour
            l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
         <iso:assert
            test="count(//premis:agent[premis:agentIdentifier/premis:agentIdentifierValue = $UUIDImplementerAgent and premis:agentType='organization'])=1"
            >Les agents PREMIS liés à un événement PREMIS de type 'adaptativeCreation' DOIVENT être
            de type 'software' pour l'agent PREMIS de rôle 'performer' et 'organization' pour
            l'agent PREMIS lié de rôle 'implementer'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 61 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
         &lt;premis:event&gt; de type 'packageDelivery'.</iso:p>
      <iso:rule context="/mets:mets/mets:amdSec">
         <iso:assert
            test="count(mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='packageDelivery'])=1"
            >Il DOIT y avoir un et un seul élément &lt;digiprovMD&gt; comprenant un
            &lt;premis:event&gt; de type 'packageDelivery'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 62 pour amdSec (niveau MUST)</iso:title>
      <iso:p>L'événement PREMIS de type 'packageDelivery' DOIT mentionner un agent PREMIS lié de
         rôle 'issuer', un objet PREMIS lié de type 'BTA', 'BCAT' or 'BTC' et de rôle 'request' et
         un élément &lt;premis:eventDetail&gt; mentionnant le numéro de la prestation et le type de
         livraison.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='packageDelivery']">
         <iso:assert
            test="count(premis:linkingAgentIdentifier/premis:linkingAgentRole[text()='issuer'])=1"
            >L'événement PREMIS de type 'packageDelivery' DOIT mentionner un agent PREMIS lié de
            rôle 'issuer', un objet PREMIS lié de type 'BTA', 'BCAT' or 'BTC' et de rôle 'request'
            et un élément &lt;premis:eventDetail&gt; mentionnant le numéro de la prestation et le
            type de livraison.</iso:assert>
         <iso:assert
            test="premis:linkingObjectIdentifier[premis:linkingObjectRole='request']/premis:linkingObjectIdentifierType/text()='BTA' or premis:linkingObjectIdentifier[premis:linkingObjectRole='request']/premis:linkingObjectIdentifierType/text()='BCAT' or premis:linkingObjectIdentifier[premis:linkingObjectRole='request']/premis:linkingObjectIdentifierType/text()='BTC'"
            >L'événement PREMIS de type 'packageDelivery' DOIT mentionner un agent PREMIS lié de
            rôle 'issuer', un objet PREMIS lié de type 'BTA', 'BCAT' or 'BTC' et de rôle 'request'
            et un élément &lt;premis:eventDetail&gt; mentionnant le numéro de la prestation et le
            type de livraison.</iso:assert>
         <iso:assert
            test="matches(premis:eventDetail, '^Prestation\s[0-9]*\s:\slivraison initiale$') or matches(premis:eventDetail, '^Prestation\s[0-9]*\s:\sréfection courante$') or matches(premis:eventDetail, '^Prestation\s[0-9]*\s:\straitement complémentaire$')"
            >L'événement PREMIS de type 'packageDelivery' DOIT mentionner un agent PREMIS lié de
            rôle 'issuer', un objet PREMIS lié de type 'BTA', 'BCAT' or 'BTC' et de rôle 'request'
            et un élément &lt;premis:eventDetail&gt; mentionnant le numéro de la prestation et le
            type de livraison.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 63 pour amdSec (niveau MUST)</iso:title>
      <iso:p>Dans l'événement PREMIS de type 'packageDelivery', si l'élément
         &lt;premis:eventDetail&gt; mentionne 'livraison initiale', l'élément
         &lt;premis:eventDetail&gt; DOIT contenir 'BTA' ; si l'élément &lt;premis:eventDetail&gt;
         mentionne 'réfection courante', l'élément &lt;premis:eventDetail&gt; DOIT contenir 'BCAT'
         et si l'élément &lt;premis:eventDetail&gt; mentionne 'traitement complémentaire', l'élément
         &lt;premis:eventDetail&gt; DOIT contenir 'BTC'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='packageDelivery']/premis:eventDetail">
         <iso:assert
            test="substring-after(.[../premis:linkingObjectIdentifier/premis:linkingObjectIdentifierType = 'BTA'], ': ') = 'livraison initiale' or substring-after(.[../premis:linkingObjectIdentifier/premis:linkingObjectIdentifierType = 'BCAT'], ': ') = 'réfection courante' or substring-after(.[../premis:linkingObjectIdentifier/premis:linkingObjectIdentifierType = 'BTC'], ': ') = 'traitement complémentaire'"
            >Dans l'événement PREMIS de type 'packageDelivery', si l'élément
            &lt;premis:eventDetail&gt; mentionne 'livraison initiale', l'élément
            &lt;premis:eventDetail&gt; DOIT contenir 'BTA' ; si l'élément &lt;premis:eventDetail&gt;
            mentionne 'réfection courante', l'élément &lt;premis:eventDetail&gt; DOIT contenir
            'BCAT' et si l'élément &lt;premis:eventDetail&gt; mentionne 'traitement complémentaire',
            l'élément &lt;premis:eventDetail&gt; DOIT contenir 'BTC'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 64 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil DOIT contenir un élément &lt;fileSec&gt;.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:fileSec) =1">Un fichier METS conforme à ce profil DOIT
            contenir un élément &lt;fileSec&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 65 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Le cas échéant, tout élément &lt;fileGrp&gt; DOIT comprendre un attribut USE
         distinct.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec">
         <iso:assert test="count(mets:fileGrp) = count(distinct-values(mets:fileGrp/@USE))">Le cas
            échéant, tout élément &lt;fileGrp&gt; DOIT comprendre un attribut USE
            distinct.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 66 pour fileSec (niveau MUST)</iso:title>
      <iso:p>L'attribut 'USE' de l'élément &lt;fileGrp&gt; DOIT avoir l'une des valeurs suivantes :
         'master', 'ocr', 'toc', 'colorProfile', 'epub', 'adaptative'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp">
         <iso:assert
            test="@USE = 'master' or @USE = 'ocr' or @USE =  'toc' or @USE = 'colorProfile' or @USE = 'epub' or @USE = 'adaptative'"
            >L'attribut 'USE' de l'élément &lt;fileGrp&gt; DOIT avoir l'une des valeurs suivantes :
            'master', 'ocr', 'toc', 'colorProfile', 'epub', 'adaptative'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 67 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Le cas échéant, tout élément &lt;fileGrp&gt; DOIT être identifié par un attribut ID, et
         la valeur de cet attribut DOIT commencer par la chaîne de caractères 'GRP.'</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp">
         <iso:assert test="@ID">Le cas échéant, tout élément &lt;fileGrp&gt; DOIT être identifié par
            un attribut ID, et la valeur de cet attribut DOIT commencer par la chaîne de caractères
            'GRP.'</iso:assert>
         <iso:assert test="starts-with(@ID, 'GRP.')">Le cas échéant, tout élément &lt;fileGrp&gt;
            DOIT être identifié par un attribut ID, et la valeur de cet attribut DOIT commencer par
            la chaîne de caractères 'GRP.'</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 68 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Le cas échéant, tout élément &lt;file&gt; DOIT être identifié par un attribut ID, et la
         valeur de cet attribut DOIT commencer par le USE du &lt;fileGrp&gt; auquel il
         appartient.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp/mets:file">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="use"
            value="ancestor::mets:fileGrp[1]/@USE"/>
         <iso:assert test="starts-with(@ID,$use)">Le cas échéant, tout élément &lt;file&gt; DOIT
            être identifié par un attribut ID, et la valeur de cet attribut DOIT commencer par le
            USE du &lt;fileGrp&gt; auquel il appartient.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 69 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Tout élément &lt;file&gt; DOIT avoir une empreinte exprimée dans l'attribut CHECKSUM
         associé à un attribut CHECKSUMTYPE contenant la valeur 'MD5'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp/mets:file">
         <iso:assert test="@CHECKSUM">Tout élément &lt;file&gt; DOIT avoir une empreinte exprimée
            dans l'attribut CHECKSUM associé à un attribut CHECKSUMTYPE contenant la valeur
            'MD5'.</iso:assert>
         <iso:assert test="@CHECKSUMTYPE = 'MD5'">Tout élément &lt;file&gt; DOIT avoir une empreinte
            exprimée dans l'attribut CHECKSUM associé à un attribut CHECKSUMTYPE contenant la valeur
            'MD5'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 70 pour fileSec (niveau MUST)</iso:title>
      <iso:p>La valeur de tout attribut CHECKSUM DOIT être une chaîne de 32 caractères.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp/mets:file/@CHECKSUM">
         <iso:assert test="string-length(.) = 32">La valeur de tout attribut CHECKSUM DOIT être une
            chaîne de 32 caractères.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 71 pour fileSec (niveau MUST)</iso:title>
      <iso:p>Le cas échéant, tout fichier de la section &lt;fileSec&gt; DOIT être référencé dans un
         élément &lt;FLocat&gt; avec 'URL' comme type d'emplacement de type 'simple', son chemin
         relatif au sein du Paquet d'Informations étant donné en valeur d'un attribut
         'xlink:href'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp/mets:file">
         <iso:assert test="mets:FLocat/@LOCTYPE='URL'">Le cas échéant, tout fichier de la section
            &lt;fileSec&gt; DOIT être référencé dans un élément &lt;FLocat&gt; avec 'URL' comme type
            d'emplacement de type 'simple', son chemin relatif au sein du Paquet d'Informations
            étant donné en valeur d'un attribut 'xlink:href'.</iso:assert>
         <iso:assert test="mets:FLocat/@xlink:type='simple'">Le cas échéant, tout fichier de la
            section &lt;fileSec&gt; DOIT être référencé dans un élément &lt;FLocat&gt; avec 'URL'
            comme type d'emplacement de type 'simple', son chemin relatif au sein du Paquet
            d'Informations étant donné en valeur d'un attribut 'xlink:href'.</iso:assert>
         <iso:assert test="mets:FLocat/@xlink:href">Le cas échéant, tout fichier de la section
            &lt;fileSec&gt; DOIT être référencé dans un élément &lt;FLocat&gt; avec 'URL' comme type
            d'emplacement de type 'simple', son chemin relatif au sein du Paquet d'Informations
            étant donné en valeur d'un attribut 'xlink:href'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 72 pour structMap (niveau MUST)</iso:title>
      <iso:p>Tout élément &lt;structMap&gt; DOIT comprendre un attribut TYPE distinct.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:structMap) = count(distinct-values(mets:structMap/@TYPE))"
            >Tout élément &lt;structMap&gt; DOIT comprendre un attribut TYPE distinct.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 73 pour structMap (niveau MUST)</iso:title>
      <iso:p>Tout élément &lt;div&gt; DOIT être identifié par un attribut ID, dont la valeur DOIT
         commencer par la chaîne de caractères 'DIV.'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div">
         <iso:assert test="@ID">Tout élément &lt;div&gt; DOIT être identifié par un attribut ID,
            dont la valeur DOIT commencer par la chaîne de caractères 'DIV.'.</iso:assert>
         <iso:assert test="starts-with(@ID, 'DIV.')">Tout élément &lt;div&gt; DOIT être identifié
            par un attribut ID, dont la valeur DOIT commencer par la chaîne de caractères
            'DIV.'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 74 pour structMap (niveau MUST)</iso:title>
      <iso:p>L'attribut 'TYPE' de l'élément &lt;structMap&gt; DOIT avoir l'une des valeurs suivantes
         : 'physical', 'logical', 'toc', 'attachment', 'ebook'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap">
         <iso:assert
            test="@TYPE = 'physical' or @TYPE = 'logical' or @TYPE =  'toc' or @TYPE = 'attachment' or @TYPE = 'ebook'"
            >L'attribut 'TYPE' de l'élément &lt;structMap&gt; DOIT avoir l'une des valeurs suivantes
            : 'physical', 'logical', 'toc', 'attachment', 'ebook'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 75 pour structMap (niveau MUST)</iso:title>
      <iso:p>L'élément racine &lt;mets&gt; DOIT contenir un et un seul élément &lt;structMap&gt; de
         TYPE="physical". Il PEUT comprendre d'autres éléments &lt;structMap&gt; mais la valeur de
         l'attribut TYPE DOIT être différente de 'physical'.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:structMap[@TYPE='physical'])=1">L'élément racine &lt;mets&gt;
            DOIT contenir un et un seul élément &lt;structMap&gt; de TYPE="physical". Il PEUT
            comprendre d'autres éléments &lt;structMap&gt; mais la valeur de l'attribut TYPE DOIT
            être différente de 'physical'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 76 pour structMap (niveau MUST)</iso:title>
      <iso:p>Tout élément &lt;div&gt; contenu dans un élément &lt;structMap&gt; de type 'physical',
         'attachment', 'toc' ou 'ebook' DOIT comporter un attribut TYPE définissant sa catégorie
         parmi 'set', 'group' ou 'object'</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='physical' or @TYPE='attachment' or @TYPE='ebook' or @TYPE='toc']//mets:div">
         <iso:assert test="@TYPE">Tout élément &lt;div&gt; contenu dans un élément &lt;structMap&gt;
            de type 'physical', 'attachment', 'toc' ou 'ebook' DOIT comporter un attribut TYPE
            définissant sa catégorie parmi 'set', 'group' ou 'object'</iso:assert>
         <iso:assert test="@TYPE='set' or @TYPE='group' or @TYPE='object'">Tout élément &lt;div&gt;
            contenu dans un élément &lt;structMap&gt; de type 'physical', 'attachment', 'toc' ou
            'ebook' DOIT comporter un attribut TYPE définissant sa catégorie parmi 'set', 'group' ou
            'object'</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 77 pour structMap (niveau MUST)</iso:title>
      <iso:p>Toute carte de structure de type 'physical', 'attachment', 'toc' ou 'ebook' DOIT
         contenir au moins trois niveaux de &lt;div&gt; imbriqués selon la hiérarchie suivante, du
         plus global au plus précis : mets:div/@TYPE="set", mets:div/@TYPE="group",
         mets:div/@TYPE="object".</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='physical' or @TYPE='attachment' or @TYPE='ebook' or @TYPE='toc']">
         <iso:assert
            test=".//mets:div[@TYPE='set']/mets:div[@TYPE='group']/mets:div[@TYPE='object']">Toute
            carte de structure de type 'physical', 'attachment', 'toc' ou 'ebook' DOIT contenir au
            moins trois niveaux de &lt;div&gt; imbriqués selon la hiérarchie suivante, du plus
            global au plus précis : mets:div/@TYPE="set", mets:div/@TYPE="group",
            mets:div/@TYPE="object".</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 78 pour structMap (niveau MUST)</iso:title>
      <iso:p>Dans une carte de structure, tout élément &lt;div&gt; de TYPE='object' DOIT faire
         référence à au moins un fichier par le biais d'un élement fils &lt;fptr&gt;.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='object']">
         <iso:assert test="mets:fptr">Dans une carte de structure, tout élément &lt;div&gt; de
            TYPE='object' DOIT faire référence à au moins un fichier par le biais d'un élement fils
            &lt;fptr&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 79 pour structMap (niveau MUST)</iso:title>
      <iso:p>Dans une carte de structure physique, un élément &lt;div&gt; de type "group" correspond
         à l'Objet numérique compris dans le Paquet d'informations, par exemple, une monographie, un
         fascicule de périodique, une image, un lot d'images ou un volume d'une monographie en
         plusieurs volumes. Aussi, une carte de structure physique DOIT donc contenir un et un seul
         élément &lt;div&gt; de TYPE='group'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap[@TYPE='physical']">
         <iso:assert test="count(.//mets:div[@TYPE='set']/mets:div[@TYPE='group'])=1">Dans une carte
            de structure physique, un élément &lt;div&gt; de type "group" correspond à l'Objet
            numérique compris dans le Paquet d'informations, par exemple, une monographie, un
            fascicule de périodique, une image, un lot d'images ou un volume d'une monographie en
            plusieurs volumes. Aussi, une carte de structure physique DOIT donc contenir un et un
            seul élément &lt;div&gt; de TYPE='group'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 80 pour structMap (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;div&gt; de TYPE='object' correspond à un élément de l'Objet numérique,
         par exemple une image d'un lot ou une page d'un document textuel. Une carte de structure
         physique DOIT donc contenir au moins un élément &lt;div&gt; de TYPE='object'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap[@TYPE='physical']">
         <iso:assert
            test="count(.//mets:div[@TYPE='set']/mets:div[@TYPE='group']/mets:div[@TYPE='object'])&gt;=1"
            >Un élément &lt;div&gt; de TYPE='object' correspond à un élément de l'Objet numérique,
            par exemple une image d'un lot ou une page d'un document textuel. Une carte de structure
            physique DOIT donc contenir au moins un élément &lt;div&gt; de
            TYPE='object'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 81 pour structMap (niveau MUST)</iso:title>
      <iso:p>Dans toute carte de structure, les éléments &lt;div&gt; de type "object" DOIVENT tous
         contenir un attribut ORDER, qui expriment l'ordre physique de ces éléments (par exemple,
         l'ordre des pages d'un document textuel).</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='object']">
         <iso:assert test="@ORDER">Dans toute carte de structure, les éléments &lt;div&gt; de type
            "object" DOIVENT tous contenir un attribut ORDER, qui expriment l'ordre physique de ces
            éléments (par exemple, l'ordre des pages d'un document textuel).</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 82 pour structMap (niveau MUST)</iso:title>
      <iso:p>L'attribut ORDER du premier élément &lt;div&gt; de type "object" de chaque carte de
         structure DOIT avoir la valeur '1'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='object'][1]">
         <iso:assert test="@ORDER = '1'">L'attribut ORDER du premier élément &lt;div&gt; de type
            "object" de chaque carte de structure DOIT avoir la valeur '1'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 83 pour structMap (niveau MUST)</iso:title>
      <iso:p>L'attribut ORDER des éléments &lt;div&gt; de type "object" de chaque carte de structure
         DOIT être incrémenté de 1.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='object' and not(@ORDER='1')]">
         <iso:assert test="@ORDER = preceding-sibling::mets:div[@TYPE='object'][1]/@ORDER + 1"
            >L'attribut ORDER des éléments &lt;div&gt; de type "object" de chaque carte de structure
            DOIT être incrémenté de 1.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 84 pour structMap (niveau MUST)</iso:title>
      <iso:p> Les éléments &lt;div&gt; de type 'set' contenant un élément &lt;div&gt; de type
         'group' DOIVENT avoir le même attribut 'ADMID' dans toutes les cartes de structure.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap//mets:div[@TYPE='set' and mets:div[@TYPE='group']]/@ADMID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="set1ADMID"
            value="/mets:mets/mets:structMap[1]//mets:div[@TYPE='set' and mets:div[@TYPE='group']]/@ADMID"/>
         <iso:assert test=". = $set1ADMID"> Les éléments &lt;div&gt; de type 'set' contenant un
            élément &lt;div&gt; de type 'group' DOIVENT avoir le même attribut 'ADMID' dans toutes
            les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 85 pour structMap (niveau MUST)</iso:title>
      <iso:p> Les éléments &lt;div&gt; de type 'set' contenant un élément &lt;div&gt; de type
         'group' DOIVENT avoir le même attribut 'DMDID' dans toutes les cartes de structure.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap//mets:div[@TYPE='set' and mets:div[@TYPE='group']]/@DMDID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="set1DMDID"
            value="/mets:mets/mets:structMap[1]//mets:div[@TYPE='set' and mets:div[@TYPE='group']]/@DMDID"/>
         <iso:assert test=". = $set1DMDID"> Les éléments &lt;div&gt; de type 'set' contenant un
            élément &lt;div&gt; de type 'group' DOIVENT avoir le même attribut 'DMDID' dans toutes
            les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 86 pour structMap (niveau MUST)</iso:title>
      <iso:p> Les éléments &lt;div&gt; de type 'group' DOIVENT avoir le même attribut 'ADMID' dans
         toutes les cartes de structure.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='group']/@ADMID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="groupADMID"
            value="/mets:mets/mets:structMap[1]//mets:div[@TYPE='group']/@ADMID"/>
         <iso:assert test=".= $groupADMID"> Les éléments &lt;div&gt; de type 'group' DOIVENT avoir
            le même attribut 'ADMID' dans toutes les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 87 pour structMap (niveau MUST)</iso:title>
      <iso:p> Les éléments &lt;div&gt; de type 'group' DOIVENT avoir le même attribut 'DMDID' dans
         toutes les cartes de structure.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap//mets:div[@TYPE='group']/@DMDID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="groupDMDID"
            value="/mets:mets/mets:structMap[1]//mets:div[@TYPE='group']/@DMDID"/>
         <iso:assert test=". = $groupDMDID"> Les éléments &lt;div&gt; de type 'group' DOIVENT avoir
            le même attribut 'DMDID' dans toutes les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 88 pour structMap (niveau MUST)</iso:title>
      <iso:p>S'ils sont utilisés, les éléments &lt;div&gt; de type 'set' contenant un autre élément
         &lt;div&gt; de type 'set' DOIVENT avoir le même attribut 'ADMID' dans toutes les cartes de
         structure.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap/mets:div[@TYPE='set' and mets:div[@TYPE='set']]/@ADMID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="set2ADMID"
            value="/mets:mets/mets:structMap[1]/mets:div[@TYPE='set' and mets:div[@TYPE='set']]/@ADMID"/>
         <iso:assert test=". = $set2ADMID">S'ils sont utilisés, les éléments &lt;div&gt; de type
            'set' contenant un autre élément &lt;div&gt; de type 'set' DOIVENT avoir le même
            attribut 'ADMID' dans toutes les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 89 pour structMap (niveau MUST)</iso:title>
      <iso:p>S'ils sont utilisés, les éléments &lt;div&gt; de type 'set' contenant un autre élément
         &lt;div&gt; de type 'set' DOIVENT avoir le même attribut 'DMDID' dans toutes les cartes de
         structure.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap/mets:div[@TYPE='set' and mets:div[@TYPE='set']]/@DMDID">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="set2DMDID"
            value="/mets:mets/mets:structMap[1]/mets:div[@TYPE='set' and mets:div[@TYPE='set']]/@DMDID"/>
         <iso:assert test=". = $set2DMDID">S'ils sont utilisés, les éléments &lt;div&gt; de type
            'set' contenant un autre élément &lt;div&gt; de type 'set' DOIVENT avoir le même
            attribut 'DMDID' dans toutes les cartes de structure.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 90 pour structMap (niveau MUST)</iso:title>
      <iso:p>Un objet numérique de type 'periodical' ou 'multivolume monograph' DOIT contenir un
         attribut 'DMDID' dans son élément &lt;div&gt; de type 'set'. Un objet numérique de type
         'still images' ou 'monograph' NE DOIT PAS contenir un attribut 'DMDID' dans son élément
         &lt;div&gt; de type 'set'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap//mets:div[@TYPE='set' and mets:div[@TYPE='group']]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="PeriodicalOrMPV"
            value="boolean(/mets:mets/mets:dmdSec/mets:mdWrap/mets:xmlData/spar_dc:spar_dc[dc:type/text()='periodical' or dc:type/text()='multivolume monograph'])"/>
         <iso:assert test="boolean(@DMDID) = $PeriodicalOrMPV">Un objet numérique de type
            'periodical' ou 'multivolume monograph' DOIT contenir un attribut 'DMDID' dans son
            élément &lt;div&gt; de type 'set'. Un objet numérique de type 'still images' ou
            'monograph' NE DOIT PAS contenir un attribut 'DMDID' dans son élément &lt;div&gt; de
            type 'set'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 91 pour structLink (niveau MUST NOT)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil NE DOIT PAS contenir d'élément
         &lt;structLink&gt;.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:structLink)=0">Un fichier METS conforme à ce profil NE DOIT
            PAS contenir d'élément &lt;structLink&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 92 pour behaviorSec (niveau MUST NOT)</iso:title>
      <iso:p>Un fichier METS conforme à ce profil NE DOIT PAS contenir d'élément
         &lt;behaviorSec&gt;.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert test="count(mets:behaviorSec)=0">Un fichier METS conforme à ce profil NE DOIT
            PAS contenir d'élément &lt;behaviorSec&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 93 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Le nombre de pointeurs dans toutes les cartes de structure DOIT être au moins égal au
         nombre de fichiers définis dans la section des fichiers.</iso:p>
      <iso:rule context="/mets:mets">
         <iso:assert
            test="count(mets:fileSec/mets:fileGrp/mets:file) &lt;= count(mets:structMap//mets:fptr)"
            >Le nombre de pointeurs dans toutes les cartes de structure DOIT être au moins égal au
            nombre de fichiers définis dans la section des fichiers.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 94 pour multiSection (niveau MUST)</iso:title>
      <iso:p>La date et l'heure mentionnées dans l'attibut LASTMODDATE de l'élément &lt;metsHdr&gt;
         DOIT être égale ou postérieure à la date et l'heure de tous les événements PREMIS.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event/premis:eventDateTime">
         <iso:assert test=". &lt;= /mets:mets/mets:metsHdr/@LASTMODDATE">La date et l'heure
            mentionnées dans l'attibut LASTMODDATE de l'élément &lt;metsHdr&gt; DOIT être égale ou
            postérieure à la date et l'heure de tous les événements PREMIS.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 95 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
         type 'physical' DOIVENT appartenir aux groupes de fichiers de 'USE' 'master' ou
         'ocr'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='physical']//mets:div[@TYPE='object']/mets:fptr">
         <iso:assert
            test="@FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='master']/mets:file/@ID or @FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='ocr']/mets:file/@ID"
            >Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
            type 'physical' DOIVENT appartenir aux groupes de fichiers de 'USE' 'master' ou
            'ocr'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 96 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
         type 'logical' DOIVENT appartenir aux groupes de fichiers de 'USE' 'ocr'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='logical']//mets:div[@TYPE='object']/mets:fptr">
         <iso:assert test="@FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='ocr']/mets:file/@ID"
            >Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
            type 'logical' DOIVENT appartenir aux groupes de fichiers de 'USE' 'ocr'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 97 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
         type 'attachment' DOIVENT appartenir aux groupes de fichiers de 'USE'
         'colorProfile'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='attachment']//mets:div[@TYPE='object']/mets:fptr">
         <iso:assert
            test="@FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='colorProfile']/mets:file/@ID"
            >Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
            type 'attachment' DOIVENT appartenir aux groupes de fichiers de 'USE'
            'colorProfile'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 98 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
         type 'toc' DOIVENT appartenir aux groupes de fichiers de 'USE' 'toc'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap[@TYPE='toc']//mets:div[@TYPE='object']/mets:fptr">
         <iso:assert test="@FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='toc']/mets:file/@ID"
            >Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
            type 'toc' DOIVENT appartenir aux groupes de fichiers de 'USE' 'toc'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 99 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
         type 'ebook' DOIVENT appartenir aux groupes de fichiers de 'USE' 'epub' ou
         'adaptative'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='ebook']//mets:div[@TYPE='object']/mets:fptr">
         <iso:assert
            test="@FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='epub']/mets:file/@ID or @FILEID = /mets:mets/mets:fileSec/mets:fileGrp[@USE='adaptative']/mets:file/@ID"
            >Les fichiers référencés dans des éléments &lt;fptr&gt; contenus dans une structMap de
            type 'ebook' DOIVENT appartenir aux groupes de fichiers de 'USE' 'epub' ou
            'adaptative'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 100 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque fichier contenu dans l'élément &lt;fileGrp&gt; de USE 'master' DOIT être lié à
         un et un seul élément &lt;sourceMD&gt;.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='master']/mets:file">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="fileADMID"
            value="tokenize(string(@ADMID), ' ')"/>
         <iso:assert test="count(/mets:mets/mets:amdSec/mets:sourceMD[@ID=$fileADMID])= 1">Chaque
            fichier contenu dans l'élément &lt;fileGrp&gt; de USE 'master' DOIT être lié à un et un
            seul élément &lt;sourceMD&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 101 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque élément &lt;file&gt; contenu dans un élément &lt;fileGrp&gt; de USE 'master'
         DOIT être lié à un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type
         'digitization' .</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='master']/mets:file">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='digitization']/@ID"
            >Chaque élément &lt;file&gt; contenu dans un élément &lt;fileGrp&gt; de USE 'master'
            DOIT être lié à un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type
            'digitization' .</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 102 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque élément &lt;file&gt; contenu dans un élément &lt;fileGrp&gt; de USE
         'colorProfile' DOIT être lié à un élément &lt;digiprovMD&gt; contenant un événement PREMIS
         de type 'colorProfile' .</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='colorProfile']/mets:file">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='colorProfile']/@ID"
            >Chaque élément &lt;file&gt; contenu dans un élément &lt;fileGrp&gt; de USE
            'colorProfile' DOIT être lié à un élément &lt;digiprovMD&gt; contenant un événement
            PREMIS de type 'colorProfile' .</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 103 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'qualityAssessment'
         DOIT être lié à un élément &lt;file&gt; dans un élément &lt;fileGrp&gt; de USE
         'ocr'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event[premis:eventType='qualityAssessment']]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert
            test="/mets:mets/mets:fileSec/mets:fileGrp[@USE='ocr']/mets:file[tokenize(string(@ADMID), ' ') = $ID]"
            >Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'qualityAssessment'
            DOIT être lié à un élément &lt;file&gt; dans un élément &lt;fileGrp&gt; de USE
            'ocr'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 104 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'groupDefinition'
         DOIT être lié à un élément &lt;div&gt; de type 'group'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event[premis:eventType='groupDefinition']]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert
            test="/mets:mets/mets:structMap//mets:div[@TYPE='group'][tokenize(string(@ADMID), ' ') = $ID]"
            >Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'groupDefinition'
            DOIT être lié à un élément &lt;div&gt; de type 'group'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 105 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'userComment',
         'producerComment' ou 'digitizationRequests' DOIT être lié à un élément &lt;div&gt; de type
         'group' ou 'object'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event[premis:eventType='userComment' or premis:eventType='producerComment' or premis:eventType='digitizationRequests']]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert
            test="/mets:mets/mets:structMap//mets:div[@TYPE= 'object' or @TYPE='group'][tokenize(string(@ADMID), ' ') = $ID]"
            >Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'userComment',
            'producerComment' ou 'digitizationRequests' DOIT être lié à un élément &lt;div&gt; de
            type 'group' ou 'object'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 106 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'ocrSegmentation',
         'ocerization', 'ocrCorrection', 'olrSegmentation' ou 'conversionToAlto' DOIT être lié aux
         éléments &lt;file&gt; contenus dans le &lt;fileGrp&gt; de USE 'ocr'.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event[premis:eventType='ocrSegmentation' or premis:eventType='ocerization' or premis:eventType='ocrCorrection' or premis:eventType='olrSegmentation' or premis:eventType='conversionToAlto']]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="ID" value="@ID"/>
         <iso:assert
            test="/mets:mets/mets:fileSec/mets:fileGrp[@USE= 'ocr']/mets:file[tokenize(string(@ADMID), ' ') = $ID]"
            >Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'ocrSegmentation',
            'ocerization', 'ocrCorrection', 'olrSegmentation' ou 'conversionToAlto' DOIT être lié
            aux éléments &lt;file&gt; contenus dans le &lt;fileGrp&gt; de USE 'ocr'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 107 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'toc' DOIT être lié à un
         événement PREMIS de type 'tocCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='toc']/mets:file">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='tocCreation']/@ID"
            >Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'toc' DOIT être lié à un
            événement PREMIS de type 'tocCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 108 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'epub' DOIT être lié à un
         événement PREMIS de type 'ebookCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='epub']/mets:file">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='ebookCreation']/@ID"
            >Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'epub' DOIT être lié à un
            événement PREMIS de type 'ebookCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 109 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'adaptative' DOIT être
         lié à un événement PREMIS de type 'adaptativeCreation'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp[@USE='adaptative']/mets:file">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='adaptativeCreation']/@ID"
            >Chaque fichier contenu dans un élément &lt;fileGrp&gt; de USE 'adaptative' DOIT être
            lié à un événement PREMIS de type 'adaptativeCreation'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 110 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'packageDelivery'
         DOIT être lié à un élément &lt;div&gt; de type 'group'.</iso:p>
      <iso:rule context="/mets:mets/mets:structMap[@TYPE='physical']//mets:div[@TYPE='group']">
         <iso:assert
            test="tokenize(string(@ADMID), ' ') = /mets:mets/mets:amdSec/mets:digiprovMD[mets:mdWrap/mets:xmlData/premis:event/premis:eventType='packageDelivery']/@ID"
            >Un élément &lt;digiprovMD&gt; contenant un événement PREMIS de type 'packageDelivery'
            DOIT être lié à un élément &lt;div&gt; de type 'group'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 111 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Les éléments &lt;fileGrp&gt; DOIVENT être mentionnés dans des éléments PREMIS
         &lt;premis:linkingObjectIdentifier&gt; de rôle 'outcome' contenus dans l'événement PREMIS
         de type 'packageDelivery'.</iso:p>
      <iso:rule context="/mets:mets/mets:fileSec/mets:fileGrp/@USE">
         <iso:assert
            test=". = /mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='packageDelivery']/premis:linkingObjectIdentifier[premis:linkingObjectRole='outcome']/premis:linkingObjectIdentifierValue/text()"
            >Les éléments &lt;fileGrp&gt; DOIVENT être mentionnés dans des éléments PREMIS
            &lt;premis:linkingObjectIdentifier&gt; de rôle 'outcome' contenus dans l'événement
            PREMIS de type 'packageDelivery'.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 112 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Chaque élément PREMIS &lt;premis:linkingObjectIdentifier&gt; de rôle 'outcome'
         mentionné dans un événement PREMIS event de type 'packageDelivery' DOIT correspondre à un
         élément &lt;fileGrp&gt;.</iso:p>
      <iso:rule
         context="/mets:mets/mets:amdSec/mets:digiprovMD/mets:mdWrap/mets:xmlData/premis:event[premis:eventType='packageDelivery']/premis:linkingObjectIdentifier[premis:linkingObjectRole='outcome']/premis:linkingObjectIdentifierValue">
         <iso:assert test="text() = /mets:mets/mets:fileSec/mets:fileGrp/@USE">Chaque élément PREMIS
            &lt;premis:linkingObjectIdentifier&gt; de rôle 'outcome' mentionné dans un événement
            PREMIS event de type 'packageDelivery' DOIT correspondre à un élément
            &lt;fileGrp&gt;.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 113 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Si la valeur de l'attribut ORDERLABEL d'un élément &lt;div&gt; de TYPE 'object' contenu
         dans un élément &lt;structMap&gt; de TYPE 'physical' n'est pas 'NP', cet élément
         &lt;div&gt; DOIT être liée à un élément &lt;dmdSec&gt; .</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='physical']//mets:div[@TYPE='object'][not(@ORDERLABEL='NP')]">
         <iso:assert test="@DMDID">Si la valeur de l'attribut ORDERLABEL d'un élément &lt;div&gt; de
            TYPE 'object' contenu dans un élément &lt;structMap&gt; de TYPE 'physical' n'est pas
            'NP', cet élément &lt;div&gt; DOIT être liée à un élément &lt;dmdSec&gt; .</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle 114 pour multiSection (niveau MUST)</iso:title>
      <iso:p>Si le type de l'élément &lt;dc:title&gt; contenu dans un élément &lt;dmdSec&gt; lié à
         un élement &lt;div&gt; de TYPE 'object' contenu dans un élément &lt;structMap&gt; de TYPE
         'physical' n'est pas 'spar_dc:paginationR', la valeur de l'attribut ORDERLABEL de cet
         élément &lt;div&gt; DOIT être identique au contenu de l'élément &lt;dc:description&gt;
         mentionné.</iso:p>
      <iso:rule
         context="/mets:mets/mets:structMap[@TYPE='physical']//mets:div[@TYPE='object'][tokenize(string(@DMDID), ' ') = /mets:mets/mets:dmdSec[mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:title[not(@xsi:type='spar_dc:paginationR')]]/@ID]">
         <iso:let xmlns="http://www.loc.gov/METS_Profile/v2" name="divDMDID" value="@DMDID"/>
         <iso:assert
            test="@ORDERLABEL = /mets:mets/mets:dmdSec[@ID=$divDMDID]/mets:mdWrap/mets:xmlData/spar_dc:spar_dc/dc:title/text()"
            >Si le type de l'élément &lt;dc:title&gt; contenu dans un élément &lt;dmdSec&gt; lié à
            un élement &lt;div&gt; de TYPE 'object' contenu dans un élément &lt;structMap&gt; de
            TYPE 'physical' n'est pas 'spar_dc:paginationR', la valeur de l'attribut ORDERLABEL de
            cet élément &lt;div&gt; DOIT être identique au contenu de l'élément
            &lt;dc:description&gt; mentionné.</iso:assert>
      </iso:rule>
   </iso:pattern>
   <iso:pattern>
      <iso:title>Règle pour content_files (niveau )</iso:title>
      <iso:p>Les formats de fichiers autorisés dans la fileSec dépendent de l'accord de qualité de
         service qui a été négocié avec le Producteur. Ces exigences sont donc hors du périmètre de
         ce profil METS générique et seront précisées dans les profils METS spécifiques.</iso:p>
   </iso:pattern>
</iso:schema>
