Comparison of fast, multiplatform XML libraries
Projects Main Page         Get PDF (Better formated)



  1. The eXpat XML Parser (http://expat.sourceforge.net/)

  2. The XML C Library for Gnome (http://www.xmlsoft.org/)

  3. Apache Xerces for C++ parser (http://xml.apache.org/xerces-c/index.html)

  4. Language Technology Group RXP XML parser (http://www.ltg.ed.ac.uk/software/xml/index.html)

  5. Trolltech QT XML Module (http://doc.trolltech.com/3.1/xml.html)

  6. IBM alphaWorks XML4C (http://www.alphaworks.ibm.com/tech/xml4c)

  7. Oracle 9i XML Developers Kit for C/C++/Java (http://otn.oracle.com/tech/xml/xdk/)

  8. Java XML pack (http://java.sun.com/xml/downloads/javaxmlpack.html)




Expat

libXML

Xerces C

RXP

QT

XML4C

XDK 9i

J2EE

Author

SourceForge

Gnome

Apache

LT Group

Trolltech

IBM

Oracle

Sun

License

MIT

MIT

Apache

GPL

Comm.

Apache

OTN

Apache

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 NT

Linux





BSD

Solaris

MacOS X

HP-UX

IRIX

AIX

OS/2

UnixWare



PTX

AS/400

OS/390

Win NT

Linux







Solaris



HP-UX

Java

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



Apache


Apache

Library

Shared

Shared

Shar1ed

Static

Shared

Shared

Static


Library Size

128KB

984KB

3440KB

354KB

7033KB

3185KB

4328KB


Thread Safe

Yes

Yes

Yes

?

Yes

Yes

Yes


Latest Version

v. 1.95.6

v. 2.6.5

v. 2.4.0

v. 1.2.8

v. 3.3.0

v. 5.4.0

v. 9.2.0.6.0


Release Date

28.01.2003


25.01.2004


02.12.2003


12.11.2002


04.02.2004


28.08.2002

23.10.2003












XML

1.0

1.0

1.0

1.1 Planed

1.0

1.0

1.0

1.1 Planed

1.0

1.0

Encodings

UTF 8



























iconv(with sablotron4)

CallBack

UTF 8/16



ISO8859-1

ASCII





















iconv11

UTF 8/16

UCS 4

ISO8859-1

ASCII

EBCDIC

CP-1252

UTF 8/16

UCS 2

ISO8859-*


UTF 8



ISO8859-*

ASCII



CP-*

KOI8-R

eucJP

JIS

ShiftJIS

eucKR

eucTW

BIG5


UTF 8/16

UCS 4

ISO8859-1

ASCII

EBCDIC

CP-1252

















IBM ICU12

UTF 8/16

UCS 2

ISO8859-*

ASCII

EBCDIC

IBM-*

KOI8-R

eucJP



ShiftJIS





BIG5

GB2312


UTF 8/16



ISO8859-1

ASCII

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.1 Planed

1.0

+

Relax NG


+







Validation without reparsing


Yes

No



No

Yes

No














SAX 1


minimal

+


+


+

+

SAX 2



Arabica5,

CenterPoint



Arabica5

+,

Arabica5


+

+,

Arabica5

Declared in some docs

+

DOM L.1

Sablotron4,

Arabica5,

CenterPoint8

Gdome2,

Arabica5

+,

Arabica5


+

+,

Arabica5

+

+

DOM L.2

Sablotron4,

Arabica5,

CenterPoint8

Gdome2,

Arabica5

+,

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



Lotus XSL9

+

+

EXSLT


Libxslt1

Xalan6



Lotus XSL9


+

XSL-FO


Xmlroff







Xpath 1

Sablotron4

+

Partial,

Xalan6,

Pathan7



Partial,

Lotus XSL9

Pathan7

+

+

Xpath 2



Pathan7



Pathan7

Java Only


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


FTP,

HTTP

SOAP 1.1

EasySOAP10






+ ?

Apache SOAP

SOAP 1.2









SOAP Atachment








Apache SOAP

WSDL

Planed by EasySOAP10








UDDI








+

ebXML








+










XML GUI





+




XSD -> Class Generator







+




  1. 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.

  2. 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.

  3. XML Security Library (http://www.aleksey.com/xmlsec/) is distributed under MIT license and requires OpenSSL 0.9.6c or 0.9.7 (prefered).

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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++.

  9. IBM alphaWorks LotusXSL (http://www.alphaworks.ibm.com/tech/lotusxsl) is IBM shipped version of xalan library.

  10. 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.

  11. iconv (http://www.gnu.org/software/libiconv/) is part of GNU c library and distributed under GPL license.

  12. 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.

  13. 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.2


0.8.1

1.2.4


1.0.1

2.1.7


Jan04

1.7


1.0.0

1.2r2

2.0alpha

Release Date

24.12.03


10.05.03


27.01.04


25.11.03


15.05.03


03.01.04


18.01.04


10.08.03


04.09.03



  1. Expect DOM Modification part

Benchmark Setup


  1. Hardware

  1. Intel Pentium IV 2200 (22x100) MHZ (Nothwood)

  2. Intel D850MV motherboard ( i850E + ICH2)

  3. 4 x Samsung MR16R 256 MB PC800 Rambus DRAM

  4. IBM GXP120 60GB hard drive


  1. Software

  1. DarkLin III (Mandrake 9.2 Based) Single User Mode

  2. Kernel 2.4.22

  3. GNU C Library 2.3.2

  4. GNU C Compiler 3.3.1

  5. Intel C++ Compiler 8.0

  6. J2SE 1.4.2 + JAXP 1.2


  1. Libraries

  1. Expat 1.95.6

  2. Sablotron 1.0.1

  3. Arabica Jan04

  4. CenterPoint XML 2.1.7

  5. Gnome XML Library 2.6.5

  6. Gnome XML DOM Library 0.8.1

  7. Gnome XSLT Library 1.1.2

  8. XML Security Library 1.2.4

  9. Xerces for C++ 2.4.0

  10. Xalan for C++ 1.7

  11. LTG RXP Parser 1.2.8

  12. Trolltech QT 3.3.0

  13. Oracle XML Developers Kit for C 9.2.0.6.0

  14. Oracle XML Developers Kit for Java 9.2.0.6.0

  15. Apache XML Security for C++ 08.02.2004

  16. Apache XML Security for Java 1.0.5D2


  1. XML Files

  1. XMLGEN - autogenerated simple XML file filled with random values, have 3 levels of deep and very simple XSD schema. Examples and schema can be accessed in XML Benchmark source package.

  2. OPCGEN – autogenerated sequence of OPC(http://www.opcfoundation.org) messages filled with random data. This messages have 1-5 levels of deep and complex xsd schema. There are 16 different type messages which dramatically differs from each other. Examples and schema can be accessed in XML Benchmark source package.

  3. 12 MB Resource Description File (RDF) from Dmoz.org

  4. 1 MB Library Catalog file


Parsing Benchmarks


Validation Benchmark





XSLT Transformation Benchmark




DOM Benchmark



XML Security Benchmark




Stress Test


Parsers able process 64MB file: expat, arabica (SAX), cslxml (DOM,SAX), libxml (DOM,SAX), oracle (DOM,SAX), QT (SAX), RXP, Xerces (DOM,SAX), xml4c (DOM,SAX)


Parsers able process 128MB file: expat, arabica (SAX), cslxml (DOM,SAX), libxml (SAX), oracle (SAX), QT (SAX), Xerces (SAX), xml4c (SAX)


Parsers able process 256MB file: expat, arabica (SAX), cslxml (SAX), libxml (SAX), oracle (SAX), Xerces (SAX), xml4c (SAX)


Parsers able process 512MB file: Xerces (SAX), xml4c (SAX)



Standards Violations Notes




SourceForge Logo