TODO:

- MORE TESTS: open STRING, stream, and similar

* get rid of the XSH subdirectory in the CVS tree
* alias 'help commands' for 'help command'?
* document the installation process for ActiveState perl
* support DTD modification
* 'locate' - allow use also nearest id() 
* xsh-grammar: parse xslt parameters as XPATH instead of XSH expressions ??
* check the XML::LibXML module for XPath-ruled tree additions

- add different examples for using namespaces:

	1) if the ttt prefix is aready declared in the context of ., you may
	simply do 

	add element ttt:para into . 
	and the new element ttt:para will be bound with that namespace so
	doing
	xsh> ls //ttt:para
	xsh> ls//*[local-name()='ttt' and namespace-uri()='http://myuri.com']
	should both list it.

	xsh> add element "ttt:para" namespace http://myuri.com into 
	is intended (as you write) for adding a new element together with a
	xmlns declaration of its prefix and the given namespace.

- namespace-rename-uri uri new-prefix [nodes]
- namespace-rename-prefix old-prefix new-prefix [nodes]
- namespace-change-uri old-uri new-uri [nodes]

- rename the command files to documents, make files and docs aliases

+ check that cd reports error on trying to enter a non-existing node


USER-LEVEL IMPLEMENTABLE

- untag/split element                //(on user-level easy with def)
- comment-out node (?? uncomment ??) //(on user-level easy with def)


IMPLEMENTED BUT SOME MORE REFINEMENT IS NEEDED:

o fold/unfold command (fold/unfold elements for subsequent ls commands)

FINISHED:
* better support for namespaces (e.g. registering as soon as it's available
  in XML::LibXML(::XPath?)

* add new command "namespaces": lists all currently in effect or if an
xpath argument is given, those in effect for the individual nodes
matched