<?xml version="1.0" encoding="UTF-8"?>
<!--
  Package profile de eArchiving, formato 1.0 (Phase 06.3, D-11, D-12, D-15, D-18; EVID-01).

  Documento: documentation/package-profile.xml de cada AIP. Este XSD viaja en schemas/ del propio
  AIP (D-18, criterio de 05.3: schemas/ lleva la clausura de los XSD necesarios para validar los
  XML del paquete sin red) y el documento lo referencia con xsi:schemaLocation relativo
  (../schemas/package-profile-v1.xsd).

  FORMA SELLADA. Solo crece de forma aditiva por versión: un campo nuevo es un
  package-profile-v1.1.xsd, no una edición de este. Un AIP de formato 1.0 tiene que seguir
  validando contra este fichero tal cual para siempre.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:pp="https://docs.docuten.com/earchiving/package-profile/v1"
           targetNamespace="https://docs.docuten.com/earchiving/package-profile/v1"
           elementFormDefault="qualified">

  <xs:simpleType name="canonicalUuid">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="formatVersion">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]+\.[0-9]+"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="auditRegister">
    <xs:sequence>
      <xs:element name="profile" type="xs:anyURI"/>
      <xs:element name="tenantId" type="pp:canonicalUuid"/>
      <xs:element name="sipId" type="pp:canonicalUuid"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="packageProfile">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="formatVersion" type="pp:formatVersion"/>
        <xs:element name="aipProfile" type="xs:anyURI"/>
        <xs:element name="metsProfile" type="xs:anyURI"/>
        <xs:element name="dipProfile" type="xs:anyURI"/>
        <!-- Se omite cuando el envío no declaró schemaVersionId (D-20 de 05.3): no se inventa. -->
        <xs:element name="metadataSchema" type="xs:anyURI" minOccurs="0"/>
        <xs:element name="serviceConditions" type="xs:anyURI"/>
        <!-- D-15: puntero al registro de auditoría; la lista de eventos vive solo en premis.xml. -->
        <xs:element name="auditRegister" type="pp:auditRegister"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
