[XML-SIG] xml parsers

Ken MacLeod ken@bitsko.slc.ut.us
24 Mar 2000 12:47:44 -0600


Ken Seehof <kens@sightreader.com> writes:

> I want to use XML as an application data format, not for
> printable/displayable documents.  I don't want DOM (way overkill; I
> just want to go directly to my data structures).  I don't plan to
> have a !DOCTYPE section.  Reading the whole file at once is okay.
> Basically I wan't to use XML as a simple tagged file format, nothing
> else.
> 
> What is the easiest, most convenient parser solution for me?

If you are working with your own data structures, you are probably
looking for a module that can de/serialize your data structures as
XML.

I don't recall any modules available in standard distributions, but
there are several available in various stages of development or
support.  In the Python XML CVS archive are a generic, XML-RPC, and
WDDX serializers.  In the Scarab CVS archive are an LDO and SOAP
serializer.  The XML-RPC implementation at PythonWare is the most
mature implementation of XML-RPC.

  <http://python.org/download/cvs.html>
    -- in the xml/xml/marshal directory
  <http://casbah.org/cgi-bin/cvsweb.cgi/>
    -- in the Scarab/python directory
  <http://www.pythonware.com/products/xmlrpc/>
    -- in the xmlrpc ZIP download

I would keep an eye on upcoming SOAP implementations, they will be the
most likely ones to provide broad support for application data
structures.

I'm not sure I can give a specific recommendation.  The PythonWare
XML-RPC implementation is very mature, but XML-RPC is not the best
format for serializing typical Python structures.  SOAP should do
better eventually, but the SOAP implementation in Scarab is not
mature.  I've heard rumor of other SOAP implementations being worked
on, but none have been announced.

  -- Ken

P.S. to SOAP implementors: I'm not tied to the Scarab implementation
and would be happy to use someone else's implementation.  My two
requests: 1) support Pickle's dump/load interface, 2) also support
some type of encode_call(), encode_response(), encode_fault(), and
decode() interface (depending on how those get revised in upcoming
versions of the SOAP spec).