[XML-SIG] Marshalling to XML, again

Greg Stein gstein@lyra.org
Sun, 06 Sep 1998 14:25:50 -0700

A.M. Kuchling wrote:
> Here's another version of the xml.marshal module.  (That name will
> have to be changed now, though, since xml.marshal uses Python's
> original marshal to handle code objects.  Any suggestions?)

Why does it need to change?

> For example, take the recursive list produced by this code:
> ...
> There's been some discussion of marshalling scripting language data
> types on the Casbah list and on the Perl-XML list recently; Dave
> Winer's suggestion for XML-RPC bears some relation to this.  It would
> be very useful if some common DTD was agreed upon, which would allow
> painlessly exchanging data between Python and Perl, Frontier, or
> whatever.  (However, I lack the time to read all the relevant mailing
> lists and agitate for a specification.)

Dave, MSFT, and another company are defining an XML-based RPC thing,
which they're calling SOAP (Simple Object Access Protocol). They haven't
released a spec yet, but the intent to provide a low-level RPC that
would slide in underneath the various Distributed Object systems. This
would allow, say, a Windows-based system to use DCOM to call an object
on a Linux system, where the calls and parameters are marshalled in XML.

The data types that they would use will follow what the IE5 version of
MSXML can do for data typing. It is detailed here:


I'm not on those lists -- are there web archives somewhere? I'd be
interested in reading those threads.

> If no such common DTD arises, is this module still useful, and should
> it be included?

Yes, definitely. When SOAP is completed, I'd like to hook up the Linux
end of it :-) (and the marshalling will be needed). Sure, it could
change or whatever, but for any type of RPC system, the XML-based
marshalling done by this module will be cool.

Note: a Python client talking to a Python server could recognize that
fact, marshal using the builtin, and then embed the data into a PCDATA
element (or maybe encode using base64 for simplicity). It would fall
back to the above marshalling for unknown targets. MSFT will similarly
try to use a faster marshalling between its platform ("interoperable,
but it works better if you use Windows all around" is always their motto


Greg Stein (gstein@lyra.org)