<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="ice" type="iceMensType" />
    <xs:complexType name="iceMensType">
        <xs:sequence>
            <xs:element name="TipoIDInformante">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="R" />
                        <xs:length value="1" />
                        <xs:whiteSpace value="collapse" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="IdInformante" type="numeroRucType" />
            <xs:element name="razonSocial" type="razonSocialType">
                <xs:annotation>
                    <xs:documentation>Razon o denominacion social</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Anio" type="anioType">
                <xs:annotation>
                    <xs:documentation>Anio - periodo informado</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Mes" type="mesType">
                <xs:annotation>
                    <xs:documentation>Mes - periodo informado</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="actImport" type="actImportType">
                <xs:annotation>
                    <xs:documentation>Actividades de Importacion</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="codigoOperativo" type="codigoOperativoType">
            </xs:element>
            <xs:element name="ventas" type="detalleVentasType"
                minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>MODULO 1:Detalle Ventas</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="importaciones"
                type="importacionesType">
                <xs:annotation>
                    <xs:documentation>MODULO 2: Detalle Importacion</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="actImportType">
        <xs:restriction base="xs:string">
            <xs:length value="2"></xs:length>
            <xs:pattern value="0[12]"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="detalleVentasType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vta"
                type="vtaType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="vtaType">
        <xs:sequence>
            <xs:element name="codProdICE" type="codProdICEType" />
            <xs:element name="gramoAzucar" type="gramosType" maxOccurs="1" minOccurs="0" />
            <xs:element name="tipoIdCliente" type="tipoIdClienteType" />
            <xs:element name="idCliente" type="numeroRucClienteType" />
            <xs:element name="tipoVentaICE" type="tipoVentaICEType" />
            <xs:element name="ventaICE" type="ventaICEType" />
            <xs:element name="devICE" type="devICEType" />
            <xs:element name="cantProdBajaICE"
                type="cantProdBajaICEType" />
        </xs:sequence>
    </xs:complexType><xs:simpleType name="cantProdBajaICEType">
        <xs:restriction base="xs:integer">
            <xs:fractionDigits value="0"></xs:fractionDigits>
            <xs:pattern value="[0-9]{1,15}"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="importacionesType">
        <xs:sequence>
            <xs:element name="imp" type="impotacionesType" minOccurs="0"
                maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Detalle Importaciones</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="impotacionesType">
        <xs:sequence>
            <xs:element name="impCodProdICE" type="impCodProdICEType" />
            <xs:element name="refICE" type="refICEType" />
            <xs:element name="impFDesadICE" type="impFDesadICEType" />
            <xs:element name="paisICE" type="paisICEType" />
            <xs:element minOccurs="1" name="impCantICE" type="impCantICEType">
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="cantidadProdFabriType">
        <xs:restriction base="xs:decimal">
            <xs:maxInclusive value="999999999999.99" />
            <xs:minInclusive value="0.0" />
            <xs:pattern value="[0-9]{1,10}\.[0-9]{2}|[0-9]{1,10}" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cantidadProdBajaType">
        <xs:restriction base="xs:decimal">
            <xs:maxInclusive value="999999999999.99" />
            <xs:minInclusive value="0.0" />
            <xs:pattern value="[0-9]{1,10}\.[0-9]{2}|[0-9]{1,10}" />
        </xs:restriction>
    </xs:simpleType><xs:simpleType name="devICEType">
        <xs:restriction base="xs:integer">
            <xs:fractionDigits value="0"></xs:fractionDigits>
            <xs:pattern value="[0-9]{1,15}"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="gramosType">
        <xs:restriction base="xs:decimal">
            <xs:maxInclusive value="999999999999.99" />
            <xs:minInclusive value="0.00" />
            <xs:pattern value="[0-9]{1,12}\.[0-9]{2}" />
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="codProdICEType">
        <xs:restriction base="xs:string">
            <xs:pattern
                value="[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{6,6}\-[0-9]{3,3}\-[0-9]{6,6}\-[0-9]{2,2}\-[0-9]{3,3}\-[0-9]{6,6}" />
            <xs:length value="39" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="idMateriaPrimaType">
        <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="2" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="numeroRucType">
        <xs:annotation>
            <xs:documentation />
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{10}001" />
            <xs:length value="13" />
            <xs:whiteSpace value="collapse" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="numeroRucClienteType">
        <xs:annotation>
            <xs:documentation />
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9a-zA-Z]{3,13}" />
            <xs:minLength value="3" />
            <xs:maxLength value="13" />
            <xs:whiteSpace value="collapse" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="anioType">
        <xs:annotation>
            <xs:documentation>Se detalla el anio correspondiente a la informacion
                que esta presentando el contribuyente, consta de cuatro digitos: Ej:
                2003, 2004, 2005, etc.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="2008" />
            <xs:maxInclusive value="9999" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="mesType">
        <xs:annotation>
            <xs:documentation>Corresponde al periodo informado compuesto de dos
                digitos que van desde el 01 hasta el 12, corresponde al mes
                informado.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="2" />
            <xs:minLength value="2" />
            <xs:pattern value="(0[1-9]|1[012])" />
        </xs:restriction>
    </xs:simpleType><xs:simpleType name="tipoIdClienteType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="R" />
            <xs:enumeration value="C" />
            <xs:enumeration value="P" />
            <xs:enumeration value="F" />
            <xs:length value="1" />
            <xs:whiteSpace value="collapse" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="tipoVentaICEType">
        <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:pattern value="[12]"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="paisICEType">
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="3" />
            <xs:pattern value="[0-9]{2,3}"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="refICEType">
        <xs:restriction base="xs:string">
            <xs:length value="20" />
            <xs:pattern
                value="[0-9]{3,3}\-[0-9]{4,4}\-[0-9]{2,2}\-(([0-9]{6,6}\-[0-9]{1,1})|([0-9]{8,8}))" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ventaICEType">
        <xs:restriction base="xs:integer">
            <xs:fractionDigits value="0"></xs:fractionDigits>
            <xs:pattern value="[0-9]{1,15}"></xs:pattern>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="fechaType">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern
                value="(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="monedaType">
        <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0.0" />
            <xs:maxInclusive value="999999999999.99" />
            <xs:pattern value="[0-9]{1,12}\.[0-9]{2}|[0-9]{1,12}" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="codigoOperativoType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ICE" />
            <xs:length value="3" />
            <xs:whiteSpace value="collapse" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="impCodProdICEType">
        <xs:restriction base="xs:string">
            <xs:length value="39" />
            <xs:pattern
                value="[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{6,6}\-[0-9]{3,3}\-[0-9]{6,6}\-[0-9]{2,2}\-[0-9]{3,3}\-[0-9]{6,6}" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="impFDesadICEType">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern
                value="(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d" />
        </xs:restriction>
    </xs:simpleType><xs:simpleType name="impCantICEType">
        <xs:restriction base="xs:integer">
            <xs:fractionDigits value="0"></xs:fractionDigits>
			<xs:pattern value="[0-9]{1,10}"></xs:pattern>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="razonSocialType">
		<xs:annotation>
			<xs:documentation>
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="500" />
			<xs:minLength value="5" />
			<xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9\s]+[a-zA-Z0-9\s]" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>