<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.oficinavirtual.pap.hacienda.gob.es/ficherosxsd/Solicitud_Cancelacion_v2.0.xsd" xmlns="http://www.oficinavirtual.pap.hacienda.gob.es/ficherosxsd/Solicitud_Cancelacion_v2.0.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xsd:element name="solicitud_cancelacion">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element type="numero_registro" name="numero_registro"/>
        <xsd:element type="modalidad" name="modalidad"/>
        <xsd:element type="fecha" name="fecha_constitucion"/>
        <xsd:element type="nacionalidad" name="nacionalidad_garante"/>
        <xsd:element type="nifCif" name="nifCif_garante"/>
        <xsd:element type="xsd:string" name="nombre_garante"/>
        <xsd:element type="nacionalidad" name="nacionalidad_garantizado"/>
        <xsd:element type="nifCif" name="nifCif_garantizado"/>
        <xsd:element type="xsd:string" name="nombre_garantizado"/>
        <xsd:element type="xsd:string" name="finalidad"/>
        <xsd:element type="nacionalidad" name="nacionalidad_autoridad"/>
        <xsd:element type="nifCif" name="nifCif_autoridad"/>
        <xsd:element type="xsd:string" name="nombre_autoridad"/>
        <xsd:element type="total" name="total"/>
        <xsd:element type="xsd:double" name="importe_cancelacion"/>
        <xsd:element type="xsd:double" name="importe_subsistente"/>
		<xsd:element type="num_perceptores" name="num_perceptores" />
		<xsd:element name="perceptor" maxOccurs="unbounded" minOccurs="0">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element type="nacionalidad" name="nacionalidad_perceptor"/>
              <xsd:element type="nifCif" name="nifCif_perceptor"/>
              <xsd:element type="xsd:string" name="nombre_perceptor"/>
              <xsd:element type="xsd:double" name="importe_perceptor"/>
			  <xsd:element type="xsd:string" name="cuenta_iban" minOccurs="0"/>			  
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="documentos" minOccurs="0">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="documento">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element type="xsd:string" name="nombre"/>
                    <xsd:element name="hash">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute type="xsd:string" name="algoritmo" use="required"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
            <xsd:attribute type="xsd:byte" name="num"/>
          </xsd:complexType>
        </xsd:element>		
		<xsd:element name="firmante" minOccurs="0">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element type="xsd:string" name="cargo" minOccurs="0"/>
              <xsd:element type="nifCif" name="nif" minOccurs="0"/>
              <xsd:element type="xsd:string" name="nombre" minOccurs="0"/>
              <xsd:element type="xsd:string" name="delegacion_firma" minOccurs="0"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
		<xsd:element type="sucursal" name="sucursal"/>
      </xsd:sequence>
	  <xsd:attribute type="xsd:string" name="version" use="required"/>
    </xsd:complexType>
  </xsd:element>	
	
	<xsd:simpleType name="numero_registro">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{9}[E,O]{1}[0-9]{7}"></xsd:pattern>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="modalidad"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:enumeration value="E"></xsd:enumeration> 
			<xsd:enumeration value="1"></xsd:enumeration> 
			<xsd:enumeration value="2"></xsd:enumeration> 
			<xsd:enumeration value="3"></xsd:enumeration> 
			<xsd:enumeration value="4"></xsd:enumeration>
		</xsd:restriction> 
	</xsd:simpleType> 
	
	<xsd:simpleType name="fecha"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:pattern value="(0[1-9]|[12]\d|3[01])/(0[1-9]|1[0-2])/(\d{4}) ([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)"></xsd:pattern> 
		</xsd:restriction> 
	</xsd:simpleType>
	
	<xsd:simpleType name="nacionalidad">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="2"/>
			<xsd:maxLength value="2"/>
		</xsd:restriction>
	</xsd:simpleType>

	
	<xsd:simpleType name="nifCif">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="9"/>
			<xsd:maxLength value="9"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="total"> 
		<xsd:restriction base="xsd:string"> 
			<xsd:enumeration value="T"></xsd:enumeration> 
			<xsd:enumeration value="P"></xsd:enumeration> 
		</xsd:restriction> 
	</xsd:simpleType>

	<xsd:simpleType name="num_perceptores">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[1-9]|[1-9][0-9]"></xsd:pattern>
		</xsd:restriction>
	</xsd:simpleType>	
	
	<xsd:simpleType name="sucursal">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]{5}"></xsd:pattern>
		</xsd:restriction>
	</xsd:simpleType>
  
</xsd:schema>