# The XML C parser and toolkit of Gnome ## libxml

Main Menu
Home Reference Manual Introduction FAQ Developer Menu Reporting bugs and getting help How to help Downloads Releases XML XSLT Validation & DTDs Encodings support Catalog support Namespaces Contributions Code Examples API Menu XML Guidelines Recent Changes
Related links
Mail archive XSLT libxslt DOM gdome2 XML-DSig xmlsec FTP Windows binaries Solaris binaries MacOsX binaries C++ bindings PHP bindings Pascal bindings Ruby bindings Tcl bindings Bug Tracker
"Programmingwithlibxml2 is like the thrilling embrace of an exotic stranger." MarkPilgrim Libxml2 is the XML C parser and toolkit developed for the Gnomeproject(but usable outside of the Gnome platform), it is free softwareavailableunder the MITLicense.XML itself is a metalanguage to design markup languages, i.e.text languagewhere semantic and structure are added to the content usingextra "markup"information enclosed between angle brackets. HTML is the mostwell-knownmarkup language. Though the library is written in C avariety of language bindingsmake it available inother environments. Libxml2 is known to be very portable, the library should build andworkwithout serious troubles on a variety of systems (Linux, Unix,Windows,CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, ...) Libxml2 implements a number of existing standards related tomarkuplanguages: the XML standard: http://www.w3.org/TR/REC-xml Namespaces in XML: http://www.w3.org/TR/REC-xml-names/ XML Base: http://www.w3.org/TR/xmlbase/ RFC2396:Uniform Resource Identifiers http://www.ietf.org/rfc/rfc2396.txt XML Path Language (XPath) 1.0: http://www.w3.org/TR/xpath HTML4 parser: http://www.w3.org/TR/html401/ XML Pointer Language (XPointer) Version 1.0: http://www.w3.org/TR/xptr XML Inclusions (XInclude) Version 1.0: http://www.w3.org/TR/xinclude/ ISO-8859-x encodings, as well as rfc2044[UTF-8]andrfc2781[UTF-16]Unicode encodings, and more if using iconv support part of SGML Open Technical Resolution TR9401:1997 XML Catalogs Working Draft 06 August 2001: http://www.oasis-open.org/committees/entity/spec-2001-08-06.html Canonical XML Version 1.0: http://www.w3.org/TR/xml-c14nandthe Exclusive XML Canonicalization CR draft http://www.w3.org/TR/xml-exc-c14n Relax NG, ISO/IEC 19757-2:2003, http://www.oasis-open.org/committees/relax-ng/spec-20011203.html W3C XML Schemas Part 2: Datatypes REC 02May2001 W3C xml:idWorking Draft7April 2004 In most cases libxml2 tries to implement the specifications in arelativelystrictly compliant way. As of release 2.4.16, libxml2 passed all1800+ testsfrom the OASIS XMLTestsSuite. To some extent libxml2 provides support for the followingadditionalspecifications but doesn't claim to implement them completely: Document Object Model (DOM) http://www.w3.org/TR/DOM-Level-2-Core/thedocument model, but it doesn't implement the API itself, gdome2 doesthison top of libxml2 RFC959:libxml2 implements a basic FTP client code RFC1945:HTTP/1.0, again a basic HTTP client code SAX: a SAX2 like interface and a minimal SAX1 implementationcompatiblewith early expat versions A partial implementation of XML Schemas Part1:Structureis being worked on but it would be far too early to makeanyconformance statement about it at the moment. Separate documents: the libxslt pageprovidinganimplementation of XSLT 1.0 and common extensions like EXSLTforlibxml2 the gdome2 page:a standard DOM2 implementation for libxml2 the XMLSec page:animplementation of W3CXMLDigital Signaturefor libxml2 also check the related links section below for more related andactiveprojects. Logo designed by Marc Liyanage. Daniel Veillard