<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:sferp="http://www.solucionfactible.com/sferp/conector/cfd40" xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:catCFDI="http://www.sat.gob.mx/sitio_internet/cfd/catalogos"
           targetNamespace="http://www.solucionfactible.com/sferp/conector/cfd40" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" schemaLocation="../SAT/4_0/xsd/catCFDI.xsd"/>
    <xs:element name="ComprobanteFiscal">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:element name="Cancelacion" minOccurs="0">
                    <xs:complexType mixed="true">
                        <xs:attribute name="motivo" use="optional">
                            <xs:annotation>
                                <xs:documentation></xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="folioSustituye" use="optional">
                            <xs:annotation>
                                <xs:documentation></xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="serieSustituye" use="optional">
                            <xs:annotation>
                                <xs:documentation></xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="uuidSustituye" use="optional">
                            <xs:annotation>
                                <xs:documentation></xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="textoMotivo" use="optional">
                            <xs:annotation>
                                <xs:documentation></xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Divisa" minOccurs="0">
                    <xs:complexType mixed="true">
                        <xs:attribute name="codigoISO" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para expresar el código ISO de la divisa. En CFDI 3.3 es la clave publicada en el catálogo del SAT</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:length value="3"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="nombre" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para expresar el nombre de la divisa. Se usará para las representaciones impresas y visualizaciones en pantalla</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:minLength value="3"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="tipoDeCambio" use="required" type="xs:decimal">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para tipo de cambio de la divisa con respecto la moneda nacional.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Notas" minOccurs="0" maxOccurs="1">
                    <xs:complexType mixed="true">
                        <xs:sequence>
                            <xs:any minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="InformacionGlobal" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Nodo condicional para precisar la información relacionada con el comprobante global.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:attribute name="Periodicidad" type="catCFDI:c_Periodicidad" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para expresar el período al que corresponde la información del comprobante global.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="Meses" type="catCFDI:c_Meses" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para expresar el mes o los meses al que corresponde la información del comprobante global.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="Año" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para expresar el año al que corresponde la información del comprobante global.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:short">
                                    <xs:minInclusive value="2021"/>
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="cfdiRelacionados" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            Nodo opcional para precisar la información de los comprobantes relacionados.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="cfdiRelacionado" minOccurs="1" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>
                                        Nodo requerido para precisar la información de los comprobantes relacionados.
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:attribute name="tipoRelacion" use="required" type="catCFDI:c_TipoRelacion">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo requerido para indicar la clave de la relación que existe entre éste que se esta generando y el o los CFDI previos.
                                            </xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="UUID" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo opcional para registrar el folio fiscal (UUID) de un CFDI relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el comprobante relacionado. Si éste sustituye a una factura cancelada.
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:length value="36"/>
                                                <xs:whiteSpace value="collapse"/>
                                                <xs:pattern value="[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="folio" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo opcional para registrar el folio comercial de un CFDI registrado en SF:ERP relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el comprobante relacionado. Si éste sustituye a una factura cancelada.
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="40"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="serie" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo opcional para registrar el nombre de la serie de un CFDI registrado en SF:ERP relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el comprobante relacionado. Si éste sustituye a una factura cancelada.
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="25"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>

                <xs:element name="Receptor">
                    <xs:annotation>
                        <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Domicilio" type="sferp:t_Ubicacion" minOccurs="0" maxOccurs="1">
                                <xs:annotation>
                                    <xs:documentation>Nodo opcional para la definición de la ubicación donde se da el domicilio del receptor del comprobante fiscal.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Extranjero" minOccurs="0" maxOccurs="1">
                                <xs:annotation>
                                    <xs:documentation>Nodo opcional para especificar los datos del receptor extranjero; es requerido en CFDI 3.3 si el RFC es el genérico para extranjeros XEXX010101000</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:attribute name="residenciaFiscal" use="optional" type="catCFDI:c_Pais">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo condicional para registrar la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo NumRegIdTrib.
                                            </xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="numRegIdTrib" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo condicional para expresar el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento de comercio exterior.
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:minLength value="1"/>
                                                <xs:maxLength value="40"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="rfc" type="sferp:t_RFC" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="nombre" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo opcional para precisar el nombre o razón social del contribuyente receptor.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:minLength value="1"/>
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="regimenFiscal" type="catCFDI:c_RegimenFiscal" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para precisar la Clave del Régimen fiscal del receptor.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="email" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para registrar el correo electrónico del receptor del comprobante.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="usoCFDI" use="optional" type="catCFDI:c_UsoCFDI">
                            <xs:annotation>
                                <xs:documentation>
                                    Atributo condicional para expresar la clave del uso que dará a esta factura el receptor del CFDI. Es requerido para la generación de CFDI 3.3
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Embarque" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Domicilio" type="sferp:t_Ubicacion" minOccurs="0" maxOccurs="1">
                                <xs:annotation>
                                    <xs:documentation>Nodo opcional para la definición de la ubicación donde se da el domicilio del receptor del comprobante fiscal.</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="rfc" type="sferp:t_RFC" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="nombre" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo opcional para precisar el nombre o razón social del contribuyente receptor.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:minLength value="1"/>
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="email" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para registrar el correo electrónico del cliente.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="sferp:Email">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Conceptos">
                    <xs:annotation>
                        <xs:documentation>Nodo requerido para enlistar los conceptos cubiertos por el comprobante.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Concepto" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Nodo para introducir la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:sequence minOccurs="0">
                                            <xs:element name="ACuentaTerceros" minOccurs="0">
                                                <xs:annotation>
                                                    <xs:documentation>Nodo opcional para registrar información del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>
                                                </xs:annotation>
                                                <xs:complexType>
                                                    <xs:attribute name="RfcACuentaTerceros" type="sferp:t_RFC" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="NombreACuentaTerceros" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para registrar el nombre, denominación o razón social del contribuyente Tercero correspondiente con el Rfc, a cuenta del que se realiza la operación.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:minLength value="1"/>
                                                                <xs:maxLength value="254"/>
                                                                <xs:whiteSpace value="collapse"/>
                                                                <xs:pattern value="[^|]{1,254}"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="RegimenFiscalACuentaTerceros" type="catCFDI:c_RegimenFiscal" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para incorporar la clave del régimen del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="DomicilioFiscalACuentaTerceros" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para incorporar el código postal del domicilio fiscal del Tercero, a cuenta del que se realiza la operación.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:length value="5"/>
                                                                <xs:whiteSpace value="collapse"/>
                                                                <xs:pattern value="[0-9]{5}"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                </xs:complexType>
                                            </xs:element>
                                            <xs:element name="InformacionAduanera" type="sferp:t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
                                                <xs:annotation>
                                                    <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas.</xs:documentation>
                                                </xs:annotation>
                                            </xs:element>
                                            <xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">
                                                <xs:annotation>
                                                    <xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet</xs:documentation>
                                                </xs:annotation>
                                                <xs:complexType>
                                                    <xs:sequence>
                                                        <xs:element name="InformacionAduanera" type="sferp:t_InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
                                                            <xs:annotation>
                                                                <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de partes o componentes importados vendidos de primera mano.</xs:documentation>
                                                            </xs:annotation>
                                                        </xs:element>
                                                    </xs:sequence>
                                                    <xs:attribute name="claveProdServ" use="required" type="catCFDI:c_ClaveProdServ">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="noIdentificacion" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por la presente parte.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:minLength value="1"/>
                                                                <xs:whiteSpace value="collapse"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="cantidad" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:decimal">
                                                                <xs:whiteSpace value="collapse"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="unidad" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en la parte.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:whiteSpace value="collapse"/>
                                                                <xs:minLength value="1"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="descripcion" use="required">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:minLength value="1"/>
                                                                <xs:whiteSpace value="collapse"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                    <xs:attribute name="valorUnitario" type="sferp:t_Importe" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte.</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="importe" type="sferp:t_Importe" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte.</xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="comentario" use="optional">
                                                        <xs:simpleType>
                                                            <xs:restriction base="xs:string">
                                                                <xs:minLength value="1"/>
                                                                <xs:whiteSpace value="collapse"/>
                                                            </xs:restriction>
                                                        </xs:simpleType>
                                                    </xs:attribute>
                                                </xs:complexType>
                                            </xs:element>
                                        </xs:sequence>
                                        <xs:element name="Impuestos" maxOccurs="1" minOccurs="0">
                                            <xs:annotation>
                                                <xs:documentation>Nodo opcional para capturar los impuestos aplicables.</xs:documentation>
                                            </xs:annotation>
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="Impuesto" maxOccurs="unbounded">
                                                        <xs:annotation>
                                                            <xs:documentation>Nodo para la información detallada de un traslado o retención de impuesto específico</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:complexType>
                                                            <xs:attribute name="tipo" use="required">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo requerido para señalar el tipo de impuesto trasladado</xs:documentation>
                                                                </xs:annotation>
                                                                <xs:simpleType>
                                                                    <xs:restriction base="xs:string">
                                                                        <xs:whiteSpace value="collapse"/>
                                                                        <xs:enumeration value="retencion">
                                                                            <xs:annotation>
                                                                                <xs:documentation>Retención</xs:documentation>
                                                                            </xs:annotation>
                                                                        </xs:enumeration>
                                                                        <xs:enumeration value="traslado">
                                                                            <xs:annotation>
                                                                                <xs:documentation>Traslado</xs:documentation>
                                                                            </xs:annotation>
                                                                        </xs:enumeration>
                                                                    </xs:restriction>
                                                                </xs:simpleType>
                                                            </xs:attribute>
                                                            <xs:attribute name="base" use="optional" type="sferp:t_Importe">
                                                                <xs:annotation>
                                                                    <xs:documentation>
                                                                        Atributo opcional para señalar la base para el cálculo del impuesto, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos. En el caso de CFDI 3.3, si no se especifica este valor, se colocará de forma predeterminada el importe del concepto como base del impuesto.
                                                                    </xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                            <xs:attribute name="impuesto" use="required" type="sferp:t_TipoImpuesto">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo requerido para señalar el nombre del impuesto trasladado</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                            <xs:attribute name="tasa" type="sferp:t_Importe" use="optional">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo opcional para señalar la tasa del impuesto que se traslada o retiene por cada concepto amparado en el comprobante. Este atributo y el atributo cuota son mutuamente excluyentes.</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                            <xs:attribute name="cuota" type="sferp:t_Importe" use="optional">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo opcional para señalar la cuota del impuesto que se traslada o retiene por cada concepto amparado en el comprobante. Este atributo y el atributo tasa son mutuamente excluyentes.</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                            <xs:attribute name="exento" type="xs:boolean" use="optional">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo opcional para señalar si el impuesto es de tipo exento. Éste atributo excluye tasa y cuota.</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                            <xs:attribute name="importe" type="sferp:t_Importe" use="optional">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo condicional para señalar el importe del impuesto trasladado. Este campo se puede omitir cuando se trata de un traslado exento.</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                        </xs:complexType>
                                                    </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="CamposPersonalizados" minOccurs="0">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="CampoPersonalizado" maxOccurs="unbounded">
                                                        <xs:complexType mixed="true">
                                                            <xs:attribute name="nombre" use="required">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo requerido para especificar el nombre del campo personalizado por concepto.</xs:documentation>
                                                                </xs:annotation>
                                                                <xs:simpleType>
                                                                    <xs:restriction base="xs:string">
                                                                        <xs:minLength value="1"/>
                                                                        <xs:whiteSpace value="collapse"/>
                                                                    </xs:restriction>
                                                                </xs:simpleType>
                                                            </xs:attribute>
                                                            <xs:attribute name="valor" use="optional" type="xs:string">
                                                                <xs:annotation>
                                                                    <xs:documentation>Atributo requerido para especificar el valor del campo personalizado por concepto.</xs:documentation>
                                                                </xs:annotation>
                                                            </xs:attribute>
                                                        </xs:complexType>
                                                    </xs:element>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="ComplementoConcepto" minOccurs="0">
                                            <xs:annotation>
                                                <xs:documentation>Nodo opcional para incluir complemento concepto.</xs:documentation>
                                            </xs:annotation>
                                            <xs:complexType mixed="true">
                                                <xs:sequence>
                                                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                                                </xs:sequence>
                                                <xs:attribute name="tipo" use="optional">
                                                    <xs:annotation>
                                                        <xs:documentation>Atributo opcional para indicar el tipo de complemento por conector.</xs:documentation>
                                                    </xs:annotation>
                                                    <xs:simpleType>
                                                        <xs:restriction base="xs:string">
                                                            <xs:whiteSpace value="collapse"/>
                                                            <xs:minLength value="1"/>
                                                        </xs:restriction>
                                                    </xs:simpleType>
                                                </xs:attribute>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="cantidad" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:decimal">
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="claveUnidad" use="required" type="catCFDI:c_ClaveUnidad">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo requerido para precisar la clave de unidad de medida estandarizada aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.
                                            </xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="unidad" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para precisar la unidad de medida aplicable para la cantidad expresada en el concepto.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:whiteSpace value="collapse"/>
                                                <xs:minLength value="1"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="claveProdServ" use="required" type="catCFDI:c_ClaveProdServ">
                                        <xs:annotation>
                                            <xs:documentation>
                                                Atributo requerido para expresar la clave del producto o del servicio amparado por el presente concepto. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.
                                            </xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="codigo" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para expresar el número de serie del bien o identificador del servicio amparado por el presente concepto.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:minLength value="1"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="concepto" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:minLength value="1"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="objetoImp" type="catCFDI:c_ObjetoImp" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para expresar si la operación comercial es objeto o no de impuesto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="valorUnitario" type="sferp:t_Importe" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="montoDescuentoUnitario" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para precisar el importe monetario de descuento por unidad del presente concepto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="tasaDescuento" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para precisar la tasa de descuento del presente concepto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="importeDescuento" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para precisar la el importe monetario de descuento del presente concepto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="importe" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="comentario" use="optional">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:minLength value="1"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="cuentaPredial" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto en caso de recibos de arrendamiento.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:whiteSpace value="collapse"/>
                                                <xs:minLength value="1"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Complemento" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>Nodo opcional para incluir complementos.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType mixed="true">
                        <xs:sequence>
                            <xs:any minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="tipo" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo opcional para indicar el tipo de complemento por conector.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:whiteSpace value="collapse"/>
                                    <xs:minLength value="1"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="TotalImpuestos" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Nodo requerido para capturar los impuestos aplicables.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Impuesto" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>Nodo para la información detallada de un traslado o retención de impuesto específico</xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:attribute name="tipo" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para señalar el tipo de impuesto trasladado</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:whiteSpace value="collapse"/>
                                                <xs:enumeration value="retencion">
                                                    <xs:annotation>
                                                        <xs:documentation>Retención</xs:documentation>
                                                    </xs:annotation>
                                                </xs:enumeration>
                                                <xs:enumeration value="traslado">
                                                    <xs:annotation>
                                                        <xs:documentation>Traslado</xs:documentation>
                                                    </xs:annotation>
                                                </xs:enumeration>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="impuesto" use="required" type="sferp:t_TipoImpuesto">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para señalar el nombre del impuesto trasladado</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="base" type="sferp:t_Importe" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para señalar la base de cálculo del impuesto que se traslada o retiene en el comprobante.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="tasa" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para señalar la tasa del impuesto que se traslada o retiene en el comprobante. Este atributo y el atributo cuota son mutuamente excluyentes.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="cuota" type="sferp:t_Importe" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para señalar la cuota del impuesto que se traslada o retiene en el comprobante. Este atributo y el atributo tasa son mutuamente excluyentes.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="exento" type="xs:boolean" use="optional">
                                        <xs:annotation>
                                            <xs:documentation>Atributo opcional para señalar si el impuesto es de tipo exento. Éste atributo excluye tasa y cuota.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                    <xs:attribute name="importe" type="sferp:t_Importe" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para señalar el importe del impuesto trasladado o retenido del comprobante</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="totalRetenciones" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:decimal">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                        <xs:attribute name="totalTraslados" use="optional">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:decimal">
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="CamposPersonalizados" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="CampoPersonalizado" maxOccurs="unbounded">
                                <xs:complexType mixed="true">
                                    <xs:attribute name="nombre" use="required">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para especificar el nombre del campo personalizado.</xs:documentation>
                                        </xs:annotation>
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:minLength value="1"/>
                                                <xs:whiteSpace value="collapse"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="valor" use="optional" type="xs:string">
                                        <xs:annotation>
                                            <xs:documentation>Atributo requerido para especificar el valor del campo personalizado.</xs:documentation>
                                        </xs:annotation>
                                    </xs:attribute>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Addenda" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Nodo opcional para incluir addendas adicionales.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType mixed="true">
                        <xs:sequence>
                            <xs:any minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="tipo" use="required">
                            <xs:annotation>
                                <xs:documentation>Atributo requerido para especificar el nombre del campo personalizado.</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:minLength value="1"/>
                                    <xs:whiteSpace value="collapse"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="AddendaAdicional" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Nodo opcional para incluir addendas adicionales.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="serie" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres alfabéticos de 1 a 25 caracteres sin incluir caracteres acentuados.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                        <xs:maxLength value="25"/>
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="folio">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para control interno del contribuyente que acepta un valor numérico entero superior a 0 que expresa el folio del comprobante.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:unsignedLong">
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="estatus">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para indicar el estatus del comprobante.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:whiteSpace value="collapse"/>
                        <xs:enumeration value="vigente">
                            <xs:annotation>
                                <xs:documentation>Vigente</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="cancelado">
                            <xs:annotation>
                                <xs:documentation>Cancelado</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="exportacion">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para indicar el estatus del comprobante.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:whiteSpace value="collapse"/>
                        <xs:enumeration value="01">
                            <xs:annotation>
                                <xs:documentation>No aplica. Valor predeterminado si no se especifica el atributo.</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="02">
                            <xs:annotation>
                                <xs:documentation>Exportación definitiva. Requiere especificar complemento Comercio Exterrior vigente compatible con la versión del comprobante.</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="03">
                            <xs:annotation>
                                <xs:documentation>Exportación temporal. No requiere complemento Comercio Exterior.</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="04">
                            <xs:annotation>
                                <xs:documentation>Exportación definitiva con clave distinta de A1</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="fecha" use="required">
                <xs:annotation>
                    <xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición  del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:dateTime">
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="formaDePago" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo requerido para precisar la forma de pago que aplica para este comprobante fiscal digital por Internet. Se utiliza para expresar Pago en una sola exhibición o número de parcialidad pagada contra el total de parcialidades, Parcialidad 1 de X. </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="condicionesDePago" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:whiteSpace value="collapse"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="subTotal" type="sferp:t_Importe" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para representar la suma de los importes antes de descuentos e impuestos.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="descuento" type="sferp:t_Importe" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para representar el importe total de los descuentos aplicables antes de impuestos.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="motivoDescuento" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para expresar el motivo del descuento aplicable.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="total" type="sferp:t_Importe" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para representar la suma del subtotal, menos los descuentos aplicables, más los impuestos trasladados, menos los impuestos retenidos.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="metodoDePago" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional de texto libre para expresar el método de pago de los bienes o servicios amparados por el comprobante. Se entiende como método de pago leyendas tales como: cheque, tarjeta de crédito o debito, depósito en cuenta, etc.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="numCtaPago" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo Opcional para incorporar al menos los cuatro últimos digitos del número de cuenta con la que se realizó el pago.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                        <xs:whiteSpace value="collapse"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="confirmacionPAC" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:whiteSpace value="collapse"/>
                        <xs:length value="5"/>
                        <xs:pattern value="[0-9a-zA-Z]{5}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="sectorPrimario" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para señalar si el comprobante es de sector primario.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="regimenFiscal" type="catCFDI:c_RegimenFiscal" use="optional">
                <xs:annotation>
                    <xs:documentation>Atributo opcional para incorporar la clave del régimen del contribuyente emisor al que aplicará el efecto fiscal de este comprobante.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="Email">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="t_Ubicacion">
        <xs:annotation>
            <xs:documentation>Tipo definido para expresar domicilios o direcciones</xs:documentation>
        </xs:annotation>
        <xs:attribute name="calle" use="optional">
            <xs:annotation>
                <xs:documentation>Este atributo opcional sirve para precisar la avenida, calle, camino o carretera donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="noExterior" use="optional">
            <xs:annotation>
                <xs:documentation>Este atributo opcional sirve para expresar el número particular en donde se da la ubicación sobre una calle dada.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="noInterior" use="optional">
            <xs:annotation>
                <xs:documentation>Este atributo opcional sirve para expresar información adicional para especificar la ubicación cuando calle y número exterior (noExterior) no resulten suficientes para determinar la ubicación de forma precisa.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="colonia" use="optional">
            <xs:annotation>
                <xs:documentation>Este atributo opcional sirve para precisar la colonia en donde se da la ubicación cuando se desea ser más específico en casos de ubicaciones urbanas.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="localidad" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo opcional que sirve para precisar la ciudad o población donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="referencia" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo opcional para expresar una referencia de ubicación adicional.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="municipio" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo opcional que sirve para precisar el municipio o delegación (en el caso del Distrito Federal) en donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="estado" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo opcional que sirve para precisar el estado o entidad federativa donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="pais" use="required">
            <xs:annotation>
                <xs:documentation>Atributo requerido que sirve para precisar el país donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="codigoPostal" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo opcional que sirve para asentar el código postal en donde se da la ubicación.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="t_RFC">
        <xs:annotation>
            <xs:documentation>Tipo definido para expresar claves del Registro Federal de Contribuyentes</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:minLength value="12"/>
            <xs:maxLength value="13"/>
            <xs:pattern value="[A-Z&amp;Ñ]{3,4}[0-9]{6}[A-Z0-9]{3}"/>
            <xs:whiteSpace value="collapse"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="t_Importe">
        <xs:annotation>
            <xs:documentation>Tipo definido para expresar importes numéricos con fracción hasta seis decimales</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:fractionDigits value="6"/>
            <xs:whiteSpace value="collapse"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="t_TipoImpuesto">
        <xs:annotation>
            <xs:documentation>Tipo definido para expresar los tipos de impuesto</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:whiteSpace value="collapse"/>
            <xs:enumeration value="IVA"/>
            <xs:enumeration value="ISR"/>
            <xs:enumeration value="IEPS"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="t_InformacionAduanera">
        <xs:annotation>
            <xs:documentation>Tipo definido para expresar información aduanera</xs:documentation>
        </xs:annotation>
        <xs:attribute name="numero" use="required">
            <xs:annotation>
                <xs:documentation>Atributo requerido para expresar el número del documento aduanero que ampara la importación del bien.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="fecha" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo requerido para expresar la fecha de expedición del documento aduanero que ampara la importación del bien.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:date">
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="aduana" use="optional">
            <xs:annotation>
                <xs:documentation>Atributo requerido para precisar la aduana por la que se efectuó la importación del bien.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:minLength value="1"/>
                    <xs:whiteSpace value="collapse"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
</xs:schema>
