[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] lazy libxml
- From: Daniel Veillard <veillard redhat com>
- To: Nic James Ferrier <nferrier tapsellferrier co uk>
- Cc: libxml <xml gnome org>
- Subject: Re: [xml] lazy libxml
- Date: Tue, 20 Jun 2006 04:19:28 -0400
On Mon, Jun 19, 2006 at 01:50:42PM +0100, Nic James Ferrier wrote:
> I want a lazy implementation of libxml for my XRT project.
>
> I am collecting my thoughts on how to build lazyness into libxml2.
>
> If anyone has any views on how to do it, or has already done any work
> on it then please contact me, or make suggestions on this thread.
>
>
>
> For those of you who don't know... lazy xml is the introduction of
> delayed computation of XML trees inside the dom. This means that you
> can have a part of the tree that is not known until the tree is
> serialized or until nodes within the tree are required.
>
> For example, pseudo-code:
>
> DOM x = new DOM()
> El a = x.new_element_child("a")
> El a_b = a.new_element_child(lazy_element("b"))
>
> at this point a_b is not computed, it is present in the tree and it's
> type is known but the content, it's length and all the other details
> are hidden from view, indeed, they do not yet exist.
>
> If we now do:
>
> print x.content()
>
> then that causes element a_b to be serialized and thus the computation
> that produces the tree must be run and we get the correct output.
>
>
> So, really, lazy XML is just a way of introducing a sub-type into the
> libxml2 type definitions to indicate whether an object is computed or
> not. A function pointer will have to be stored with the object to
> provide the implementation of the node.
>
> This is pretty simple to do at the C level but it gets more
> complicated if nodes are implemented in a higher level language,
> Python say.
The problem is that libxml2 core won't be aware of that subtype.
And adding a node type to libxml2 is not something I would do lightly.
I don't really understand what it is aiming at honnestly, nor the extend
of your question. You can always add up a function in the _private field
of a node, but that will only be interpreted by non-libxml2 code by
definition.
Daniel
--
Daniel Veillard | Red Hat http://redhat.com/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]