LibreDTE

¡facturación electrónica libre para Chile!

Herramientas de usuario

Herramientas del sitio


faq:libredte:lib:xml

¿Cómo se generan los XML?

La generación de los XML en LibreDTE se hace directamente a partir de los datos de un arreglo en PHP, este arreglo a su vez puede ser generado a partir de los datos en formato JSON. Esta es la razón por la cual los ejemplos de LibreDTE, en su mayoría, son entregados en formato JSON.

La conversión es directa desde el JSON al XML, esto es, se toma cada atributo el objeto JSON y se convierte a un tag en el XML. Esto tiene dos ventajas:

  1. Hace muy simple la creación de los XML, ya que sólo se deben crear JSON, que son archivos con un formato mucho más simple de manejar (a nivel de índices, objetos, etc).
  2. El formato que se usa en los JSON es exactamente el mismo que se utiliza en los formatos de XML del SII.

El punto 2 implica que si quiero saber cómo agregar un campo X en el JSON, sólo se debe ir a la documentación de los XML del SII y buscar el nombre y ubicación de dicho campo. Esto es lo que hace que LibreDTE sea posible.

En el siguiente video se explican las alternativas que se analizaron para crear los XML y se explica en más detalles la forma actual mencionada aquí.

Ejemplos

El siguiente ejemplo muestra el resultado de convertir un objeto JSON a un XML usando LibreDTE:

{
    "root": {
        "nodo1": "A",
        "nodo2": "B"
    }
}
<root>
    <nodo1>A</nodo1>
    <nodo2>B</nodo2>
</root>

Las listas son tratadas de forma especial, en este caso se repite el tag del índice de la lista:

{
    "raiz": {
        "telefono": [123, 456]
    }
}
<raiz>
    <telefono>123></telefono>
    <telefono>456></telefono>
</raiz>
faq/libredte/lib/xml.txt · Última modificación: 2016/06/22 11:52 por delaf