<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:BCE="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="Balanza">
		<xs:annotation>
			<xs:documentation>Estándar de balanza de comprobación que se entrega como parte de la contabilidad electrónica.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Ctas" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Nodo obligatorio para expresar el detalle de cada cuenta o subcuenta de la balanza de comprobación.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="NumCta" use="required">
							<xs:annotation>
								<xs:documentation>Atributo requerido para expresar la clave asignada con que se distingue la cuenta o subcuenta en el catálogo de cuentas del  contribuyente.</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:minLength value="1"/>
									<xs:maxLength value="100"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="SaldoIni" type="BCE:t_Importe" use="required">
							<xs:annotation>
								<xs:documentation>Atributo requerido para expresar el monto del saldo inicial de la cuenta o subcuenta en el periodo. De acuerdo a la naturaleza de la cuenta o subcuenta, deberá de corresponder el saldo inicial, de lo contrario se entenderá que es un saldo inicial de naturaleza inversa. En caso de no existir dato, colocar cero (0)</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="Debe" use="required">
							<xs:annotation>
								<xs:documentation>Atributo requerido para expresar el monto de los movimientos deudores de la cuenta o subcuenta. En caso de no existir dato, colocar cero (0)</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="BCE:t_Importe"/>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="Haber" type="BCE:t_Importe" use="required">
							<xs:annotation>
								<xs:documentation>Atributo requerido para expresar el monto de los movimientos acreedores de la cuenta o subcuenta. En caso de no existir dato, colocar cero (0)</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="SaldoFin" type="BCE:t_Importe" use="required">
							<xs:annotation>
								<xs:documentation>Atributo requerido para expresar el monto del saldo final de la cuenta o subcuenta en el periodo. De acuerdo a la naturaleza de la cuenta o subcuenta, deberá de corresponder el saldo final, de lo contrario se entenderá que es un saldo final de naturaleza inversa. En caso de no existir dato, colocar cero (0)</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="Version" type="xs:string" use="required" fixed="1.1">
				<xs:annotation>
					<xs:documentation>Atributo requerido para expresar la versión del formato.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="RFC" use="required">
				<xs:annotation>
					<xs:documentation>Atributo requerido para expresar el RFC del contribuyente que envía los datos</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="12"/>
						<xs:maxLength value="13"/>
						<xs:whiteSpace value="collapse"/>
						<xs:pattern value="[A-ZÑ&amp;]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z0-9]?[A-Z0-9]?[0-9A-Z]?"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="Mes" use="required">
				<xs:annotation>
					<xs:documentation>Atributo requerido para expresar el mes al que corresponde la balanza de comprobación</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="01"/>
						<xs:enumeration value="02"/>
						<xs:enumeration value="03"/>
						<xs:enumeration value="04"/>
						<xs:enumeration value="05"/>
						<xs:enumeration value="06"/>
						<xs:enumeration value="07"/>
						<xs:enumeration value="08"/>
						<xs:enumeration value="09"/>
						<xs:enumeration value="10"/>
						<xs:enumeration value="11"/>
						<xs:enumeration value="12"/>
						<xs:enumeration value="13"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="Anio" use="required">
				<xs:annotation>
					<xs:documentation>Atributo requerido para expresar el año al que corresponde la balanza</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:int">
						<xs:minInclusive value="2015"/>
						<xs:maxInclusive value="2099"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="TipoEnvio" use="required">
				<xs:annotation>
					<xs:documentation>Atributo requerido para expresar el tipo de envío de la balanza (N - Normal; C - Complementaria)</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="[NC]"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="FechaModBal" type="xs:date" use="optional">
				<xs:annotation>
					<xs:documentation>Atributo opcional para expresar la fecha de la última modificación contable de la balanza de comprobación. Es requerido cuando el atributo TipoEnvio = C. Se convierte en requerido cuando se cuente con la información.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="Sello" use="optional">
				<xs:annotation>
					<xs:documentation>Atributo opcional para contener el sello digital del archivo de contabilidad electrónica. El sello deberá ser expresado cómo una cadena de texto en formato Base 64</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:whiteSpace value="collapse"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="noCertificado" use="optional">
				<xs:annotation>
					<xs:documentation>Atributo opcional para expresar el número de serie del certificado de sello digital que ampara el archivo de contabilidad electrónica, de acuerdo al acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:length value="20"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="Certificado" use="optional">
				<xs:annotation>
					<xs:documentation>Atributo opcional que sirve para expresar el certificado de sello digital que ampara al archivo de contabilidad electrónica como texto, en formato base 64.</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:simpleType name="t_Importe">
		<xs:annotation>
			<xs:documentation>Tipo definido para expresar importes numéricos con fracción hasta dos decimales</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:decimal">
			<xs:whiteSpace value="collapse"/>
			<xs:fractionDigits value="2"/>
			<xs:maxInclusive value="99999999999999.99"/>
			<xs:minExclusive value="-99999999999999.99"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
