| Metadato | Valor |
|---|---|
| Versión / Version | 1.0 (provisional) |
| Estado / Status | Provisional — pendiente publicación formal |
| Namespace XML | http://www.loc.gov/METS_Profile/v2 |
| Perfil base / Base profile | E-ARK CSIP v2.2 (https://earkcsip.dilcis.eu/profile/E-ARK-CSIP.xml) |
mets/@PROFILE normativo / Normative mets/@PROFILE |
https://earkaip.dilcis.eu/profile/E-ARK-AIP-v2-2-0.xml — perfil AIP oficial de DILCIS (valor que exige el schematron) |
| URI de este perfil / This profile's URI | https://docs.docuten.com/earchiving/mets-profile/v1 (identificador estable; PRE-07 lo publica en esa dirección y la resolución la confirma DevOps —el estado de cada URI consta en docs/governance/published-uris.md—; ningún consumidor debe depender de que resuelva para validar un paquete; no es el valor de mets/@PROFILE — ver §1) |
| Paquetes cubiertos / Package types covered | CSIP · SIP · AIP (DIP: fase 3) |
| Fecha / Date | 2026-05-18 |
Este perfil extiende el estándar E-ARK CSIP v2.2 con restricciones adicionales específicas
del servicio Docuten eArchiving. Es el documento normativo que los ficheros METS.xml
generados por el sistema deben cumplir.
Corrección (D-06, fase 05.1.1). Este documento afirmaba que el atributo PROFILE de cada
METS.xml producido por el sistema referencia la URI de este perfil. Era incompatible con
la conformidad oficial: el schematron de CSIP exige en mets/@PROFILE la URL del perfil METS del
estándar, y un valor propio hace que el paquete sea rechazado (requisito SIP2/su equivalente AIP).
Se resuelve a favor de la conformidad oficial, que es el core value del producto:
mets/@PROFILE = https://earkaip.dilcis.eu/profile/E-ARK-AIP-v2-2-0.xml (valor normativo,
emitido por EARKAIP de commons-ip2).related_profile,
esta tabla y el docs/governance/mets-profile.xml), no por mets/@PROFILE.metsHdr/altRecordID) para que el
AIP siga siendo autodescriptivo respecto a esas elevaciones queda como trabajo futuro
explícitamente no descartado; requiere validar la construcción elegida contra el schematron.This profile extends the E-ARK CSIP v2.2 standard with additional restrictions specific
to the Docuten eArchiving service. It is the normative document that all METS.xml files
generated by the system must comply with.
Correction (D-06, phase 05.1.1).* This document used to state that the PROFILE attribute of
each METS.xml produced by the system references this profile's URI. That was incompatible with
official conformance: the CSIP schematron requires mets/@PROFILE to hold the URL of the standard's
METS profile, and a proprietary value causes the package to be rejected. Resolved in favour of
official conformance: mets/@PROFILE = https://earkaip.dilcis.eu/profile/E-ARK-AIP-v2-2-0.xml
(normative value). This profile remains normative as a document* — its MAY/SHOULD→MUST elevations
in §2 and §3 still apply — but is referenced by other means (related_profile, the metadata table
above and docs/governance/mets-profile.xml), not through mets/@PROFILE. Declaring the
proprietary profile inside the METS (e.g. metsHdr/altRecordID) remains explicitly-not-discarded
future work.
| Ruta | CSIP | Producto | Descripción |
|---|---|---|---|
/ (raíz) |
MUST | MUST | Carpeta raíz del paquete de información |
/METS.xml |
MUST | MUST | Descriptor estructural del paquete (METS 1.12) |
/metadata/ |
SHOULD | MUST * | Metadatos descriptivos y de preservación |
/metadata/preservation/ |
MAY | MUST ** | Metadatos PREMIS 3.0 de preservación |
/representations/ |
SHOULD | MUST *** | Al menos una representación del contenido |
/schemas/ |
SHOULD | MUST **** | XSD con los que validar los XML del paquete |
* Elevado a MUST por DOCUTEN-EARK-STR-01 (ver §3) ** Elevado a MUST por DOCUTEN-EARK-STR-02 (ver §3); aplica a paquetes AIP únicamente *** Elevado a MUST por DOCUTEN-EARK-STR-03 (ver §3); aplica a paquetes AIP únicamente **** Elevado a MUST por DOCUTEN-EARK-STR-04 (ver §3); aplica a paquetes AIP únicamente
/metadata/ obligatoria| Atributo | Valor |
|---|---|
| ID | DOCUTEN-EARK-STR-01 |
| CSIP base | CSIPSTR5 (SHOULD) |
| Nivel Docuten | MUST |
| Aplica a | CSIP · SIP · AIP |
Justificación técnica:
La carpeta /metadata/ DEBE estar presente en todos los paquetes de información. Elevación
de SHOULD a MUST por decisión de diseño interna. Motivación: simplificación operativa y
validación determinista. La ausencia de /metadata/ impide la localización unívoca de
metadatos por herramientas automatizadas, introduciendo variabilidad incompatible con los
requisitos de auditoría QTSP.
Technical justification: The /metadata/ folder MUST be present in all information packages.
Elevated from SHOULD to MUST by internal design decision. Rationale: operational simplification
and deterministic validation. The absence of /metadata/ prevents unambiguous location of
metadata by automated tools, introducing variability incompatible with QTSP audit requirements.
Evidencia de implementación:
earchiving-core/src/main/java/com/docuten/earchiving/core/pack/PackageGenerator.java
— Files.createDirectories(root.resolve("metadata")) se invoca en todas las rutas de creación
de paquetes sin condición.
/metadata/preservation/ con PREMIS 3.0 obligatoria| Atributo | Valor |
|---|---|
| ID | DOCUTEN-EARK-STR-02 |
| CSIP base | CSIPSTR6 (MAY) |
| Nivel Docuten | MUST |
| Aplica a | AIP |
Justificación técnica:
La subcarpeta /metadata/preservation/ con metadatos PREMIS 3.0 DEBE estar presente en todos
los paquetes AIP. Elevación de MAY a MUST por decisión de diseño interna. Motivación:
trazabilidad eIDAS 2.0 (Art. 45j Reg. (UE) 2024/1183) y cadena de custodia. Los metadatos
PREMIS en /metadata/preservation/ son la única fuente verificable de los eventos de
preservación (ingesta, cálculo de integridad, acceso) que exige la normativa de archivado
electrónico cualificado.
Technical justification: The /metadata/preservation/ subfolder containing PREMIS 3.0
metadata MUST be present in all AIP packages. Elevated from MAY to MUST by internal design
decision. Rationale: eIDAS 2.0 Art. 45j traceability and chain of custody requirements.
PREMIS events in /metadata/preservation/ are the only verifiable source of preservation
events (ingestion, integrity calculation, access) required by qualified electronic archiving
regulations.
Evidencia de implementación:
earchiving-core/src/main/java/com/docuten/earchiving/core/pack/PackageGenerator.java +
earchiving-core/src/main/java/com/docuten/earchiving/core/premis/PremisLibrary.java
— PremisLibrary genera el PREMIS.xml por representación; PackageGenerator lo escribe
en /metadata/preservation/ como parte del ciclo de empaquetado de AIPs.
/representations/ con al menos una representación| Atributo | Valor |
|---|---|
| ID | DOCUTEN-EARK-STR-03 |
| CSIP base | CSIPSTR9 (SHOULD) |
| Nivel Docuten | MUST |
| Aplica a | AIP |
Justificación técnica:
La carpeta /representations/ DEBE contener al menos una representación en todos los paquetes
AIP. Elevación de SHOULD a MUST por decisión de diseño interna. Motivación: un AIP sin al
menos una representación no puede satisfacer los requisitos de preservación, ya que la
representación es el contenido que se preserva. Un paquete de preservación vacío no tiene
valor archivístico ni legal.
Technical justification: The /representations/ folder with at least one representation
MUST be present in all AIP packages. Elevated from SHOULD to MUST by internal design
decision. Rationale: an AIP without at least one representation cannot satisfy preservation
requirements, as the representation is the content being preserved. An empty preservation
package has no archival or legal value.
Evidencia de implementación:
earchiving-core/src/main/java/com/docuten/earchiving/core/pack/PackageGenerator.java
— AipDescriptor.Builder.build() valida explícitamente que representations no está vacío
antes de permitir la creación del paquete; lanza excepción si no hay representaciones.
/schemas/ con la clausura transitiva de los XSD| Atributo | Valor |
|---|---|
| ID | DOCUTEN-EARK-STR-04 |
| CSIP base | CSIPSTR15 (SHOULD) |
| Nivel Docuten | MUST |
| Aplica a | AIP |
Procedencia de la base CSIP, para que nadie tenga que re-derivarla.
CSIPSTR15es el requisito estructural que gobierna la carpetaschemas/: «We recommend including all XML schema documents for any structured metadata within package. These schema documents SHOULD be placed in a sub-folder called schemas within the Information Package root folder and/or the representation folder», nivelSHOULD. Verificado contra la dependencia pineada del propio proyecto —org.roda-community:commons-ip2:2.11.2, claseorg.roda_project.commons_ip2.validator.constants220.ConstantsCSIPspec, constantesVALIDATION_REPORT_SPECIFICATION_CSIPSTR15_DESCRIPTIONy..._LEVEL—, cuyo paqueteconstants220es el juego de CSIP v2.2.0, la versión que este proyecto declara en producción. Se descartóCSIPSTR8explícitamente: es «If any other metadata are available, they MAY be included in separate sub-folders, for example an additional folder named other», nivelMAY, y no habla deschemas/. ElRELATEDMATdemets-profile.xmlcita el mismoCSIPSTR15; que los dos ficheros coincidan lo vigilaMetsProfileRequirementParityTest.
Criterio. /schemas/ transporta la clausura transitiva de los XSD necesarios para
validar los ficheros XML del paquete sin acceso a red. Es decir: no solo los esquemas que
el xsi:schemaLocation del METS.xml referencia, sino también aquellos de los que estos
dependen por <xs:import>, recursivamente, hasta cerrar la cadena.
Criterion: /schemas/ carries the transitive closure of the XSDs required to validate the
package's XML files without network access — not merely the schemas referenced by the
METS.xml's xsi:schemaLocation, but also those they depend on via <xs:import>, recursively.
Por qué no basta el criterio anterior. Hasta la Phase 05.3 el criterio era «los esquemas que
el xsi:schemaLocation del METS referencia siempre». El dc.xml que genera este producto no
lleva ningún xsi:schemaLocation, de modo que bajo aquel criterio no calificaba ni siquiera su
propio oai_dc.xsd: el único XML del paquete con metadatos del cliente se quedaba sin esquema con
el que validarse. El criterio de clausura transitiva lo resuelve y, de paso, hace el paquete
autosuficiente para un validador offline.
Contenido actual (7 ficheros). Cuatro del estándar E-ARK/METS
(DILCISExtensionMETS.xsd, DILCISExtensionSIPMETS.xsd, mets1_12.xsd, xlink.xsd) y tres de
la cadena Dublin Core: oai_dc.xsd → simpledc20021212.xsd → xml.xsd. Todos con su fixity
SHA-256 declarada en el METS.xml.
Nota para el auditor / Note for auditors. El
xml.xsdempaquetado conserva intacto su DOCTYPE oficial (<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd">), tal y como lo publica el W3C. En consecuencia, un validador externo y offline que corra conload-external-dtdhabilitado (el valor por defecto de Xerces) intentará resolver esaXMLSchema.dtdy no la encontrará dentro del paquete: deberá deshabilitar esa opción o aportar la DTD por su cuenta. No es un requisito de la validación XSD —las herramientas estándar omiten ese DOCTYPE sin incidencias, y un validador con red lo resuelve solo—, pero se documenta aquí para que nadie tenga que descubrirlo a ciegas. Las DTD se dejan deliberadamente fuera del paquete: la necesidad de una copia local es una propiedad de los validadores endurecidos, no del paquete.The bundled
xml.xsdkeeps its official DOCTYPE intact. An external offline validator running withload-external-dtdenabled (Xerces' default) will try to resolveXMLSchema.dtdand will not find it inside the package: it must either disable that option or supply the DTD itself. This is not an XSD-validation requirement — standard tooling skips it — but it is documented so nobody has to discover it blind.
Evidencia de implementación:
earchiving-core/src/main/java/com/docuten/earchiving/core/metadata/DublinCoreSchemaValidator.java
— declara la cadena transitiva y la resuelve 100% del classpath;
InformationPackageCreatedTaskletTest#aipBundlesTheThreeDublinCoreSchemasVerbatimWithRealFixity
abre el ZIP del AIP construido y comprueba, byte a byte, que schemas/ transporta las 7 entradas
con su SHA-256 real declarado en el METS — no los tamaños, los bytes.
| Atributo | Valor |
|---|---|
| ID | DOCUTEN-EARK-CRYPTO-01 |
| CSIP base | sin base (restricción interna) |
| Nivel Docuten | MUST |
| Aplica a | CSIP · SIP · AIP |
Justificación técnica:
Todos los checksums de integridad (atributo CHECKSUM en la fileSec del METS) DEBEN usar
el algoritmo SHA-256. SHA-512 está permitido como alternativa de mayor seguridad. SHA-384,
MD5 y SHA-1 están PROHIBIDOS para cualquier uso de fixity. Esta restricción es irrevocable y
aplica globalmente a todos los paquetes del sistema.
Este requisito es la aplicación a la fixity del METS de la política criptográfica de Docuten
eArchiving, publicada en https://docs.docuten.com/earchiving/crypto-policy/v1 (documento
docs/governance/crypto-policy-v1.md). Esa política es la fuente única: fija su alcance —todo uso
con valor probatorio, no solo la fixity— y contiene la tabla de contraste con ACM-ECCG, la
referencia que designa el anexo del Reg. de Ejecución (UE) 2025/2532. Este perfil no duplica su
texto.
Technical justification: All file fixity checksums (CHECKSUM attribute in METS fileSec)
MUST use SHA-256 algorithm. SHA-512 is permitted as a higher-security alternative. SHA-384,
MD5, and SHA-1 are PROHIBITED for any fixity use. This restriction is irrevocable and applies
globally to all system packages.
This requirement applies to METS fixity the Docuten eArchiving cryptographic policy, published at
https://docs.docuten.com/earchiving/crypto-policy/v1 (document
docs/governance/crypto-policy-v1.md). That policy is the single source: it sets its scope — every
use with evidentiary value, not only fixity — and holds the comparison table against ACM-ECCG, the
reference designated by the annex of Implementing Regulation (EU) 2025/2532. This profile does not
duplicate its text.
Evidencia de implementación:
earchiving-core/src/main/java/com/docuten/earchiving/core/pack/PackageGenerator.java
— MessageDigest.getInstance("SHA-256") es la única instancia de cálculo de checksum
en el motor de empaquetado; no existe código que instancie MD5, SHA-1 o SHA-384.
Origen. REQ-9.3-02 de CEN/TS 18170 —citado a través del Excel de Umbus, porque la norma de pago no se ha adquirido— dice que otros metadatos pueden categorizarse en una de tres familias amplias: «descriptivos», «administrativos» o «técnicos», y pone como ejemplo de metadato técnico el MIME type de un fichero. Este perfil usa exactamente ese vocabulario (D-18) y no introduce ninguna otra etiqueta de familia. La clasificación no es un requisito nuevo: describe dónde está cada familia en el AIP que el sistema ya genera, para que un auditor sepa dónde mirar.
Origin. REQ-9.3-02 of CEN/TS 18170 — quoted through the Umbus spreadsheet, because the paid standard has not been purchased — states that other metadata may be categorised into one of three broad families: "descriptive", "administrative" or "technical", giving a file's MIME type as an example of technical metadata. This profile uses exactly that vocabulary (D-18) and introduces no other family label. The classification is not a new requirement: it describes where each family sits in the AIP the system already produces, so an auditor knows where to look.
Una familia por fila. Las rutas y las secciones METS están verificadas contra
docs/governance/sip-aip-inventory-rules-v1.md (§3 y §6) y contra InformationPackageCreatedTasklet
(PRESERVATION_REFS, que fija los ID digiprov-1 a digiprov-4).
| Fichero o metadato del AIP | Familia (norma) / Family (standard) | Sección METS | Nota |
|---|---|---|---|
metadata/descriptive/dc.xml (Dublin Core) |
Descriptivo | dmdSec[MDTYPE=DC] |
Metadatos del cliente (INV-R02) |
metadata/other/producer/<f> y su copia declarada metadata/other/<f> |
Descriptivo | dmdSec[MDTYPE=OTHER] |
«Other» del productor (INV-R04) y copia transitoria (INV-R05) |
Objetos de metadata/preservation/premis.xml (formato con PUID por fichero, tamaño, huella) |
Técnico | amdSec/digiprovMD digiprov-1 |
El formato identificado por fichero es el análogo del ejemplo de REQ-9.3-02 |
Eventos y agentes de metadata/preservation/premis.xml |
Administrativo | amdSec/digiprovMD digiprov-1 |
Trazabilidad de preservación |
Derechos PREMIS (PremisRights) de metadata/preservation/premis.xml |
Administrativo | amdSec/digiprovMD digiprov-1 |
Declarativos; ver el hueco de B-04 más abajo |
metadata/preservation/origin-attestation.xml |
Administrativo | amdSec/digiprovMD digiprov-2 (MDTYPE=PREMIS) |
Procedencia y evidencia |
metadata/preservation/dss-validation-report.xml |
Administrativo | amdSec/digiprovMD digiprov-3 (MDTYPE=PREMIS) |
Evidencia; solo si el paso 5 declaró informe DSS |
metadata/preservation/aip-timestamp.tst |
Administrativo | amdSec/digiprovMD digiprov-4 (MDTYPE=OTHER) |
Evidencia (sello de tiempo del AIP) |
metadata/preservation/producer/** |
Administrativo | amdSec/digiprovMD[MDTYPE=PREMIS] |
Preservación del productor (INV-R03) |
documentation/package-profile.xml |
Administrativo | fileGrp[USE=Documentation] |
Perfil del paquete: URIs de los perfiles y condiciones que el AIP cita |
schemas/** |
Técnico | fileGrp[USE=Schemas] |
Esquemas para validar los XML del paquete sin red (DOCUTEN-EARK-STR-04) |
METS.xml raíz y de representación (fileSec con MIMETYPE, SIZE, CHECKSUM y USE, y el structMap) |
Técnico | fileSec, structMap |
La asignación a la familia técnica es una interpretación de Docuten: la norma de pago no se ha adquirido y el structMap no tiene familia propia en el vocabulario de la norma |
representations/<r>/data/** |
— (no es metadato) | fileGrp[USE=Representations/<r>] |
Es el contenido de información, no un metadato |
La metadata de representación del productor (representations/<r>/metadata/**, INV-R06) llega al AIP
byte a byte y se clasifica por la subcarpeta CSIP en la que la depositó el productor: descriptive
como descriptivo, technical como técnico, y preservation, source y rights como administrativo.
One family per row; paths and METS sections verified against the inventory rules (§3, §6) and the
InformationPackageCreatedTasklet. Descriptive: dc.xml and the producer's metadata/other.
Technical: the PREMIS objects (format with PUID, size, fixity), schemas/** and the METS files
themselves — the last one is a Docuten interpretation, since the paid standard has not been purchased
and the structMap has no family of its own in the standard's vocabulary. Administrative: PREMIS
events, agents and rights, the origin attestation, the DSS report, the AIP timestamp, the producer's
preservation metadata and documentation/package-profile.xml. representations/<r>/data/** is the
content, not metadata. Producer representation metadata is classified by its CSIP sub-folder.
Hueco declarado, no cerrado (B-04). Queda fuera el contenido administrativo que depende del
acuerdo de depósito. Hoy PremisRights lleva por defecto la base «contrato de servicio», que es
declarativa (docs/governance/service-conditions-v1.md §3); el acuerdo de depósito como fuente de los
«derechos de acceso» llegará con B-04. Esta clasificación sitúa los derechos en la familia
administrativa, pero no cierra ese hueco.
Declared gap, not closed (B-04). Administrative content that depends on the deposit agreement is out
of scope. PremisRights currently carries the default basis "contrato de servicio" (service
contract), which is declarative (service-conditions-v1.md §3); the deposit agreement as the source of
"access rights" arrives with B-04. This classification places rights in the administrative family but
does not close that gap.
El fichero docs/governance/mets-profile.xml es el perfil formal conforme al schema
LoC METS Profile v2, referenceable desde el atributo PROFILE del METS.xml de cada
paquete generado por el sistema.
The file docs/governance/mets-profile.xml is the formal profile conforming to the
LoC METS Profile v2 schema, referenceable from the PROFILE attribute of each package's
METS.xml file generated by the system.
URI del perfil / Profile URI:
https://docs.docuten.com/earchiving/mets-profile/v1
(identificador estable en el dominio de los perfiles de eArchiving, docs.docuten.com. PRE-07 lo
publica en esa dirección y la resolución la confirma DevOps; el estado de cada URI consta en
docs/governance/published-uris.md. Ningún consumidor debe depender de que resuelva para validar un
paquete, y no es el valor de mets/@PROFILE — ver §1. Alineado en la fase 06.3, cierra
DI-05.4-05. Es la URI que cita el elemento metsProfile del package profile de cada AIP.)
(Stable identifier. PRE-07 publishes it at that address and DevOps confirms that it resolves; the
status of each URI is recorded in docs/governance/published-uris.md. No consumer may depend on it
resolving in order to validate a package, and it is not the value of mets/@PROFILE.)
El XML se encuentra en estado provisional (STATUS="provisional", REGISTRATION="unregistered")
hasta que DevOps confirme la resolución de la URI y el servicio esté en producción.
The XML remains provisional until DevOps confirms that the URI resolves and the service is in
production.
| Versión | Fecha | Cambio |
|---|---|---|
| 1.0 | 2026-05-18 | Versión inicial — Milestone 1 |
| 1.1 | 2026-09-15 | DOCUTEN-EARK-STR-04: /schemas/ pasa a llevar la clausura transitiva de los XSD (Phase 05.3, D-21). Se añaden oai_dc.xsd, simpledc20021212.xsd y xml.xsd; nota para el auditor sobre el DOCTYPE de xml.xsd |
| 1.1 (sync) | 2026-09-15 | Phase 05.3-09: mets-profile.xml se pone al día — declara DOCUTEN-EARK-STR-04 como <requirement> con RELATEDMAT="CSIPSTR15" y lo enumera en el abstract. Aquí se añade la tabla de atributos que faltaba, con la misma base CSIP. No es un requisito nuevo: STR-04 se creó en la v1.1 y aquí solo se sincroniza el artefacto XML, que llevaba desde entonces afirmando que las elevaciones eran tres. Esa divergencia la vigila a partir de ahora MetsProfileRequirementParityTest |
| 1.1 (EVID-10, PRE-05) | 2026-11-10 | Phase 06.9-05. EVID-10: la nueva §3.3 clasifica los metadatos del AIP en descriptivos, administrativos y técnicos, con su espejo en la regla (4) de description_rules del XML. PRE-05: DOCUTEN-EARK-CRYPTO-01 remite a la política criptográfica publicada (https://docs.docuten.com/earchiving/crypto-policy/v1) y se retira la atribución errónea de una especificación ETSI al Reg. 2025/2532. PRE-07: se reconcilia la frase sobre la resolución del identificador del perfil (cabecera, §4 y regla (3) del XML). Sin subir de versión: el perfil aún no está publicado (D-04) |