GXml 0.6.0 Released



GXml library to provide XML parsing and manipulation capabilities. It is written in Vala and provides:

* DOM API implementing at least W3C DOM Level 1 Core
* Serialization framework to XML, using existing implementations or create custome   ones.
* A pure Vala XML tree generator classes
* A Gee/GObject based API for easy access objects in XML tree

Its functionality is obtained by wrapping libxml2 library, for tree parsing or storage.

This new version is API/ABI incompatible with 0.4 series.

Most work has been on simplifying API for Vala programmers users, using interfaces and Gee classes, allowing to create new backends based or different from libxml2. This work allowed to re-implement existing classes without radically modify API for existing applications and makes room to improve performance and memory usage.

News and changes are as follow:


* Added new interfaces to simplify implementing new backends for XML reading/writing, containers are Gee ones.

* Renamed GXml 0.4 DOM classes to prefixing a "x", to avoid conflicts with new interfaces

* GXml DOM classes, now implement new interfaces

* GXml DOM classes now implement Gee interfaces to access directly to libxml2 structures,
  reducing extra processing and memory consumption when they are referenced from permanent
  on memory GObject classes. Re-implementing most other DOM classes to implement Gee classes
  in on roadmap, to reduce memory and possibly increase performance on parsing.

* Improved XML namespaces handling

* Added new TwDocument class, as pure Vala XML tree container implementation of
  new interfaces

* Implemented a 3-5 times faster XML writer using TwDocument and libxml2 xmlTextWriter.
  A new TwDocument and xmlTextReader is on roadmap, to improve parsing performance.

* Serializable framework ported to new interfaces, allowing to use different
  backends when serialize/deserialize GObjects.

* Serializable and its implementations, has gained serialization performance improvements
  using TwDocument and better namespace handling.

* Improved documentation

* Added --enable-performance-tests, just to reduce the time required to run all
  unit tests.

New interfaces makes room to convert any GObject as a GXml.Node, making de/serialization more transparent and possibly better performance and memory usage reduction, by avoiding intermediate XML trees using libxml2 or TwDocument. Another plan includes, GObject mapping to XSD.

You can get source code from:

https://download.gnome.org/sources/gxml/0.6/gxml-0.6.0.tar.xz

or from its repository at:

https://git.gnome.org/browse/gxml

--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (en trámite, pero para los cuates: LIBRE)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]