[LWN Logo]

From: uche.ogbuji@fourthought.com
Subject: 4DOM 0.7.0
Date: Mon, 08 Feb 99 20:28:26 GMT

FourThought LLC (http://FourThought.com) announces the release of

                             4DOM 0.7.0
              A CORBA-aware implementation of the W3C's
		       Document Object Model
                            in Python

4DOM is a close implementation of the DOM, including DOM Core
level 1, DOM HTML level 1, Node Iterator and Node Filter from
DOM Level 2, and a few utility and helper components.  4DOM was
designed from the start to work in a CORBA environment, although
an orb is no longer required.  For using 4DOM in an ORB environment,
Fnorb and ILU are supported.

4DOM is designed to allow developers rapidly design applications
that read, write or manipulate HTML and XML.

New in 4DOM 0.7.0

- Added support for "orbless" configuration.  Now neither ILU nor Fnorb
are requred and 4DOM can be run purely locally, but still with a consist
ent interface.  Naturally, the orbless config is much faster than the
ilu or fnorb configs.

- Many fixes to improve consistency over an ORB interface (an example
using an ORB has been added to demos).

- Fixes to NodeList and NamedNodeMap

- Added an Ext package for DOM extensions, and moved many of the
  existing extensions there.  See docs/Extensions.html.

- Added to Ext an extensive factory interface for creation of nodes,
consistent for local and ORB use.

- Added to Ext a ReleaseNode helper function to reclaim unused nodes,
necessary for ORB usage, and also for local usage because of circular

- Added NodeIterators and Node Filters from DOM Level 2

- Added a visitor and walker system (to Ext).  These generalize the
NodeIterator concept for cases where pre-order traversal is not
suitable: for instance printing.

- Removed the repr functions from Node interfaces in favor of print

- Added Print and PrettyPrint helper functions to Ext for printing
and pretty-printing node trees.

- Added Strip helper function to Ext to strip all ignorable white-space
text nodes from a node tree.

- Moved all tools to construct a DOM tree from XML and HTML text to a
Builder module in Ext, with two functions: FromXML and FromHTML.

- Added options to FromXML that allow specification of whether to keep
ignorable whitespce int he resultant node tree, and options on whether to

- Innumerable minor and miscellaneous fixes

But what about PyDOM?

Please note that the XML-SIG is working on a separate DOM
implementation, and there is currently discussion regarding the
relative roles of 4DOM and PyDOM.  PyDOM follows a more Python-like 
interface, returning a dictionary of nodes, for instance, where the
DOM spec specifies an object with  NamedNodeMap interface.  This was
a deliberate choice for the convenience of Python programmers.  
Also, PyDOM can build and write HTML, but only supports HTML nodes
through the DOM core interface.  4DOM strictly follows the DOM
interface specs and supports all HTML element capabilities.   However,  
4DOM is a bit more heavyweight.

More info and Obtaining 4DOM

Please see


4DOM is distributed under the terms of the GNU Library Public
License (LGPL).


Uche Ogbuji
Consulting Member, FourThought LLC
http://FourThought.com          http://OpenTechnology.org

<P><A HREF="http://OpenTechnology.org/projects/4DOM/">4DOM 0.7.0</A> -
CORBA-aware implementation of W3C's Document Object Model, supports
Fnorb, ILU and "ORB-less" operation.  (08-Feb-99)

----------- comp.lang.python.announce (moderated) ----------
Article Submission Address:  python-announce@python.org
Python Language Home Page:   http://www.python.org/
Python Quick Help Index:     http://www.python.org/Help.html