Expat (bibliotek) - Expat (library)
Ursprungliga författare | James Clark |
---|---|
Utvecklare | Clark Cooper, et al. |
Initial release | 1998 |
Stabil frisättning | 2.4.1 / 23 maj 2021
|
Förvar | |
Skrivet i | C |
Operativ system | Portabla |
Typ | XML parser bibliotek |
Licens | MIT -licens |
Hemsida | libexpat |
Expat är en ström -orienterad XML 1,0 parser bibliotek skrivna i C . Som en av de första tillgängliga XML-parsarna med öppen källkod har Expat hittat en plats i många projekt med öppen källkod. Sådana projekt inkluderar Apache HTTP -server , Mozilla , Perl , Python och PHP . Den är också bunden på många andra språk.
Tidslinje
Programutvecklaren James Clark släppte version 1.0 1998 medan han fungerade som teknisk ledare för XML Working Group på World Wide Web Consortium . Clark släppte ytterligare två versioner, 1.1 och 1.2, innan han överlämnade projektet till en grupp som leddes av Clark Cooper och Fred Drake år 2000. Den nya gruppen släppte version 1.95.0 i september 2000 och fortsätter att släppa nya versioner för att införliva buggfixar och förbättringar.
Tillgänglighet
GitHub är värd för Expat -projektet. Det finns versioner för de flesta större operativsystem.
Spridning
För att använda Expat -biblioteket registrerar program först hanteringsfunktioner hos Expat. När Expat analyserar ett XML -dokument, anropar det de registrerade hanterarna eftersom det hittar relevanta tokens i inmatningsflödet. Dessa tokens och deras associerade hanterarsamtal kallas händelser . Vanligtvis registrerar program hanteringsfunktioner för XML -elementets start- eller stopphändelser och teckenhändelser. Expat tillhandahåller faciliteter för mer sofistikerad händelsehantering, till exempel XML -namnrymddeklarationer , behandlingsinstruktioner och DTD -händelser.
Expats analyshändelser liknar de händelser som definieras i Simple API för XML (SAX), men Expat är inte en SAX-kompatibel parser. Projekt som innehåller Expat -biblioteket bygger ofta SAX och eventuellt DOM -parsers ovanpå Expat. Medan Expat huvudsakligen är en strömbaserad (push) parser, stöder den stopp och omstart av parsning vid godtyckliga tider, vilket gör implementeringen av en pull- parser också relativt enkel.