TÍTULO: Manual de usuario de los esquemas XML para intercambio de documentos electrónicos y expedientes electrónicos

Elaboración y coordinación de contenidos:

Dirección de Tecnologías de la Información y las Comunicaciones

Características: Adobe Acrobat 5.0

Responsable edición digital: Subdirección General de Información, Documentación y Publicaciones

2ª Edición electrónica: enero de 2015

Disponible esta publicación en el área de Accesibilidad del Portal de Administración Electrónica (PAe):

http://administracionelectronica.gob.es/

Edita:

© Ministerio de Hacienda y Administraciones Públicas

Secretaría General Técnica

Subdirección General de Información,

Documentación y Publicaciones

Centro de Publicaciones

Colección: administración electrónica

NIPO: 630-15-033-7

El presente documento está bajo la licencia Creative Commons Reconocimiento-Compartir Igual versión 4.0 España.

Usted es libre de:

– Copiar, distribuir y comunicar públicamente la obra

– Hacer obras derivadas.

Bajo las condiciones siguientes:

– Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

– Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.

Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.

Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Esto es un resumen legible por humanos del texto legal (la licencia completa) disponible en:

http://creativecommons.org/licenses/by-nc-sa/4.0/deed.es

ÍNDICE

1. Objeto e introducción

2. Diseño e implementación

2.1. Descripción del modelo

2.2. Descripción de la implementación

2.2.1. Características generales

2.2.2. documentoEni.xsd

2.2.3. contenidoDocumentoEni.xsd

2.2.4. metadatosDocumentoEni.xsd

2.2.5. firmasEni.xsd

2.2.6. expedienteEni.xsd

2.2.7. IndiceExpedienteEni.xsd

2.2.8. IndiceContenidoExpedienteEni.xsd

2.2.9. MetadatosExpedienteEni.xsd

2.3. Integración con otras estructuras XML

2.4. Consideraciones para la extensión

3. Construcción de un documento electrónico

3.1. Consideraciones generales

3.1.1. Tratamiento de ficheros de contenido firmados

3.1.2. Firma sobre la estructura de documento electrónico ENI

3.2. Bloque Contenido

3.2.1. Contenido en XML

3.2.2. Contenido codificado

3.2.3. Contenido referenciado

3.3. Bloque Metadatos

3.4. Bloque Firmas

3.4.1. Firma con CSV

3.4.2. Firma con XAdES internally detached

3.4.3. Firma con XAdES enveloped

3.4.4. Firma con CAdES detached

3.4.5. Firma con CAdES attached

3.4.6. Firma con PAdES

3.5. Documento electrónico ENI en modo enveloped

3.6. Documento electrónico ENI en modo enveloping

3.6.1. Ejemplo de Documento electrónico integrado en una estructura CODICE

4. Construcción de un expediente electrónico

4.1. Bloque índice del expediente electrónico

4.1.1. Contenido del índice de expediente

4.1.2. Firmas del índice de expediente

4.2. Bloque de metadatos del expediente

4.3. Elemento visualización del índice

Anexo I. Equipo responsable del proyecto

Anexo II. Resumen tratamiento de tipos de firma

ÍNDICE DE FIGURAS

Figura 1. Módulos que componen el esquema

Figura 2. Estructura general de los XSDs ENI

Figura 3. Componentes del documento electrónico

Figura 4. XSD de Documento electrónico

Figura 5. XSD de contenido del documento electrónico

Figura 6. Modos de inclusión de ficheros de contenido en el documento electrónico

Figura 7. XSD de metadatos del documento electrónico

Figura 8. XSD de firmas

Figura 9. Modos de inclusión de firmas en el documento electrónico

Figura 10. Componentes del expediente electrónico

Figura 11. XSD de Expediente electrónico

Figura 12. XSD de Índice del expediente electrónico

Figura 13. XSD de contenido del índice del expediente electrónico

Figura 14. XSD de metadatos del expediente electrónico

Figura 15. Componentes del documento electrónico

Figura 16. Fichero firmado incluido en Contenido y referenciado desde Firma

Figura 17. Fichero firmado incluido en Firma y referenciado desde Contenido

Figura 18. Fichero incluido en Contenido cuya firma se encuentra en Firma

Figura 19. Fichero incluido en Contenido cuya firma XAdES internally detached se incluye en Firma

Figura 20. Fichero firmado mediante XAdES enveloped incluido en Contenido y referenciado desde Firma

Figura 21. Fichero firmado mediante XAdES enveloped de todo el documento electrónico bajo la estructura ENI

Figura 22. Ejemplo de documento electrónico que integra otra estructura XML firmada

Figura 23. Ejemplo de documento electrónico dentro de una estructura CODICE

Figura 24. Componentes del expediente electrónico

Figura 25. Documento Indizado

Figura 26. Expediente Indizado

Figura 27. Carpeta Indizada

ÍNDICE DE TABLAS

Tabla 1. Módulos del esquema

Tabla 2. Espacios de nombres en los esquemas

Tabla 3. Elementos de firma a utilizar según el tipo de firma

Tabla 4. Resumen tratamiento de tipos de firma

ÍNDICE DE EJEMPLOS DE CÓDIGO

Ejemplo de código 1. Atributo Id

Ejemplo de código 2. Descripción de los tipos enumerados del esquema

Ejemplo de código 3. documentoEni.xsd

Ejemplo de código 4. contenidoDocumentoEni.xsd

Ejemplo de código 5. metadatosDocumentoEni.xsd

Ejemplo de código 6. firmasEni.xsd

Ejemplo de código 7. expedienteEni.xsd

Ejemplo de código 8. IndiceExpedienteEni.xsd

Ejemplo de código 9. IndiceContenidoExpedienteEni.xsd

Ejemplo de código 10. MetadatosExpedienteEni.xsd

Ejemplo de código 11. Creación del documento_I

Ejemplo de código 12. Creación del documento_II

Ejemplo de código 13. Contenido con datos incluidos en el XML

Ejemplo de código 14. Contenido con datos incluidos en el XML con identificador

Ejemplo de código 15. Contenido con un fichero binario codificado en base64

Ejemplo de código 16. Contenido con referencia interna al fichero

Ejemplo de código 17. Bloque metadatos

Ejemplo de código 18. Uso del atributo ref del bloque de firma

Ejemplo de código 19. Bloque de firma

Ejemplo de código 20. Firma con CSV

Ejemplo de código 21. Firma XAdES internally detached previamente construida

Ejemplo de código 22. Firma XAdES internally detached

Ejemplo de código 23. Firma XAdES enveloped del contenido

Ejemplo de código 24. Firma XAdES enveloped de todo el documento electrónico

Ejemplo de código 25. Firma CAdES detached/explicit signature

Ejemplo de código 26. Firma CAdES attached incluida en el bloque de firma

Ejemplo de código 27. Firma CAdES attached referenciada desde el bloque de firma

Ejemplo de código 28. Firma PAdES

Ejemplo de código 29. Documento electrónico incluido en una estructura CODICE

Ejemplo de código 30. Construcción de expediente

Ejemplo de código 31. Índice de expediente

Ejemplo de código 32. Contenido del índice del expediente

Ejemplo de código 33. Construcción de metadatos de expediente

Histórico de versiones del documento

Nombre del documento

Fecha

Descripción

20110901_ENI_XSD_Manual_De_Usuario_Esquema

01/09/2011

Primera versión.

20141217_ENI_XSD_Manual_De_Usuario_Esquema

17/12/2014

Con el fin de evitar confusiones en la construcción de documentos electrónicos a partir de facturas u otros documentos XML con firma XAdES, en 3.5 se introduce una precisión sobre el uso del modo enveloping cuando se desea integrar estructuras XML que incluyen firma XAdES apuntando a la raíz del documento a través del elemento <ds:Reference URI=””>, con el atributo URI vacío. Se elimina el apartado 3.5.1.

1. OBJETO E INTRODUCCIÓN

1. Las Normas Técnicas de Interoperabilidad de Documento electrónico y Expediente electrónico del Esquema Nacional de Interoperabilidad (en adelante, ENI) definen esquemas XML (en adelante, XSD) como herramienta para la interoperabilidad en el intercambio de documentos y expedientes electrónicos.

2. Como documentación de apoyo a la aplicación de dichos esquemas, este manual recoge:

Descripción técnica del diseño de los XSDs, implementación completa y consideraciones para su integración en otras estructuras XML y para la extensión del modelo.

Pautas para la generación de XMLs de documentos electrónicos y expedientes electrónicos atendiendo a los XSDs del ENI

3. Este Manual se corresponde con los esquemas XML incluidos como anexos en:

Resolución de 19 de julio de 2011, de la Secretaría de Estado para la Función Pública, por la que se aprueba la Norma Técnica de Interoperabilidad de Documento Electrónico (en adelante NTI de Documento Electrónico).

http://www.boe.es/diario_boe/txt.php?id=BOE-A-2011-13169

Resolución de 19 de julio de 2011, de la Secretaría de Estado para la Función Pública, por la que se aprueba la Norma Técnica de Interoperabilidad de Expediente Electrónico (en adelante NTI de Expediente Electrónico).

http://www.boe.es/diario_boe/txt.php?id=BOE-A-2011-13170

2. DISEÑO E IMPLEMENTACIÓN

4. Los siguientes apartados recogen la descripción funcional del esquema ENI atendiendo a la descripción de los criterios seguidos para el diseño de los diferentes módulos que lo componen.

2.1. Descripción del modelo

5. El diseño completo del esquema ENI está compuesto por 8 XSDs implementados a medida y un XSD externo vinculado (xmldsig-core-schema.xsd) de la especificación XMLDSig que se emplea en las firmas de tipo XAdES.

6. Este modelo de XSDs del ENI sigue un diseño modular que favorece su reutilización e interoperabilidad con otros esquemas existentes.

En la implementación, puede distinguirse dos tipos de módulos:

Módulo estructural: que define una estructura destinada a ordenar y contener otros módulos.

Módulo de contenido: que alberga el contenido final del componente descrito.

7. De este modo, los módulos pueden en unos casos contener a otros (módulos estructurales) o ser incluidos dentro de otros (módulos de contenido y estructurales).

8. El listado completo de los XSDs diseñados para atender a las necesidades del ENI se incluye en la siguiente tabla:

Tabla 1. Módulos del esquema

Módulo

Tipo módulo

Nombre XSD

Tipo de contenido a generar

Documento electrónico

Estructural y contenido

documentoEni.xsd

Documento electrónico

Contenido del documento electrónico

Contenido

contenidoDocumentoEni.xsd

Documento electrónico

Metadatos del documento electrónico

Contenido

metadatosDocumentoEni.xsd

Documento electrónico

Firmas

Estructural y contenido

firmasEni.xsd

Documento electrónico

Expediente electrónico

Expediente electrónico

Estructural y contenido

expedienteEni.xsd

Expediente electrónico

Índice expediente electrónico

Estructural y contenido

IndiceExpedienteEni.xsd

Expediente electrónico

Contenido del índice electrónico

Contenido

IndiceContenidoExpedienteEni.xsd

Expediente electrónico

Metadatos del expediente electrónico

Contenido

MetadatosExpedienteEni.xsd

Expediente electrónico

9. Las relaciones entre los diferentes módulos que conforman el esquema se representan en la Figura 1.

Figura 1. Módulos que componen el esquema.

10. En el modelo implementado, existen dos módulos principales, documentoEni y expedienteEni, que referencian al resto para su construcción. Sobre el resto de módulos, destacar que:

Los módulos contenidoDocumentoEni y firmasEni se instancian en los dos módulos principales.

Para el tratamiento de los metadatos, el esquema incluye dos módulos diferentes, uno para documento electrónico (metadatosDocumentoEni) y otro para expediente (MetadatosExpedienteEni) con los que se da respuesta a la casuística particular de cada uno de ellos.

Para el tratamiento de expedientes electrónicos, se han desarrollado módulos específicos para el índice electrónico (IndiceExpedienteEni, IndiceContenidoExpedienteEni) definiendo tanto el contenido como la obligatoriedad de existencia de una firma relacionada.

2.2. Descripción de la implementación

2.2.1. Características generales

11. Como ya se ha mencionado, el esquema ENI está formado por los siguientes 8 XSDs¹:

documentoEni.xsd

contenidoDocumentoEni.xsd

metadatosDocumentoEni.xsd

firmasEni.xsd

expedienteEni.xsd

IndiceExpedienteEni.xsd

IndiceContenidoExpedienteEni.xsd

MetadatosExpedienteEni.xsd

12. Todos ellos comparten las siguientes características generales:

Son XSDs formales según la especificación de W3C (http://www.w3.org/2001/XMLSchema) codificados en UTF-8.

Poseen un espacio de nombres propio² (namespace) que facilita su instanciación desde el resto de módulos.

Tabla 2. Espacios de nombres en los esquemas

Esquema XSD

Espacio de nombres

documentoEni.xsd

enidoc

contenidoDocumentoEni.xsd

enifile

metadatosDocumentoEni.xsd

enidocmeta

firmasEni.xsd

enids

expedienteEni.xsd

eniexp

IndiceExpedienteEni.xsd

eniexpind

IndiceContenidoExpedienteEni.xsd

eniconexpind

MetadatosExpedienteEni.xsd

eniexpmeta

Poseen un elemento o nodo principal con un atributo opcional (de tipo xsd:ID³) Id que permite una identificación única de dicho elemento dentro del esquema que lo contiene. Este atributo permite que el elemento identificado pueda ser utilizado por otros elementos que utilicen elementos o atributos de referencia. Por lo tanto, a pesar de que este atributo es opcional, dada su utilidad se recomienda siempre su inclusión.

Ejemplo de código 1. Atributo Id

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

Uso de elementos de tipo enumerado que contienen una lista cerrada de posibles valores. Para simplificar el diseño y prevenir posibles errores en la introducción de los datos en los distintos elementos, el esquema incluye una codificación de dichos valores cuya correspondencia se refleja a modo de anotación. Según esto, para cada elemento enumerado incluido en los esquemas se aplica la siguiente estructura:

Ejemplo de código 2. Descripción de los tipos enumerados del esquema

<!-- Elemento de tipo enumerado -->

<xsd:element name="NombreElemento" type="espaciodenombres:NombreTipoEnumerado">

<!-- Anotación en el elemento con la tabla de correspondencia -->

<xsd:annotation>

<xsd:documentation xml:lang="es">

Codigo1 – Valor1.

Codigo2 – Valor2.

...

CodigoN – ValorN.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<!-- Lista de valores del tipo enumerado -->

<xsd:simpleType name="NombreTipoEnumerado ">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="Codigo1"/>

<xsd:enumeration value="Codigo2"/>

...

<xsd:enumeration value="CodigoN"/>

</xsd:restriction>

</xsd:simpleType>

13. La estructura general de cada esquema es la siguiente:

Figura 2. Estructura general de los XSDs ENI.

2.2.2. documentoEni.xsd

14. El módulo documentoEni.xsd es un módulo estructural y de contenido que hace uso de otros tres módulos:

Módulo de contenido de documento: contenidoDocumentoEni.xsd.

Módulo de metadatos de documento: metadatosDocumentoEni.xsd.

Módulo de firmas: firmasEni.xsd.

Figura 3. Componentes del documento electrónico.

15. Este esquema refleja directamente la estructura de un documento electrónico conforme a la NTI de Documento Electrónico.

Figura 4. XSD de Documento electrónico.

16. El elemento principal (documento) permite construir un documento electrónico compuesto por:

Obligatoriamente:

Un fichero de contenido conforme al esquema contenidoDocumentoEni.xsd

Resto de metadatos mínimos obligatorios para el documento electrónico conformes al esquema metadatosDocumentoEni.xsd.

Opcionalmente:

Un identificador único (atributo Id) dentro del esquema (ver apartado 2.2).

Condicionalmente:

Una o más firmas conforme al esquema firmasEni.xsd: obligatoriamente para el caso de documentos electrónicos administrativos, o aquellos susceptibles de formar parte de un expediente electrónico.

17. Su espacio de nombres es enidoc y en la implementación del módulo se observa la forma en que trabaja con el resto de módulos.

Ejemplo de código 3. documentoEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD DOCUMENTO ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:import

namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos/metadatosDocumentoEni.xsd"/>

<xsd:import namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma/firmasEni.xsd"/>

<xsd:import

namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido/contenidoDocumentoEni.xsd"/>

<xsd:element name="documento" type="enidoc:TipoDocumento">

<xsd:annotation>

<xsd:documentation xml:lang="es">El elemento "documento" podrá aparecer como elemento raíz de un documento XML objeto de intercambio o como elemento no raíz (elemento hijo).</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:complexType name="TipoDocumento">

<xsd:sequence>

<xsd:element ref="enifile:contenido"/>

<xsd:element ref="enidocmeta:metadatos"/>

<xsd:element ref="enids:firmas" minOccurs="0" maxOccurs="1">

<xsd:annotation>

<xsd:documentation xml:lang="es">La firma es obligatoria para el documento administrativo electrónico y para todo aquel documento electrónico susceptible de ser incorporado en un expediente electrónico.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

</xsd:schema>

2.2.3. contenidoDocumentoEni.xsd

18. El módulo de contenidoDocumentoEni.xsd es un módulo de contenido que, como tal, no hace uso de otros módulos.

Figura 5. XSD de contenido del documento electrónico.

19. Este esquema refleja el contenido del documento electrónico como tal e incluye un atributo opcional Id, el metadato NombreFormato⁴, que incluirá el valor del formato del fichero, y el propio fichero de contenido que puede ser tratado de las siguientes formas:

Fichero incluido en formato XML (DatosXML). En este caso, se ha de tener en cuenta que si la codificación del fichero XML a incluir difiere de la del documento, sería necesario incluir una cláusula CDATA.

Fichero incluido en formato binario en base64 (ValorBinario), modalidad que puede ser utilizada en caso de necesitar incluir bajo el XSD un fichero no XML.

Fichero referenciado (referenciaFichero), a utilizar cuando el fichero de contenido está dentro de la estructura XML que se trate, por las razones que fuere, no se incluye directamente dentro del bloque Contenido. Se utilizaría, por ejemplo, en estructuras complejas en las que el fichero de contenido del documento está en otro nodo del mismo XML. Dado que a nivel de esquema XSD no se pueden establecer restricciones para estas referencias, esto es, no se puede limitar técnicamente el destino de la referencia a puntos internos a la estructura XML, esta consideración se incluye como anotación.

Figura 6. Modos de inclusión de ficheros de contenido en el documento electrónico.

20. El espacio de nombres de este esquema es enifile y su implementación se incluye a continuación.

Ejemplo de código 4. contenidoDocumentoEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD CONTENIDO DOCUMENTO ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:element name="contenido" type="enifile:TipoContenido"/>

<xsd:complexType name="TipoContenido">

<xsd:sequence>

<xsd:choice>

<xsd:element name="DatosXML" type="xsd:anyType">

<xsd:annotation>

<xsd:documentation xml:lang="es">Contenido en formato XML. En caso de datos XML cuya codificación difiera de la de esta estructura raíz se incluirá una cláusula CDATA.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="ValorBinario" type="xsd:base64Binary">

<xsd:annotation>

<xsd:documentation xml:lang="es">Contenido en base64.</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="referenciaFichero" type="xsd:string">

<xsd:annotation>

<xsd:documentation xml:lang="es">Referencia interna al fichero de contenido. </xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:choice>

<xsd:element name="NombreFormato" type="xsd:string">

<xsd:annotation>

<xsd:documentation xml:lang="es">El formato del fichero de contenido del documento electrónico atenderá a lo establecido en la NTI de Catálogo de estándares.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

</xsd:schema>

2.2.4. metadatosDocumentoEni.xsd

21. El módulo de metadatosDocumentoEni.xsd es un módulo de contenido que, como tal, no hace uso de otros módulos.

Figura 7. XSD de metadatos del documento electrónico.

22. Este esquema refleja el listado de los metadatos mínimos obligatorios para el intercambio de documentos electrónicos conforme a lo establecido en la NTI de Documento Electrónico, con excepción de los relativos a la firma electrónica, que se incluyen en el esquema firmasEni.xsd y el nombre de formato que se incluye en el esquema contenidoDocumentoEni.xsd.

23. Su espacio de nombres es enidocmeta y su implementación se incluye a continuación.

Ejemplo de código 5. metadatosDocumentoEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD METADATOS DOCUMENTO ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:element name="metadatos" type="enidocmeta:TipoMetadatos"/>

<xsd:complexType name="TipoMetadatos">

<xsd:sequence>

<xsd:element name="VersionNTI" type="xsd:anyURI"/>

<xsd:element name="Identificador" type="xsd:string"/>

<xsd:element name="Organo" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element name="FechaCaptura" type="xsd:dateTime"/>

<xsd:element name="OrigenCiudadanoAdministracion" type="xsd:boolean"/>

<xsd:element name="EstadoElaboracion" type="enidocmeta:TipoEstadoElaboracion">

<xsd:annotation>

<xsd:documentation xml:lang="es">

- EE01 - Original.

- EE02 - Copia electrónica auténtica con cambio de formato.

- EE03 - Copia electrónica auténtica de documento papel.

- EE04 - Copia electrónica parcial auténtica.

- EE99 - Otros.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

<xsd:element name="TipoDocumental" type="enidocmeta:tipoDocumental">

<xsd:annotation>

<xsd:documentation xml:lang="es">

/*Documentos de decisión*/

- TD01 - Resolución.

- TD02 - Acuerdo.

- TD03 - Contrato.

- TD04 - Convenio.

- TD05 - Declaración.

/*Documentos de transmisión*/

- TD06 - Comunicación.

- TD07 - Notificación.

- TD08 - Publicación.

- TD09 - Acuse de recibo.

/*Documentos de constancia*/

- TD10 - Acta.

- TD11 - Certificado.

- TD12 - Diligencia.

/*Documentos de juicio*/

- TD13 - Informe.

/*Documentos de ciudadano*/

- TD14 - Solicitud.

- TD15 - Denuncia.

- TD16 - Alegación.

- TD17 - Recursos.

- TD18 - Comunicación ciudadano.

- TD19 - Factura.

- TD20 - Otros incautados.

/*Otros*/

- TD99 - Otros.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

<xsd:complexType name="TipoEstadoElaboracion">

<xsd:sequence>

<xsd:element name="ValorEstadoElaboracion" type="enidocmeta:enumeracionEstadoElaboracion"/>

<xsd:element name="IdentificadorDocumentoOrigen" type="xsd:string" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

<!-- Enumeración de estados de elaboración -->

<xsd:simpleType name="enumeracionEstadoElaboracion">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="EE01"/>

<xsd:enumeration value="EE02"/>

<xsd:enumeration value="EE03"/>

<xsd:enumeration value="EE04"/>

<xsd:enumeration value="EE99"/>

</xsd:restriction>

</xsd:simpleType>

<!-- Enumeración de tipos documentales -->

<xsd:simpleType name="tipoDocumental">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="TD01"/>

<xsd:enumeration value="TD02"/>

<xsd:enumeration value="TD03"/>

<xsd:enumeration value="TD04"/>

<xsd:enumeration value="TD05"/>

<xsd:enumeration value="TD06"/>

<xsd:enumeration value="TD07"/>

<xsd:enumeration value="TD08"/>

<xsd:enumeration value="TD09"/>

<xsd:enumeration value="TD10"/>

<xsd:enumeration value="TD11"/>

<xsd:enumeration value="TD12"/>

<xsd:enumeration value="TD13"/>

<xsd:enumeration value="TD14"/>

<xsd:enumeration value="TD15"/>

<xsd:enumeration value="TD16"/>

<xsd:enumeration value="TD17"/>

<xsd:enumeration value="TD18"/>

<xsd:enumeration value="TD19"/>

<xsd:enumeration value="TD20"/>

<xsd:enumeration value="TD99"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:schema>

2.2.5. firmasEni.xsd

24. El módulo de firmasEni.xsd es un módulo estructural y de contenido que hace uso del esquema externo xmldsig-core-schema.xsd.

Figura 8. XSD de firmas.

25. Este esquema incluiría la firma de un documento electrónico⁵ y, cuando es instanciado desde el expediente electrónico, la firma del índice del expediente.

26. El diseño de este esquema responde a lo establecido en la NTI de Documento Electrónico, para lo cual, contiene:

Obligatoriamente:

Tipo de firma utilizado (TipoFirma), conforme a los tipos identificados en la anotación correspondiente.

Contenido de la firma, que según el tipo de firma puede ser:

Valor del Código Seguro de Verificación (CSV).

Para firmas basada en certificados, diferentes formas de inclusión o referencia:

Codificada en base64 (FirmaBase64).

Nodo ds:Signature del estándar XMLDSig.

ReferenciaFirma⁶ apuntando al nodo del XML que incluye la firma.

Opcionalmente:

Atributo Id: Identificador único del bloque de firma en el esquema.

Atributo ref para identificar el nodo o nodos que incluyen el contenido que avala la firma electrónica. En firmas XAdES, este atributo equivaldría a la etiqueta ds:reference, pero su utilización puede ser de utilidad en caso de firmas que no incluyen sistemas de referenciado así como en firmas XAdES realizadas sobre varios nodos del esquema una vez construido. En este caso, los nodos que se firmen del documento electrónico aparecerían en forma de lista de identificadores separados por coma. Por ejemplo:

<firma Id=”firm_01” ref=”#con_01, #con_02”>

Figura 9. Modos de inclusión de firmas en el documento electrónico.

27. Dado que el elemento enids:firma tiene cardinalidad [0…N], si un documento electrónico tiene más de una firma electrónica, este esquema permite incluir de manera secuencial tantos elementos firma como sea necesario. De esta forma, en el caso de firmas con certificado que sirven también para obtener un CSV se reflejan en este esquema como dos firmas independientes, aunque implícitamente existiese una relación entre ambas.

Nótese que el modelo diseñado, no define ningún tipo de restricción para las relaciones entre firmas, en caso de firmas múltiples, esto es, la aplicación de contrafirmas y cofirmas es independiente a este esquema ya que las relaciones entre firmas serán cualidades de propias de cada una de ellas.

28. Tal y como aparece en la anotación correspondiente, los tipos de firma soportados en el modelo son: CSV, XAdES internally detached, XAdES enveloped, CAdES detached, CAdES attached y PAdES.

29. El esquema desarrollado permite tanto la inclusión de firmas generadas previamente sobre el contenido de un determinado documento, como la generación de éstas sobre el documento en estructura XSD de intercambio del ENI. Por tanto, dependiendo del caso y necesidades, un mismo tipo de firma podrá trasladarse al esquema ENI a través de un elemento u otro del esquema. Aunque la descripción de cada caso se desarrolla en el apartado siguiente de este documento, la siguiente tabla incluye un resumen de los elementos a utilizar en cada caso.

Tabla 3. Elementos de firma a utilizar según el tipo de firma

Elemento del esquema

Tipo de firma

enids:CSV

CSV

enids:FirmaBase64

CAdES detached

ds:Signature

XAdES internally detached generadas una vez construido el XML según el XSD del ENI.

XAdES enveloped generada sobre el documento electrónico ENI completo.

enids:ReferenciaFirma

CAdES attached

PAdES

XAdES internally detached previamente generada sobre el fichero de contenido.

XAdES enveloped previamente generada sobre el fichero de contenido.

30. Su espacio de nombres es enids y en la implementación del módulo se observa la forma en que trabaja con el resto de módulos.

Ejemplo de código 6. firmasEni.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma "

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma "

elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD FIRMAS ELECTRONICAS ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>

<xsd:element name="firmas" type="enids:firmas"/>

<xsd:complexType name="firmas">

<xsd:sequence>

<xsd:element name="firma" type="enids:TipoFirmasElectronicas" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="TipoFirmasElectronicas">

<xsd:sequence>

<xsd:element name="TipoFirma">

<xsd:annotation>

<xsd:documentation xml:lang="es">

- TF01 - CSV.

- TF02 - XAdES internally detached signature.

- TF03 - XAdES enveloped signature.

- TF04 - CAdES detached/explicit signature.

- TF05 - CAdES attached/implicit signature.

- TF06 - PAdES.

</xsd:documentation>

</xsd:annotation>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="TF01"/>

<xsd:enumeration value="TF02"/>

<xsd:enumeration value="TF03"/>

<xsd:enumeration value="TF04"/>

<xsd:enumeration value="TF05"/>

<xsd:enumeration value="TF06"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="ContenidoFirma">

<xsd:complexType>

<xsd:choice>

<xsd:element name="CSV">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ValorCSV" type="xsd:string"/>

<xsd:element name="RegulacionGeneracionCSV" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="FirmaConCertificado">

<xsd:complexType>

<xsd:choice>

<xsd:element name="FirmaBase64" type="xsd:base64Binary"/>

<xsd:element ref="ds:Signature"/>

<xsd:element name="ReferenciaFirma">

<xsd:annotation>

<xsd:documentation xml:lang="es">

Referencia interna al fichero que incluye la firma.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:choice>

</xsd:complexType>

</xsd:element>

</xsd:choice>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

<xsd:attribute name="ref" type="xsd:string" use="optional">

<xsd:annotation>

<xsd:documentation xml:lang="es">Almacena el identificador del nodo que se está firmando. En caso de firmas multinodo, se incluirá una lista separada por comas de los identificadores de los nodos firmados.

</xsd:documentation>

</xsd:annotation>

</xsd:attribute>

</xsd:complexType>

</xsd:schema>

2.2.6. expedienteEni.xsd

31. El módulo expedienteEni.xsd es un módulo estructural y de contenido que hace uso de otros tres módulos:

Módulo de índice de expediente: IndiceExpedienteEni.xsd.

Módulo de metadatos de expediente: MetadatosExpedienteEni.xsd.

Módulo de contenido de documento: contenidoDocumentoEni.xsd para el elemento opcional de Visualización del índice.

Figura 10. Componentes del expediente electrónico.

32. Este esquema refleja la estructura de un expediente electrónico conforme a la NTI de Expediente Electrónico.

Figura 11. XSD de Expediente electrónico.

33. Por tanto, el elemento principal (expediente) permite construir un expediente electrónico compuesto por:

Obligatoriamente:

Un índice del expediente electrónico conforme al esquema IndiceExpedienteEni.xsd, que incluye el propio contenido (IndiceContenidoExpedienteEni.xsd) y su firma.

Metadatos mínimos obligatorios para el intercambio de expedientes electrónicos conformes al esquema MetadatosExpedienteEni.xsd.

Opcionalmente:

Un identificador único (atributo Id) dentro del esquema tal y como se define en el apartado 2.2.

Un elemento definido para incluir una visualización completa o parcial del expediente electrónico (VisualizacionIndice). Este elemento es un objeto que utiliza el tipo de contenido definido en el esquema contenidoDocumentoEni.xsd con el fin de proporcionar información del expediente a través de un formato más fácilmente manejable para un tratamiento manual. Para más información véase el apartado 4.3.

34. Su espacio de nombres es eniexp y en la implementación del módulo se observa la forma en que trabaja con el resto de módulos.

Ejemplo de código 7. expedienteEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:eniexpind="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e"

xmlns:eniexpmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos"

xmlns:eniexp="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD EXPEDIENTE ELECTRONICO ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:import

namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e" schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/IndiceExpedienteEni.xsd"/>

<xsd:import namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos/MetadatosExpedienteEni.xsd"/>

<xsd:import namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido/contenidoDocumentoEni.xsd"/>

<xsd:element name="expediente" type="eniexp:TipoExpediente"/>

<xsd:complexType name="TipoExpediente">

<xsd:annotation>

<xsd:documentation>

Para el intercambio de un expediente electrónico, se envía en primer lugar, el índice del expediente. Posteriormente, se enviarán los documentos que lo componen, uno a uno, y siguiendo la distribución reflejada en el contenido del Índice.

</xsd:documentation>

</xsd:annotation>

<xsd:sequence>

<xsd:element ref="eniexpind:indice"/>

<xsd:element ref="eniexpmeta:metadatosExp"/>

<xsd:element name="VisualizacionIndice" type="enifile:TipoContenido" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

</xsd:schema>

2.2.7. IndiceExpedienteEni.xsd

35. El módulo de índice de expediente es un módulo estructural y de contenido que hace uso de los siguientes módulos:

Módulo de contenido de índice de expediente: IndiceContenidoExpedienteEni.xsd.

Módulo de firmas: firmasEni.xsd.

Figura 12. XSD de Índice del expediente electrónico.

36. Este esquema refleja la estructura del índice del expediente electrónico (elemento indice) conforme a la NTI de Expediente Electrónico que está compuesto por:

Obligatoriamente:

Contenido del índice electrónico conforme al esquema IndiceContenidoExpedienteEni.xsd.

Firma del contenido del índice electrónico conforme al esquema firmasEni.xsd.

Opcionalmente:

Un identificador único (atributo Id) dentro del esquema (ver apartado 2.2).

37. Su espacio de nombres es eniexpind y en la implementación del módulo se observa la forma en que trabaja con el resto de módulos.

Ejemplo de código 8. IndiceExpedienteEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:eniexpind="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e"

xmlns:eniconexpind="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD INDICE EXPEDIENTE ELECTRONICO ENI (v1.0)

</xsd:documentation>

</xsd:annotation>

<xsd:import namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma/firmasEni.xsd"/>

<xsd:import namespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido"

schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido/IndiceContenidoExpedienteEni.xsd"/>

<xsd:element name="indice" type="eniexpind:TipoIndice"/>

<xsd:complexType name="TipoIndice">

<xsd:sequence>

<xsd:element name="IndiceContenido" type="eniconexpind:TipoIndiceContenido"/>

<xsd:element ref="enids:firmas">

<xsd:annotation>

<xsd:documentation>Existirá, al menos, una firma del contenido del índice del expediente electrónico.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

</xsd:schema>

2.2.8. IndiceContenidoExpedienteEni.xsd

38. El módulo del contenido del índice de expediente es un módulo de contenido que, como tal, no hace uso de otros módulos.

Figura 13. XSD de contenido del índice del expediente electrónico.

39. Este esquema refleja el contenido del índice del expediente electrónico (elemento IndiceContenido) conforme a la NTI de Expediente Electrónico:

Obligatoriamente:

La fecha de generación del índice del expediente electrónico (FechaIndiceElectronico).

Una secuencia ordenada de documentos electrónicos que pueden disponerse como:

Elementos independientes (DocumentoIndizado).

Como un subexpediente anidado (ExpedienteIndizado).

Organizados en carpetas que podrán incluir cualquiera de las tres disposiciones comentadas (CarpetaIndizada).

Para cada documento electrónico incluido se refleja la siguiente información:

Identificador (IdentificadorDocumento).

Huella digital (ValorHuella).

Función resumen utilizada para calcular la huella (FuncionResumen).

Opcionalmente, la fecha de incorporación al expediente (FechaIncorporacionExpediente) y el orden que ocupa en el expediente electrónico (OrdenDocumentoExpediente).

Opcionalmente:

Un identificador único (atributo Id) dentro del esquema (ver apartado 2.2).

40. Su espacio de nombres es eniconexpind y su implementación se incluye a continuación.

Ejemplo de código 9. IndiceContenidoExpedienteEni.xsd

<?xml version="1.0" encoding="UTF -8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:eniconexpind="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido" elementFormDefault="qualified"

attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD CONTENIDO INDICE EXPEDIENTE ELECTRONICO ENI (v1.0) </xsd:documentation>

</xsd:annotation>

<xsd:element name="IndiceContenido" type="eniconexpind:TipoIndiceContenido"/>

<xsd:complexType name="TipoIndiceContenido">

<xsd:sequence>

<xsd:element name="FechaIndiceElectronico" type="xsd:dateTime"/>

<xsd:choice maxOccurs="unbounded">

<xsd:element name="DocumentoIndizado" type="eniconexpind:TipoDocumentoIndizado"/>

<xsd:element name="ExpedienteIndizado" type="eniconexpind:TipoIndiceContenido"/>

<xsd:element name="CarpetaIndizada" type="eniconexpind:TipoCarpetaIndizada"/>

</xsd:choice>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

<xsd:complexType name="TipoDocumentoIndizado">

<xsd:sequence>

<xsd:element name="IdentificadorDocumento" type="xsd:string"/>

<xsd:element name="ValorHuella" type="xsd:string"/>

<xsd:element name="FuncionResumen" type="xsd:string"/>

<xsd:element name="FechaIncorporacionExpediente" type="xsd:dateTime" minOccurs="0"/>

<xsd:element name="OrdenDocumentoExpediente" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

<xsd:complexType name="TipoCarpetaIndizada">

<xsd:sequence>

<xsd:element name="IdentificadorCarpeta" type="xsd:string"/>

<xsd:choice maxOccurs="unbounded">

<xsd:element name="DocumentoIndizado" type="eniconexpind:TipoDocumentoIndizado"/>

<xsd:element name="ExpedienteIndizado" type="eniconexpind:TipoIndiceContenido"/>

<xsd:element name="CarpetaIndizada" type="eniconexpind:TipoCarpetaIndizada"/>

</xsd:choice>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

</xsd:schema>

2.2.9. MetadatosExpedienteEni.xsd

41. El módulo de metadatos de expediente es un módulo de contenido que, como tal, no hace uso de otros módulos.

Figura 14. XSD de metadatos del expediente electrónico.

42. Este esquema refleja el listado de los metadatos mínimos obligatorios para el intercambio de expedientes electrónicos conforme a lo establecido en la NTI de Expediente Electrónico, con excepción de los relativos a la firma electrónica, que se incluyen en el esquema firmasEni.xsd.

43. Su espacio de nombres es eniexpmeta y su implementación se incluye a continuación.

Ejemplo de código 10. MetadatosExpedienteEni.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:eniexpmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos"

targetNamespace="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xsd:annotation>

<xsd:documentation xml:lang="es">XSD METADATOS EXPEDIENTE ELECTRONICO ENI (v1.0) </xsd:documentation>

</xsd:annotation>

<xsd:element name="metadatosExp" type="eniexpmeta:TipoMetadatos"/>

<xsd:complexType name="TipoMetadatos">

<xsd:sequence>

<xsd:element name="VersionNTI" type="xsd:anyURI"/>

<xsd:element name="Identificador" type="xsd:string"/> 27

<xsd:element name="Organo" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element name="FechaAperturaExpediente" type="xsd:dateTime"/>

<xsd:element name="Clasificacion" type="xsd:string"/>

<xsd:element name="Estado">

<xsd:annotation>

<xsd:documentation xml:lang="es">

- E01 - Abierto.

- E02 - Cerrado.

- E03 - Índice para remisión cerrado.

</xsd:documentation>

</xsd:annotation>

<xsd:complexType>

<xsd:simpleContent>

<xsd:extension base="eniexpmeta:enumeracionEstados"/>

</xsd:simpleContent>

</xsd:complexType>

</xsd:element>

<xsd:element name="Interesado" type="xsd:string" minOccurs="0" maxOccurs="unbounded">

<xsd:annotation>

<xsd:documentation xml:lang="es">Obligatorio cumplimentar en caso de que exista al menos un interesado.

</xsd:documentation>

</xsd:annotation>

</xsd:element>

</xsd:sequence>

<xsd:attribute name="Id" type="xsd:ID" use="optional"/>

</xsd:complexType>

<!-- Enumeración de Estados del expediente -->

<xsd:simpleType name="enumeracionEstados">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="E01"/>

<xsd:enumeration value="E02"/>

<xsd:enumeration value="E03"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:schema>

2.3. Integración con otras estructuras XML

44. El esquema XML para intercambio de documentos electrónicos del ENI puede convivir con otras estructuras XML funcionando tanto como esquema contenedor de otros elementos (modo ENI enveloped) como embebido en aquellos (modo ENI enveloping).

45. Dado que esta capacidad de integrar o ser integrado en otras estructuras XML no es una cuestión que pueda o deba ser tratada mediante medidas técnicas del propio código, el esquema incluye bajo el elemento raíz documento la siguiente anotación:

“El elemento "documento" podrá aparecer como elemento raíz de un documento XML objeto de intercambio o como elemento no raíz (elemento hijo)”.

46. La integración con otras estructuras existentes hacen del esquema de Documento electrónico un modelo interoperable, flexible y reutilizable por todas aquellas organizaciones que dispongan de modelos XML específicos ya implantados.

47. Los apartados 3.5 y 3.6 detallan la construcción de documentos electrónicos que, siguiendo el XSD del ENI incluyen o son incluidos en otras estructuras XML.

2.4. Consideraciones para la extensión

48. El modelo de esquema XML diseñado para el intercambio de documentos y expedientes electrónicos en el Esquema Nacional de Interoperabilidad, como todo XSD, puede ser extendido incorporando nuevos elementos o estructuras basadas en XML así como simplificando su diseño a través de modificaciones de elementos o prescindiendo de alguno de ellos.

49. Dado que las necesidades de extensión del esquema desarrollado pueden atender tanto a requisitos específicos de una organización como a su evolución natural a lo largo del tiempo, este manual sólo puede aspirar a indicar los puntos que, a priori, serían objeto de extensión, sin perjuicio de contemplar otras extensiones aplicables a cualquier XSD:

Esquemas de valores. En este sentido, la extensión de los valores de los tipos enumerados sería una tarea sencilla, que implica únicamente la inclusión de un nuevo elemento <xsd:enumeration value=”nuevoValor”> con el nuevo valor⁷ dentro de la restricción que aplique al tipo en cuestión.

Modificaciones en elementos. Toda modificación, creación de nuevos elementos o eliminación de elementos del esquema implicaría que los documentos/expedientes electrónicos dejarían de validar contra el nuevo esquema. Nótese en este punto la importancia de incluir convenientemente, en el elemento VersionNTI del bloque de metadatos, la versión del esquema base.

Integración de otros esquemas existentes. De forma análoga al caso del esquema externo referente a la especificación XMLDSig, el modelo podría incorporar nuevos elementos con su propia especificación. Nótese que el esquema actual, diseñado de forma totalmente modular, facilitaría esta labor permitiendo la actualización de los esquemas XSD correspondientes sin tener que actualizar todo el modelo completo (si no fuera necesario).

Transformaciones XML. El modelo actual no ha definido ningún tipo de transformación XML y pudiera ser necesario incorporar esta funcionalidad en versiones posteriores del esquema si se deseara evolucionar el bloque de firmas y fuera necesario incorporar nuevos estándares no contemplados. En este sentido, se ha de tener en cuenta, que en el modelo actual, sólo se podrían definir transformaciones sobre la especificación XMLDSig y éstas se aplicarían al contenido XML antes de ser firmado, de tal forma que no se firmaría estos datos XML originales, sino el XML transformado.

3. CONSTRUCCIÓN DE UN DOCUMENTO ELECTRÓNICO

50. La construcción de un documento electrónico conforme a los esquemas XSD del ENI, se realiza a través de una instancia XML del esquema documentoEni.xsd.

51. Como ya se ha detallado, este esquema está formado por un elemento raíz documento y tres secciones principales:

Sección contenido.

Sección metadatos.

Sección firmas.

Figura 15. Componentes del documento electrónico.

52. Las secciones de contenido y metadatos son obligatorias, mientras que la sección de firmas es opcional. Nótese que, tal y como se establece en la NTI de Documento Electrónico, los documentos administrativos electrónicos, y aquellos susceptibles de formar parte de un expediente, tendrán asociada al menos una firma electrónica de manera obligatoria.

53. Además, se recomienda la asignación de un identificador Id al nodo documento, que ha de ser único dentro del esquema que lo contiene. Cada una de las secciones que componen la estructura del esquema también podrá tener asignado, de manera opcional, un identificador. Para más información sobre el elemento identificador Id ver apartado 2.2.1.

54. En el siguiente ejemplo se declara un elemento documento, compuesto por la cabecera del documento y la declaración de los espacios de nombres, ambos definidos en el apartado 2.2.1 de este manual, así como por los bloques de contenido, metadatos y firmas, cuya construcción se describe en apartados sucesivos.

Ejemplo de código 11. Creación del documento_I

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento Id="ID_1”

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido>

...

</enifile:contenido>

<enidocmeta:metadatos>

...

</enidocmeta:metadatos>

<enids:firmas>

...

</enids:firmas>

</enidoc:documento>

55. El elemento documento también puede incluirse en otro XML tal y como se muestra en el siguiente ejemplo, es decir, separado de la declaración del espacio de nombres.

Ejemplo de código 12. Creación del documento_II

<enidoc:documento Id="ID_1”>

<enifile:contenido>

...

</enifile:contenido>

<enidocmeta:metadatos>

...

</enidocmeta:metadatos>

<enids:firmas>

...

</enids:firmas>

</enidoc:documento>

3.1. Consideraciones generales

56. El esquema XML del ENI para intercambio de documentos electrónicos permite tanto la inclusión de contenidos y firmas existentes, como la inclusión de contenidos a ser firmados sobre el documento ya en estructura XSD de intercambio del ENI.

57. Además, el esquema diseñado permite diferentes opciones para la inclusión o referencia de los diferentes componentes con el fin de dar un marco flexible que permita su aplicación en circunstancias que pueden estar limitadas por necesidades específicas.

58. En los siguientes apartados se incluyen ejemplos de construcción de documentos electrónicos en función del tipo de contenido y firma aplicada, detallando las posibilidades de construcción de cada componente o bloque.

59. A continuación, a modo de resumen, se incluyen recomendaciones generales para la integración de los diferentes componentes del documento electrónico en el XSD del ENI. Estas recomendaciones pretenden responder a particularidades derivadas, generalmente, de la existencia previa de componentes del documento electrónico dentro de una organización que, en un determinado momento son objeto de intercambio, para lo que han de aplicar el XSD del ENI. Para ello, las soluciones propuestas persiguen la sencillez de uso del esquema del ENI, evitando replicar información en los diferentes bloques, sin perjuicio de otras posibles soluciones que, cumpliendo la estructura del XSD del ENI, puedan ser de aplicación por una organización que así lo considere.

3.1.1. Tratamiento de ficheros de contenido firmados

60. Para el tratamiento de ficheros de contenido firmados previamente a su integración en el XSD del ENI, hay que distinguir dos situaciones:

El fichero y su firma constituyen un elemento indivisible, entendiendo que su estructura ha de conservarse para permitir una validación de la firma que no requiera de un tratamiento o re-construcción que puede resultar costosa. Por lo tanto, en este caso, el elemento fichero+firma se incluiría en un mismo bloque del XSD del ENI, Contenido o Firma, incluyendo una referencia a éste desde el otro bloque. Esta situación puede darse para ficheros de contenido que hubiesen sido firmados con XAdES internally detached, XAdES enveloped, CAdES attached o PAdES.

Figura 16. Fichero firmado incluido en Contenido y referenciado desde Firma.

Figura 17. Fichero firmado incluido en Firma y referenciado desde Contenido.

Fichero y firma son dos elementos independientes, siendo generalmente ficheros independientes. En este caso cada elemento se incluirá en su bloque correspondiente: Contenido y Firma. Los tipos de firma que pueden responder a esta situación son: CSV y CAdES detached.

Figura 18. Fichero incluido en Contenido cuya firma se encuentra en Firma.

3.1.2. Firma sobre la estructura de documento electrónico ENI.

61. La aplicación de firmas sobre la estructura XSD de documento electrónico del ENI se realiza generalmente a través de firmas XAdES y cabría distinguir las siguientes situaciones:

Firma XAdES internally detached del bloque de contenido. En este caso, el fichero de que se trate se incluiría en Contenido, se firmaría y ésta firma se incluiría en el bloque Firma, a través del elemento ds:Signature.

Figura 19. Fichero incluido en Contenido cuya firma XAdES internally detached se incluye en Firma.

XAdES enveloped del fichero de contenido. En este caso, el fichero, seguido de su firma, se incluye en Contenido y es referenciado desde el bloque de Firma. Con esto, se conserva la premisa de que, en firmas XAdES enveloped la etiqueta ds:Reference aparece vacía y la firma avala todo contenido anterior al nodo de la firma.

Figura 20. Fichero firmado mediante XAdES enveloped incluido en Contenido y referenciado desde Firma.

XAdES enveloped de todo el documento electrónico ENI. En este caso, una vez construido todo el documento electrónico (Contenido y Metadatos), se aplicaría la firma, incluyendo ésta en el bloque de Firma, a través del elemento ds:Signature.

Figura 21. Fichero firmado mediante XAdES enveloped de todo el documento electrónico bajo la estructura ENI.

3.2. Bloque Contenido

62. La construcción del bloque contenido atiende a la generación de una instancia XML del módulo contenidoDocumentoEni.xsd.

63. El objetivo de este bloque del esquema es albergar el fichero contenido objeto de intercambio, ya sea directamente o mediante una referencia interna al mismo.

64. El fichero de contenido se puede incluir en el esquema de diferentes formas:

En formato XML.

Binario codificado en base64.

Como referencia interna.

65. En esta sección también se debe incluir de forma obligatoria el formato del fichero de contenido mediante la etiqueta NombreFormato. El formato atenderá a lo establecido en la NTI de Catálogo de estándares.

66. Además, tal y como se apuntó en el apartado anterior, el nodo contenido dispone de un atributo Id opcional que lo identifica de manera unívoca.

3.2.1. Contenido en XML

67. En el caso de que el fichero de contenido se incluya en formato XML⁸, se declara un elemento contenido que contenga un elemento DatosXML.

Ejemplo de código 13. Contenido con datos incluidos en el XML

<enifile:contenido>

<enifile:DatosXML>

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect width="300" height="100"

style="fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)"/>

</svg>

</enifile:DatosXML>

<enifile:NombreFormato>SVG</enifile:NombreFormato>

</enifile:contenido>

68. Opcionalmente, se puede incluir el atributo identificador Id del nodo de contenido, de forma que éste pueda ser referenciado por otro elemento del XML.

Ejemplo de código 14. Contenido con datos incluidos en el XML con identificador

<enifile:contenido Id=”ID_1”>

<enifile:DatosXML>

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect width="300" height="100"

style="fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)"/>

</svg>

</enifile:DatosXML>

<enifile:NombreFormato>SVG</enifile:NombreFormato>

</enifile:contenido>

3.2.2. Contenido codificado

69. Para la construcción del bloque de contenido de un fichero binario codificado en base64, se debe declarar un elemento contenido que contenga un elemento ValorBinario.

70. La codificación de éste fichero se puede realizar mediante cualquier herramienta que codifique ficheros en base64.

Ejemplo de código 15. Contenido con un fichero binario codificado en base64

<enifile:contenido Id="ID_2">

<enifile:ValorBinario>

YXNsY2huIGFpbGVydWNubGFrDQphc29ldWljZm5pYWR1cmNuIGQNCmxkcmlnbnZzdWRyY3Y=

</enifile:ValorBinario>

<enifile:NombreFormato>TXT</enifile:NombreFormato>

</enifile:contenido>

3.2.3. Contenido referenciado

71. El XSD de intercambio de documentos electrónicos del ENI permite, como alternativa a la inclusión del fichero de contenido directamente en el propio bloque contenido, indicar desde este bloque la ubicación de dicho contenido. Para ello se hará una referencia a dicho fichero desde la sección de contenido asignando la URI del fichero de contenido a la etiqueta referenciaFichero del bloque contenido.

72. Nótese que, aunque el propio XSD no establece restricciones a nivel técnico para estas referencias, a nivel formal derivado de la propia NTI de Documento Electrónico sí está limitado que estas referencias deban ser siempre a puntos internos de la estructura XML.

Ejemplo de código 16. Contenido con referencia interna al fichero

<enifile:contenido Id="ID_3">

<enifile:referenciaFichero>#bloque1</enifile:referenciaFichero>

<enifile:NombreFormato>XML</enifile:NombreFormato>

</enifile:contenido>

3.3. Bloque Metadatos

73. La construcción del bloque de metadatos atiende a la generación de una instancia XML del módulo metadatosDocumentoEni.xsd.

Valores de los metadatos mínimos obligatorios correspondientes, cuyo valor atiende a lo establecido en al NTI de Documento Electrónico, considerando los esquemas de valores allí establecidos, y que debe ser asignado en cada caso según la naturaleza y particularidades de cada documento.

Opcionalmente, el atributo identificador Id del bloque.

Ejemplo de código 17. Bloque metadatos

<enidocmeta:metadatos>

<enidocmeta:VersionNTI>

http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e

</enidocmeta:VersionNTI>

<enidocmeta:Identificador>ES_E00010207_2010_MPR000000000000000000000010207

</enidocmeta:Identificador>

<enidocmeta:Organo>12345678Z</enidocmeta:Organo>

<enidocmeta:FechaCaptura>2001-12-17T09:30:47Z</enidocmeta:FechaCaptura>

<enidocmeta:OrigenCiudadanoAdministracion>0</enidocmeta:OrigenCiudadanoAdmini stracion>

<enidocmeta:EstadoElaboracion>

<enidocmeta:ValorEstadoElaboracion>EE01</enidocmeta:ValorEstadoElaboracion>

</enidocmeta:EstadoElaboracion>

<enidocmeta:TipoDocumental>TD05</enidocmeta:TipoDocumental>

</enidocmeta:metadatos>

3.4. Bloque Firmas

Nótese que este manual no incluye consideraciones completas para el proceso a seguir para firmar un documento electrónico mediante los formatos de firma admitidos, que debe atender a la normativa aplicable y a las condiciones particulares de cada tipo de firma y, en su caso, sus estándares.

Este manual sólo define la forma en que las diferentes firmas electrónicas son incluidas en el XSD del ENI.

74. La construcción del bloque Firmas atiende a la generación de una instancia XML del módulo firmasEni.xsd.

75. El bloque firmas del XSD de documento electrónico, tiene una cardinalidad [0..1], ya que, tal y como se indicó con anterioridad, es un bloque opcional a nivel del XSD, aunque según la NTI de Documento Electrónico, los documentos administrativos electrónicos y aquellos susceptibles de formar parte de un expediente electrónico deban tener siempre asociada al menos una firma electrónica.

76. Además, cada documento electrónico puede contener a su vez una o varias firmas (cardinalidad [1..N]) y para cada una de ellas se puede asignar:

Un atributo identificador Id, que es opcional.

Un atributo opcional de referencia ref, que refleja el identificador⁹ del nodo que incluye el contenido que avala la firma, tal y como se detalla en 2.2.5.

La codificación del valor del metadato obligatorio TipoFirma, establecido en la NTI de Documento Electrónico, que refleja el tipo de firma utilizado.

Bloque ContenidoFirma que depende del tipo de firma utilizado, es decir, del valor que tome el metadato TipoFirma del bloque de firmas, y cuyo estado se describe en los siguientes apartados.

Ejemplo de código 18. Uso del atributo ref del bloque de firma

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:ValorBinario>

<!-- Valor Binario del contenido -->

</enifile:ValorBinario>

...

</enifile:contenido>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma Id=”firma_01” ref=”#ID_CONT_1”>

<enids:TipoFirma>Tipo Firma</enids:TipoFirma>

<enids:ContenidoFirma>

<!-- Contenido de la firma -->

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

</enidoc:documento>

Ejemplo de código 19. Bloque de firma

<enids:firmas>

<enids:firma>

<enids:TipoFirma>...</enids:TipoFirma>

<enids:ContenidoFirma>

...

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.4.1. Firma con CSV.

77. Para integrar una firma mediante código seguro de verificación (CSV), es necesario asignar los valores correspondientes a los elementos ValorCSV y RegulacionGeneracionCSV, según lo establecido en la NTI de Documento Electrónico.

78. El siguiente código representa un ejemplo del bloque de firmas, utilizando como firma un CSV.

Ejemplo de código 20. Firma con CSV

<enids:firmas>

<enids:firma>

<enids:TipoFirma> TF01</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:CSV>

<enids:ValorCSV>

UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi

</enids:ValorCSV>

<enids:RegulacionGeneracionCSV>

BOE-A-0034-05200

</enids:RegulacionGeneracionCSV>

</enids:CSV>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.4.2. Firma XAdES internally detached

79. En el caso de utilizar una firma basada en certificados de tipo XAdES internally detached, hay que distinguir dos situaciones que conllevan el uso de diferentes elementos del esquema del ENI:

En el caso de que se desee integrar la firma XAdES internally detached previamente construida sobre el fichero de contenido, el elemento ds:Signature se incluye a continuación del contenido y el bloque de firma se construye a través del elemento ReferenciaFirma cuyo valor indica la URI del identificador del bloque de contenido.

A continuación se muestra un ejemplo de este tipo:

Ejemplo de código 21. Firma XAdES internally detached previamente construida

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:DatosXML>

<!-- Contenido incluido en formato XML -->

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect width="300" height="100"

style="fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)"/>

</svg>

<!—Firma XAdES -->

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

Id="Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-Signature">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

<ds:Reference Id="Reference-ID_CONT_1" URI="#ID_CONT_1">

<ds:Transforms>

<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/>

</ds:Transforms>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>TnjLkpmkfyHi6Mmf07U5Kx1zA9Y=</ds:DigestValue>

</ds:Reference>

<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties"

URI="#Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-SignedProperties">

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>Q7vfWCwxo/cNWBhVJU9N1VQsg2o=</ds:DigestValue>

</ds:Reference>

<ds:Reference URI="#Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-KeyInfo">

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>1ufSvM8aCnsKW/X84iUf16UuGMs=</ds:DigestValue>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue Id="Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-

SignatureValue">BdJxNjfVdBp8JKepTKGt3m8HhA5hnouYnzy4RaCC5bG1Bi0iDuSqtHiVs00n/ Ez7eDoaln3ZF72rC98wfYFo+pMEEcCpwKdOIH9HRUxj4AO+Zm+3a0fgQMkeg ASP7Dyqy7hnhWQERFBoT1O+1BQ94MA6n6LP1K0QHN/TD/4FEKQ=</ds:SignatureValue>

<ds:KeyInfo Id="Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-KeyInfo">

<ds:KeyValue>

<ds:RSAKeyValue>

<ds:Modulus>j2qAceOf0pyATEM0BxBK7+eGA0HEZWDZpqdhCeVvsI1AqhLWQpWNg65TGXE8ijzxGU/ yS94k/34gPgIkla+p/mrDaNsVY69RcLp1hWYcL61rM//In+hXlA3qUK6as942b55Yyz NsbJSQPCNgkiGuIQTo1Xfsfk4XZDi+yNSRgUM=</ds:Modulus>

<ds:Exponent>AQAB</ds:Exponent>

</ds:RSAKeyValue>

</ds:KeyValue>

<ds:X509Data>

<ds:X509Certificate>MIIFnTCCBIWgAwIBAgICA+owDQYJKoZIhvcNAQEFBQAwgdoxCzAJBgNVBAYTAkVTMRI wEAYDVQQIEwlCYXJjZWxvbmExSDBGBgNVBAcMP0JhcmNlbG9uYSAoc2VlIGN1cnJlbn QgYWRkcmVzcyBhdCBodHRwczovL3d3dy5hbmYuZXMvYWRkcmVzcy8gKTEnMCUGA1UEC hMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRcwFQYDVQQLEw5BTkYgQ2xh c2UgMSBDQTETMBEGA1UEBRMKRy02MzI4NzUxMDEWMBQGA1UEAxMNQU5GIFNlcnZlciB DQTAeFw0wNjEyMzEyMzAwMDBaFw0xNDEyMzEyMzAwMDBaMIGmMRswGQYDVQQDExJBTk YgVXN1YXJpbyBBY3Rpdm8xDDAKBgNVBCoTA0FORjEXMBUGA1UEBBMOVXN1YXJpbyBBY 3Rpdm8xEjAQBgNVBAUTCTEyMzQ1Njc4WjEeMBwGCSqGSIb3DQEJARYPdGVzdEBwcnVl YmEuY29tMR8wHQYDVQQLExZDbGFzZSAyIHBlcnNvbmEgZmlzaWNhMQswCQYDVQQGEwJ FUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAj2qAceOf0pyATEM0BxBK7+eGA0 HEZWDZpqdhCeVvsI1AqhLWQpWNg65TGXE8ijzxGU/yS94k/34gPgIkla+p/mrDaNsVY 69RcLp1hWYcL61rM//In+hXlA3qUK6as942b55YyzNsbJSQPCNgkiGuIQTo1Xfsfk4X ZDi+yNSRgUMCAwEAAaOCAiEwggIdMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgbAMBMGCis GAQQBgY8cFAMEBQwDQU5GMBcGCisGAQQBgY8cFAQECQwHVXN1YXJpbzAWBgorBgEEAY GPHBQFBAgMBkFjdGl2bzAZBgorBgEEAYGPHBQGBAsMCTEyMzQ1Njc4WjCBiAYDVR0gB IGAMH4wfAYKKwYBBAGBjxwDBDBuMD0GCCsGAQUFBwICMDEaL0NlcnRpZmljYWRvIGVt aXRpZG8gcGFyYSByZWFsaXphY2nzbiBkZSBwcnVlYmFzMC0GCCsGAQUFBwIBFiFodHR wczovL3d3dy5hbmYuZXMvQUMvZG9jdW1lbnRvcy8wOAYIKwYBBQUHAQEELDAqMCgGCC sGAQUFBzABhhxodHRwOi8vd3d3LmFuZi5lcy9BQy9SQy9vY3NwMDkGA1UdHwQyMDAwL qAsoCqGKGh0dHA6Ly93d3cuYW5mLmVzL0FDL1JDL0FORkFDQ0xBU0VBMS5jcmwwFwYK KwYBBAGBjxwTAQQJDAcxMjMtMzIxMDEGCisGAQQBgY8cKgYEIwwhaHR0cHM6Ly93d3c uYW5mLmVzL0FDL0FDVEFTLzU2Nzg5MBYGCSsGAQQBgY8cEwQJDAczMjEtMTIzMB0GA1 UdDgQWBBSxTxAznF2uoOtMW+fJUoDN6B+rJDAfBgNVHSMEGDAWgBS+O/a0MbdzJEg5x VcTlHWqn4E/LDANBgkqhkiG9w0BAQUFAAOCAQEATQgYAOwxrMRTT2Nhx7pqiNsoGT5d JmeunAv+iU5zx/VoEXB/mx+VtyLfMea3VS9LC23404XS7pz5oPwiVPLsMPZtzOcmfac VnSdRn5J7+qOO8MB+OVlXq/QmARn+1XeBCHaTQ6AMc/pdveEoGktaXwEjTslWyRD9dG DzLp04+FndQAbVcI5xRkb4vToRnhQmloUVddhQAO8usOAIb00GJFNTq4lsyZ1qT1Hpl Ql+ngsSD1HBxkhx10Pm3KuvCunAh4um0QnSeeiq9qWIV0UZrFlMwNRXvH9OVTqSGC4P Xjw2zOi2GLUfags1decu7gcGjidlELR/WHU/6lrztfdViQ==</ds:X509Certificate>

</ds:X509Data>

</ds:KeyInfo>

<ds:Object>

<xades:QualifyingProperties xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"

Id="Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-QualifyingProperties" Target="#Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-Signature">

<xades:SignedProperties Id="Signature-f1a8e765-f4d1-4aa8-848a-838775660fd2-SignedProperties">

<xades:SignedSignatureProperties><xades:SigningTime>2010-12-30T10:18:38+01:00</xades:SigningTime>

<xades:SigningCertificate>

<xades:Cert>

<xades:CertDigest>

<ds:DigestMethod

Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>F0x6eHtgr qHQXQa457b8H1xPaQg=</ds:DigestValue></xades:CertDigest><xades:IssuerSerial><d s:X509IssuerName>CN=ANF Server CA, SERIALNUMBER=G-63287510, OU=ANF Clase 1 CA, O=ANF Autoridad de Certificacion, L=Barcelona (see current address at https://www.anf.es/address/ ), ST=Barcelona, C=ES</ds:X509IssuerName>

<ds:X509SerialNumber>1002</ds:X509SerialNumber>

</xades:IssuerSerial>

</xades:Cert>

</xades:SigningCertificate>

<xades:SignatureProductionPlace>

<xades:City/>

</xades:SignatureProductionPlace>

</xades:SignedSignatureProperties>

<xades:SignedDataObjectProperties>

<xades:DataObjectFormat ObjectReference="#Reference-67be6093-7292-4a4f-a612-c361902a1ac4">

<xades:MimeType>application/octet-stream</xades:MimeType>

<xades:Encoding>base64</xades:Encoding>

</xades:DataObjectFormat>

</xades:SignedDataObjectProperties>

</xades:SignedProperties>

</xades:QualifyingProperties>

</ds:Object>

</ds:Signature>

</enifile:DatosXML>

<enifile:NombreFormato>XML</enifile:NombreFormato>

...

</enifile:contenido>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma>

<enids:TipoFirma> TF02</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:ReferenciaFirma> #ID_CONT_1</enids:ReferenciaFirma>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

</enidoc:documento>

Si se desea integrar una firma aplicada ya sobre el bloque de contenido del esquema ENI, el bloque de firma se construye utilizando el elemento ds:Signature para albergar la información de dicha firma, identificando en el atributo URI del elemento ds:Reference el nodo que se está firmando. Adicionalmente, se puede incluir el atributo ref del elemento firma para incluir dicha información.

A continuación se muestra un ejemplo de este tipo:

Ejemplo de código 22. Firma XAdES internally detached

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id=” ID_CONT_1” >

<enifile:DatosXML>

<!-- Valor del contenido incluido en formato XML -->

</enifile:DatosXML>

<enifile:NombreFormato>XML</enifile:NombreFormato>

</enifile:contenido>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma ref=”#ID_CONT_1”>

<enids:TipoFirma> TF02</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<ds:Signature

xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm="..."/>

<ds:SignatureMethod Algorithm="..."/>

<ds:Reference URI=" #ID_CONT_1">

<ds:DigestMethod Algorithm="..."/>

<ds:DigestValue/>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue> … </ds:SignatureValue>

<ds:Object>

<!—-Contenido de firma XAdES-->

</ds:Object>

</ds:Signature>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

</enidoc:documento>

3.4.3. Firma XAdES enveloped

80. Las firmas XAdES enveloped, tienen la peculiaridad de que el contenido y la firma se encuentran en el mismo nodo, para su tratamiento en el esquema XML del ENI, hay que distinguir las siguientes situaciones:

En el caso de que se desee integrar una firma XAdES enveloped construida sobre el fichero de contenido (bien previamente o bien sobre la propia estructura del documento electrónico), el elemento ds:Signature se incluye a continuación del contenido en el mismo bloque, y el bloque de firma se construye a través del elemento ReferenciaFirma que indicará la URI del identificador del bloque de contenido. A continuación se muestra un ejemplo de un documento electrónico que contiene un fichero XML y una firma XAdES enveloped del contenido.

Si se desea integrar una firma XAdES enveloped que firme toda la estructura del documento electrónico en XML del ENI, ésta se incluye en el elemento ds:Signature con la particularidad de que el atributo URI del elemento ds:Reference aparecerá vacío, tal y como establece el propio estándar de XAdES para este tipo de firmas.

Ejemplo de código 23. Firma XAdES enveloped del contenido

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento xsi:schemaLocation=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e "

xmlns:enidoc=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e "

xmlns:enidocmeta=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos "

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma "

xmlns:enifile=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido "

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

<enifile:contenido Id="ID_CONT_1">

<enifile:DatosXML>

<!-- Contenido incluido en formato XML -->

...

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm="..."/>

<ds:SignatureMethod Algorithm="..."/>

<ds:Reference URI="#ID_CONT_1">

<ds:DigestMethod Algorithm="..."/>

<ds:DigestValue/>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue> ... </ds:SignatureValue>

<ds:Object>

<!—-Contenido de firma XAdES-->

</ds:Object>

</ds:Signature>

</enifile:DatosXML>

<enifile:NombreFormato>XML</enifile:NombreFormato>

...

</enifile:contenido>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma>

<enids:TipoFirma>TF03</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:ReferenciaFirma>#ID_CONT_1</enids:ReferenciaFirma>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

</enidoc:documento>

Ejemplo de código 24. Firma XAdES enveloped de todo el documento electrónico

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<!-- Fichero de contenido del documento electrónico -->

</enifile:contenido>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma>

<enids:TipoFirma>TF03</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<ds:Signature

xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm="..."/>

<ds:SignatureMethod Algorithm="..."/>

<ds:Reference URI="">

<ds:DigestMethod Algorithm="..."/>

<ds:DigestValue/>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue> … </ds:SignatureValue>

<ds:Object>

<!—-Contenido de firma XAdES-->

</ds:Object>

</ds:Signature>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.4.4. Firma CAdES detached.

81. En el caso de utilizar una firma basada en certificados CAdES detached, el bloque de firma se construye utilizando el elemento FirmaBase64 para incluir el valor codificado del fichero de firma, ya que en este caso el propio contenido firmado y la firma constituyen ficheros independientes.

82. Para identificar el nodo/s con los que se corresponde la firma, se puede utilizar el atributo ref del elemento firma, que contiene el identificador del nodo firmado.

Ejemplo de código 25. Firma CAdES detached/explicit signature¹⁰

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:ValorBinario>

YXNsY2huIGFpbGVydWNubGFrDQphc29ldWljZm5pYWR1cmNuIGQNCmxkcmlnbnZzdWRyY3Y=

</enifile:ValorBinario>

<enifile:NombreFormato>Formato contenido</enifile:NombreFormato>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma ref=”ID_CONT_1”>

<enids:TipoFirma> TF04</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:FirmaBase64>

MIIOvgYJKoZIhvcNAQcCoIIOrzCCDqsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQE HAaCCC20wggWdMIIEhaADAgECAgID6jANBgkqhkiG9w0BAQUFADCB2jELMAkGA1UEBh MCRVMxEjAQBgNVBAgTCUJhcmNl bG9uYTFIMEYGA1UEBww/…………………………………………………… ………………………………………………………………………..+owDQYJKoZIhvc NAQEBBQAEgYB29TKX2NmSxawrxcmr4FyP5Fi7U8xiDvfdMvi6gkW6XxNZRoewSOgckBYaJwjDd+ZiBkWSBWQJ/ AM9iwnUFoUGTMHrLRq6OlSvJd7ipc/dwmQogHZV7qVQippG2ZK0o+X0BsXm9SNrNL y7GIj5a4mj1IDEd FWotKNxlXjzg7c8AA==

</enids:FirmaBase64>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.4.5. Firma CAdES attached

83. Para incluir una firma CAdES attached, atendiendo a que en este caso existe un único fichero que incluya tanto el contenido como la firma, el bloque de firma se puede construir de dos formas:

Incluyendo el fichero codificado en base64 en el bloque de firma a través del elemento enids:FirmaBase64. En este caso, el fichero de contenido será localizado a través de una referenica desde el bloque contenido (elemento enifile:referenciaFichero).

Asignando a la etiqueta ReferenciaFirma la URI correspondiente al identificador del fichero firmado codificado en base64 incluido en el bloque de contenido (elemento enifile:ValorBinario), dado que esa es la localización de la información propia de la firma.

Ejemplo de código 26. Firma CAdES attached incluida en el bloque de firma¹¹

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:referenciaFichero>#ID_FIRM_1

</enifile:referenciaFichero>

<enifile:NombreFormato>DOCX</enifile:NombreFormato>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma Id=”ID_FIRM_1”>

<enids:TipoFirma> TF05</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:FirmaBase64>

MII2MQYJKoZIhvcNAQcCoII2IjCCNh4CAQExCzAJBgUrDgMCGgUAMIInfAYJKoZIhvc NAQcBoIInbQSCJ2lQSwMEFAAGAAgAAAAhAN38lTdmAQAAIAUAABMACAJbQ29udGVudF 9UeXBlc10ueG1sIKIEAiigAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAALRUy27CMBC8V+o/……………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………..lBgNVBAoTHk FORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbjEXMBUGA1UECxMOQU5GIENsYXNlI DEgQ0ExEzARBgNVBAUTCkctNjMyODc1MTAxFjAUBgNVBAMTDUFORiBTZXJ2ZXIgQ0EC AgPqMA0GCSqGSIb3DQEBAQUABIGAXFVstRHlU0DF5Y38glnERfTtyL9jV50IlIEql34 s8J+XoB+lBs9rwhYCC3lTXKqWbD800bSyXCCCjcbIj67K7DPlcTrmk6Vd3CebzKu1RA 2Fu0Un22N1UEDc1H9iiKokKDkCdpOQSstDHwmZL5J4lkqoWW3TwSPbLFVxHLx++bw=

</enids:FirmaBase64>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

Ejemplo de código 27. Firma CAdES attached referenciada desde el bloque de firma¹²

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:ValorBinario>

MII2MQYJKoZIhvcNAQcCoII2IjCCNh4CAQExCzAJBgUrDgMCGgUAMIInfAYJKoZIhvc NAQcBoIInbQSCJ2lQSwMEFAAGAAgAAAAhAN38lTdmAQAAIAUAABMACAJbQ29udGVudF 9UeXBlc10ueG1sIKIEAiigAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAALRUy27CMBC8V+o/……………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………..lBgNVBAoTHkFOR iBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbjEXMBUGA1UECxMOQU5GIENsYXNlIDEg Q0ExEzARBgNVBAUTCkctNjMyODc1MTAxFjAUBgNVBAMTDUFORiBTZXJ2ZXIgQ0ECAgP qMA0GCSqGSIb3DQEBAQUABIGAXFVstRHlU0DF5Y38glnERfTtyL9jV50IlIEql34s8J +XoB+lBs9rwhYCC3lTXKqWbD800bSyXCCCjcbIj67K7DPlcTrmk6Vd3CebzKu1RA2Fu 0Un22N1UEDc1H9iiKokKDkCdpOQSstDHwmZL5J4lkqoWW3TwSPbLFVxHLx++bw=

</enifile:ValorBinario>

<enifile:NombreFormato>DOCX</enifile:NombreFormato>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma ref=”ID_CONT_1”>

<enids:TipoFirma> TF05</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:ReferenciaFirma>#ID_CONT_1

</enids:ReferenciaFirma>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.4.6. Firma PAdES

84. Para incluir una firma PAdES, se asigna a la etiqueta ReferenciaFirma la URI correspondiente al identificador del fichero PDF firmado. Aunque el esquema del ENI permitiría también incluir el propio PDF en el bloque de firma y referenciar éste desde el contenido, por simplicidad, se recomienda la utilización de una referencia desde el bloque de firma.

Ejemplo de código 28. Firma PAdES

<?xml version="1.0" encoding="UTF-8"?>

<enidoc:documento

xsi:schemaLocation=”http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e”

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido Id="ID_CONT_1">

<enifile:ValorBinario>

<!-- PDF firmado incluido en base64 -->

</enifile:ValorBinario>

<enifile:NombreFormato>PDF</enifile:NombreFormato>

<enidocmeta:metadatos>

<!-- Metadatos del documento electrónico -->

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma ref=”ID_CONT_1”>

<enids:TipoFirma> TF06</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<enids:ReferenciaFirma>#ID_CONT_1

</enids:ReferenciaFirma >

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

3.5. Documento electrónico ENI en modo enveloped

85. La construcción de un documento electrónico bajo la estructura de intercambio del ENI incluyendo en ésta otra estructura XML ajena al modelo conlleva:

Incluir dicha estructura XML en el bloque de contenido, a través del elemento enidoc:DatosXML.

Construir el bloque de metadatos atendiendo a lo establecido en el apartado 2.2.4.

Construcción del bloque de firma atendiendo a la posibilidad de que la estructura XML que actúa como contenido incluya una firma, en cuyo caso este bloque se limitaría a apuntar a través de enids:ReferenciaFirma al nodo en que se ubica dicha firma.

Figura 22. Ejemplo de documento electrónico que integra otra estructura XML firmada.

Es recomendable utilizar el modo enveloping cuando se desea integrar estructuras XML que incluyen firma XAdES apuntando a la raíz del documento a través del elemento <ds:Reference URI=””>, con el atributo URI vacío. Utilizar el modo enveloped para este tipo de firmas rompería la integridad de la firma ya que apuntaría al nuevo elemento raíz del documento electrónico ENI.

3.6. Documento electrónico ENI en modo enveloping

86. Cuando es la estructura de intercambio del ENI de documento electrónico la que debe ser integrada en una estructura XML ajena al modelo ENI, sus bloques actúan como meros apuntadores, en tanto en cuanto, el contenido y la firma del documento electrónico incluirán, en su caso, referencias a los elementos correspondientes que estarán ubicados en diferentes puntos de la propia estructura que lo envuelve.

87. Para ilustrar esta posibilidad de tratamiento, se incluye a continuación una descripción completa de cómo un documento electrónico con el esquema del ENI puede ser incluido bajo la estructura CODICE.

Figura 23. Ejemplo de documento electrónico dentro de una estructura CODICE.

3.6.1. Ejemplo de Documento electrónico integrado en una estructura CODICE

88. El documento electrónico de estructura ENI se incluye en modo enveloping dentro de la estructura CODICE en el elemento ext:ExtensionContent.

89. Dado que en este caso, el contenido del documento electrónico se corresponde con la estructura que lo envuelve, es decir, el elemento raíz CODICE, para su implementación se emplea el elemento referenciaFichero que incluye la referencia a dicho elemento raíz (#).

90. La firma del documento electrónico es la firma de la estructura CODICE, en tanto que ésta actúa como contenido, y por tanto se indica, mediante el elemento ReferenciaFirma, la ubicación de la misma, (Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-Signature").

91. A continuación, se incluye el código completo de este ejemplo.

Ejemplo de código 29. Documento electrónico incluido en una estructura CODICE

<?xml version="1.0" encoding="UTF-8"?>

<Tender xsi:schemaLocation="urn:dgpe:names:draft:codice:schema:xsd:Tender-2 CODICE-Tender-2.01.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="urn:dgpe:names:draft:codice:schema:xsd:Tender-2"

xmlns:cac="urn:dgpe:names:draft:codice:schema:xsd:CommonAggregateComponents-2"

xmlns:cbc="urn:dgpe:names:draft:codice:schema:xsd:CommonBasicComponents-2"

xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:odsig="urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0">

<ext:UBLExtensions>

<ext:UBLExtension>

<cbc:ID>0000000000183</cbc:ID>

<ext:ExtensionURI>http://www.eni.com/doc-syntax-ns#</ext:ExtensionURI>

<!—DOCUMENTO ELECTRÓNICO EN ESTRCUCTURA PARA INTERCAMBIO ENI -->

  <ext:ExtensionContent>

    <enidoc:documento

xsi:schemaLocation=” http://administracionelectronica.gob.es/ENI

/XSD/v1.0/documento-e documentoEni.xsd

xmlns:enidoc="http://administracionelectronica.gob.es/ENI/

XSD/v1.0/documento-e"

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/

XSD/v1.0/documento-e/metadatos"

xmlns:enids="http://administracionelectronica.gob.es/ENI/

XSD/v1.0/firma"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/

XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<enifile:contenido>

<!-- Referencia a XML contenido -->

<enifile:referenciaFichero>#</enifile:referenciaFichero>

<enifile:NombreFormato>XML</enifile:NombreFormato>

</enifile:contenido>

<enidocmeta:metadatos>

<enidocmeta:VersionNTI>http://administracionelectronica.gob.es/

ENI/XSD/v1.0</enidocmeta:VersionNTI>

<enidocmeta:Identificador>ES_E00010207_2010_MPR000000000000000000000010207</e nidocmeta:Identificador>

<enidocmeta:Organo>A0003</enidocmeta:Organo>

<enidocmeta:FechaCaptura>2001-12-17T09:30:47Z

</enidocmeta:FechaCaptura>

<enidocmeta:OrigenCiudadanoAdministracion>1

</enidocmeta:OrigenCiudadanoAdministracion>

<enidocmeta:EstadoElaboracion>

<enidocmeta:ValorEstadoElaboracion>EE01

</enidocmeta:ValorEstadoElaboracion>

</enidocmeta:EstadoElaboracion>

<enidocmeta:TipoDocumental>TD99</enidocmeta:TipoDocumental>

</enidocmeta:metadatos>

<enids:firmas>

<enids:firma>

<enids:TipoFirma>TF03</enids:TipoFirma>

<enids:ContenidoFirma>

<enids:FirmaConCertificado>

<!-- Referencia a firma existente -->

<enids:ReferenciaFirma>

#6a237675-0874-4fe8-a83b-3d8b4d35abce-Signature

</enids:ReferenciaFirma>

</enids:FirmaConCertificado>

</enids:ContenidoFirma>

</enids:firma>

</enids:firmas>

  </enidoc:documento>

</ext:ExtensionContent>

</ext:UBLExtension>

<ext:UBLExtension>

 <cbc:ID>0000000000083</cbc:ID>

  <ext:ExtensionURI>”http://docs.oasis-open.org/ubl/securitysc/cd-dsigp-1/xmldsig-enveloped”</ext:ExtensionURI>

  <ext:ExtensionContent>

<odsig:document-signatures>

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-Signature">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm=http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments />

<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

<ds:Reference Id="7b8a6df9-412c-4ab0-9822-891b19784933-Reference" URI="">

<ds:Transforms>

<ds:Transform

Algorithm="http://www.w3.org/2002/06/xmldsig-filter2">

<XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract">

/descendant::ds:Signature</XPath>

</ds:Transform>

<ds:Transform Algorithm=”http://www.w3.org/2000/09/xmldsig#enveloped-signature” />

<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>

</ds:Transforms>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>tmEOyMNjH5iUMLUUABkeKTIE9oU=

</ds:DigestValue>

</ds:Reference>

<ds:Reference Type="http://uri.etsi.org/01903/v1.3.2#SignedProperties" URI="#6a237675-0874-4fe8-a83b-3d8b4d35abce-SignedProperties">

<ds:Transforms>

<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>

</ds:Transforms>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>yDrNtoj2xOignlFK61+He2HYQ78=

</ds:DigestValue>

</ds:Reference>

<ds:Reference URI="#6a237675-0874-4fe8-a83b-3d8b4d35abce-KeyInfo">

<ds:Transforms>

<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>

</ds:Transforms>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>C3auJ+J7wyCoiF/pwP+qAYjsSk8=</ds:DigestValue>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-SignatureValue">WCugtYXsTGCxVeOeqo+4+xEdghU5yIhZNzwdlsvMRJptAV0GmSVIUR4hqDI74g48ahK IFA+yfUQG7FShg3iuZS4Hy/2H+SYaHRxVluAJKpITCI9uXOWR1gRTaejMXJOo9KCIPl zrnEnOrJ94P3Zij2TDPlXnA9ugB6mtigwCTGw=</ds:SignatureValue>

<ds:KeyInfo Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-KeyInfo">

<ds:KeyValue>

<ds:RSAKeyValue>

<ds:Modulus>rZ5Tv9dq/1UyzorRHkgqlrrPu8AaFPp9Occ6y TwkAeFk72Kg53nz1iz3nFhW8SfuSaAUSDoYaxfq24uoTV2AOfmTCe8Ea6ZooRmNIlLq lJJ/NZZ9Ler7bZwLRCj1kTw7t4vXJNPanchZA1asGX1PCHJ59hRRRZ2WTb8SVrjW1TM= </ds:Modulus>

<ds:Exponent>AQAB</ds:Exponent>

</ds:RSAKeyValue>

</ds:KeyValue>

<ds:X509Data>

<ds:X509Certificate>MIIFLjCCBJegAwIBAgIEPKVRCTANBgkqhkiG9w0BAQUFADA2MQswCQYDVQQGEwJFUzE NMAsGA1UEChMERk5NVDEYMBYGA1UECxMPRk5NVCBDbGFzZSAyIENBMB4XDTA4MTAxMD ExMTMzNVoXDTExMTAxMDExMTMzNVowgYgxCzAJBgNVBAYTAkVTMQ0wCwYDVQQKEwRGT k1UMRgwFgYDVQQLEw9GTk1UIENsYXNlIDIgQ0ExEjAQBgNVBAsTCTUwMDczMDA5NzE8 MDoGA1UEAxMzTk9NQlJFIEFSQUdPTkVTIEFSUklCQVMgRkVMSVggSkVTVVMgLSBOSUY gMDc1MTQxMTRaMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtnlO/12r/VTLOit EeSCqWus+7wBoU+n05xzrJPCQB4WTvYqDnefPWLPecWFbxJ+5JoBRIOhhrF+rbi6hNX YA5+ZMJ7wRrpmihGY0iUuqUkn81ln0t6vttnAtEKPWRPDu3i9ck09qdyFkDVqwZfU8I cnn2FFFFnZZNvxJWuNbVMwIDAQABo4IC9DCCAvAwdAYDVR0RBG0wa6RpMGcxGDAWBgk rBgEEAaxmAQQTCTA3NTE0MTE0WjEWMBQGCSsGAQQBrGYBAxMHQVJSSUJBUzEXMBUGCS sGAQQBrGYBAhMIQVJBR09ORVMxGjAYBgkrBgEEAaxmAQETC0ZFTElYIEpFU1VTMAkGA 1UdEwQCMAAwKwYDVR0QBCQwIoAPMjAwODEwMTAxMTEzMzVagQ8yMDExMTAxMDExMTMz NVowCwYDVR0PBAQDAgWgMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQU4kHmoH9 Nl1qJM4jwLaKyqRraekowHwYDVR0jBBgwFoAUQJp2RJd0B8SsFMsejU86RXww12Ewgg ExBgNVHSAEggEoMIIBJDCCASAGCSsGAQQBrGYDBTCCAREwNAYIKwYBBQUHAgEWKGh0d HA6Ly93d3cuY2VydC5mbm10LmVzL2NvbnZlbmlvL2RwYy5wZGYwgdgGCCsGAQUFBwIC MIHLGoHIQ2VydGlmaWNhZG8gUmVjb25vY2lkbyBleHBlZGlkbyBzZWf6biBsZWdpc2x hY2nzbiB2aWdlbnRlLlVzbyBsaW1pdGFkbyBhIGxhIENvbXVuaWRhZCBFbGVjdHLzbm ljYSBwb3IgdmFsb3IgbeF4aW1vIGRlIDEwMCBlIHNhbHZvIGV4Y2VwY2lvbmVzIGVuI ERQQy5Db250YWN0byBGTk1UOkMvSm9yZ2UgSnVhbiAxMDYtMjgwMDktTWFkcmlkLUVz cGHxYS4wHQYJKwYBBAGsZgEhBBAWDlBFUlNPTkEgRklTSUNBMC8GCCsGAQUFBwEDBCM wITAIBgYEAI5GAQEwFQYGBACORgECMAsTA0VVUgIBZAIBADBbBgNVHR8EVDBSMFCgTq BMpEowSDELMAkGA1UEBhMCRVMxDTALBgNVBAoTBEZOTVQxGDAWBgNVBAsTD0ZOTVQgQ 2xhc2UgMiBDQTEQMA4GA1UEAxMHQ1JMNTA2NTANBgkqhkiG9w0BAQUFAAOBgQAivhxm +nzuyDrlIXS62pgTvfNTxY7noCSGcQMXpfbNtU6x36Fxp4AC8qKxmQw15fcipLZwugf VrzACQNHqHaG0F4wTQjDi5AS7WSwW76P1ye1RTX4x3doD4NPE3WjAm3lhM1DdJKI6D7 vDeM/ucTmor3VlZcCOlcClfzmRSakAxg==</ds:X509Certificate>

</ds:X509Data>

</ds:KeyInfo>

<ds:Object>

<xades:QualifyingProperties

xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-QualifyingProperties" Target="#6a237675-0874-4fe8-a83b-3d8b4d35abce-Signature">

<xades:SignedProperties Id="6a237675-0874-4fe8-a83b-3d8b4d35abce-SignedProperties">

<xades:SignedSignatureProperties>

<xades:SigningTime>2010-08-18T17:45:09+02:00</xades:SigningTime>

<xades:SigningCertificate>

<xades:Cert>

<xades:CertDigest>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>UeQ8exoQXPffxvo2FYxxT3ez938=</ds:DigestValue>

</xades:CertDigest>

<xades:IssuerSerial>

<ds:X509IssuerName>OU=FNMT Clase 2 CA, O=FNMT, C=ES</ds:X509IssuerName>

<ds:X509SerialNumber>1017467145</ds:X509SerialNumber>

</xades:IssuerSerial>

</xades:Cert>

</xades:SigningCertificate>

</xades:SignedSignatureProperties>

<xades:SignedDataObjectProperties>

<xades:DataObjectFormat ObjectReference="#7b8a6df9-412c-4ab0-9822-891b19784933-Reference">

<xades:ObjectIdentifier>

<xades:Identifier Qualifier="OIDAsURN">urn:oid:1.2.840.10003.5.109.10</xades:Identifier>

<xades:Description>Tipo de dato</xades:Description>

</xades:ObjectIdentifier>

<xades:Description/>

<xades:MimeType>text/xml</xades:MimeType>

<xades:Encoding>UTF-8</xades:Encoding>

</xades:DataObjectFormat>

</xades:SignedDataObjectProperties>

</xades:SignedProperties>

<xades:UnsignedProperties>

<xades:UnsignedDataObjectProperties>

<xades:UnsignedDataObjectProperty>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:edocumento="http://es.es/documento-electronico/metadatos/1.0/">

<rdf:Description rdf:about="#">

<dc:title>Ejemplo de metadato NO firmado RDF/DC en documento CODICE firmado XAdES</dc:title>

<edocumento:Identificador>0ADeFRd6754</edocumento:Identificador>

<edocumento:TipoFirma>XAdES-BES</edocumento:TipoFirma>

<edocumento:ReferenciaFirma rdf:resource="#23a294fd-89ad-4aff-b302-f8b6fca11509-Signature"/>

</rdf:Description>

</rdf:RDF>

</xades:UnsignedDataObjectProperty>

</xades:UnsignedDataObjectProperties>

</xades:UnsignedProperties>

</xades:QualifyingProperties>

</ds:Object>

</ds:Signature>

</odsig:document-signatures>

  </ext:ExtensionContent>

  </ext:UBLExtension>

</ext:UBLExtensions>

<cbc:UBLVersionID>2.1</cbc:UBLVersionID>

<cbc:CustomizationID>CODICE 2.0</cbc:CustomizationID>

<cbc:ProfileID>CiP 1.4</cbc:ProfileID>

<cbc:ID>0000000000075</cbc:ID>

<cbc:ContractFolderID>3</cbc:ContractFolderID>

<cbc:IssueDate>2010-06-14+02:00</cbc:IssueDate>

<cbc:IssueTime>10:31:19.505+02:00</cbc:IssueTime>

<cac:TendererParty>

<cac:PartyIdentification>

<cbc:ID schemeName="NIF">12121212M</cbc:ID>

</cac:PartyIdentification>

<cac:PartyName>

<cbc:Name>oeee1</cbc:Name>

</cac:PartyName>

<cac:Contact>

<cbc:ElectronicMail>tucosa@mailinator.com</cbc:ElectronicMail>

</cac:Contact>

</cac:TendererParty>

<cac:ContractingParty>

<cbc:ContractingPartyTypeCode languageID="es"

listURI="http://contrataciondelestado.es/codice/cl/1.04/ContractingAuthorityCode-1.04.gc" listVersionID="2006" name="Administración General del Estado"> 1</cbc:ContractingPartyTypeCode>

  <cac:Party>

<cac:PartyIdentification>

<cbc:ID schemeName="CIF">Q0818001J</cbc:ID>

</cac:PartyIdentification>

<cac:PartyIdentification>

<cbc:ID schemeName="ID_PLATAFORMA">10000130031847</cbc:ID>

</cac:PartyIdentification>

<cac:PartyName>

<cbc:Name>JUSTI</cbc:Name>

</cac:PartyName>

<cac:PostalAddress>

<cbc:AddressFormatCode languageID="es"

listURI="http://contrataciondelestado.es/codice/cl/1.04/AddressFormatCode-1.0.gc" listVersionID="2007" name="Spanish Format"> 1</cbc:AddressFormatCode>

<cbc:CityName>Madrid</cbc:CityName>

<cbc:PostalZone>28071</cbc:PostalZone>

<cac:AddressLine>

<cbc:Line>C/ José Abasca, nº 1</cbc:Line>

</cac:AddressLine>

<cac:Country>

<cbc:IdentificationCode languageID="es" listURI="http://docs.oasis-open.org/ubl/os-ubl-2.0/cl/gc/default/CountryIdentificationCode-2.0.gc" listVersionID="0.3" name="España">ES</cbc:IdentificationCode>

<cbc:Name>España</cbc:Name>

</cac:Country>

</cac:PostalAddress>

<cac:Contact>

<cbc:Name>JUSTI</cbc:Name>

<cbc:Telephone>999999999</cbc:Telephone>

<cbc:ElectronicMail>felixjesus.aragones@meh.es</cbc:ElectronicMail>

</cac:Contact>

<cac:Person>

<cbc:JobTitle>roc</cbc:JobTitle>

</cac:Person>

</cac:Party>

</cac:ContractingParty>

<cac:TenderedProject>

<cac:TenderLine>

<cac:DocumentReference>

<cbc:ID>1</cbc:ID>

<cac:Attachment>

<cbc:EmbeddedDocumentBinaryObject

mimeCode="text/plain"> aG9sYQ==

</cbc:EmbeddedDocumentBinaryObject>

</cac:Attachment>

</cac:DocumentReference>

</cac:TenderLine>

</cac:TenderedProject>

</Tender>

4. CONSTRUCCIÓN DE UN EXPEDIENTE ELECTRÓNICO

92. Para crear un expediente electrónico conforme a los XSDs del ENI, se crea una instancia XML del esquema expedienteEni.xsd, que está formado por un elemento raíz expediente, y tres secciones principales:

Sección índice.

Sección metadatosExp.

Sección VisualizacionIndice.

Figura 24. Componentes del expediente electrónico.

93. Nótese que las secciones índice y metadatosExp son obligatorias, mientras que la sección de VisualizacionIndice es opcional.

94. Al igual que para el esquema XSD de documento electrónico, se recomienda la asignación de un identificador Id al nodo expediente, que ha de ser único dentro del esquema que lo contiene.

95. Cada una de las secciones que componen la estructura del esquema también podrá tener asignado, de manera opcional, un identificador. Para más información sobre el elemento identificador Id ver el apartado 2.2.1.

96. En el siguiente ejemplo se declara un elemento expediente, compuesto por la cabecera del expediente y la declaración de los espacios de nombres, ambos definidos en el apartado 2.2.1 del manual, así como por los bloques de índice, metadatosExp y VisualizacionIndice, cuya construcción se describen en apartados sucesivos.

Ejemplo de código 30. Construcción de expediente

<?xml version="1.0" encoding="UTF-8"?>

<eniexp:expediente Id="ID_1"

xsi:schemaLocation="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e"

xmlns:enidoc=" http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e

xmlns:enidocmeta="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/metadatos"

xmlns:enids="http://administracionelectronica.gob.es/ENI/XSD/v1.0/firma"

xmlns:eniexp="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e"

xmlns:eniexpind="http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e"

xmlns:eniconexpind="15Hhttp://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/indice-e/contenido"

xmlns:eniexpmeta="2Hhttp://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e/metadatos"

xmlns:enifile="http://administracionelectronica.gob.es/ENI/XSD/v1.0/documento-e/contenido"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<eniexpind:indice>

...

</eniexpind:indice>

<eniexpmeta:metadatosExp>

...

</eniexpmeta:metadatosExp>

<eniexp:VisualizacionIndice>

...

</eniexp:VisualizacionIndice>

</eniexp:expediente>

4.1. Bloque índice del expediente electrónico

97. La construcción del bloque indice atiende a la generación de una instancia XML del módulo IndiceExpedienteEni.xsd.

98. Para crear el índice de un expediente electrónico, se crea un XML que tenga como elemento raíz el elemento índice, y que contendrá:

opcionalmente, un atributo identificador Id,

de manera obligatoria los sub-elementos IndiceContenido y firmas cuya construcción se detalla en los apartados sucesivos.

99. A continuación se muestra un ejemplo del bloque índice del expediente electrónico.

Ejemplo de código 31. Índice de expediente

<eniexpind:indice Id=”ID_2”>

<eniexpind:IndiceContenido>

...

</eniexpind:IndiceContenido>

<enids:firmas>

...

</enids:firmas>

</eniexpind:indice>

4.1.1. Contenido del índice de expediente

100. La construcción del bloque IndiceContenido atiende a la generación de una instancia XML del módulo IndiceContenidoExpedienteEni.xsd.

101. Para crear un expediente electrónico mediante la inclusión de documentos electrónicos como elementos independientes, se utiliza el elemento DocumentoIndizado. En este caso, para cada documento electrónico incluido en el índice electrónico, se refleja la siguiente información:

Identificador (IdentificadorDocumento).

Huella digital (ValorHuella).

Función resumen utilizada para calcular la huella (FuncionResumen). En este campo se indicarán los posibles valores de las versiones correspondientes a los algoritmos de hash especificados en la NTI de Catálogo de Estándares - RFC 4634 y 3874 (SHA-224, SHA-256, SHA-384 y SHA-512)-, utilizando formato de URI para su codificación, para favorecer el procesado automatizado de los sistemas de información, por ejemplo:

http://www.w3.org/2001/04/xmlenc#sha256;

http://www.w3.org/2001/04/xmlenc#sha384;

http://www.w3.org/2001/04/xmlenc#sha256

Por otra parte, se recomienda el empleo de un metadato complementario del expediente electrónico¹³ que indique cuál es el algoritmo de canonicalización empleado en las funciones resumen de los documentos electrónicos a escoger entre estos tres, que son los más usados, y los que recomienda la Unión Europea:

Canonical XML 1.0 (omits comments) : http://www.w3.org/TR/2001/REC-xml-c14n-20010315

Canonical XML 1.1 (omits comments) : http://www.w3.org/2006/12/xml-c14n11

Exclusive XML Canonicalization 1.0 (omits comments): http://www.w3.org/2001/10/xml-exc-c14n#

Opcionalmente, la fecha de incorporación al expediente (FechaIncorporacionExpediente) y el orden que ocupa en el expediente electrónico (OrdenDocumentoExpediente).

Figura 25. Documento indizado.

102. Para incluir en el índice de contenido del expediente, un sub-expediente, es decir, un expediente electrónico anidado dentro de otro, se crea un elemento ExpedienteIndizado y se siguen las reglas de construcción definidas para el índice de expediente.

Figura 26. Expediente indizado.

103. Para crear un índice, agrupando los documentos del expediente electrónico en carpetas, se crea un elemento CarpetaIndizada, que podrá contener a su vez documentos indizados, expedientes indizados y otras carpetas indizadas, tal y como muestra la siguiente figura.

Figura 27. Carpeta indizado.

104. El elemento CarpetaIndizada se compone de los siguientes sub-elementos:

Un atributo identificador opcional Id.

Un elemento IdentificadorCarpeta.

Obligatoriamente, al menos, uno de los siguientes elementos repetibles, que se describen en este apartado:

DocumentoIndizado

ExpedienteIndizado

CarpetaIndizado

105. A continuación, se muestra un ejemplo del contenido del índice del expediente, en el que se incluyen dos documentos electrónicos independientes, un subexpediente y una carpeta indizada.

Ejemplo de código 32. Contenido del índice del expediente

<eniexpind:IndiceContenido Id="ID_IC_01">

<eniconexpind:FechaIndiceElectronico>2011-01-12T09:30:47Z</eniconexpind:FechaIndiceElectronico>

<!-- Documento indizado -->

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento>

ES_E00010207_2010_MPR000000000000000000000010201

</eniconexpind:IdentificadorDocumento>

<eniconexpind:ValorHuella> c723be19bb2291f8d55d6aad0c07a755801edff3

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente>2011-01-12T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

<!-- Documento indizado -->

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento>

ES_E00010207_2010_MPR000000000000000000000010202

</eniconexpind:IdentificadorDocumento>

<eniconexpind:ValorHuella> ff20f1342978f1295a1a60cf32b563763ccfc90c

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente>2011-01-12T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

<!-- Subexpediente con dos documentos indizados -->

<eniconexpind:ExpedienteIndizado>

<eniconexpind:FechaIndiceElectronico>2010-12-12T09:30:47Z

</eniconexpind:FechaIndiceElectronico>

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento>

ES_E00010207_2010_MPR000000000000000000000010203

</eniconexpind:IdentificadorDocumento>

<eniconexpind:ValorHuella> 655cf180c789c07f5cc2bba0b73b541abb972edb

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente>2010-10-11T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento>

ES_E00010207_2010_MPR000000000000000000000010204

</eniconexpind:IdentificadorDocumento>

<eniconexpind:ValorHuella> 927c783759fe413f110cfafd4d988abecf2fd632

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente>2010-11-18T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

</eniconexpind:ExpedienteIndizado>

<!-- Carpeta Indizada con un documento indizado, un expediente indizado y una subcarpeta indizada -->

<eniconexpind:CarpetaIndizada>

<eniconexpind:IdentificadorCarpeta> ES_E00025185_2010_CRP0007002

</eniconexpind:IdentificadorCarpeta>

<!-- Documento indizado -->

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento> ES_E00010207_2010_MPR000000000000000000000010205

</eniconexpind:IdentificadorDocumen to>

<eniconexpind:ValorHuella> 28021a256e191f9a0f8d8e6d05e7bec978963e8e

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente>2010-10-11T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

<!-- Expediente indizado con un documento indizado dentro -->

<eniconexpind:ExpedienteIndizado>

<eniconexpind:FechaIndiceElectronico> 2010-12-12T09:30:47Z

</eniconexpind:FechaIndiceElectronico>

<!-- Documento indizado -->

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento> ES_E00010207_2010_MPR000000000000000000000010206

</eniconexpind:IdentificadorDocumen to>

<eniconexpind:ValorHuella> 255f670c99eab7500db6050de2e191b52af5df26

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1

</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente> 2010-10-11T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

</eniconexpind:ExpedienteIndizado>

<!-- Subcarpeta dentro de carpeta indizada -->

<eniconexpind:CarpetaIndizada>

<eniconexpind:IdentificadorCarpeta> ES_E00025185_2010_CRP0007003

</eniconexpind:IdentificadorCarpeta>

<!-- Expediente indizado-->

<eniconexpind:ExpedienteIndizado>

<eniconexpind:FechaIndiceElectronico>2010-12-12T09:30:47Z

</eniconexpind:FechaIndiceElectronico>

<!-- Documento indizado -->

<eniconexpind:DocumentoIndizado>

<eniconexpind:IdentificadorDocumento> ES_E00010207_2010_MPR000000000000000000000010207

</eniconexpind:IdentificadorDocumento>

<eniconexpind:ValorHuella> 617af08bea912e92731fd26532db6eb43a18f94f

</eniconexpind:ValorHuella>

<eniconexpind:FuncionResumen>SHA-1

</eniconexpind:FuncionResumen>

<eniconexpind:FechaIncorporacionExpediente> 2010-10-11T09:30:47Z

</eniconexpind:FechaIncorporacionExpediente>

</eniconexpind:DocumentoIndizado>

</eniconexpind:ExpedienteIndizado>

</eniconexpind:CarpetaIndizada>

</eniconexpind:CarpetaIndizada>

</eniexpind:IndiceContenido>

4.1.2. Firmas del índice de expediente

106. La construcción del bloque firmas atiende a la generación de una instancia XML del módulo firmasEni.xsd.

107. El índice de expediente tiene, al menos, un bloque de firmas, con al menos una firma del contenido del índice electrónico. Las consideraciones a tener en cuenta para la construcción de este bloque coinciden con las descritas para el bloque de firmas de documentos electrónicos, apartado 3.4.

108. Destacar que la cardinalidad del bloque de firmas para el expediente electrónico es de 1:N, permitiendo la inclusión de diferentes firmas, por ejemplo un índice electrónico podría contener una firma basada en certificados, y otra mediante CSV.

4.2. Bloque de metadatos del expediente

109. La construcción del bloque de metadatos atiende a la generación de una instancia XML del módulo metadatosExpedienteEni.xsd, asignando:

Valores de los metadatos mínimos obligatorios cuyo valor atiende a lo establecido en al NTI de Expediente Electrónico, considerando los esquemas de valores allí establecidos, y que debe ser asignado en cada caso según la naturaleza y particularidades de cada expediente.

Opcionalmente, el atributo identificador Id del bloque.

110. Un ejemplo completo de declaración de metadatos sería el siguiente:

Ejemplo de código 33. Construcción de metadatos de expediente

<enidocmeta:metadatos>

<eniexpmeta:VersionNTI>

http://administracionelectronica.gob.es/ENI/XSD/v1.0/expediente-e

</eniexpmeta:VersionNTI>

<eniexpmeta:Identificador>ES_E00010207_2010_EXP_MPR000000000000000000000010207

</eniexpmeta:Identificador>

<eniexpmeta:Organo>E00127403

</eniexpmeta:Organo>

<eniexpmeta:FechaAperturaExpediente>2001-12-17T09:30:47Z

</eniexpmeta:FechaAperturaExpediente>

<eniexpmeta:Clasificacion>999118</eniexpmeta:Clasificacion>

<eniexpmeta:Estado>E01</eniexpmeta:Estado>

<eniexpmeta:Interesado>12345678-Z</eniexpmeta:Interesado>

</enidocmeta:metadatos>

4.3. Elemento visualización del índice

111. El elemento opcional VisualizacionIndice puede entenderse como un objeto que permite incluir una visualización del contenido del expediente electrónico total o parcial en respuesta por ejemplo, a la necesidad de facilitar una versión del índice del expediente más adaptada a un tratamiento no automatizado.

112. Este elemento puede resultar de utilidad en tanto que permite aportar la información del expediente que se requiera. Esto es, se podría generar una visualización del índice del expediente, o bien del contenido completo de los documentos que componen el expediente, atendiendo a la finalidad que se persiga en cada caso.

113. Según esto, el elemento VisualizacionIndice podría contener, por ejemplo:

Un fichero PDF que incluye toda la información del contenido del índice del expediente.

Un fichero que contenga todas las huellas de los documentos que componen el expediente.

Un fichero con la lista de referencias a todas las huellas (como si de un índice se tratara) con hipervínculos.

Cualquier otra estructura a elegir por cada organización en base a sus necesidades.

114. Dado que se trata en cualquier caso de incluir un fichero, la estructura de este elemento se corresponde con el TipoContenido del bloque de contenido del documento electrónico (contenidoDocumentoEni.xsd).

ANEXO I – EQUIPO RESPONSABLE DEL PROYECTO

Coordinador del proyecto

Amutio Gómez, Miguel A.

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Grupo de expertos:

Administración General del Estado

Agurruza Mutuberría, Jokin

INSTITUTO NACIONAL DE ESTADÍSTICA

Alburquerque Pernías, Francisco

MINISTERIO DEL INTERIOR - DIRECCIÓN GENERAL DE LA POLICÍA

Alberto Martín, Félix

MINISTERIO DE JUSTICIA

Alcaide García, Aleida

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Alcolea Muñoz, Antonio

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

de Alfonso López, Ricardo

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Amores Molero, Felipe

FÁBRICA NACIONAL DE MONEDA Y TIMBRE

Aragonés Arribas, Félix Jesús

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Arancón Carnicero, Concha

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Arranz, Candelas

AGENCIA ESTATAL DE ADMINISTRACIÓN TRIBUTARIA

Ballesteros Arjona, Juan Jesús

MINISTERIO DE FOMENTO

Barba Lobatón, Jesús

MINISTERIO DE JUSTICIA

Barrón Basterrechea, José Luis

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Beltrán, Ana

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Beriso, Pilar

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Berral López Alfonso

MINISTERIO DEL INTERIOR - DIRECCIÓN GENERAL DE TRÁFICO

Blanco Arribas, Miguel Ángel

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Bustos Pretel, Gerardo

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Cabezas Manso, Laura

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Candau, Javier

CENTRO CRIPTOLÓGICO NACIONAL

Caruana De las Cagigas, Elisa

MINISTERIO DE ECONOMÍA Y COMPETITIVIDAD

Del Caño Gil, Cristina

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Cañero Villegas, Ismael

MINISTERIO DEL INTERIOR

Casado Robledo, Mª Jesús

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Cívicos Villa, Noemí

MINISTERIO DE LA PRESIDENCIA

Conejo Fernández, Carmen

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Corral Guinea, Myriam

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Crespo Sánchez, Juan

MINISTERIO DEL INTERIOR – DIRECCIÓN GENERAL DE LA POLICIA

Criado Gómez, Isabel

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Cubo Contreras, Aitor

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Cueva Calabia, José Luis

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Desantes Fernández, Blanca

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

De la Calle Vian, Elena

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Delgado Casanova, Ricardo

MINISTERIO DE ASUNTOS EXTERIORES Y DE COOPERACIÓN

De Miguel de Santos, Maria

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Díez Pérez, Esther

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Eguíluz Gauna, Jesús

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Escapa Castro, Lucía

MINISTERIO DE LA PRESIDENCIA

Eusamio Mazagatos, José Antonio

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Fernández Crespo, María Esther

MINISTERIO DEL INTERIOR - DIRECCIÓN GENERAL DE LA POLICÍA

Fernández Lombardía, Oscar

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Fradua García-Soto, Idoia

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Fuentes Bajo, Ricardo

MINISTERIO DE AGRICULTURA, ALIMENTACIÓN Y MEDIO AMBIENTE

Franco Espino, Beatriz

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Galán Manso, Clara

MINISTERIO DE DEFENSA

Galindo Alonso, Olga

GERENCIA DE INFORMÁTICA Y SEGURIDAD SOCIAL

Gamarra, Juan Carlos

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Garcés, Juan Carlos

CONSEJO GENERAL DEL PODEL JUDICIAL

García Celada, Joseba

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

García Jiménez, Alfonso

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

García Martín, Mª Jesús

MINISTERIO DE INDUSTRIA, ENERGIA Y TURISMO

García Martínez, José Luis

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Gendive Rivas, Miguel

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Gijón Romero, Francisco

MINISTERIO DE FOMENTO

Gil Navalón, Roberto

MINISTERIO DE DEFENSA

Gómez Muñoz, Carlos Fransico

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Gómez Plaza, Carlos

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Gómez Raya, José Ignacio

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Gómez Vaz, Manuel

MINISTERIO DE FOMENTO

González Rufo, Mª Ángeles

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Gonzalo Ramírez, Alberto

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Hernández Vicente, Severiano

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Hernández Gallardo, Diego

FÁBRICA NACIONAL DE MONEDA Y TIMBRE

Hernández Jiménez, Francisco

INSTITUTO NACIONAL DE ESTADÍSTICA

Hernández Maroto, Mª Dolores

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Hernández Vigliano, Julián

MINISTERIO DE LA PRESIDENCIA

Herrero García, Carlos

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Horganero Gómez, Sara

MINISTERIO DE ASUNTOS EXTERIORES Y DE COOPERACIÓN

Hortigüela Hortigüela, Concha

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Iniesta Sánchez, Fernando

MINISTERIO DE LA PRESIDENCIA

Jaqueti, Francisco Javier

INSTITUTO NACIONAL DE ESTADÍSTICA

Jara González, Francisco José

MINISTERIO DEL INTERIOR – DIRECCIÓN GENERAL DE LA POLICIA

Jiménez Muñoz, Luis

CENTRO CRIPTOLÓGICO NACIONAL

Lago Bagues, Ramiro José

MINISTERIO DE ECONOMÍA Y COMPETITIVIDAD

Lapuente Perea, José Luis

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

López Crespo, Francisco

MINISTERIO DE ASUNTOS EXTERIORES Y DE COOPERACIÓN

López Herrero, Miguel Ángel

MINISTERIO DE FOMENTO

Lorenzo Fernández, Laura

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Lucas Vegas, Mª José

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Llorens González, Juan de Dios

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Mañes Guerras, Santos

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Martín Lázaro, Francisco José

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Martín Marcos, Miguel

MINISTERIO DE DEFENSA

Martín Rey, Rosa Mª

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Martínez Merencio, Cristina

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Martínez Muñoz, David

MINISTERIO DE ASUNTOS EXTERIORES Y DE COOPERACIÓN

Martínez Vidal, Miguel Ángel

INSTITUTO NACIONAL DE ESTADÍSTICA

Maza Frechín, Carlos

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Merchán Arribas, Montaña

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

De Miguel Santiago, María Luz

MINISTERIO DE AGRICULTURA, ALIMENTACIÓN Y MEDIO AMBIENTE

Millaruelo Gómez, Alejandro

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Montes Antona, Javier

FÁBRICA NACIONAL DE MONEDA Y TIMBRE

Muñoz Montalvo, Juan Fernando

MINISTERIO DE SANIDAD, SERVICIOS SOCIALES E IGUALDAD

Muñoz Salinero, Elena

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Ochando Perales, Javier

MINISTERIO DE DEFENSA

Ortiz Tovar, Eva María

MINISTERIO DE JUSTICIA

Otheo de Tejada, Josefina

AGENCIA ESTATAL DE ADMINISTRACIÓN TRIBUTARIA

De la Paz Rincón, Antonio

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Pardo, Jesús

FÁBRICA NACIONAL DE MONEDA Y TIMBRE

Pérez Alcázar, Ricard

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Pérez Galindo, Rafael

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Pérez de Lema Sáenz de Viguera, Andoni

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Rada Muruaga, Begoña

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Ramos Curto, Juan Francisco

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Rebollo Bello, Rafael

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Requejo Zalama, Javier

MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE

Rincón Mirón, Jorge Antonio

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

del Rio Molini, Mario

MINISTERIO DE DEFENSA

Robledo Pascual , Óscar

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Rodríguez Hervás, Francisco Javier

MINISTERIO DEL INTERIOR

Rodríguez Escolar, Nimia

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Rodríguez Ramos, Miguel Ángel

MINISTERIO DE INDUSTRIA, ENERGIA Y TURISMO

Román Cortés, Juan Carlos

AGENCIA ESTATAL DE ADMINISTRACIÓN TRIBUTARIA

Rubio Martínez, Javier

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Ruiz del Corral, Manuel

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Ruiz de Garibay Cubillo, Andrea

AGENCIA ESTATAL DE ADMINISTRACIÓN TRIBUTARIA

Salom, Juan

GUARDIA CIVIL

San Atanasio, Pinar

AGENCIA ESTATAL DE METEOROLOGÍA

Sánchez Abad, Mª Pilar

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Sánchez Agulló, Pablo

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Sanz Pulido, Antonio

MINISTERIO DE EMPLEO Y SEGURIDAD SOCIAL

Sobrino Moreno, José María

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Triguero Garrido, Mario

GERENCIA DE INFORMÁTICA DE LA SEGURIDAD SOCIAL

Turón Turón, Ángeles

MINISTERIO DE JUSTICIA

Valcárcel Lucas, Pedro-Castor

GERENCIA DE INFORMÁTICA DE LA SEGURIDAD SOCIAL

Vallejo Echevarría, Maite

MINISTERIO DE JUSTICIA

Vega Fidalgo, Luis Miguel

GERENCIA DE INFORMÁTICA DE LA SEGURIDAD SOCIAL

Vélez Fraga, Santiago

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Villafrana Ramos, Alberto

MINISTERIO DE LA PRESIDENCIA

Vinagre Bachiller, José María

MINISTERIO DE SANIDAD, SERVICIOS SOCIALES E IGUALDAD

Viñado Villuendas, Pilar

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Villalba Tomás

MINISTERIO DEL INTERIOR

Zapardiel, Juan Antonio

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Zapico, Alberto

AGENCIA ESTATAL DE LA ADMINISTRACIÓN TRIBUTARIA

Comunidades Autónomas

Arlegui, Luis

COMUNIDAD FORAL DE NAVARRA

Báez Rodríguez, Luis Alberto

CANARIAS

Barras, Juan Antonio

CASTILLA Y LEÓN

Del Barrio Morón, Antonio

CASTILLA-LA MANCHA

Berjano Tartiere, Bárbara

PRINCIPADO DE ASTURIAS

Cantabrana González, Ricardo

ARAGÓN

Callés, Carme

CATALUÑA

Cañal Villanueva, Mª José

CASTILLA Y LEÓN

Cortés Domingo, Rubén

CATALUÑA

Chapado Gregorio, Susana

COMUNITAT VALENCIANA

Fernández Requejo, Antonio

EXTREMADURA

Font Bibiloni, Andreu

ILLES BALEARS

Galán Huertos, Pilar

CASTILLA Y LEÓN

Galindo Rodríguez, Rosa M.

CANARIAS

García Hernández, Rosa Mª.

COMUNITAT VALENCIANA

García Sexto, María José

JUNTA DE GALICIA

Giner Comín, Illana

CATALUÑA

González, Borja

CANTABRIA

González Rodríguez, Manuel de los Reyes

CANARIAS

Hernández Roig, Carolina

CANARIAS

Larrañaga Uyarra, Antxon

PAÍS VASCO

López González, Mª del Rosario

PRINCIPADO DE ASTURIAS

Lozano Cantín, Mª Ángel

ARAGÓN

Marín Cruz, Pepa

COMUNIDAD DE MADRID

Moreno, Ángel

LA RIOJA

Ojeda Pérez, Juan Sebastián

ANDALUCIA

Olivares Sánchez, Pedro

REGIÓN DE MURCIA

Pelach i Pániker, Álex

CATALUÑA

Perera Domínguez, Manuel

ANDALUCIA

Rodríguez Parraga, José María

JUNTA DE CASTILLA Y LEÓN

Rodríguez Rodríguez, Juan Carlos

PRINCIPADO DE ASTURIAS

Rosat Jorge, José Luis

CASTILLA Y LEÓN

Ruíz Benítez, Mª del Carmen

CANARIAS

Sánchez Melero, Arturo

COMUNIDAD DE MADRID

Saro, Javier

CANTABRIA

Sáez de Vicuña, Asier

PAÍS VASCO

Vázquez López, José Manuel

COMUNIDAD FORAL DE NAVARRA

Corporaciones Locales

Bárcenas Gutiérrez, Pablo

FEDERACIÓN ESPAÑOLA DE MUNICIPIOS Y PROVINCIAS

Serrano Quintana, Juan Manuel

FEDERACIÓN ESPAÑOLA DE MUNICIPIOS Y PROVINCIAS

Universidades

Sánchez Martínez, Daniel

CONFERENCIA DE RECTORES DE LAS UNIVERSIDADES ESPAÑOLAS

Otras Instituciones

de Ocaña Lacal, Daniel

TRIBUNAL CONSTITUCIONAL

Con la participación especial de los expertos

Llorens González, Juan de Dios

MINISTERIO DE INDUSTRIA, ENERGÍA Y TURISMO

Sánchez Blázquez, Eduardo

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Carrasco Grande, Antonio

MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Medio propio

Red.es

ANEXO II - RESUMEN TRATAMIENTO DE TIPOS DE FIRMA

Con carácter didáctico, se incluye la siguiente tabla que recoge una breve descripción de las opciones más comunes de tratamiento de los diferentes tipos de firmas, incluyendo la etiqueta correspondiente a la firma en cada caso.

Nótese que no se incluye la casuística completa de tratamiento de firmas, ya que ésta pueden variar según las necesidades de cada organización.

Tabla 4. Resumen tratamiento de tipos de firma

Tipo de firma

Descripción

Tratamiento en el esquema

Elemento en que se ubica la firma

CSV

Contenido firmado y firma constituyen elementos independientes. La firma es sencillamente el valor del CSV.

Contenido y firma ocupan sus respectivos bloques de forma independiente.

enids:CSV

XAdES internally detached signature

Contenido firmado y firma comparten una misma estructura XML como nodos independientes.

Si la firma se generó previamente:

Contenido y firma se integran en el bloque de contenido.

El bloque de firma la referencia a través del elemento enids:ReferenciaFirma.

enifile:DatosXML

Si la firma se genera sobre el esquema XML construido:

Contenido y firma ocupan los bloques de contenido y firma respectivamente.

ds:Signature

XAdES enveloped signature

Contenido firmado y firma comparten una misma estructura XML necesaria para la validación de la firma. La firma se ubica al final de la estructura.

Si la firma avala únicamente el bloque de contenido del esquema XML construido:

Contenido y firma se integran en el bloque de contenido.

El bloque de firma la referencia a través del elemento enids:ReferenciaFirma.

enifile:DatosXML

Si la firma se genera sobre el esquema XML completo:

Contenido y firma ocupan los bloques de contenido y firma respectivamente.

ds:Signature

CAdES detached/ explicit signature

Contenido firmado y firma constituyen ficheros independientes

Contenido y firma ocupan sus respectivos bloques de forma independiente.

enids:FirmaBase64

CAdES attached/ implicit signature

El fichero de firma envuelve el propio contenido firmado de forma que, para acceder al contenido, es necesario interpretar la firma.

Opción 1: El fichero (contenido y firma) se ubican en el bloque de firma y se referencia desde el bloque contenido a través del elemento enifile:referenciaFichero.

enids:FirmaBase64

Opción 2: El fichero (contenido y firma) se ubican en el bloque de contenido y se referencia desde el bloque de firma a través del elemento enids:ReferenciaFirma.

enifile:ValorBinario

PAdES

Contenido firmado y firma se incluyen bajo un único fichero PDF que permite el acceso a ambos componentes de forma independiente.

El PDF (contenido y firma) se integran en el bloque de contenido.

El bloque de firma la referencia a través del elemento enids:ReferenciaFirma.

enifile:ValorBinario

Notas

[←1]

Aunque aparece en la figura 1 y el XSD del ENI permite su instanciación, el esquema correspondiente a la especificación formal de las firmas XMLDSig está fuera del alcance de este manual.

[←2]

El nombre y ubicación final puede sufrir leves modificaciones.

[←3]

Este atributo sigue la especificación formal http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html#ID

[←4]

El valor contenido se extraerá de los formatos admitidos para ficheros de la NTI de Catálogo de estándares.

[←5]

Nótese que la firma es obligatoria para el documento electrónico administrativo y para todo aquél susceptible de ser integrado en un expediente electrónico.

[←6]

[←7]

Nótese que la inclusión de un nuevo valor en la lista de restricción de un tipo enumerado deberá seguir la secuencia establecida para el resto de valores ofrecidos.

[←8]

En caso de datos XML cuya codificación difiera de la estructura raíz del esquema, se incluirá una cláusula CDATA.

[←9]

En caso de firmas multinodo, el valor del atributo ref incluye una lista separada por comas de los identificadores de los nodos firmados.

[←10]

Nótese que, por extensión, el contenido codificado es sólo un extracto de un ejemplo real.

[←11]

Nótese que, por extensión, el contenido codificado es sólo un extracto de un ejemplo real.

[←12]

Nótese que, por extensión, el contenido codificado es sólo un extracto de un ejemplo real.

[←13]

Dicho metadato se especificará en el Esquema de Metadatos para la Gestión del Documento Electrónico.