mets-reader-writer
mets-reader-writer copied to clipboard
Problem: Archivematica METS Schematron doesn't support Archivematica 'registration' event type
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>