Parser
Eine wichtige Anlaufstelle für freie Implementationen von XML-APIs ist
das Apache XML Project.
Dort findet man zum Beispiel validierende Parser mit SAX- und
DOM-Interface.
Diese sind
Xerces
für Java und
Xerces-C für C++.
Für letzteren gibt es unter dem Namen
Xerces-P Wrapper für Perl.
Ein in C geschriebener (teilweise) validierender Parser mit DOM- und
SAX-artigem Interface ist libxml aka gnome-xml, der die Basis der XML-Verarbeitung von
GNOME ist, aber auch völlig
unabhängig davon benutzt werden kann.
Einer der am weitesten verbreiteten nichtvalidierenden Parser mit einem
ereignisbasierten Interface in C ist
expat
von James Clark.
Er wird u. a. von Mozilla und Apache benutzt und ist auch einer
der wichtigsten Parser für die XML-Verarbeitung in Skriptsprachen wie
Perl und Python.
Von gleichen Autor stammt auch der in Java geschreibenen Parser XP.
Leute mit Vorliebe für exotische Sprachen können es auch mit
HaXml für Haskell,
XMLTeX in TeX
oder einem (kommerziellen)
Parser für COBOL versuchen.
XSLT
Die vollständigsten freien XSLT-Implementationen stammen wieder vom
Apache XML Project, es sind
Xalan in Java und die
etwas hinterher hinkende Parallelentwicklung
Xalan-C in C++.
Eine weitere Implementation in C++ ist Sablotron, für das es auch einen Perl-Wrapper gibt.
In Perl selbst ist das Modul XML::XSLT implementiert, das man auf
CPAN finden kann.
Web-Applikationsframeworks
Eine wichtige Klasse von Anwendungen, wo XML bereits heute produktiv
eingesetzt wird, sind Frameworks für die Publikation von Informationen
im Web.
Diese integrieren die Verarbeitung von XML in einen Webserver wie
Apache und stellen eine wichtige Migrationsstrategie dar, um XML-Daten
in HTML zu publizieren.
Zwei Beispiele sind Cocoon in Java
und
AXKit (Apache
XML Delivery Toolkit) in Perl.
Sie benutzen Serverseitigt Erzeugung und Transformation vom
XML-Dokumenten mit Techniken wie XSL Transformationen und
XML Server Pages XSP, um die lokal in XML vorhandenen und gepflegten
Daten in ein für die realen Browser verständliches HTML zu
übersetzten.
Diese Anwendungen sind von einem konzeptionellen Gesichtspunkt her aber nicht ganz unproblematisch. Man kann ihnen vorwerfen, dass die die Akzeptenz von XML auf Browserseite eher behindern, da sie die Produktion von browserspezifischem HTML befördern. Damit unterlaufen sie eine der Grundideen von XML, nämlich den Austausch von Informationen im Web in einem darstellungsunabhängigen Format durchzuführen.