tDOM Overview -
Introduction and download information
tDOM combines high performance XML data processing with easy and
powerful Tcl scripting functionality. tDOM should be one of the fastest ways to
manipulate XML with a scripting language and uses very little memory in the process (for example
the DOM tree of the XML recommendation in XML (160K) needs only about 450K in
memory)! The tDOM project was started by Jochen Löwer. It is currently
maintained by Rolf Ade.
tDOM contains:
- the newest version of Expat, the XML parser from James Clark,
including namesspace and DTD support.
- a modified version of Steve Ball's Tclexpat, the Tcl interface to
expat, for event-like (SAX-like) XML parsing. The modifications are for
performance improvements, to make the newest Expat features (XML namespace)
available and for some additional features.
- a (partial) DOM I and II implementation in C for maximum performance
and minimum memory need following the W3C DOM Core Level 1 and Level 2
recommendations using, at users choice, a OO-like or a token based
syntax.
- a very complete, compliant and fast XPath implementation in C
following the November 99 W3C recommendation.
- a very fast XSLT implementation in C following the W3C Recommendation
16 November 1999 -- it's (as of Jan. 2003) very probably the fastest available
open source XSLT implementation, especially for bigger source files.
- still support for tcl8.0.5 (with UTF-8 to 8 bit encoding back conversion functionality)
- an efficient and Tcl'ish way to create XML and HTML document.
- an HTML-parser (builds DOM directly, not as tolerant as Tidy).
- optional DTD validation
- additional convenience methods
- documentation in TMML, HTML and nroff format
and some more.
The tDOM specific source files come with the Mozilla Public License
Version 1.1.
For the Expat XML parser package license see the file COPYING in the
directory expat of the source distribution. In short, it's a liberal Open
Source license.
The documentation is included into the source distribution (in HTML and
man page format) and the Windos binary distribution (in HTML
format). Alternatively, find the Table of
Contents here on the web site.
The latest tDOM source release is tDOM-0.8.3 (967k gzip tar archive)
tDOM-0.8.2 is also avaliable as win32 DLLs (267k zip archive, 2007-08-14)
tDOM is included into ActiveStates ActiveTcl (a 'batteries included' binary Tcl/Tk distribution, avaliable for several plattforms) as well as into Daniel Steffen Tcl/Tk Aqua (a 'batteries included' binary distribution of the Mac OS X native Tcl/Tk)
Bernard Desgraupes provides Mac
binaries for OS X as well as for Mac Classic (OS 8/9).
If you want to use a tDOM Starkit, there are either Chuck Ferrils tdom.kit (it
supports Linux, FreeBSD and MS Windows) or the tcl extension
collection kitten.kit, which also
includes tDOM.
The tDOM GitHub respository is available at https://github.com/tDOM/tdom
Bugs, issues, enhancement requests, and other concerns can be reported on the GitHub issue tracker at https://github.com/tDOM/tdom/issues
The place for tDOM related discussions and questions is the tDOM mailing
list. See http://groups.yahoo.com/group/tdom/ for the archive and subscribing information.
Beside this overview and the included documentation there are a few
other articles and papers with information about tDOM.
- tDOM - A
fast XML/DOM/XPath package for Tcl written in C
- This pdf document (1800 kByte, 19 pages) was written by the tDOM
author Jochen Löwer on the occasion of his talk about tDOM at the First
European Tcl/Tk User Meeting (15. Juni 2000) in Hamburg/Harburg. This paper
treats tDOM Version 0.5a2 and is therefor a little bit outdated. But it's still
the best available introduction into tDOMs architecture.
- tDOM - Update
- This pdf document includes the
sheets of Jochen Löwers talk about tDOM held at the Second European Tcl/Tk User
(7. Juli 2001). This talk was an "update" to Jochens talk at the First European
Tcl/Tk User Meeting and therefor reflects the news and changes since 0.5a2 up
to 0.63.
- A high-performance Tcl-scripted XSLT engine
- This IBM developerWorks article by Cameron Laird gives an short
overview over some of tDOMs features, compares the parsing and DOM building
speed of tDOM with some popular Java implementation and features a 'dual level'
design of building applications using XML technologies glued together with
scripting.
- XSLT Powers a New Wave of Web Applications
- This LinuxJournal article by Cameron Laird gives a short high level
introduction into XSLT. The article presents its examples in terms of the tDOM engine.