Comparison of fast,
multiplatform XML libraries
Projects Main Page
Get PDF (Better formated)
The eXpat XML Parser (http://expat.sourceforge.net/)
The XML C Library for Gnome (http://www.xmlsoft.org/)
Apache Xerces for C++ parser (http://xml.apache.org/xerces-c/index.html)
Language Technology Group RXP XML parser (http://www.ltg.ed.ac.uk/software/xml/index.html)
Trolltech QT XML Module (http://doc.trolltech.com/3.1/xml.html)
Oracle 9i XML Developers Kit for C/C++/Java (http://otn.oracle.com/tech/xml/xdk/)
Intel XML Software Suite (http://software.intel.com/en-us/articles/intel-xml-software-suite/)
Java XML pack (http://java.sun.com/xml/downloads/javaxmlpack.html)
|
|
Expat |
libXML |
Xerces C |
RXP |
QT |
XSS |
XDK 10 |
Xerces J |
|---|---|---|---|---|---|---|---|---|
|
Author |
SourceForge |
Gnome |
Apache |
LT Group |
Trolltech |
Intel |
Oracle |
Apache |
|
License |
MIT |
MIT |
Apache |
GPL |
LGPL |
Comercial |
OTN |
Apache |
|
Sources |
open |
open |
open |
open |
open |
close |
close |
open |
|
Supported OS |
Win Linux QNX LynxOS ? BSD Solaris MacOS X HP-UX IRIX AIX OS/2 OpenUnix OpenVMS |
Win Linux QNX
BSD Solaris MacOS X
OpenVMS MVS |
Win NT Linux
BSD Solaris MacOS X HP-UX IRIX AIX OS/2 UnixWare
PTX AS/400 OS/390 |
Win Linux
MacOS X |
Win Linux QNX LynxOS BSD Solaris MacOS X HP-UX IRIX AIX OS/2 UnixWare
Tru64 XFree86 |
Win XP+ Linux
HP-UX
|
Win NT Linux
Solaris
HP-UX
AIX |
Java |
|
Bits |
32/64 |
32/64 |
32/64 |
32/64 |
32/64 |
32/64 |
32 |
32/64 |
|
Language |
C/C++ |
C/C++ |
C++ Java |
C/C++ |
C++ |
C++ Java |
C/C++ |
Java |
|
Bindings |
Python PHP Perl Tcl/Tk Ruby Delphi |
Python PHP Perl Tcl/Tk Ruby Delphi Kylix |
|
|
|
|
|
|
|
Used By
|
Mozilla |
Gnome |
Apache, IBM, Intel |
|
|
|
|
Apache, IBM, Intel |
|
Library |
Shared |
Shared |
Shar1ed |
Static |
Shared |
Shared |
Static |
|
|
Library Size |
128KB |
984KB |
3440KB |
354KB |
7033KB |
14590KB |
7992KB |
|
|
Thread Safe |
Yes |
Yes |
Yes |
? |
Yes |
Yes |
Yes |
|
|
Multicore |
|
|
|
|
|
? |
|
|
|
Latest Version |
v. 2.0.1 |
v. 2.7.3 |
v. 3.0.0 |
v. 1.4.8 |
v. 4.5.1 |
v.1.2 |
10.2.0.2.0 |
v. 2.9.1 |
|
Release Date |
05.06.2007
|
18.01.2009
|
29.09.2008
|
29.06.2006
|
23.04.2009
|
19.01.2009 |
07.04.2006
|
15/09/07 |
|
|
|
|
|
|
|
|
|
|
|
XML |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
|
Parser |
SAX Like |
DOM Like |
SAX, DOM |
DOM Like |
SAX, DOM |
SAX, DOM |
SAX, DOM |
SAX, DOM |
|
Namespace |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
Validating |
|
+ |
+ |
+ |
- |
+ |
+ |
+ |
|
DTD |
CallBack |
+ |
+ |
+ |
|
+ |
+ |
+ |
|
XML Schema |
|
1.0 Mainly
|
1.0, 1.1 Planed |
- |
- |
1.0 |
1.0 |
+ |
|
Relax NG |
|
+ |
|
|
|
|
|
|
|
Validation without reparsing |
|
Yes |
No |
|
|
? |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
|
SAX 1 |
|
minimal |
+ |
|
+ |
|
+ |
+ |
|
SAX 2 |
Arabica5, CenterPoint |
Arabica5 |
+, Arabica5 |
|
+ |
+ |
Declared in some docs |
+ |
|
StAX |
|
|
|
|
|
+ |
|
|
|
DOM L.1 |
Sablotron4, Arabica5, CenterPoint8 |
Gdome2, Arabica5 |
+, Arabica5 |
|
+ |
+ |
+ |
+ |
|
DOM L.2 |
Sablotron4, Arabica5, CenterPoint8 |
Gdome2, Arabica5 |
+, Arabica5 |
|
+ |
+ |
+ |
+ |
|
DOM L.3 |
CenterPoint8 |
|
Partial |
|
|
Partial |
Java Only |
planed |
|
DOM Tree Serialization |
Sablotron4, CenterPoint8 |
+ |
DOM Level 3 |
|
+ |
DOM Level 3 |
+ |
+ |
|
XSLT |
Sablotron4 |
Libxslt1 |
Xalan6 |
|
|
+ |
+ |
+ |
|
EXSLT |
|
Libxslt1 |
Xalan6 |
|
|
? |
|
+ |
|
XSL-FO |
|
Xmlroff |
|
|
|
? |
|
|
|
Xpath 1 |
Sablotron4 |
+ |
Partial, Xalan6, XQilla7 |
|
|
+ |
+ |
+ |
|
Xpath 2 |
|
|
XQilla7 |
|
|
|
Java Only |
|
|
XQuery |
|
|
XQilla7 |
|
|
|
|
|
|
XBase |
|
+ |
|
|
|
|
|
+ ? |
|
XPointer |
|
+ |
|
|
|
|
|
+ ? |
|
XLink |
|
Planed |
|
|
|
|
|
+ ? |
|
XInclude |
|
+ |
|
|
|
|
|
+ ? |
|
Canonical XML |
1.0 |
1.0 |
|
|
|
|
|
Apache XML Security |
|
Signature |
|
XML Security Library3 |
Apache XML Security13 |
|
|
|
|
Apache XML Security |
|
Signature Xpath Filter |
|
XML Security Library3 |
|
|
|
|
|
Apache XML Security |
|
Decryption Transform for XML Signature |
|
Planed in XML Security Library3 |
|
|
|
|
|
|
|
XML Encryption |
|
XML Security Library3 |
|
|
|
|
|
Apache XML Security |
|
XForms |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Additional Supported Standards |
|
XML Catalog |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Network Clients |
|
FTP, HTTP |
FTP, HTTP |
|
|
|
|
FTP, HTTP |
|
SOAP 1.1 |
|
cSOAP |
Axis |
|
|
|
+ ? |
Axis |
|
SOAP 1.2 |
|
|
Axis |
|
|
|
|
Axis |
|
SOAP Atachment |
|
|
Axis |
|
|
|
|
Axis |
|
WSDL |
|
|
Axis |
|
|
|
|
Axis |
|
UDDI |
|
|
|
|
|
|
|
+ |
|
ebXML |
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
|
|
XML GUI |
|
|
|
|
+ |
|
|
|
|
XSD -> Class Generator |
|
|
|
|
|
|
+ |
|
The XSLT C Library for Gnome (http://xmlsoft.org/XSLT/) is distributed under MIT license and claims to support all systems, supported by XML C Library for Gnome.
Gnome DOM Engine (http://gdome2.cs.unibo.it/) is distributed under LGPL license and claims to support all systems, supported by XML C Library for Gnome.
XML Security Library (http://www.aleksey.com/xmlsec/) is distributed under MIT license and requires OpenSSL 0.9.6c or 0.9.7 (prefered).
Sablotron (http://www.gingerall.com/charlie/ga/xml/p_sab.xml) is distributed under GPL and Mozilla Open License 1.1 licenses. Sablotron is written in C++ and depends on expat XML parser.
Arabica (http://www.jezuk.co.uk/cgi-bin/view/arabica) is distributed under BSD license, written in C++ and claims to support Linux, Windows and different Unixes equiped with GNU compiler 3.
Xalan for C++ (http://xml.apache.org/xalan-c/index.html) is distributed under Apache license and known to work on Windows, Linux, Solaris, HP-UX and AIX platforms.
Pathan (http://software.decisionsoft.com/pathanIntro.html) is distributed under BSD style license, written in C++ and known to support Windows, Linux and Solaris platforms.
Center Point XML (http://www.cpointc.com/XML/) is distributed under Netscape Public License and claims to support many platforms, including Windows, Linux, BSD, Solaris, HP-UX, MacOS X. Written in C++.
EasySOAP++ (http://easysoap.sourceforge.net/) is distributed under LGPL license, supports Linux and Windows platforms. And claims to be compatible with different SOAP implementations including, but not limited, Microsoft SOAP toolkit, Microsoft .NET platform, Apache, White Mesa, Phalanx.
iconv (http://www.gnu.org/software/libiconv/) is part of GNU c library and distributed under GPL license.
IBM International Components for Unicode (http://oss.software.ibm.com/icu/) is written in pure C unicde 3.2 library, provided under X Open Source license. ICU claims to support Linux, Windows and variety of Unix platforms.
Apache XML Security for C++ (http://xml.apache.org/security/index.html) is distributed under Apache license and known to work on Windows, Linux, Solaris, HP-UX and AIX platforms.
|
|
libxslt |
GDome |
xmlsec |
sablotron |
cslxml |
arabica |
xalan |
XML Security |
pathan |
|---|---|---|---|---|---|---|---|---|---|
|
Author |
Gnome |
Gnome |
Alexey Sanin |
Ginger Alliance |
Connective Software Engineering |
Jez UK |
Apache |
Apache |
Decision Soft |
|
License |
MIT |
LGPL |
MIT |
GPL Mozilla |
Netscape |
BSD |
Apache |
Apache |
BSD |
|
Requirements |
LibXML2 |
LibXML2 |
LibXML2 OpenSSL |
Expat |
Expat |
Expat LibXML Xerces |
Xerces |
Xerces Xalan |
Xerces |
|
Language |
C/C++ |
C/C++ |
C/C++ |
C++ |
C++ |
C++ |
C++ Java |
C++ Java |
C++ Java |
|
Bindings |
Perl Ruby Python
Tcl/Tk Pascal
|
Perl Ruby
Caml |
|
Perl Ruby Python Php Tcl/Tk Pascal Ada Erlang |
|
|
|
|
Perl |
|
Used By |
Gnome |
Gnome |
Gnome |
mozilla |
|
|
Apache |
Apache |
|
|
|
|
|
|
|
|
|
|
|
|
|
Library |
Shared |
Shared |
Shared |
Shared |
Static |
Static |
Shared |
Shared |
shared |
|
Library Size |
255 KB |
225 KB |
317 KB |
805 KB |
962 KB |
76 KB |
3.3 MB |
345 KB |
991 KB |
|
Thread Safe |
Yes |
? |
? |
Partly1 |
Yes |
? |
Yes |
Yes |
Yes |
|
Latest Version |
1.1.24
|
0.8.1 |
1.2.11
|
1.0.3 |
2.1.7
|
Oct08 |
1.10
|
1.4.0 |
1.2r2 2.0beta |
|
Release Date |
08.04.08
|
10.05.03
|
07.11.07
|
26.06.06
|
15.05.03
|
18.10.08
|
08.02.07
|
31.10.07
|
04.09.03
|
Expect DOM Modification part
Benchmark Setup
Hardware
Intel Core Duo E6300 (1.86GHz, 2MB L2 cache)
Fujitsu-Siemens D3217-A, Intel Q965 chipset (ICH8R, 1066 Mhz bus)
4 GB DDR2-800 Memory
2 x Seagate Baracuda 7200.10 ST3500630AS (500GB) organized in Raid-1
Software
Gentoo Linux 64bit, Single User Mode
Kernel 2.6.25
GNU C Library 2.6.1
GNU C Compiler 4.2.4
Java SE Runtime Environment 1.6.0_07 (64 bit)
Libraries
Expat 2.0.1
Sablotron 1.0.3
Arabica Oct2008
Gnome XML Library 2.7.3
Gnome XML DOM Library 0.8.1
Gnome XSLT Library 1.1.24
XML Security Library 1.2.11
Apache Xerces for C++ 3.0
Apache Xalan for C++ 1.10
Apache XML Security 1.4.0
Apache Xerces for Java 2.9.1
Apache Xalan for Java 2.7.1
Apache XML Security for Java 1.4.2
Trolltech QT 4.4.3
Intel XML Software Suite for C++ 1.2
Intel XML Software Suite for Java 1.2
Oracle XML Developers Kit for C 10.2.0.2.0
Oracle XML Developers Kit for Java 10.2.0.2.0
XML Files
RDF - A big RDF document from DMoz.org project describing various web resources. It includes nodes from few namespaces and has constant depth of 3 levels.
XMLGen - Scalable data generator producing very simple XML content: 4 levels of depth, no namespaces, very limited amount of different XML nodes.
XMark - Another scalable data generator provided by XMark Project . It produces XML documents modeling an auction website. The XML have slightly more complicated structure: up to 8 levels of depth, higher variety of XML elements. The namespaces are still not used.
OPCGen - A data generator emulating behavior of OPC XML-DA server . The SOAP messages used in data exchange are generated. Size of some of these messages is scaled by scaling parameter, others are staying constant. The nodes and attributes are belonging to 3 different namespaces. The depth of generated XML is depending on the message type and varies from 1 to 5.
Parsing Benchmarks

Validation Benchmark

XSLT Transformation Benchmark

DOM Benchmark

XML Security Benchmark

Compiler Benchmark
