<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/xmldsig-core-schema.xsd"/>
	<xs:element name="FacturaElectronicaXML">
		<xs:annotation>
			<xs:documentation>Para los efectos de facilitar la implementación de sistemas computacionales se definió el esquema XML para los Documentos Electrónicos (Factura, Nota de Débito y Nota de Crédito)</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:sequence>
					<xs:element name="Caratula">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="NumCedulaEmisor" nillable="false">
									<xs:annotation>
										<xs:documentation>Cédula Física o Jurídica del Emisor del Documento Electrónico</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:unsignedLong">
											<xs:totalDigits value="10"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="NumCedulaReceptor" nillable="false">
									<xs:annotation>
										<xs:documentation>Cédula Física o Jurídica del Emisor del Documento Electrónico</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:unsignedLong">
											<xs:totalDigits value="10"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="NumResolucion">
									<xs:annotation>
										<xs:documentation>Numero de resolución como usuario de documentos electrónicos</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:maxLength value="13"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="FechaResolucion" type="xs:dateTime"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Encabezado">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="VersionDoc" nillable="false">
									<xs:annotation>
										<xs:documentation>Versión del Documento Electrónico</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:int">
											<xs:totalDigits value="4"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="TipoDoc" nillable="false">
									<xs:annotation>
										<xs:documentation>Tipo de Documento Electrónico: 01 Factura, 02 Nota de Débito, 03 Nota de Crédito</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:int">
											<xs:totalDigits value="2"/>
											<xs:enumeration value="01"/>
											<xs:enumeration value="02"/>
											<xs:enumeration value="03"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="NumConsecutivoCompr">
									<xs:annotation>
										<xs:documentation>Número consecutivo del Documento Electrónico</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:unsignedLong">
											<xs:totalDigits value="20"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="FechaEmisionDoc" type="xs:dateTime">
									<xs:annotation>
										<xs:documentation>Fecha en la que se genera el documento Electrónico</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="CondicionVenta">
									<xs:annotation>
										<xs:documentation>Condicion de Venta: 01 Contado, 02 Crédito, 03 Consignación, 04 Apartado, 05 Arrendamiento con Opción de Compra.  Este dato aplica para Factura, Nota de Crédito y Débito</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:int">
											<xs:totalDigits value="2"/>
											<xs:enumeration value="01"/>
											<xs:enumeration value="02"/>
											<xs:enumeration value="03"/>
											<xs:enumeration value="04"/>
											<xs:enumeration value="05"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="Emisor">
									<xs:annotation>
										<xs:documentation>Información completa de los Datos del Emisor del Documento Electrónico</xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:sequence>
											<xs:element name="NombreComercialEmisor">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NumeroFaxEmisor">
												<xs:simpleType>
													<xs:restriction base="xs:integer">
														<xs:totalDigits value="8"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NombreEmisor">
												<xs:annotation>
													<xs:documentation>Nombre del la persona Física o Jurídica que emite el Documento Electrónico</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="CorreoElectronicoEmisor">
												<xs:annotation>
													<xs:documentation>Esta etiqueta se debe llenar con información cuando se trata de una factura, en el caso de Nota de Crédito o Débito no será requerido</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="30"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="DireccionEmisor">
												<xs:annotation>
													<xs:documentation>Esta etiqueta se debe llenar con información cuando se trata de una factura, en el caso de Nota de Crédito o Débito no será requerido</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NumCedulaEmisor">
												<xs:annotation>
													<xs:documentation>Cédula Física o Jurídica del Emisor del Documento Electrónico</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:unsignedLong">
														<xs:totalDigits value="10"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NumeroTelEmisor">
												<xs:annotation>
													<xs:documentation>Esta etiqueta se debe llenar con información cuando se trata de una factura, en el caso de Nota de Crédito o Débito no será requerido</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:integer">
														<xs:totalDigits value="8"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="Receptor" minOccurs="0">
									<xs:annotation>
										<xs:documentation>Información de los Datos del Receptor del Documento Electrónico </xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:sequence>
											<xs:element name="NumCedulaReceptor">
												<xs:annotation>
													<xs:documentation>Número de Cédula Física o Jurídica del receptor del Documento Electrónico</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:unsignedLong">
														<xs:totalDigits value="10"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NombreReceptor">
												<xs:annotation>
													<xs:documentation>Nombre de la entidad Física o Jurídica que recibe el Documento Electrónico</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="DireccionReceptor">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NumeroAreaTelReceptor">
												<xs:annotation>
													<xs:documentation>Esta etiqueta se refiere al código de área del país.</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:integer">
														<xs:totalDigits value="3"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="NumeroTelReceptor">
												<xs:annotation>
													<xs:documentation>Esta etiqueta se debe llenar con información cuando se trata de una factura, en el caso de Nota de Crédito o Débito no será requerido</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:integer">
														<xs:totalDigits value="8"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Detalle">
						<xs:annotation>
							<xs:documentation>El detalle del documento electrónico se podrá repetir ilimitadamente</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>El detalle del documento electrónico se podrá repetir ilimitadamente</xs:documentation>
								</xs:annotation>
								<xs:element name="Linea">
									<xs:complexType>
										<xs:sequence>
											<xs:annotation>
												<xs:documentation>El detalle del documento electrónico se podrá repetir ilimitadamente</xs:documentation>
											</xs:annotation>
											<xs:element name="NroLinDet" type="xs:integer"/>
											<xs:element name="CodigoProducto" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Código del Producto o Servicio que esta reportando  en el documento electrónico</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="13"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="Cantidad">
												<xs:annotation>
													<xs:documentation>Cantidad del Producto o Servicio, será requerido para la factura, no así para la nota de crédito o débito</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="Cantidad"/>
												</xs:simpleType>
											</xs:element>
											<xs:element name="UnidadMedida" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Unidad de Medida del Producto o Servicio</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="13"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="DetalleMerc" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Detalle de la Mercancía o Servicio prestado, en la factura deberá de incluirse, no así en nota de crédito o débito</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="160"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="PrecioUnitario" type="Monto" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Precio Unitario del Mercancía o Servicio Prestado, será requerido para la factura no así para la nota de crédito o débito</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="MontoTotal" type="Monto" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Monto Total Bruto sin Descuentos ni Impuestos, requerido para la factura no así para las notas de crédito o débito</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="MontoDescuento" type="Monto" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Monto de descuento aplicado a la línea de detalle</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="NaturalezaDescuento" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Es la descripción o nombre del Descuento aplicado a la línea de detalle</xs:documentation>
												</xs:annotation>
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:maxLength value="80"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="TasaImpVentas">
												<xs:simpleType>
													<xs:restriction base="xs:decimal">
														<xs:totalDigits value="4"/>
														<xs:fractionDigits value="2"/>
													</xs:restriction>
												</xs:simpleType>
											</xs:element>
											<xs:element name="Impuestos" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Impuestos aplicable a la línea de detalle                   </xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence maxOccurs="unbounded">
														<xs:element name="Impuesto">
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="CodigoImpuesto">
																		<xs:annotation>
																			<xs:documentation>Código de Impuesto aplicado a la línea de detalle segun tabla del Ministerio de Hacienda. Tipos: 01 Impuesto de ventas,02 Impuesto selectivo de consumo, 35 otros tributos aplicables, 40 impuesto de servicio, 41 ICT </xs:documentation>
																		</xs:annotation>
																		<xs:simpleType>
																			<xs:restriction base="xs:int">
																				<xs:totalDigits value="2"/>
																				<xs:enumeration value="01"/>
																				<xs:enumeration value="02"/>
																				<xs:enumeration value="35"/>
																				<xs:enumeration value="40"/>
																				<xs:enumeration value="41"/>
																				<xs:enumeration value="00"/>
																			</xs:restriction>
																		</xs:simpleType>
																	</xs:element>
																	<xs:element name="MontoImpuesto" type="Monto">
																		<xs:annotation>
																			<xs:documentation>Monto de Impuesto aplicado a la línea de detalle</xs:documentation>
																		</xs:annotation>
																	</xs:element>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="InformacionDeReferencia" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Las referencias son para cuando se deben de emitir Notas de Crédito o Débito que anulan o modifican documentos anteriores</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:attribute name="CodigoReferencia" use="required">
								<xs:annotation>
									<xs:documentation>Son los códigos de referencia definidos por la DGT: 1 Anula Documento de Referencia, 2 Corrige Texto Documento de referencia, 3 Corrige monto</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:int">
										<xs:totalDigits value="1"/>
										<xs:enumeration value="1"/>
										<xs:enumeration value="2"/>
										<xs:enumeration value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
							<xs:attribute name="RazonReferencia" use="required">
								<xs:annotation>
									<xs:documentation>Texto para aclaraciones adicionales</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="180"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
						</xs:complexType>
					</xs:element>
					<xs:element name="TotalesFactura">
						<xs:annotation>
							<xs:documentation>Totales Finales del Documento Electrónico.  Estos totales se derivan de cada una de las líneas del detalle del Documento Electrónico.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="TotalSerGravados" type="Monto" nillable="0"/>
								<xs:element name="TotalSerExentos" type="Monto"/>
								<xs:element name="TotalMerGravadas" type="Monto"/>
								<xs:element name="TotalMerExentas" type="Monto"/>
								<xs:element name="TotalGravado" type="Monto"/>
								<xs:element name="TotalExento" type="Monto"/>
								<xs:element name="TotalVenta" type="Monto"/>
								<xs:element name="Descuentos" type="Monto"/>
								<xs:element name="TotalVentaNeta" type="Monto"/>
								<xs:element name="MontoImpConsumo" type="Monto"/>
								<xs:element name="MontoOtrosImp" type="Monto"/>
								<xs:element name="TasaImpVentas" type="xs:decimal"/>
								<xs:element name="MontoImpVentas" type="Monto"/>
								<xs:element name="TotalFactura" type="Monto"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Otros" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente, este será bajo un formato UN/EDIFACT, INVOIC D01B</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:element ref="dsig:Signature" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="Monto">
		<xs:annotation>
			<xs:documentation>Tipo de dato Utilizado para montos</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="28"/>
			<xs:fractionDigits value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Cantidad">
		<xs:annotation>
			<xs:documentation>Tipo de dato Utilizado para cantidades</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="28"/>
			<xs:fractionDigits value="8"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
