Introduction |
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.
|
Top
|
|
|
Documentation |
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)
|
Top
|
|
|
|
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.
|
Top
|
|
|
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, ...
|
Top
|
|
|
|
News |
- 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.
|
Top
|
|
|
Authors |
Maintainer:
- Paolo Casarini <paolo@casarini.org>
Authors (from the older contribution):
- Raph Levien <raph@gimp.org>
- Ian Main <imain@gtk.org>
- Daniel Veillard <Daniel.Veillard@w3.org>
- Mathieu Lacage <mathieu@advogato.org>
- Anders Carlson <andersca@gnu.org>
- Paolo Casarini <paolo@casarini.org>
- Luca Padovani <padovani@scl.csd.uwo.ca>
- T.J. Mather <tjmather@tjmather.com>
|
Top
|
|
|
Software based on gdome2 |
Wrappers:
- 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.
|
Top
|
|
|