Articulo de referencia

Expat (software)

{{cite web |title=COPYING |url=https://github.com/libexpat/libexpat/blob/master/expat/COPYING |website=Github |accessdate=16 September 2019}} "},"website":{"wt":"{{URL|https://l...

Expat es una biblioteca de análisis XML 1.0 orientada a flujos , escrita en C , más precisamente en C99 . [ 3 ] Como uno de los primeros analizadores XML de código abierto disponibles , Expat se ha integrado en numerosos proyectos de código abierto. Entre estos proyectos se incluyen Apache HTTP Server , Mozilla , Perl , Python y PHP . También está disponible en muchos otros lenguajes.

Nomenclatura

Según su creador original, el nombre Expat proviene del hecho de que él mismo era un expatriado en ese momento. Las siglas "ex" y "pa" hacen referencia a XML y al análisis sintáctico.

Cronología

El desarrollador de software James Clark lanzó la versión 1.0 en 1998 mientras ejercía como líder técnico del Grupo de Trabajo XML en el Consorcio World Wide Web . Clark lanzó dos versiones más, la 1.1 y la 1.2, antes de ceder el proyecto a un grupo liderado por Clark Cooper y Fred Drake en el año 2000. El nuevo grupo lanzó la versión 1.95.0 en septiembre de 2000 y continúa lanzando nuevas versiones para incorporar correcciones de errores y mejoras.

Las versiones hasta la 2.5.0 tienen una vulnerabilidad DoS de puntuación 7.5 (alta) CVE-2023-52425. [ 4 ] [ 5 ]

Disponibilidad

El proyecto Expat está alojado en GitHub . Existen versiones para la mayoría de los sistemas operativos principales .

Despliegue

Para usar la biblioteca Expat, los programas primero registran funciones de controlador con Expat. Cuando Expat analiza un documento XML, llama a los controladores registrados a medida que encuentra tokens relevantes en el flujo de entrada. Estos tokens y sus llamadas de controlador asociadas se denominan eventos . Normalmente, los programas registran funciones de controlador para eventos de inicio o fin de elementos XML y eventos de caracteres. Expat proporciona herramientas para un manejo de eventos más sofisticado, como declaraciones de espacios de nombres XML , instrucciones de procesamiento y eventos DTD .

Los eventos de análisis de Expat se asemejan a los eventos definidos en la API simple para XML (SAX), pero Expat no es un analizador compatible con SAX. Los proyectos que incorporan la biblioteca Expat suelen desarrollar analizadores SAX y, posiblemente, DOM sobre Expat. Si bien Expat es principalmente un analizador basado en flujo (push), admite detener y reiniciar el análisis en momentos arbitrarios, lo que facilita la implementación de un analizador pull .

Referencias

  1. libexpat. "Versión 2.8.2 · libexpat/libexpat" . Consultado el 25 de junio de 2026 .
  2. "COPIANDO" . Github . Consultado el 16 de septiembre de 2019 .
  3. Pipping, Sebastian (06-02-2024). "Expat 2.6.0 lanzado, incluye correcciones de seguridad" . www.xml.com . Consultado el 04-09-2024 .
  4. "NVD - cve-2023-52425" . nvd.nist.gov . Consultado el 22 de abril de 2025 .
  5. "CVE-2023-52425" . security-tracker.debian.org . Consultado el 22-04-2025 .
  • Página principal del Proyecto para Expatriados
  • Utilizando Expat , Clark Cooper, 1999