Projet

Général

Profil

Actions

Anomalie #24725

fermé

[MEDONA] Erreur de détection automatique de format de SIP

Ajouté par Cyril VAZQUEZ il y a plus d'un an. Mis à jour il y a 8 mois.

Statut:
Clôturé
Priorité:
2-Sérieux
Assigné à:
Version cible:
Début:
21/04/2023
Echéance:
Tags RM:
2.9.X

Description

A réception d'un paquet contenant un manifest au format XML, si le client ne transmet pas le formalisme le système tente de le déterminer à partir de l'espace de nom XML.

Il se réfère pour cela à la configuration medona packageSchemas:

; Schema of message exchange
packageSchemas = "{
    'seda' : {
        'label' : 'SEDA 1.0',
        'xmlNamespace' : 'fr:gouv:culture:archivesdefrance:seda:v1.0',
        'phpNamespace' : 'seda',
        'presenter' : 'seda/message'
    },
    'seda2' : {
        'label' : 'SEDA 2.1',
        'xmlNamespace' : 'fr:gouv:culture:archivesdefrance:seda:v2.0',
        'phpNamespace' : 'seda2',
        'presenter' : 'seda2/message'
    }
}"

Premier problème: c'est l'espace de nom SEDA 2.0 qui est indiqué pour le SEDA 2.

Second problème : le code source recherche l'espace de nom en bouclant sur la liste des configuration et en testant la valeur via un accès objet (->) alors que chaque schéma est défini sous la forme d'un tableau.

Code à corriger: medona/ArchiveTransfer::detectSchema

foreach ($this->packageSchemas as $name => $info) {
  if (isset($info['xmlNamespace']) && $info['xmlNamespace'] == $messageNamespace) {
    $schema = $name;
    break;
  }
}
Actions

Formats disponibles : Atom PDF