# The XML C library for Gnome

## libxml

Main Menu

- Home
- Introduction
- FAQ
- Documentation
- Reporting bugs and getting help
- How to help
- Downloads
- News
- XML
- XSLT
- Python and bindings
- libxml architecture
- The tree output
- The SAX interface
- Validation & DTDs
- Memory Management
- Encodings support
- I/O Interfaces
- Catalog support
- The parser interfaces
- Entities or no entities
- Namespaces
- Upgrading 1.x code
- Thread safety
- DOM Principles
- A real example
- Contributions
- flat page, stylesheet

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

Related links

- Mail archive
- XSLT libxslt
- DOM gdome2
- XML-DSig xmlsec
- FTP
- Windows binaries
- Solaris binaries
- Bug Tracker

Libxml is the XML C library developped for the Gnome project. XML itself is a metalanguage to design markup languages, i.e. text language where semantic and structure are added to the content using extra "markup" information enclosed between angle bracket. HTML is the most well-known markup language. Though the library is written in C a variety of language binding makes it available in other environments.

Libxml2 implements a number of existing standards related to markup languages:

- 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/
- RFC 2396 : 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/
- most of 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-1], rfc2044 [UTF-8] and rfc2781 [UTF-16] core encodings
- 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-c14n and the Exclusive XML Canonicalization CR draft http://www.w3.org/TR/xml-exc-c14n

In most cases libxml tries to implement the specifications in a relatively strict way. As of release 2.4.16, libxml2 passes all 1800+ tests from the OASIS XML Tests Suite.

To some extent libxml2 provide some support for the following other specification but don't claim to implement them:

- Document Object Model (DOM) http://www.w3.org/TR/DOM-Level-2-Core/ it doesn't implement the API itself, gdome2 does this in top of libxml2
- RFC 959 : libxml implements a basic FTP client code
- RFC 1945 : HTTP/1.0, again a basic HTTP client code
- SAX: a minimal SAX implementation compatible with early expat versions
- DocBook SGML v4: libxml2 includes a hackish parser to transition to XML

Libxml2 is known to be very portable, the library should build and work without serious troubles on a variety of systems (Linux, Unix, Windows, CygWin, MacOs, MacOsX, RISC Os, OS/2, VMS, QNX, MVS, ...)

Separate documents:

- the libxslt page providing an implementation of XSLT 1.0 and common extensions like EXSLT for libxml2
- the gdome2 page : a standard DOM2 implementation for libxml2
- the XMLSec page: an implementation of W3C XML Digital Signature for libxml2

Daniel Veillard