[Zope-CMF] Re: A better CMFworkflow - XML configuration

Shane Hathaway shane@digicool.com
Sat, 07 Jul 2001 00:07:34 -0400


Jeff Kowalczyk wrote:
> http://cmf.zope.org/Members/JeffK/dcworkflow.xml/view

Wow, thanks Jeff!  This is a very good first step.

> Regarding the question of whether adherance to a standard XML schema is
> necessary, I wouldn't want to slow down the Workflow tools developers,
> or limit their flexibility this early in the game. A standard schema
> *would* be great, but a clear XML serialization and deserialization
> that's close to their particular object mapping is still be a good
> start, and its all we really need to try out the concept of
> Diagram-based configuration. We can XSLT into any number of schemas
> after the fact.

That's an important point IMHO.  To a large extent, applications are
defined by their data schema.  Therefore when you limit the data schema,
you also limit the application.  Standardization is good, but only when
maturity has been achieved.

In fact the XML file you published revealed a couple of flaws in
DCWorkflow.  For example, the user action details probably ought to be
in a separate object.

> If the XMLObject project was ready, we could even try this on existing
> workflow tools without distracting them at all. It sounds like that will
> someday provide XML (de)serialization.

I've written several XML (de)serialization routines (for other
projects), and they all turned out to be a lot more work than I
expected.  There must be a pattern out there that's easy to apply and
extend.  Look, for example, at the implementation of PPML, the "Python
Pickle Markup Language", in lib/python/Shared/DC/xml.  The
implementation is much more complex than I would expect.

Here's an off-topic thought: writing Python object <-> XML routines in
Python is more complex than expected, and writing Python object <-> XML
routines in XML (i.e. XSLT) is also complex, but maybe the "sweet spot"
is in writing a short XML file that combines with a short Python file? 
Somehow you'd put everything XMLish in the XML file and everything
Pythonic in the module.  Hmm... :-)

Shane