Skip to main content
Help us improve Python packaging – donate today!

Converting Python objects to XML and back again.

Project Description

Marshals simple Python data types into a custom XML format. The Marshaller and Unmarshaller classes can be subclassed in order to implement marshalling into a different XML DTD. Original Authors are XML-SIG (

Fully compatible with PyXML implementation, enable namespace support for XML Input/Output.

Implemented with lxml


python install


python test


For simple serialisation and unserialisation:

>>> from xml_marshaller import xml_marshaller
>>> xml_marshaller.dumps(['item1', {'key1': 1, 'key2': u'unicode string'}])
'<marshal><list id="i2"><string>item1</string><dictionary id="i3"><string>key1</string><int>1</int><string>key2</string><unicode>unicode string</unicode></dictionary></list></marshal>'
>>> xml_marshaller.loads(xml_marshaller.dumps(['item1', {'key1': 1, 'key2': u'unicode string'}]))
['item1', {'key2': u'unicode string', 'key1': 1}]

Can works with file like objects:

>>> from xml_marshaller import xml_marshaller
>>> from StringIO import StringIO
>>> file_like_object = StringIO()
>>> xml_marshaller.dump('Hello World !', file_like_object)
'<marshal><string>Hello World !</string></marshal>'
>>> xml_marshaller.load(file_like_object)
'Hello World !'

xml_marshaller can also output xml with qualified names:

>>> from xml_marshaller import xml_marshaller
>>> xml_marshaller.dumps_ns('Hello World !')
'<marshal:marshal xmlns:marshal=""><marshal:string>Hello World !</marshal:string></marshal:marshal>'

You can also use your own URI:

>>> from xml_marshaller.xml_marshaller import Marshaller
>>> marshaller = Marshaller(namespace_uri='http://my-custom-namespace-uri/namespace')
>>> marshaller.dumps('Hello World !')
'<marshal:marshal xmlns:marshal="http://my-custom-namespace-uri/namespace"><marshal:string>Hello World !</marshal:string></marshal:marshal>'


0.9.8dev (unreleased)

0.9.7 (2010-10-30)

  • Enhance egg folder structure
    [nicolas Delaby]
  • Improve tests
    [nicolas Delaby]
  • add XSD Schema
    [nicolas Delaby]

0.9.6 (2010-10-12)

  • [fix] Support boolean transformation
    [Nicolas Delaby]

0.9.5 (2010-09-01)

  • [fix] Formatting of documentation
    [Lukasz Nowak]

0.9.4 (2010-09-01)

  • [fix] Instances are now correctly unmarshalled.
    [Cedric de Saint Martin]

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
xml_marshaller-0.9.7.tar.gz (11.3 kB) Copy SHA256 hash SHA256 Source None Oct 30, 2010

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page