TODO
----

 - Handle memory usage in a clever way:
     - do not dump the nodes at each read, try to guess if read()
       is called in a sequence of read() operations (e.g. cat reads 
       8192 bytes by 8192 bytes) and if it is, cache the node 
       contents. That'd need a very small ftpfs-like GC.
     - perhaps we shouldn't store the node informations from
       first access to end and have a pool of them. That might come
       with next entries though.
 - Handle changes of the backing store (XML document) while running.
    (Idea: we should probably attach to the XML node and handle
     read()/write() operations ourselves, with libxml primitives.)

 - Write support. Making things like echo >, sed and so on work is
   quite obvious. Editing is not -that- simple, 'cause we could
   want to save a not XML well-formed, and libxml will just return
   an error. Perhaps we should use something like 'sync'. 

 - Handle error cases in a more clever way ; there are many error
   conditions that will just cause xmlfs to crash or do strange
   things. We should review them. 

 - Make sorting *really* stable.

WISHLIST
--------

 - Kilobug suggested a --xslt option that would make xmlfs provide
   a tree matching the XSLT-modified document.
   (Problem: In this case we cannot attach easily to the .xml 'cause
    the user would loose access to theirs original document. Perhaps
    we should allow an optional "file.xml" argument and check if it
    is not the same as the file we are attaching to when --xslt is
    specified.)
 - DTD support ; perhaps XML schema/RelaxNG when I'm sure I understand
   them ;-)