mets-reader-writer icon indicating copy to clipboard operation
mets-reader-writer copied to clipboard

Problem: Archivematica METS Schematron doesn't support Archivematica 'registration' event type

Open ross-spencer opened this issue 6 years ago • 0 comments

Per here: https://github.com/artefactual/archivematica/blob/0c748d9f448b8d18961fc8cb764c0149e56fd11b/src/archivematicaCommon/lib/fileOperations.py#L81

The supported types: https://github.com/artefactual-labs/mets-reader-writer/blob/master/metsrw/resources/archivematica_mets_schematron.xml#L33

ingestion, 
message digest calculation, 
virus check, 
name cleanup, 
format identification, 
validation, 
normalization, 
fixity check, 
creation, 
unpacking, 
compression

If we try validating with schematron on a 1.7 METS, example PREMIS:

<premis:event xmlns:premis="info:lc/xmlns/premis-v2" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" version="2.2">
            <premis:eventIdentifier>
              <premis:eventIdentifierType>UUID</premis:eventIdentifierType>
              <premis:eventIdentifierValue>0e745fb1-171a-404a-ab71-7d845c042d25</premis:eventIdentifierValue>
            </premis:eventIdentifier>
            <premis:eventType>registration</premis:eventType>
            <premis:eventDateTime>2018-04-04T10:37:06.517039+00:00</premis:eventDateTime>
            <premis:eventDetail></premis:eventDetail>
            <premis:eventOutcomeInformation>
              <premis:eventOutcome></premis:eventOutcome>
              <premis:eventOutcomeDetail>
                <premis:eventOutcomeDetailNote>accession#am_camp_1</premis:eventOutcomeDetailNote>
              </premis:eventOutcomeDetail>
            </premis:eventOutcomeInformation>
            <premis:linkingAgentIdentifier>
              <premis:linkingAgentIdentifierType>preservation system</premis:linkingAgentIdentifierType>
              <premis:linkingAgentIdentifierValue>Archivematica-1.7</premis:linkingAgentIdentifierValue>
            </premis:linkingAgentIdentifier>
            <premis:linkingAgentIdentifier>
              <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType>
              <premis:linkingAgentIdentifierValue>test</premis:linkingAgentIdentifierValue>
            </premis:linkingAgentIdentifier>
            <premis:linkingAgentIdentifier>
              <premis:linkingAgentIdentifierType>Archivematica user pk</premis:linkingAgentIdentifierType>
              <premis:linkingAgentIdentifierValue>1</premis:linkingAgentIdentifierValue>
            </premis:linkingAgentIdentifier>
          </premis:event>

We see:

 <svrl:failed-assert test="contains($premisEventTypes, m:xmlData/p:event/p:eventType)" location="/*[local-name()=\'mets\' and namespace-uri()=\'http://www.loc.gov/METS/\']/*[local-name()=\'amdSec\' and namespace-uri()=\'http://www.loc.gov/METS/\'][14]/*[local-name()=\'digiprovMD\' and namespace-uri()=\'http://www.loc.gov/METS/\'][2]/*[local-name()=\'mdWrap\' and namespace-uri()=\'http://www.loc.gov/METS/\']">
    <svrl:text>A PREMIS event MUST be of a recognized eventType. (registration is not in ingestion, message digest calculation, virus check, name cleanup, format identification, validation, normalization, fixity check, creation, unpacking, compression)</svrl:text>
  </svrl:failed-assert>

ross-spencer avatar Apr 04 '18 13:04 ross-spencer