<?xml version="1.0" encoding="ISO-8859-15"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xsd:element name="Certificado">
    <xsd:complexType minOccurs="1" maxOccurs="1">
      <xsd:choice>
        <xsd:element name="cuentaACF" type="tipoCuentaACF"/>
		<xsd:element name="cuentaPJ" type="tipoCuentaPJ"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>  
  <xsd:complexType name="tipoCuentaACF">
    <xsd:sequence>
	  <xsd:element name="version" type="tipoVersion" default="1A" required="true">
		<xsd:annotation>				
			<xsd:documentation> Código que indica versión de esquema utilizada.</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
      <xsd:element name="ejercicio" type="tipoEjercicio" required="true"/>
	  <xsd:element name="numCuentaJustificativa" type="tipoDesc15" required="true"/>
	  <xsd:element name="codigoPresupuestario" type="tipoCodigoPresupuestario" required="true">
		<xsd:annotation>
		  <xsd:documentation> Código de la entidad de cuatro o cinco dígitos. Sección/Servicio o código presupuestario de la entidad sin espacios ni signos de puntuación</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
	  <xsd:element name="organismo" type="tipoDesc50" required="true"/>
	  <xsd:element name="servicio" type="tipoDesc50" required="true"/>
	  <xsd:element name="cajaPagadora" type="tipoCajaPagadora" required="true"/>
	  <xsd:element name="unidadAdministrativa" type="tipoDIR3" required="true">
		<xsd:annotation>
		  <xsd:documentation>Código DIR3 de la unidad tramitadora</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
	  <xsd:element name="numeroOperacion" type="tipoNumeroOperacion" required="true"/>
	  <xsd:element name="importeIntegro" type="tipoImporte" required="true"/>
	  <xsd:element name="importeDescuentos" type="tipoImporte" required="true"/>
	  <xsd:element name="importeLiquido" type="tipoImporte" required="true"/>
	  <xsd:element name="cuentadante" type="tipoCuentadante" required="true"/>	  
      <xsd:element name="fechaAprobacion" type="xsd:date" required="true"/>
	  <xsd:element name="dependenciaDeposito" type="tipoDesc250" required="true"/>
      <xsd:element name="localidadExpedicion" type="tipoDesc50" required="true"/>
	  <xsd:element name="fechaExpedicion" type="xsd:date" required="true"/>
      <xsd:element name="tipoDePago" type="tipoPagoACF" required="true"/>	  	  
      <xsd:element name="justificantes" type="xsd:boolean" required="true"/>
	  <xsd:element name="motivoJustificantesNo" type="tipoDesc500" required="false"/>
	  <xsd:element name="intervencionFavorable" type="xsd:boolean" required="true"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="tipoCuentaPJ">
    <xsd:sequence>
	  <xsd:element name="version" type="tipoVersion" default="1P">
		<xsd:annotation>				
			<xsd:documentation> Código que indica versión de esquema utilizada.</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
      <xsd:element name="ejercicio" type="tipoEjercicio" required="true"/>
	  <xsd:element name="numCuentaJustificativa" type="tipoDesc15" required="true"/>
	  <xsd:element name="codigoPresupuestario" type="tipoCodigoPresupuestario" required="true">
		<xsd:annotation>
		  <xsd:documentation> Código de la entidad de cuatro o cinco dígitos. Sección/Servicio o código presupuestario de la entidad sin espacios ni signos de puntuación</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
	  <xsd:element name="organismo" type="tipoDesc50" required="true"/>
	  <xsd:element name="servicio" type="tipoDesc50" required="true"/>
	  <xsd:element name="cajaPagadora" type="tipoCajaPagadora" required="true"/>
	  <xsd:element name="unidadAdministrativa" type="tipoDIR3" required="true">
		<xsd:annotation>
		  <xsd:documentation>Código DIR3 de la unidad tramitadora</xsd:documentation>
		</xsd:annotation>
	  </xsd:element>
	  <xsd:element name="numeroOperacion" type="tipoNumeroOperacion" required="true"/>
	  <xsd:element name="importeGastado" type="tipoImporte" required="true"/>
	  <xsd:element name="importeReintegrado" type="tipoImporte" required="true"/>
	  <xsd:element name="importeTotal" type="tipoImporte" required="true"/>
	  <xsd:element name="cuentadante" type="tipoCuentadante" required="true"/>	  
	  <xsd:element name="fechaJustificacion" type="xsd:date" required="true"/>
	  <xsd:element name="dependenciaDeposito" type="tipoDesc250" required="true"/>
      <xsd:element name="fechaAprobacion" type="xsd:date" required="true"/>
      <xsd:element name="localidadExpedicion" type="tipoDesc50" required="true"/>
	  <xsd:element name="fechaExpedicion" type="xsd:date" required="true"/>
      <xsd:element name="tipoDePago" type="tipoPagoPJ" required="true"/>	  	  
      <xsd:element name="justificantes" type="xsd:boolean" required="true"/>
	  <xsd:element name="motivoJustificantesNo" type="tipoDesc500" required="false"/>
	  <xsd:element name="intervencionFavorable" type="xsd:boolean" required="true"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="tipoVersion">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="1A"/>
			<xsd:enumeration value="1P"/>
		</xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoEjercicio">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{4}"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoDesc15">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="15"/>
	</xsd:restriction>
  </xsd:simpleType>  
  
  <xsd:simpleType name="tipoDesc50">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="50"/>
	</xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoDesc100">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="100"/>
	</xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="tipoDesc250">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="250"/>
	</xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="tipoDesc500">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="500"/>
	</xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoCodigoPresupuestario">
    <xsd:restriction base="xsd:string">
		<xsd:minLength value="4"/>
		<xsd:maxLength value="7"/>
	</xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="tipoCajaPagadora">
    <xsd:sequence>      
	  <xsd:element name="nif" type="tipoNif" minOccurs="1"/>
	  <xsd:element name="descripcion" type="tipoDesc500" minOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="tipoDIR3">
    <xsd:restriction base="xsd:string">			
		<xsd:maxLength value="9"/>
	</xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoNumeroOperacion">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9]{17}"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoImporte">
    <xsd:restriction base="xsd:decimal">
      <xsd:totalDigits value="18"/>
      <xsd:fractionDigits value="2"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="tipoCuentadante">
    <xsd:sequence>      
	  <xsd:element name="nombre" type="tipoDesc50" minOccurs="1"/>
	  <xsd:element name="cargo" type="tipoDesc100" minOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:simpleType name="tipoNif">
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="9"/>
      <xsd:maxLength value="14"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="tipoPagoACF">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="21">
        <xsd:annotation>
          <xsd:documentation>Pagos a justificar en anticipos de caja</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="32">
        <xsd:annotation>
          <xsd:documentation>Pagos en divisas. Acuerdos de caja fija aprobados en euros</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="35">
        <xsd:annotation>
          <xsd:documentation>Pagos en divisas. Acuerdos de caja fija aprobados en moneda distianta a euros</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>  
  
  <xsd:simpleType name="tipoPagoPJ">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="05">
        <xsd:annotation>
          <xsd:documentation>Titular cuenta corriente pagos a justificar</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="26">
        <xsd:annotation>
          <xsd:documentation>Pagos a justificar por expropiaciones</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
      <xsd:enumeration value="29">
        <xsd:annotation>
          <xsd:documentation>Pagos a justificar de obras de emergencia</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
	  <xsd:enumeration value="31">
        <xsd:annotation>
          <xsd:documentation>Pagos en divisas. Libramientos a justificar acordados en euros</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
	  <xsd:enumeration value="34">
        <xsd:annotation>
          <xsd:documentation>Pagos en divisas. Libramientos a justificar acordados en distinta a euros</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
	  <xsd:enumeration value="36">
        <xsd:annotation>
          <xsd:documentation>Pagos a justificar en el exterior</xsd:documentation>
        </xsd:annotation>
      </xsd:enumeration>
    </xsd:restriction>
  </xsd:simpleType>  
  
</xsd:schema>


