
Dies ist Expat, eine C-Bibliothek zum Parsen von XML, begonnen von James Clark im Jahr 1997. Expat ist ein streamorientierter XML-Parser. Das bedeutet, dass Sie Handler beim Parser registrieren, bevor Sie mit dem Parsen beginnen. Diese Handler werden aufgerufen, wenn der Parser die zugehörigen Strukturen im gerade geparsten Dokument entdeckt. Ein Start-Tag ist ein Beispiel für die Art von Strukturen, für die Sie Handler registrieren können.
Windows-Benutzer sollten das
expat_win32-Paket verwenden,
das sowohl vorkompilierte Bibliotheken als auch ausführbare Dateien sowie Quellcode für
Entwickler enthält.
Expat ist freie Software.
Sie dürfen es unter den Bedingungen der Lizenz, die in der Datei
COPYING
enthalten ist und die zusammen mit diesem Paket verteilt wird, kopieren, verbreiten und modifizieren.
Diese Lizenz ist dieselbe wie die MIT/X-Consortium-Lizenz.
Wenn Sie Expat aus einem Check-out des Git-Repositorys erstellen, müssen Sie ein Skript ausführen, das das Configure-Skript mithilfe der GNU-Autoconf- und Libtool-Werkzeuge erzeugt. Dazu benötigen Sie autoconf 2.58 oder neuer. Führen Sie das Skript wie folgt aus:
./buildconf.sh
Sobald dies erledigt ist, befolgen Sie dieselben Anweisungen wie beim Erstellen aus einer Quellcode-Distribution.
Um Expat aus einer Quellcode-Distribution zu erstellen, führen Sie zuerst das Konfigurations-Shellskript im obersten Verzeichnis der Distribution aus:
./configure
Es gibt viele Optionen, die Sie configure mitgeben können (die Sie
entdecken können, indem Sie configure mit der Option --help ausführen). Die
interessanteste ist jedoch diejenige, die das Installationsverzeichnis festlegt.
Standardmäßig richtet das Configure-Skript die Installation so ein, dass
libexpat in /usr/local/lib, expat.h in /usr/local/include und
xmlwf in /usr/local/bin installiert werden. Wenn Sie zum Beispiel bevorzugen, in
/home/me/mystuff/lib, /home/me/mystuff/include und
/home/me/mystuff/bin zu installieren, können Sie configure das wie folgt mitteilen:
./configure --prefix=/home/me/mystuff
Eine weitere interessante Option ist die Aktivierung der 64-Bit-Ganzzahlunterstützung für Zeilen- und Spaltennummern sowie den Gesamtbyte-Index:
./configure CPPFLAGS=-DXML_LARGE_SIZE
Eine solche Änderung wäre jedoch eine inkompatible Änderung der ABI und wird daher nicht für den allgemeinen Gebrauch empfohlen — z. B. im Rahmen einer Linux-Distribution —, sondern eher für Builds mit speziellen Anforderungen.
Nach der Ausführung des Configure-Skripts erstellt der Befehl make die
Dinge und make install installiert sie an ihrem vorgesehenen Ort. Werfen Sie einen Blick in die Makefile, um weitere
make-Optionen kennenzulernen. Beachten Sie, dass Sie Schreibrechte in
den Verzeichnissen benötigen, in die installiert werden soll.
Wenn Sie daran interessiert sind, Expat so zu erstellen, dass Dokumentinformationen
in UTF-16-Kodierung anstelle des standardmäßigen UTF-8 bereitgestellt werden, befolgen Sie
diese Anweisungen (nachdem Sie make distclean ausgeführt haben).
Bitte beachten Sie, dass wir mit --without-xmlwf konfigurieren, da xmlwf diesen
Kompiliermodus (noch) nicht unterstützt:
Massenhaftes Patchen der Makefile.am-Dateien, um libexpatw.la als Bibliotheksnamen zu verwenden:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Führen Sie automake aus, um die Makefile.in-Dateien neu zu schreiben:
automake
Für UTF-16-Ausgabe als unsigned short (und Versions-/Fehlerstrings als char),
führen Sie aus:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
Für UTF-16-Ausgabe als wchar_t (einschließlich Versions-/Fehlerstrings), führen Sie aus:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Hinweis: Letzteres erfordert ebenfalls eine libc, die mit -fshort-wchar kompiliert wurde.
Führen Sie make aus (welches xmlwf ausschließt).
Die Verwendung von DESTDIR wird unterstützt. Es funktioniert wie folgt:
make install DESTDIR=/path/to/image
überschreibt das in der Makefile gesetzte DESTDIR, da die Priorität für Variablensetzung
lautet.
Hinweis: Dies gilt nur für die Expat-Bibliothek selbst; das Erstellen von UTF-16-Versionen von xmlwf und der Tests wird derzeit nicht unterstützt.
Wenn Sie Expat mit einem Projekt verwenden, das autoconf zur Konfiguration einsetzt,
können Sie das Abfrage-Makro in conftools/expat.m4 verwenden, um zu bestimmen, wie
Expat eingebunden werden soll. Weitere Informationen finden Sie in den Kommentaren am Anfang dieser Datei.
Ein Referenzhandbuch ist in der Datei doc/reference.html in dieser
Distribution verfügbar.
Führen Sie make install aus (auch hier wird xmlwf ausgeschlossen).