diff --git a/MANIFEST.in b/MANIFEST.in index 2d57a301..bedd0fc8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,6 +2,5 @@ include HISTORY.rst include LICENSE include README.rst recursive-include cl_sii *py -recursive-include cl_sii/data/ref/factura_electronica/schema_dte *.xsd -recursive-include cl_sii/data/ref/factura_electronica/schema_iecv *.xsd +recursive-include cl_sii/data/ref/factura_electronica/schemas-xml *.xsd include cl_sii/py.typed diff --git a/cl_sii/contribuyente/constants.py b/cl_sii/contribuyente/constants.py index 1062a936..eb049bd6 100644 --- a/cl_sii/contribuyente/constants.py +++ b/cl_sii/contribuyente/constants.py @@ -3,7 +3,7 @@ Source: XML types 'RznSocLargaType' and 'RznSocCortaType' in official schema 'SiiTypes_v10.xsd'. -https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L635-L651 +https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd#L635-L651 """ diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/README.md b/cl_sii/data/ref/factura_electronica/schema_iecv/README.md deleted file mode 100644 index 69717f73..00000000 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# schema_iecv - -This directory contains all the files of `schema_iecv.zip`, plus this text file. -All the files have been preserved as they were; schemas are in their original text encoding -(ISO-8859-1) and have not been modified in the slightest way. - -The most significant structures are: -- XML element `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". -- XML element `LceCoCertif`: "Comprobante de Certificacion". -- XML element `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". - -Notes: -- IECV means "Información Electrónica de Libros de Compra y Venta". -- LCE means "Libros Contables Electrónicos". - - -## Source - - -### Original & Official - -[schema_iecv.zip](http://www.sii.cl/factura_electronica/schema_iecv.zip) (2018-11-28), -referenced from official webpage -[SII](http://www.sii.cl) -/ [Factura electrónica](http://www.sii.cl/servicios_online/1039-.html) -/ [FORMATO XML DE DOCUMENTOS ELECTRÓNICOS](http://www.sii.cl/factura_electronica/formato_xml.htm) -as -"[Bajar schema XML de Información Electrónica de Compras y Ventas](http://www.sii.cl/factura_electronica/schema_iecv.zip)". - - -### Updates - -Unfortunately the files available on SII's website are outdated with respect to the regulations -(and even with respect to the documentation PDFs published alongside). - -Schema files will be updated as necessary, indicating the source in the corresponding commit. - - -## Contents - - -### Detail - -- `LceCal_v10.xsd` - - XML target namespace: `http://www.sii.cl/SiiLce`. - - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `xmldsignature_v10.xsd`. - - XML elements: - - `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". - -- `LceCoCertif_v10.xsd`: - - XML target namespace: `http://www.sii.cl/SiiLce`. - - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `LceCal_v10.xsd`, `xmldsignature_v10.xsd`. - - XML elements: - - `LceCoCertif`: "Comprobante de Certificacion". - -- `LceSiiTypes_v10.xsd`: - - XML target namespace: `http://www.sii.cl/SiiLce`. - - XML included/imported schemas: none. - - XML elements: none. - - XML data types: - - `RUTType`: "Rol Unico Tributario (99..99-X)". - - `FolioType`: "Folio de DTE - 10 digitos". - - `MontoType`: "Monto de 18 digitos y 4 decimales". - - `ImptoType`: "Impuestos Adicionales". - - `MntImpType`: "Monto 18 digitos (> cero)". - - `PctType`: "Porcentaje (3 enteros y 2 decimales)". - - `DoctoType`: "Tipos de Documentos". - - `ValorType`: "Monto 18 digitos (positivo o negativo)". - - `Periodo`: "lapso de tiempo. En forma AAAA-MM hasta AAAA-MM". - - `MontoSinDecType`: "Monto 18 digitos (mayor o igual a cero)". - -- `LibroCV_v10.xsd`: - - XML target namespace: `http://www.sii.cl/SiiDte` (**not** `http://www.sii.cl/SiiLce`). - - XML included/imported schemas: `LceCoCertif_v10.xsd`, `xmldsignature_v10.xsd`. - - XML elements: - - `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". - - XML data types: - - `RUTType`: "RUT 99999999-X". - - `MontoType`: "Monto 18 digitos (mayor o igual a cero)". - - `ValorType`: "Monto 18 digitos (positivo o negativo)". - - `MntImpType`: "Monto 18 digitos (> cero)". - - `ImptoType`: "Impuestos Adicionales". - - `DoctoType`: "Tipos de Documentos". - - `PctType`: "Porcentaje (3 enteros y 2 decimales)". - -- `xmldsignature_v10.xsd`: - - XML target namespace: `http://www.w3.org/2000/09/xmldsig#`. - - XML included/imported schemas: none. - - XML elements: - - `Signature`: "Firma Digital sobre Documento". - - XML data types: - - `SignatureType`: "Firma Digital con Restricciones". - - -### Notes - -- File `LibroCV_v10.xsd` defines many data types that are already defined in `LceSiiTypes_v10.xsd`. -- The two enums named `DoctoType` (one in `LibroCV_v10.xsd` and the other in `LceSiiTypes_v10.xsd`) - **have different elements**. -- File `xmldsignature_v10.xsd` is identical to `../schema_dte/xmldsignature_v10.xsd`. diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd deleted file mode 100644 index 1137a846..00000000 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - Firma Digital sobre Documento - - - - - Firma Digital con Restricciones - - - - - Descripcion de la Informacion Firmada y del Metodo de Firma - - - - - - Algoritmo de Canonicalizacion - - - - - - - - Algoritmo de Firma - - - - - - - - - - - - - - - Referencia a Elemento Firmado - - - - - - Algoritmo de Transformacion - - - - - - - - - - - - - - Algoritmo de Digest - - - - - - - - Valor de Digest - - - - - - - - - - - - Valor de la Firma Digital - - - - - Informacion de Claves Publicas y Certificado - - - - - - - - - Informacion de Claves Publicas RSA - - - - - - Modulo Clave RSA - - - - - Exponente Clave RSA - - - - - - - - Informacion de Claves Publicas DSA - - - - - - Modulo Primo - - - - - Entero Divisor de P - 1 - - - - - Entero f(P, Q) - - - - - G**X mod P - - - - - - - - - - - Informacion del Certificado Publico - - - - - - Certificado Publico - - - - - - - - - - - diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/DTE_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/DTE_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/EnvioDTE_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/EnvioDTE_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/LceCal_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/LceCal_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/LceCoCertif_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/LceCoCertif_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/LceSiiTypes_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/LceSiiTypes_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/LibroCV_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/LibroCV_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/README.md b/cl_sii/data/ref/factura_electronica/schemas-xml/README.md similarity index 51% rename from cl_sii/data/ref/factura_electronica/schema_dte/README.md rename to cl_sii/data/ref/factura_electronica/schemas-xml/README.md index c48d4483..04c5d36e 100644 --- a/cl_sii/data/ref/factura_electronica/schema_dte/README.md +++ b/cl_sii/data/ref/factura_electronica/schemas-xml/README.md @@ -1,21 +1,37 @@ -# schema_dte +# SII "factura_electronica" / XML schemas -This directory contains all the files of `schema_dte.zip`, plus this text file. -All the files have been preserved as they were; schemas are in their original text encoding -(ISO-8859-1) and have not been modified in the slightest way. +This directory contains all the files of `schema_dte.zip` and `schema_iecv.zip`, +plus this text file. The most significant structures are: -- XML element `EnvioDTE`: "Envio de Documentos Tributarios Electronicos". -- XML data type `DTEDefType`: "Documento Tributario Electronico". - -Note: DTE means "Documento Tributario Electrónico". +- common: + - XML element `Signature`: "Firma Digital sobre Documento". + - XML data type `SignatureType`: "Firma Digital con Restricciones". +- DTE: + - XML element `EnvioDTE`: "Envio de Documentos Tributarios Electronicos". + - XML data type `DTEDefType`: "Documento Tributario Electronico". +- IECV: + - XML element `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". + - XML element `LceCoCertif`: "Comprobante de Certificacion". + - XML element `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". + +Note: +- DTE means "Documento Tributario Electrónico". +- IECV means "Información Electrónica de Libros de Compra y Venta". +- LCE means "Libros Contables Electrónicos". ## Source +All the files were preserved as they were but later on updates were applied (even unofficial ones). +Files are kept in their original text encoding (ISO-8859-1). + ### Original & Official + +#### DTE + [schema_dte.zip](http://www.sii.cl/factura_electronica/schema_dte.zip) (2018-11-28), referenced from official webpage [SII](http://www.sii.cl) @@ -25,6 +41,17 @@ as "[Bajar schema XML de Documentos Tributarios Electrónicos](http://www.sii.cl/factura_electronica/schema_dte.zip) (Incluye Documentos de exportación)" +#### IECV + +[schema_iecv.zip](http://www.sii.cl/factura_electronica/schema_iecv.zip) (2018-11-28), +referenced from official webpage +[SII](http://www.sii.cl) +/ [Factura electrónica](http://www.sii.cl/servicios_online/1039-.html) +/ [FORMATO XML DE DOCUMENTOS ELECTRÓNICOS](http://www.sii.cl/factura_electronica/formato_xml.htm) +as +"[Bajar schema XML de Información Electrónica de Compras y Ventas](http://www.sii.cl/factura_electronica/schema_iecv.zip)". + + ### Updates Unfortunately the files available on SII's website are outdated with respect to the regulations @@ -38,6 +65,20 @@ Schema files will be updated as necessary, indicating the source in the correspo ### Detail + +#### Common + +- `xmldsignature_v10.xsd`: + - XML target namespace: `http://www.w3.org/2000/09/xmldsig#`. + - XML included/imported schemas: none. + - XML elements: + - `Signature`: "Firma Digital sobre Documento". + - XML data types: + - `SignatureType`: "Firma Digital con Restricciones". + + +#### DTE + - `DTE_v10.xsd`: "XSD principal y que incluye a los 3" otros XSD. - XML target namespace: `http://www.sii.cl/SiiDte`. - XML included/imported schemas: `SiiTypes_v10.xsd`, `xmldsignature_v10.xsd`. @@ -96,6 +137,51 @@ Schema files will be updated as necessary, indicating the source in the correspo - `PctType`: "Monto de Porcentaje ( 3 y 2)". +#### IECV + +- `LceCal_v10.xsd` + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". + +- `LceCoCertif_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `LceCal_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LceCoCertif`: "Comprobante de Certificacion". + +- `LceSiiTypes_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: none. + - XML elements: none. + - XML data types: + - `RUTType`: "Rol Unico Tributario (99..99-X)". + - `FolioType`: "Folio de DTE - 10 digitos". + - `MontoType`: "Monto de 18 digitos y 4 decimales". + - `ImptoType`: "Impuestos Adicionales". + - `MntImpType`: "Monto 18 digitos (> cero)". + - `PctType`: "Porcentaje (3 enteros y 2 decimales)". + - `DoctoType`: "Tipos de Documentos". + - `ValorType`: "Monto 18 digitos (positivo o negativo)". + - `Periodo`: "lapso de tiempo. En forma AAAA-MM hasta AAAA-MM". + - `MontoSinDecType`: "Monto 18 digitos (mayor o igual a cero)". + +- `LibroCV_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiDte` (**not** `http://www.sii.cl/SiiLce`). + - XML included/imported schemas: `LceCoCertif_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". + - XML data types: + - `RUTType`: "RUT 99999999-X". + - `MontoType`: "Monto 18 digitos (mayor o igual a cero)". + - `ValorType`: "Monto 18 digitos (positivo o negativo)". + - `MntImpType`: "Monto 18 digitos (> cero)". + - `ImptoType`: "Impuestos Adicionales". + - `DoctoType`: "Tipos de Documentos". + - `PctType`: "Porcentaje (3 enteros y 2 decimales)". + + ### Notes - Enums `DOCType`, `DocType`, `DTEType` and `DTEFacturasType` (all of them in `SiiTypes_v10.xsd`) @@ -106,4 +192,6 @@ Schema files will be updated as necessary, indicating the source in the correspo - `DTEFacturasType` - `LIQType`: "Tipos de Liquidaciones". - `EXPType`: "Tipos de Facturas de Exportacion". -- File `xmldsignature_v10.xsd` is identical to `../schema_iecv/xmldsignature_v10.xsd`. +- File `LibroCV_v10.xsd` defines many data types that are already defined in `LceSiiTypes_v10.xsd`. +- The two enums named `DoctoType` (one in `LibroCV_v10.xsd` and the other in `LceSiiTypes_v10.xsd`) + **have different elements**. diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd b/cl_sii/data/ref/factura_electronica/schemas-xml/xmldsignature_v10.xsd similarity index 100% rename from cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd rename to cl_sii/data/ref/factura_electronica/schemas-xml/xmldsignature_v10.xsd diff --git a/cl_sii/dte/constants.py b/cl_sii/dte/constants.py index f52ec186..4b489c1e 100644 --- a/cl_sii/dte/constants.py +++ b/cl_sii/dte/constants.py @@ -2,7 +2,7 @@ DTE-related constants. Sources: official XML schemas 'SiiTypes_v10.xsd' and 'DTE_v10.xsd'. -https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/ +https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/ """ import enum @@ -16,10 +16,10 @@ # - description: "Folio del Documento Electronico" # - XML type: 'FolioType' # - source: -# https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd#L52-L56 +# https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/DTE_v10.xsd#L52-L56 # XML type 'FolioType' in official schema 'SiiTypes_v10.xsd'. # - source: -# https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L153-L160 +# https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd#L153-L160 DTE_FOLIO_FIELD_TYPE = int """DTE field 'Folio' type.""" @@ -37,10 +37,10 @@ # - description: "Monto Total del DTE" # - XML type: 'MontoType' # - source: -# https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd#L1160-L1164 +# https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/DTE_v10.xsd#L1160-L1164 # XML type 'MontoType' in official schema 'SiiTypes_v10.xsd' # - source: -# https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L563-L570 +# https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd#L563-L570 DTE_MONTO_TOTAL_FIELD_TYPE = int """DTE field 'Monto Total' type.""" @@ -58,7 +58,7 @@ # - description: "Tipo de DTE" # - XML type: 'DTEType' # - source: -# https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd#L47-L51 +# https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/DTE_v10.xsd#L47-L51 DTE_TIPO_DTE_FIELD_TYPE = int """DTE field 'Tipo de DTE' type.""" @@ -75,7 +75,7 @@ class TipoDteEnum(enum.IntEnum): Enum of Tipo de DTE. Source: XML type ``DTEType`` (enum) in official schema ``SiiTypes_v10.xsd``. - https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L63-L99 + https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd#L63-L99 """ diff --git a/cl_sii/dte/parse.py b/cl_sii/dte/parse.py index 8da7e5ff..dee45c42 100644 --- a/cl_sii/dte/parse.py +++ b/cl_sii/dte/parse.py @@ -44,7 +44,7 @@ _DTE_XML_SCHEMA_PATH = os.path.abspath( os.path.join( os.path.dirname(os.path.dirname(__file__)), - 'data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd', + 'data/ref/factura_electronica/schemas-xml/EnvioDTE_v10.xsd', ) ) DTE_XML_SCHEMA_OBJ = xml_utils.read_xml_schema(_DTE_XML_SCHEMA_PATH) diff --git a/cl_sii/rut/constants.py b/cl_sii/rut/constants.py index 4bf379fb..cb5afd5d 100644 --- a/cl_sii/rut/constants.py +++ b/cl_sii/rut/constants.py @@ -2,7 +2,7 @@ RUT-related constants. Source: XML type 'RUTType' in official schema 'SiiTypes_v10.xsd'. -https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L127-L136 +https://github.com/fyndata/lib-cl-sii-python/blob/f57a326/cl_sii/data/ref/factura_electronica/schemas-xml/SiiTypes_v10.xsd#L127-L136 """ import re diff --git a/setup.py b/setup.py index da24544f..d8cd39da 100755 --- a/setup.py +++ b/setup.py @@ -55,8 +55,7 @@ def get_version(*file_paths: Sequence[str]) -> str: # Indicates that the "typing information" of the package should be distributed. 'py.typed', # Data files that are not in a sub-package. - 'data/ref/factura_electronica/schema_dte/*.xsd', - 'data/ref/factura_electronica/schema_iecv/*.xsd', + 'data/ref/factura_electronica/schemas-xml/*.xsd', ], }