
	DOM Binding For Tcl

	TclDOM Version 2.6

Steve Ball, Zveno Pty Ltd

This package provides a DOM binding for Tcl.  It provides the following
implementations:

    *     A Tcl-only implementation (slow, but no compilation required),

    *     A C-based implementation based on TclDOMPro (fast),

    *     A wrapper for the Gnome libxml2 library [http://xmlsoft.org/] (also fast
    and compatiable with TclXSLT/libxslt
    [http://tclxml.sourceforge.net/tclxslt.html]).


See the TclXML website [http://tclxml.sourceforge.net/] for more information on
XML support for Tcl.

Contact Steve Ball [mailto:Steve.Ball@zveno.com] for information about this
release.



Installation
============

How you install the package depends on which components you require.



Dependencies
------------

All in cases, the following packages must be installed before attempting to
install TclDOM.

Tcllib
    http://dev.scriptics.com/software/tcllib/
    [http://dev.scriptics.com/software/tcllib/]

    In order for the Tcl-only parser to resolve external entities, the tcllib
    package must be installed.

    Be sure to get a version which includes the uri package.  Version 1.2 or better
    is recommended.

        *         GZip'd tarball [ftp://prdownloads.sf.net/tcllib/tcllib-1.3.tar.gz]

        *         ZIP file [ftp://prdownloads.sf.net/tcllib/tcllib-1.3.zip]


    The latest CVS snapshot may be found at the SourceForge project page
    [http://sourceforge.net/projects/tcllib].



TclXML
    First install TclXML version 2.6 [http://tclxml.sourceforge.net/tclxml.html].

    You must install the same numbered version as this package, ie. 2.6.





Pure-Tcl Installation (no compilation required)
-----------------------------------------------

The install.tcl script will install the pure-Tcl DOM implementation.  Run it
using wish, eg.

    wish install.tcl

    If Tcl/Tk has been configured correctly on your system, you should be able to
    simply double-click the script

If the pure-Tcl parser is good enough for you, then read no further.



Compiled Installation
---------------------

If you need the speed of a compiled DOM implementation, then you have three
options:

    *     TclDOM/C (a.k.a. TclDOMPro)

    *     TclDOM/libxml2

    *     tDOM (different API to TclDOM, but similar functionality)




Compiling TclDOM/libxml2
------------------------



Additional Dependencies
-----------------------

In order to build TclDOM/libxml2, first install the libxml2 library itself.
 Download libxml2 from the libxml2 website [http://xmlsoft.org/].  There are
binary distributions available for some platforms.



Unix/Linux
----------

You must have Tcl/Tk version 8.2 or better installed on your system.  Tcl/Tk
8.3 or better is recommended.

Unpack the TclDOM distribution and cd into the tcldom-2.6 directory.

Run the configure script, with the --prefix, --exec_prefix and --enable-threads
switches (the latter only if Tcl has been built with threads enabled).

For example, on my system I have Tcl 8.4 installed in /usr/local/tcl8.4 so I
would use the command:

    ./configure --prefix=/usr/local/tcl8.4 --exec-prefix=/usr/local/tcl8.4 --enable-threads

    make

    make install

You may have to do this as root

    cd src-libxml2

Run the configure script, with the same values as above for the --prefix,
--exec_prefix and --enable-threads switches.

    If libxml2 was installed in a non-standard location you might have to add the
    --with-xml2-include and --with-xml-lib switches.

    On Windows the iconv library is required too. See
    www.fh-frankfurt.de/~igor/projects/libxml/
    [http://www.fh-frankfurt.de/~igor/projects/libxml/] for either precompiled
    binaries, or a link to the sources.  The relevant options are
    --with-iconv-include and --with-iconv-lib.

For example, on my Linux system I have Tcl 8.4 installed in /usr/local/tcl8.4
and libxml2 installed in /usr/local so I would use the command:

    ./configure --prefix=/usr/local/tcl8.4 --exec-prefix=/usr/local/tcl8.4 --enable-threads --with-xml2-include=/usr/local/include --with-xml2-lib=/usr/local/lib

    make

    make install

You may have to do this as root



Usage
=====

See reference documentation.


