Autor(es) original(es) | James Clark |
---|---|
Desarrollador(es) | Clark Cooper, y otros. |
Lanzamiento inicial | 1998 (1998) |
Versión estable | 2.6.4 [1] / 7 de noviembre de 2024 (7 November 2024) |
Repositorio |
|
Escrito en | do |
Sistema operativo | Portátil |
Tipo | Biblioteca de análisis XML |
Licencia | Licencia MIT [2] |
Sitio web | libexpat.github.io |
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 ha encontrado un lugar en muchos proyectos de código abierto. Dichos proyectos incluyen Apache HTTP Server , Mozilla , Perl , Python y PHP . También está enlazado en muchos otros lenguajes.
Según el creador original, el nombre Expat proviene del hecho de que él era un expatriado en ese momento. [ cita requerida ] El "ex" y el "pa" son para XML y análisis.
El desarrollador de software James Clark lanzó la versión 1.0 en 1998 mientras se desempeñaba como líder técnico del Grupo de Trabajo XML en el Consorcio World Wide Web . [ cita requerida ] Clark lanzó dos versiones más, 1.1 y 1.2, antes de entregar el proyecto a un grupo dirigido por Clark Cooper y Fred Drake en 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.
GitHub alberga el proyecto Expat. Existen versiones para la mayoría de los [ cuantificar ] sistemas operativos principales [ cita requerida ] .
Para utilizar 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 . Por lo general, los programas registran funciones de controlador para eventos de inicio o detención de elementos XML y eventos de caracteres. Expat proporciona funciones 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 parecen 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 a menudo crean 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 también hace que la implementación de un analizador pull sea relativamente fácil.