Gnome DOM Engine

libgdome, a.k.a. gdome2

Belorussian translation

Main Menu
This document describes libgdome, the DOM C library developped for the Gnome project.

The Document Object Model is a platform and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents.

A DOM implementation (also called a host implementation) is that piece of software which takes a parsed XML or HTML document and makes it available for processing via the DOM interfaces. A browser contains a host implementation, for example.

Here some key points about libgdome:
  • Libgdome is a DOM level2 Implementation.
  • Libgdome supports "Core" and "XML" modules (DOM level2 Core Recommendation).
  • Libgdome supports "Events" and "MutationEvents" modules (DOM level2 Events Recommendation).
  • Libgdome is based on libxml2.
  • Libgdome is written in C.
  • The internal document representation is that libxml except for DocumentType, Entity and Notations interfaces.
  • Libgdome is released under the GNU LGPL.
On-line resources on using libgdome: Papers:
  • P.Casarini, L.Padovani, "The Gnome DOM Engine",
    Accepted Paper at the Extreme Markup Languages 2001 Conference, March 2001
    (online | postscript)
  • P.Casarini, L.Padovani, "The Gnome DOM Engine",
    Final version of this paper presented by Luca Padovani at the Extreme Markup Languages 2001 Conference with also the chapter with the comparison between Gdome2 and Xerces.
    (online | pdf)
There is a mailing-list for libgdome, with an on-line archive. To subscribe to this list, please visit the associated Web page and follow the instructions.

Reporting bugs
The best way to report a bug is to use the mailing-list.

Of course, bugs reported with a suggested patch for fixing them will probably be processed faster.

How to help
You can help the project in various ways: the best thing to do first is to subscribe to the mailing-list, have a look at the archives; then you can:
  • provide patches when you find problems
  • provide new documentation pieces (translations, examples, etc ...)
  • implement new features
  • help with the packaging
  • test, give feedback, ...
Latest release:
10/05/2003 gdome2-0.8.1.tar.gz | rpm | rpm devel | src rpm
Old releases:
09/13/2003 gdome2-0.8.0.tar.gz | rpm | rpm devel | src rpm
03/10/2003 gdome2-0.7.4.tar.gz | rpm | rpm devel | src rpm
01/30/2003 gdome2-0.7.3.tar.gz | rpm | rpm devel | src rpm
05/30/2002 gdome2-0.7.2.tar.gz | rpm | rpm devel | src rpm
04/04/2002 gdome2-0.7.1.tar.gz | rpm | rpm devel | src rpm
12/21/2001 gdome2-0.7.0.tar.gz | rpm | rpm devel | src rpm
08/06/2001 gdome2-0.6.9.tar.gz | rpm | rpm devel | src rpm
06/13/2001 gdome2-0.6.8.tar.gz - first version licensed under GNU LGPL
05/20/2001 gdome2-0.6.7.tar.gz
05/13/2001 gdome2-0.6.6.tar.gz
05/05/2001 gdome2-0.6.5.tar.gz
04/25/2001 gdome2-0.6.4.tar.gz
04/24/2001 gdome2-0.6.3.tar.gz
04/12/2001 gdome2-0.6.2.tar.gz
03/26/2001 gdome2-0.6.1.tar.gz
03/25/2001 gdome2-0.6.0.tar.gz
Libgdome is also available from CVS:
The Gnome CVS base. Check the Gnome CVS Tools page; the CVS module is gdome2.

  • Completly implemented all Fundamental Interfaces ("Core" module):
    • DOMException
    • ExceptionCode
    • DOMImplementation
    • DocumentFragment
    • Document
    • Node
    • NodeList
    • NamedNodeMap
    • CharacterData
    • Attr
    • Element
    • Text
    • Comment
  • Completly implemented all Extended Interfaces ("XML" module):
    • CDATASection
    • DocumentType
    • Notation
    • Entity
    • EntityReference
    • ProcessingInstruction
  • Completly implemented the following interfaces ("Event" and "MutationEvent" module):
    • EventTarget (implemented within Node interface)
    • EventListener
    • Event
    • EventException
    • DocumentEvent (implemented within Document interface)
    • MutationEvent
  • Implemented specific programs to test many interfaces.
  • Implemented a module to debug the reference counting system.

Check the Changelog file for a really accurate description.

Paolo Casarini <>
Authors (from the older contribution):
Raph Levien <>
Ian Main <>
Daniel Veillard <>
Mathieu Lacage <>
Anders Carlson <>
Paolo Casarini <>
Luca Padovani <>
T.J. Mather <>

Software based on gdome2
GMetaDOM by Luca Padovani is a Collection of DOM Implementations.
libgdome-ruby by Tobias Peters is a ruby extension that provides the DOM level 2 Core API for accessing XML documents.
libgdome-cpp by Tobias Peters is a C++ library that provides the DOM level 2 Core API for accessing XML documents.
XML-GDOME: Level 2 DOM for Perl by T.J. Matheris is a perl module that provides the DOM Level 2 Core API for accessing XML documents. It provides a XS wrapper around the libgdome library.
F77xml library by Stefano Borini is Fortran library to handle xml problem. It sticks to F77, is extensible and compiles with GNU g77.

All logos and trademarks in this site are property of their respective owner. The style and colors of this site are inspired by GnuCah theme of PHP-Nuke web portal system.

Valid XHTML 1.0! Valid HTML 4.0! Valid CSS!