# The XML C parser and toolkit of Gnome

## Introduction

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
- lxml Python bindings
- Perl bindings
- C++ bindings
- PHP bindings
- Pascal bindings
- Ruby bindings
- Tcl bindings
- Bug Tracker

This document describes libxml, the XML C parser and toolkit developed for the Gnome project. XML is a standard for building tag-based structured documents/data.

Here are some key points about libxml:

- Libxml2 exports Push (progressive) and Pull (blocking) type parser interfaces for both XML and HTML.
- Libxml2 can do DTD validation at parse time, using a parsed document instance, or with an arbitrary DTD.
- Libxml2 includes complete XPath, XPointer and XInclude implementations.
- It is written in plain C, making as few assumptions as possible, and sticking closely to ANSI C/POSIX for easy embedding. Works on Linux/Unix/Windows, ported to a number of other platforms.
- Basic support for HTTP and FTP client allowing applications to fetch remote resources.
- The design is modular, most of the extensions can be compiled out.
- The internal document representation is as close as possible to the DOM interfaces.
- Libxml2 also has a SAX like interface; the interface is designed to be compatible with Expat.
- This library is released under the MIT License. See the Copyright file in the distribution for the precise wording.

Warning: unless you are forced to because your application links with a Gnome-1.X library requiring it, Do Not Use libxml1, use libxml2

Daniel Veillard