Introduction

# The XML C library for Gnome

## Introduction

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

This document describes libxml, the XML C library developped for the Gnome project. XML is a standard for building tag-based structured documents/data.

Here are some key points about libxml:

- Libxml exports Push (progressive) and Pull (blocking) type parser interfaces for both XML and HTML.
- Libxml can do DTD validation at parse time, using a parsed document instance, or with an arbitrary DTD.
- Libxml 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 aplications to fetch remote resources
- The design is modular, most of the extensions can be compiled out.
- The internal document repesentation is as close as possible to the DOM interfaces.
- Libxml also has a SAX like interface; the interface is designed to be compatible with Expat.
- This library is released under the MIT Licence 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