GXml is an Object Oriented implementation of DOM version 4, using
GObject classes and written in Vala. Has a fast and robust serialization implementation from
GObject to XML and back, with a high degree of control. After serialization, provides a set of collections where you can get access to child nodes, using lists or hash tables.
New 0.20 release is the first step toward 1.0. It provides cleaner API and removes old unmaintained implementations.
GXml uses a method to set properties and fill declared containers for child nodes, accessing
GObject internals directly, making it fast. A
libxml-2.0 engine is used to read sequentially each node, but is prepared to implement new ones in the future.
A new engine, still in development, tries to read nodes in a multi-threading environment, to speed up serialization.
GXml’s engine uses interfaces. That design has provided the opportunity to implement incrementally better new implementations, also holding more than one at the same time. The main ones, uses
libxml-2.0 for sequential parsing to
GObject, providing a fast process; the other, use
libxml-2.0 parser to its own nodes, while provides bindings to a GObject classes, but limited to the features in
libxml-2.0, limitations not present in the main implementation.
GObject can exploit all its potential, without the verbose C syntax but getting all its speed advantages.
Libraries written in Vala, will help powerful applications to be created and open new opportunities on innovations, while push up GNOME main technologies to be used outside Linux. Interest a side, is Vala’s features to create binaries not depending on GLib/GObject, open new opportunities to other markets.