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 (http://otn.oracle.com/tech/xml/xdk_c/content.html)

  8. Oracle 9i XML Developers Kit for C++ (http://otn.oracle.com/tech/xml/xdk_cpp/content.html)

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

152KB

897KB

4077KB

354KB

6250KB

3185KB

3484KB


Thread Safe

Yes

Yes

Yes

?

Yes

Yes

Yes


Latest Version

v. 1.95.5

v. 2.4.30

v. 2.2.0

v. 1.2.8

v. 3.1.1

v. 5.0.0

v. 9.0.1.0.0


Release Date

6.09.2002


12.12.02


07.02.2003


12.11.2002


13.11.2002

28.08.2002

22.08.2002











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


Developed

1.0,

1.1 Planed

-

-

1.0,

1.1 Planed

1.0

old

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

Partly

+

DOM L.3

CenterPoint8


Partial



partial


planed

DOM Tree Serialization

Sablotron4,

CenterPoint8

+

DOM Level 3


+

DOM Level 3

+

+

XSLT

Sablotron4

Libxslt1

Xalan6



Lotus XSL9

+

+

EXSLT


Libxslt1

Xalan6



Lotus XSL9


+

Xpath 1

Sablotron4

+

Partial,

Xalan6,

Pathan7



Partial,

Lotus XSL9

Pathan7

+

+

Xpath 2



Pathan7



Pathan7



XBase


+






+ ?

XPointer


+






+ ?

XLink


Planed






+ ?

XInclude


+






+ ?

Canonical XML

1.0

1.0






Apache XML Security

Signature


XML Security Library3






Apache XML Security

Signature Xpath Filter


XML Security Library3






Apache XML Security

Decryption Transform for XML Signature


Planed in XML Security Library







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/developerworks/opensource/icu/project/) 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.







libxslt

GDome

xmlsec

sablotron

cslxml

arabica

xalan

Lotus XSL

pathan

Author

Gnome

Gnome

Alexey Sanin

Ginger Alliance

Connective Software Engineering

Jez UK

Apache

IBM

Decision Soft

License

MIT

LGPL

MIT

GPL

Mozilla

Netscape

BSD

Apache

?

BSD

Requirements

LibXML2

LibXML2

LibXML2

OpenSSL

Expat

Expat

Expat

LibXML

Xerces

Xerces

xml4c

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


mozilla



Apache

Apache












Library

Shared

Shared

Shared

Shared

Static

Static

Shared

Shared

shared

Library Size

764 KB

232 KB

242 KB

760 KB

962 KB

132 KB

3.3 MB

?

991 KB

Thread Safe

Yes

?

?

Partly1

Yes

?

Yes

Yes

Yes

Latest Version

1.0.24

0.7.2

0.0.12

0.97.0

2.1.3


Sept02

1.4


?

1.1

2.0 (CVS)

Release Date

14.01.03

20.11.02

27.01.03

30.12.02

28.11.02

19.09.02

12.09.02


?

18.09.02


  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 II.1.3 (Mandrake Based) Single User Mode

  2. Kernel 2.4.21 pre3

  3. GNU C Library 2.3.1

  4. GNU C Compiler 3.2.1

  5. Intel C++ Compiler 7.0

  6. J2SE 1.4.1 + XML Pack Summer



  1. Libraries

  1. Expat 1.95.5

  2. Sablotron 0.97.0

  3. Arabica 02.09.2002

  4. CenterPoint XML 2.1.3

  5. Gnome XML Library 2.4.30

  6. Gnome XML DOM Library 0.7.2

  7. Gnome XSLT Library 1.0.24

  8. XML Security Library 0.0.12

  9. Xerces for C++ 2.1.0

  10. Xalan for C++ 1.4

  11. IBM XML4C 5.0.0

  12. LTG RXP Parser 1.2.8

  13. Trolltech QT 3.1.0

  14. Oracle XML Developers Kit for C 9.0.1.0.0

  15. Oracle XML Developers Kit for Java 9.2.0.4.0

  16. Apache XML Security 1.0.4



  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 15 different type messages wich dramatically differs from each other. Examples and schema can be accessed in XML Benchmark source pakage.

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

Parsing Benchmarks





Validating Benchmark





DOM Benchmark





XSLT Transformation 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