Forum OpenACS Development: ANNOUNCE: tDOM 0.9.1
place, so: tDOM 0.9.1 got tagged, source balls and windows binaries
are available. Find them at
or see the README below for more information.
The most notable changes since the last release are:
- The included expat is now 2.2.5, the most recent expat release.
- An interface to use expat as pull parser (StAX like).
- Some minor options for more control about parsing ([dom parse
-keepCDATA]) and serialization (asXML -nogtescape
- A few bug fixes important to whom are bitten by them.
And other things.
See the file CHANGES in the root of the source tree or
http://tdom.org/index.html/artifact/014245dd36bb67aa for a more
detailed list or http://tdom.org/index.html/timeline for even more
Thanks to the contributors and all the others for help, encouragement
The README follows:
tDOM - a XML/DOM/XPath/XSLT/HTML/JSON implementation for Tcl
This directory contains a freely distributable thread-safe extension
to Tcl/Tk called tDOM.
* for convenience expat 2.2.5, the XML parser originated from
James Clark, although you're able to link tDOM with other
expat versions or the library provided by the system.
* building a DOM tree from XML in one go implemented in C for
maximum performance and minimum memory usage, and DOM I and II
methods to work on such a tree using either a OO-like or a
* a Tcl interface to expat for event-like (SAX-like) XML parsing.
* a complete, compliant and fast XPath implementation in C
following the November 99 W3C recommendation for navigating and
* a fast XSLT implementation in C following the W3C Recommendation
16 November 1999.
* optional DTD validation.
* a JSON parser which parses any possible JSON input into a DOM
tree without losing information.
* an efficient and Tcl'ish way to create XML and HTML documents
and JSON string.
* as build option an interface to the gumbo HTML5 parser, which
also digests almost any other HTML.
* an even faster simple XML parser for trusted XML input.
* A slim Tcl interface to use expat as pull-parser.
* additional convenience methods.
* and more.
The documentation is included into the source distribution in HTML
and man format. Alternatively, read it online starting at
GETTING THE CODE
The development repository is hosted at http://tdom.org and is
mirrored at http://core.tcl.tk/tdom. You are encouraged to use
If you insist on using an older tDOM with lesser features and
probably more bugs, you should use the latest release 0.9.1. Get
the source code release from
Windows binaries (32 bit as well as 64 bit) of the 0.9.1 release
are also available. Get it from
The provided windows binaries include (statically linked) the
Depending on your platform (unix/mac or win), go to the
corresponding directory and invoke the configure script:
Alternatively, you can build the tDOM package in just about any
directory elsewhere on the fileystem (since TEA-compatible).
You might also want to do "../configure --help" to get a list of
all supported options of the configure script. In the "unix"
directory there is a "CONFIG" file containing some examples on how
to invoke the "configure" script for some common cases. You can
peek there. This file also includes a short description of the
tDOM specific configure options.
Since tDOM is TEA-compatible you should be able to build it using
the MinGW build environment for Windows. There is also the MSVC
nmake file so you can compile the package with Microsoft tools.
Refer to the README in the win directory for more details about
building on Windows.
The compile process will build the tDOM shared library suitable for
loading into the Tcl shell using standard "package require" mechanism.
Please head to http://tdom.org/index.html/ticket and click on "New
Ticket". Log in as anonymous and report your findings. If you
prefer to have an individual login write Rolf a mail.
tDOM was started by Jochen Loewer (mailto:email@example.com) and
developed by Jochen and Rolf Ade (mailto:firstname.lastname@example.org) with
contributions by Zoran Vasiljevic (mailto:email@example.com). Since more
than a dozen years it is maintained and developed by Rolf Ade.