# 7.12.2.5. Vérifier SEDA

## 7.12.2.5.1. Algorithme

1. Vérifier la validation du seda (SedaUtils->checkSedaValidation)

   > 1. Vérifier l’existance de manifest.xml (SedaUtils->checkExistenceManifest)
   > 2. Valider manifest.xml en utilisant XSD (ValidationXsdUtils->checkWithXSD et getSchema)

2. Vérifier le nombre de BinaryDataObject (CheckObjectsNumberActionHandler)
     - Si le nombre de BinaryDataObject dans manifest.xml n’est pas égal à le nombre dans workspace
     - Lister toutes les objets numériques non référencés (CheckObjectsNumberActionHandler->foundUnreferencedDigitalObject)

3. Récupérer toutes les informations des BinaryDataObject (SedaUtils->getBinaryObjectInfo)

   - En parcourant manifest.xml, récupère les informations des BinaryDataObject
   - En type map(ID de BinaryDataObject, BinaryObjectInfo)
   - BinaryObjectInfo inclut id, uri, version, empreint, type d’empreint …

4. Vérifier les versions de BinaryDataObject

   > 1. Créer la liste de version de manifest.xml (SedaUtils->manifestVersionList)
   > 2. Comparer la liste avec le fichier version.conf (SedaUtils->compareVersionList)
   >      - S’il y a la version invalide, stocker dans une liste de version invalide.
   >      - Si la liste de version invalide n’est pas vide, handler retourne la réponse avec statut « Warning ».
   > 3. Journalisation de l’action CheckVersion

5. Vérifier les empreintes de BinaryDataObject

   > 1. Récupération d’empreinte du GUID/objects/SIP/content/<uri_correspondent> (WorkspaceClient->computeObjectDigest)
   > 2. Créer la liste d’empreinte de manifest.xml
   > 3. Comparer les empreintes (SedaUtils->compareDigestMessage)
   >      - S’il y a la version invalide, stocker dans une liste de version invalide.
   >      - Si la liste de version invalide n’est pas vide, handler retourne la réponse avec status « Warning ».
   > 4. Journalisation de l’action CheckConformity