Wanted: XML Technology Reviews

Posted 20 Jun 2001 at 14:17 UTC by lkcl Share This

This is a call for anyone who knows of any XML technology developed or being developed to post a reply describing it and placing html references to it.

Advogato is being used for discussion. What I would also like to use it for is for reference. So please, if you know of any XML development being done, preferably but not limited to, Open Source, including any *other* sites that also do the same job as this article, please list them here :) The reply should include:

  • Name of the XML technology - this should be the title of your Reply.
  • Short Description
  • License (GPL, BSD, Apache, Proprietary etc)
  • HTML link to where to get it
  • Longer Description
  • anything else you can think of that people might appreciate knowing about the XML technology.
thank you! luke

xvl, posted 20 Jun 2001 at 14:44 UTC by lkcl » (Master)


  • a dynamically extensible xml scripting language, written in c. has a stand-alone mode and an apache mode, just like php.exe and mod_php.
  • GPL license, however extension modules are dynamically loaded, and there is no restriction on what license these modules can be developed under, including proprietary licenses.
  • virgule.sourceforge.net and sourceforge.net/projects/virgule

xvl - derived from mod_virgule, which runs the advogato site, has turned into an actual scripting language in order to provide sufficient non-hard-coded functionality for web site designers.

xvl is designed to be extensible, and therefore able to leverage existing XML technologies (if written in c), such as xslt (through DV's excellent project, libxslt).

issues, dev status, roadmap

xvl's origins, from mod_virgule, are unconventional. a site *must* be managed - including all subdirectories and authentication - via mod_virgule. this is somewhat unsatisfactory. i will be morphing the code and the example site into a more 'conventional' system by creating mod_xvl, and then mod_auth_xvl.

in this way, it will be possible [via mod_xvl] to mix xvl and php, html etc etc in the way that apache developers expect, and also apache developers will also be able [via mod_auth_xvl] to leverage Trust Metric-based authentication from php and other scripting languages.


pyxml, posted 20 Jun 2001 at 15:28 UTC by lkcl » (Master)

  • pyxml - a python xml library
  • A package collecting the tools required for writing basic XML applications in Python, along with documentation and sample code. Features include (but are not limited to) SAX, DOM, the xmlproc validating parser, an Expat interface, and more.
  • http://sourceforge.net/projects/pyxml
  • Python License
this library supports Unicode (which the standard python xmllib doesn't). i found it to be v. slow, but then again, i _was_ processing 2.5mb XML pages into an array (1024 entries) of dictionaries (about 3k per dictionary), but 40 seconds (and 45mb) to do so does seem a little excessive, even if i _was_ using a DOM model not SAX :). ripping the code out and replacing it with the standard python xmllib stuff got that time down to 12 seconds, but it was a True Hack Job, but it worked.

comments, anyone?

python dist xmllib, posted 20 Jun 2001 at 15:33 UTC by lkcl » (Master)

  • python xmllib that comes with the standard python distribution
  • Python License
  • http://python.org
the standard python xmllib is a complement to the sgml and html standard-python lib suite. it has a SAX interface which is used to create filters, and has some HTML filters based on it (to strip out HTML into reasonably-good-looking straight text, for example). xmllib is very basic, but does the job, and because it's very basic, does the job pretty quickly.

libxml, posted 20 Jun 2001 at 16:52 UTC by DV » (Master)

  • XML/HTML toolkit, written in C, developped within the Gnome project
  • Dual licenced LGPL or W3C IPR (MIT like)
  • http://xmlsoft.org/
  • longuer description at the given page, quickly it supports: XML, XML DTD validation, HTML, DocBook SGML (hack specific parser) SAX, DOM like, tree manipulations, XPath, XPointer, XInclude URI handling, FTP and HTTP clients, customizable I/O layer, Support for SGML catalogs (XML Catalogs coming), or a pluggable catalog API.
  • advogato is based on libxml2, used by gdome (DOM2 library), and libxslt (XSLT library), etc.

libxslt, posted 20 Jun 2001 at 16:58 UTC by DV » (Master)

  • XSLT toolkit, written in C, developped within the Gnome project
  • Dual licenced LGPL or IPR (W3C IPR based MIT like)
  • http://xmlsoft.org/XSLT/
  • implementation of the XSLT transformation language, relatively fast, but not yet at 1.0
  • KDE and Gnome are starting using it to render on-the-fly the docbook XML documentation to HTML pages. Embedded in AXKit now.

of course there is a lot lot more ...., posted 20 Jun 2001 at 17:08 UTC by DV » (Master)

it's just impossible to list here, even the rance of open sources ones is huge from expat to xml.apache.org, AXKit, 4Suite, IBM tools, Saxon, XSV, etc ...

no it's really impossible to list everything, there is a number of XML software catalogs, like http://www.xmlsoftware.com/ (seems down today) and http://www.garshol.priv.no/download/xmltools/ to list just 2 of them.

Is this really the right place for this?, posted 20 Jun 2001 at 17:11 UTC by egnor » (Journeyer)

A Freshmeat search for "XML" turns up 400 hits. Random sampling seems to indicate that at least one in three of these are primarily XML projects (as opposed to other projects that happen to use XML in some peripheral way); that's still over 100 XML projects.

There are lots of other XML-specific software directories out there; some are more focused on free software, others on commercial vendors. I presume you're looking for something more -- intelligent filtering? discussion? -- but your proposed tabular results and the listings so far don't offer anything beyond what Freshmeat and the rest have.

Stack API for XML (StAX), posted 21 Jun 2001 at 08:51 UTC by thomasd » (Journeyer)

StAX is a small extension to the SAX2 APIs. Like SAX, it allows you to write efficient (memory and performance) handlers for XML documents. However, rather that writing a single, monolithic, ContentHandler object, any sub-tree of the XML document can be delegated to another handler. This makes it easier to write modular, extensible, XML applications. One typical pattern is to write a separate handler for each datatype in your schema.

An adaptor allows StAX handlers to be used with an SAX2-compliant XML parser.

Language: Java (concept could be easily re-implemented in many other languages).

Licence: LGPL

Availability: StAX currently lives in the CVS tree of the BioJava project (although there are no problems compiling it standalone -- drop me a mail if you want a copy). This is largely historical accident. I'm planning to separate it out this weekend, and it will then move to http://stax.sourceforge.net/.

Re: is this the right place?, posted 21 Jun 2001 at 11:54 UTC by lkcl » (Master)

hi there egnor, well, you kindly supplied some info that will make advogato, and this article, useful and to the point: you provided a reference to a search engine [i keep forgetting about freshmeat :)]. so yes, you posted in the right place, and i appreciate v. much you doing so.

AxKit, posted 21 Jun 2001 at 14:05 UTC by lkcl » (Master)

AxKit is an XML Application Server for Apache, for both dynamic and static content. It implements server-side transformation of XML content, allowing you to deliver the same content in different formats, such as HTML, WML, PDF, etc. Everything in AxKit is a plugin, so we implement different language transformation modules loaded at runtime, such as XSLT (based on Gnome libxslt or Sablotron), XPathScript, or XSP.

XSP is the technology that implements the dynamic side of things. It is a language implemented by Cocoon originally. XSP to the user is a bit like Cold Fusion, in that you have tags that implement functionality. However unlike CF, XSP is pure XML. Developers can implement their own tags for XSP by just writing a Perl class, and adding some boiler-plate code, and a tag specification (much like writing a Perl class that uses Exporter). This is much easier than both the JSP2 and Cocoon XSP way of writing tags libraries.

A couple of confusions I have wanted to clear up for a while about AxKit, and here seems like a good place:

  • AxKit is (or should be) Cocoon implemented in C. A lot of the core parts of AxKit are implemented in C. The XSLT transformation is in C. There are only a few small Perl bits in each request (except XSP, which is byte-compiled to Perl bytecode before execution).
  • AxKit is not like the Cocoon 1 model at all, it is much more like the Cocoon 2 model of execution - a falsehood I've seen bandied about on the Cocoon-Users list. That is to clarify, AxKit users describe how their XML is to be processed using Apache configuration directives that they add to their httpd.conf or .htaccess files. They can use xml-stylesheet processing instructions, just as Cocoon 1 uses, but only as an override for the main mechanism described here.

Language: C and Perl (with a gradual port of more code to C as time permits). Also quite tied to Apache right now.

License: Dual licensed under the GPL and Artistic License.

Other: AxKit is developed commercially for free by AxKit.com, where we build content management and other types of solutions around the platform. We welcome other interest in our services.

[this message kindly written by matt s. and posted here on his behalf]

CGI::Formmagick, posted 22 Jun 2001 at 15:15 UTC by srl » (Journeyer)

Formmagick (on CPAN as CGI::Formmagick) is a Perl module that generates multi-page web forms from XML descriptions. It features input validation, templating, internationalization/localization, per-page and per-form actions, and forking trees based on user decisions. It's GPL. Skud is the project leader.

Use it and never have to write HTML again. :)

DSML Tools, posted 25 Jun 2001 at 20:51 UTC by gerv » (Master)

Are you looking for stuff for working with XML generally or applications using specific XML dialects?

The DSML Tools are an XML-using application I wrote; manipulation of directory data in a XML form. It's written in Java, and based on Apache Xerces, the Netscape LDAP SDK and various other bits and pieces. License is GPL/MPL dual.


wanted, xml or xml dialects, posted 26 Jun 2001 at 13:08 UTC by lkcl » (Master)

well, personally, i'm looking for mature-enough, or standards-based c-based technologies / libraries that i can plug in to xvl and make a shameless plug for xvl (which is going really well: mod_auth_xvl and mod_access_xvl were about an hour's work each! :) and friends at the same time. and libxslt fit _that_ bill incredibly well. however, i realise that c is not everyone's favourite, so thought it best to open up the article. egnor is spot-on, though: whilst a reference article is good, intelligent discussion is better. if i get time to do some research into egnor's and daniel's excellent recommendations, i'll post references to those xml-techs that i think are worthwhile, even if this article drops off the front-page :)

QXml - part of Qt 3.0, posted 27 Jun 2001 at 11:13 UTC by bero » (Master)

Qt 3.0 (beta 1 available here) includes the QXml module - I haven't used it much yet, but so far, it seems quite nice and complete.

Supports SAX2 and DOM Level 2. Pretty good docs included in the tarball.

Licenses: GPL or QPL, license for developing proprietary software available for a fee

Language: C++

GNU JAXP (Ælfred2 and more), posted 8 Jul 2001 at 20:26 UTC by db » (Master)

The GNU ClasspathX project includes basic XML processing support. It supports SAX2, DOM Level2, an XML Pipeline framework (with streaming validator -- there's some cool SAX2 support there), utilities (SAX2 DOM parser, XMLWriter), and now JAXP 1.1 support. For the moment you need to build "gnujaxp.jar" from CVS; there's no formal "release" yet.

It's all under the GPL, "with library exception".

When last I measured: Smaller (lots!) and faster (2x?) than Xerces. And something I found curious: the Xerces v2 internal architecture is really similar to this, except that the XML Pipeline framework uses only SAX2 and predates that IBM work by well over a year. Go figure.

This is the current version of Ælfred2; older versions (buggier, non-GPL) are bundled with a variety of projects (the Saxon XSLT engine, and the DOM4j work).

Entity, posted 9 Jul 2001 at 06:59 UTC by Slow » (Master)

Entity is an object system that uses an XML representation for objects, and exposes that interface to the programmer.

It's licensed under the X/MIT license.

Basically it's a RAD environment that lets you build objects described as XML. The objects may represent anythign from GUI widgets (it supports gtk already), to langauge interpreters. All objects are "live", in the sense that they can be modified, and those modifications to the tree are reflected in the current state of the object. For example, programmatically creating a button XML node will cause a button to appear in place. Callbacks may be specified in the XML for events and will call the function specified in the language specified.

Many languages are supported for interacting with the XML including perl, python, javascript, C, C++, and tcl.

Been under development for about 2 years, and is being used commercially and in open source projects.

Entity Link, posted 9 Jul 2001 at 07:01 UTC by Slow » (Master)

For some reasom my HTML didn't go through, the URL for Entity is http://www.entity.cx

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page