Manual Técnico de Integración
Acceso a las Normas desde Otros Sistemas, Web Services y Especificación del Esquema XML (XSD)
Biblioteca del Congreso Nacional de Chile (BCN)
Documento original: accesoLeyesChilenas.doc | Autor: Eridan Otto | Revisión: 0
ÍNDICE DE CONTENIDOS
- OBJETIVO
- ALCANCE
- CÓMO OBTENER EL ARCHIVO XML (
idNorma) DE UNA NORMA - ACCESO DIRECTO (HYPERLINKS)
- DESCRIPCIÓN DE LA NORMA
- DEMOSTRACIÓN Y ARMADO DE LA NORMA
- DEFINICIÓN DEL WEB SERVICE (API HTTP GET)
- DICCIONARIO DE DATOS Y ESPECIFICACIÓN TÉCNICA DEL ESQUEMA XML (XSD)
- 8.1 Elemento Raíz:
<Norma>/NormaType - 8.2 Módulo Identificador:
<Identificador>/IdentificadorType - 8.3 Módulo Metadatos Documentales:
<Metadatos>/MetadatosNormaType - 8.4 Módulo Preámbulo:
<Encabezado>/EncabezadoType - 8.5 Módulo Articulado y Estructura Jerárquica:
<EstructurasFuncionales>/ArticuloType - 8.6 Módulo Promulgación:
<Promulgacion>/PromulgacionType - 8.7 Módulo Anexos:
<Anexos>/AnexosType - 8.8 Módulo Contenido de Texto e Imágenes:
CuerpoTextoType - 8.9 Módulo de Archivos Adjuntos y Binarios:
ArchivoBinarioTypeyAdjuntosBinariosType - 8.10 Catálogo de Tipos Simples (Enumeraciones y Restricciones)
- 8.1 Elemento Raíz:
1. OBJETIVO
Este documento tiene como objetivo explicar los mecanismos de integración que provee Ley Chile (Biblioteca del Congreso Nacional de Chile - BCN), los cuales permiten a sistemas externos (públicos y privados) acceder programáticamente a la información de la normativa positiva chilena.
2. ALCANCE
Se describen los aspectos técnicos necesarios para que las instituciones accedan a la norma actualizada entregada por Ley Chile, ya sea:
- Obteniendo y procesando el XML oficial mediante solicitudes HTTP a su Web Service.
- Navegando directamente mediante URLs de acceso directo.
Se detalla la estructura lógica y jerárquica del XML entregado por el sistema, destacando las partes necesarias para reconstruir y armar el texto completo y actualizado de una norma.
3. CÓMO OBTENER EL ARCHIVO XML (idNorma) DE UNA NORMA
Paso Fundamental: Para descargar o convertir el XML de cualquier ley o norma, necesitas obtener su identificador único en la BCN (
idNorma).
El parámetro idNorma no corresponde al número de la ley, sino al identificador único interno (Norma ID) que la BCN asigna a cada norma en sus bases de datos.
Pasos para encontrar el idNorma y obtener el XML:
- Buscar la norma: Ingresa a www.leychile.cl y busca la ley o norma por su número o nombre usando la búsqueda simple.
- Navegar a la norma: Abre la norma en el visor (
Navegar). - Obtener el Norma ID: Despliega la sección Datos → Identificadores de la ficha de la norma. El campo Norma ID que ahí aparece es el valor de
idNorma(por ejemplo,206396). - Obtener / Descargar el XML: Con ese identificador puedes obtener el XML de la versión vigente (consolidada) de cualquier norma (Ley, Decreto, DFL, DL, Resolución, etc.) mediante el servicio HTTP con
opt=7:
https://www.leychile.cl/Consulta/obtxml?opt=7&idNorma={ID_NORMA}
Ejemplo:
GET https://www.leychile.cl/Consulta/obtxml?opt=7&idNorma=206396
Este endpoint entrega siempre la última versión actualizada y consolidada de la norma identificada por ese idNorma, lista para guardarse como archivo .xml o pegarse directamente en el convertidor XML → Markdown.
4. ACCESO DIRECTO (HYPERLINKS)
Permite enlazar directamente a una norma en su versión actualizada dentro del módulo de navegación web de Ley Chile.
Sintaxis mediante idNorma
Enlace universal a cualquier tipo de norma (Ley, Decreto, DFL, DL, Resolución, etc.):
http://www.leychile.cl/Navegar?idNorma={ID_NORMA}
Ejemplo: http://www.leychile.cl/Navegar?idNorma=141599
Sintaxis mediante idLey
Parámetro alternativo exclusivo para Leyes (utilizando el número de la ley):
http://www.leychile.cl/Navegar?idLey={NUMERO_LEY}
Ejemplo: http://www.leychile.cl/Navegar?idLey=19628 (Ley de Protección de Datos Personales)
5. DESCRIPCIÓN DE LA NORMA
5.1 Estructura Conceptual de la Norma
Una norma legal chilena se compone de varias partes estructurales independientes. Cada parte posee su propio juego de metadatos y puede presentar múltiples versiones en el tiempo debido a las modificaciones legales que se le aplican.
Norma en Texto Actualizado
├── Encabezado (Preámbulo / Vistos / Considerandos)
├── Estructura Funcional (Cuerpo / Articulado)
│ ├── Libro
│ ├── Título
│ ├── Capítulo
│ ├── Parágrafo / Párrafo
│ ├── Enumeración / §
│ ├── Artículo
│ └── Doble Articulado (Norma completa aprobada dentro de un artículo)
├── Promulgación (Decreto promgatorio / Firmas de autoridades)
└── Anexo(s) (Tablas, formularios, escalas de sueldos)
Importante: La Estructura Funcional generalmente consta de una secuencia de artículos, pero también puede incluir agrupadores jerárquicos (Libros, Títulos, Capítulos, Parágrafos). Además, soporta el modelo de Doble Articulado, en el cual el reglamento o cuerpo normativo completo se encuentra inserto dentro del Artículo Primero de un Decreto o Ley aprobatoria.
5.2 Modelo XML de la Norma (Primer Nivel)
El esquema XML asigna una estructura de datos jerárquica directa basada en el modelo conceptual:
<Norma schemaLocation="..." normaId="18575" fechaVersion="2024-12-12" derogado="no derogado" esTratado="no tratado">
<Identificador fechaPromulgacion="1986-11-19" fechaPublicacion="1986-12-05">
<TiposNumeros> ... </TiposNumeros>
<Organismos> ... </Organismos>
</Identificador>
<Metadatos>
<TituloNorma> ... </TituloNorma>
<Materias> ... </Materias>
</Metadatos>
<Encabezado fechaVersion="2024-12-12" derogado="no derogado">
<Texto> ... </Texto>
</Encabezado>
<EstructurasFuncionales>
<!-- Agrupadores y Artículos anidados -->
</EstructurasFuncionales>
<Promulgacion fechaVersion="2024-12-12" derogado="no derogado">
<Texto> ... </Texto>
</Promulgacion>
<Anexos>
<!-- Anexos adjuntos -->
</Anexos>
<ArchivosBinarios>
<!-- Documentos PDF digitalizados si no hay texto procesado -->
</ArchivosBinarios>
</Norma>
6. DEMOSTRACIÓN Y ARMADO DE LA NORMA
Esquemas y Recursos Oficiales BCN
- Esquema XSD Principal:
http://www.leychile.cl/esquemas/EsquemaIntercambioNorma-v1-0.xsd - Ejemplo XML de Norma:
http://www.leychile.cl/esquemas/NormaEjemploIntercambioV4.xml - Hoja de Estilo XSLT de Prueba:
http://www.leychile.cl/esquemas/TestEjemploIntercambioV3.xsl
Tratamiento de Objetos Multimedia y Adjuntos
- Imágenes (JPG): Pueden venir insertas dentro del texto del articulado y deben ser procesadas como elementos
ArchivoBinarioen Base64 o referencias. - Documentos Adjuntos (PDF): Se ubican dentro del elemento
<ArchivosBinarios>cuando la norma es un documento digitalizado (escaneado) del cual no se dispone de texto estructurado.
7. DEFINICIÓN DEL WEB SERVICE (API HTTP GET)
El servidor de Ley Chile expone un endpoint HTTP GET para obtener el documento XML consolidado y actualizado de una norma.
Parámetros de la Solicitud
opt=7: Identificador del servicio de obtención de XML de norma.idNorma: Identificador único numérico de la norma en BCN.idLey: Número de la ley (alternativo aidNorma).notaPIE: (Opcional) Si es1, incluye las notas al pie de página agregadas por la BCN.
Ejemplos de Invocación HTTP
- Obtener Ley por Número de Ley:
GET http://www.leychile.cl/Consulta/obtxml?opt=7&idLey=18575 - Obtener Norma por Identificador Único (
idNorma):GET http://www.leychile.cl/Consulta/obtxml?opt=7&idNorma=206396 - Obtener Ley con Notas al Pie (
notaPIE=1):GET http://www.leychile.cl/Consulta/obtxml?opt=7&idLey=18575¬aPIE=1
Regla de Consistencia de Versión: El Web Service siempre retorna la versión vigente y consolidada de la norma. Como las partes de una ley pueden haberse modificado en fechas distintas, el atributo
fechaVersionpuede variar entre los distintos nodos hijos.
8. DICCIONARIO DE DATOS Y ESPECIFICACIÓN TÉCNICA DEL ESQUEMA XML (XSD)
El espacio de nombres principal de la norma es http://www.leychile.cl/esquemas, complementado por el espacio de nombres de adjuntos binarios de la AEM http://valida.aem.gob.cl.
8.1 Elemento Raíz: <Norma> / NormaType
Definición del contenedor global de la norma jurídica chilena.
- Espacio de Nombres:
http://www.leychile.cl/esquemas - Tipo de Contenido:
Complex(NormaType)
Atributos de <Norma>
| Atributo | Tipo / Restricción | Requerido | Descripción |
|---|---|---|---|
SchemaVersion | xsd:NMTOKEN | Sí (fijo "1.0") | Permite validar la versión del esquema de la instancia XML. |
normaId | xsd:integer | Sí | Identificador único de la norma en los sistemas de la BCN. |
fechaVersion | ParametroFechaType | Opcional | Fecha de la versión consolidada (por defecto la versión vigente). |
derogado | DerogadoType | Sí | Valor 'derogado' o 'no derogado'. |
esTratado | EsTratadoType | Sí | Valor 'tratado' o 'no tratado'. |
Elementos Hijos de <Norma>
<Identificador>(IdentificadorType) — Obligatorio<Metadatos>(MetadatosNormaType) — Obligatorio<Encabezado>(EncabezadoType) — Opcional<EstructurasFuncionales>— Opcional<Promulgacion>(PromulgacionType) — Opcional<Anexos>(AnexosType) — Opcional<ArchivosBinarios>(AdjuntosBinariosType) — Opcional
8.2 Módulo Identificador: <Identificador> / IdentificadorType
Agrupa la información básica para la identificación oficial de la norma.
Atributos de <Identificador>
fechaPublicacion(ParametroFechaType, opcional): Fecha de publicación en el Diario Oficial (YYYY-MM-DD).fechaPromulgacion(ParametroFechaType, opcional): Fecha de promulgación del acto normativo.
Sub-elementos de <Identificador>
<TiposNumeros>: Contiene uno o más elementos<TipoNumero>(TipoNumeroType).<Tipo>(TipoNormaType): Ley, Decreto, Decreto con Fuerza de Ley, Decreto Ley, Resolución, etc.<Numero>(ParametroStringType): Número correlativo asignado a la norma (ej:"19886","661"). (Soporta doble identificación cuando la norma posee múltiples clasificaciones).
<Organismos>: Contiene uno o más elementos<Organismo>(ParametroStringType).- Identifica la institución que origina la norma (ej:
"MINISTERIO DE HACIENDA").
- Identifica la institución que origina la norma (ej:
8.3 Módulo Metadatos Documentales: <Metadatos> / MetadatosNormaType
Conjunto de descriptores y metadatos de nivel de documento completo.
| Elemento | Tipo | Ocurrencia | Descripción |
|---|---|---|---|
<TituloNorma> | xsd:string (max 2000) | 1..1 | Nombre o título completo de la norma. |
<Materias> | <Materia> (ParametroStringType) | 0..1 | Descriptores de materias jurídicas normalizadas. |
<NombresUsoComun> | <NombreUsoComun> (ParametroStringType) | 0..1 | Nombres populares o coloquiales de la ley (ej: "Ley de Compras Públicas"). |
<PaisesTratados> | <PaisTratado> (ParametroStringType) | 0..1 | Nombres de países firmantes (en caso de tratados). |
<TipoTratado> | TipoTratadoType | 0..1 | 'bilateral' o 'multilateral'. |
<FechaTratado> | ParametroFechaType | 0..1 | Fecha de firma o entrada in vigor del tratado. |
<FechaDerogacion> | ParametroFechaType | 0..1 | Fecha exacta en que la norma fue derogada (si aplica). |
<IdentificacionFuente> | IdentificacionFuenteType | 0..1 | Fuente oficial de publicación (ej: Diario Oficial, El Araucano). |
<NumeroFuente> | ParametroStringCortoType | 0..1 | Número de edición o boletín de la fuente oficial. |
8.4 Módulo Preámbulo: <Encabezado> / EncabezadoType
Contiene el texto de la parte inicial de la norma previa al articulado (Vistos, Considerandos, Promulga).
- Atributos:
fechaVersion(ParametroFechaType, opcional)derogado(DerogadoType, obligatorio)
- Elementos Hijos:
<Texto>(CuerpoTextoType): Texto estructurado del preámbulo.
8.5 Módulo Articulado y Estructura Jerárquica: <EstructurasFuncionales> / ArticuloType
Representa el cuerpo o articulado de la norma. Se basa en una estructura recursiva que permite anidar agrupadores (Capítulos, Párrafos) y artículos.
<EstructurasFuncionales>
<EstructuraFuncional idParte="10527494" fechaVersion="2024-12-12" derogado="no derogado" tipoParte="Artículo" transitorio="no transitorio">
<Texto>Artículo primero.- Apruébase el siguiente reglamento...</Texto>
<Metadatos>
<NombreParte presente="si">primero</NombreParte>
</Metadatos>
<EstructurasFuncionales>
<EstructuraFuncional tipoParte="Capítulo"> ... </EstructuraFuncional>
</EstructurasFuncionales>
</EstructuraFuncional>
</EstructurasFuncionales>
Atributos de <EstructuraFuncional> (ArticuloType)
idParte(xsd:integer, obligatorio): Identificador único de la parte en la base de datos de BCN.fechaVersion(ParametroFechaType, opcional): Fecha de versión de la parte.derogado(DerogadoType, obligatorio):'derogado'|'no derogado'.tipoParte(TipoParteType, obligatorio): Clase de estructura. Valores posibles:Libro,Título,Capítulo,Párrafo,Parágrafo,EnumeraciónArtículo,Artículo Transitorio,Disposición Transitoria,Doble Articulado,Disposiciones Preliminares,Otros.
transitorio(TransitorioType, obligatorio):'transitorio'|'no transitorio'.
Sub-elementos de ArticuloType
<Texto>(CuerpoTextoType): Texto de la parte o artículo.<Metadatos>(MetadatosArticuloType):<NombreParte>(AlternativaIdentificacionParteType): Número o sufijo del artículo (ej:"1°","8 BIS","primero"). Posee el atributopresente="si|no".<TituloParte>(AlternativaIdentificacionParteType): Título del agrupador (ej:"CAPÍTULO I Disposiciones Generales"). Posee el atributopresente="si|no".<Materias>(Materia): Descriptores específicos del artículo.<FechaDerogacion>: Fecha de derogación específica del artículo.
<EstructurasFuncionales>: Contenedor recursivo para hijos de nivel inferior.
8.6 Módulo Promulgación: <Promulgacion> / PromulgacionType
Contiene el texto de cierre, fórmulas de promulgación y firmas de autoridades.
- Atributos:
fechaVersion(opcional),derogado(obligatorio). - Sub-elementos:
<Texto>(CuerpoTextoType).
8.7 Módulo Anexos: <Anexos> / AnexosType
Agrupa textos y tablas adicionales adjuntas a la norma principal.
- Atributos de
<Anexo>:idParte(integer),fechaVersion,derogado,transitorio. - Sub-elementos:
<Metadatos>(MetadatosAnexoType-><Titulo>,<Materias>,<FechaDerogacion>).<Texto>(CuerpoTextoType).
8.8 Módulo Contenido de Texto e Imágenes: CuerpoTextoType
Definición del tipo de contenido de texto que soporta texto enriquecido e imágenes incrustadas.
- Espacio de Nombres:
http://www.leychile.cl/esquemas - Propiedad Especial:
mixed="true"(permite mezclar caracteres de texto y etiquetas XML). - Sub-elementos:
<ArchivoBinario>(aem:ArchivoBinarioType): Representación de imágenes JPG incrustadas en el texto en formato Base64.
8.9 Módulo de Archivos Adjuntos y Binarios: ArchivoBinarioType y AdjuntosBinariosType
Modelos del espacio de nombres http://valida.aem.gob.cl para transportar documentos o imágenes codificadas.
Estructura de ArchivoBinarioType
SchemaVersion(xsd:NMTOKEN, fijo"1.0").<Nombre>(xsd:string): Nombre del archivo (ej:"tabla_sueldos.jpg").<TipoContenido>(xsd:string): Tipo MIME IANA (ej:image/jpeg,application/pdf).<CantidadBytes>(xsd:unsignedInt): Tamaño en bytes.<DataCodificada>(xsd:base64Binary): Contenido binario codificado en Base64 (RFC 2045).<Descripcion>(xsd:string): Descripción opcional del recurso.
8.10 Catálogo de Tipos Simples (Enumeraciones y Restricciones)
TipoParteType (Clases de partes estructurales)
LibroTítuloCapítuloPárrafoParágrafoEnumeraciónArtículoArtículo TransitorioDisposiciónDisposición TransitoriaDoble ArticuladoDisposiciones PreliminaresOtros
TipoNormaType (Clasificación de actos normativos)
LeyCódigoDecreto con Fuerza de LeyDecreto LeyDecretoResoluciónConstitución de la RepúblicaAuto AcordadoAcuerdoCircularOficioOrdenanzaSentenciaInstrucciónConvenioNotificaciónOrdenSesiónReunión extraordinaria/Reunión ordinariaRRA(Reglamento Reforma Agraria)Tratado AntiguoSin númeroAlcance/Aviso/Certificado/Rectificación/Otro
IdentificacionFuenteType (Fuentes de publicación oficial)
Diario OficialBoletín de Leyes y Decretos de GobiernoDiario El AraucanoDiario El FerrocarrilEl Monitor AraucanoJunta de IquiqueLeyes Promulgadas en ChileRecopilación de Decretos Leyes de la ContraloríaRecopilación de Decretos con Fuerza de Ley de la ContraloríaRecopilación de Leyes del Consejo de EstadoRecopilación de Leyes y Reglamentos de la ContraloríaRecopilación de Reglamentos de la ContraloríaRecopilación de leyes de la ContraloríaCodigos/Constituciones/Otro
Estado y Modificadores Booleanos
DerogadoType:derogado|no derogadoEsTratadoType:tratado|no tratadoTransitorioType:transitorio|no transitorioSiNoType:si|noTipoTratadoType:bilateral|multilateral