Skip to main content

Introduction

This module allows one to marshal 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 (xml-sig@python.org).

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

Implemented with lxml

Installation

python setup.py install

Testing

python setup.py test

Usage

For simple serialisation and unserialisation:

>>> from xml_marshaller import xml_marshaller
>>> xml_marshaller.dumps(['item1', {'key1': 1, 'key2': 'string'}])
'<marshal><list id="i2"><string>item1</string><dictionary id="i3"><string>key1</string><int>1</int><string>key2</string><string>string</string></dictionary></list></marshal>'
>>> xml_marshaller.loads(xml_marshaller.dumps(['item1', {'key1': 1, 'key2': 'string'}]))
['item1', {'key2': '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)
>>> file_like_object.seek(0)
>>> file_like_object.read()
'<marshal><string>Hello World !</string></marshal>'
>>> file_like_object.seek(0)
>>> 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="http://www.erp5.org/namespaces/marshaller"><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>'

History

1.0.2 (2019-02-25)

  • Python 2 fixups.

1.0.1 (2018-11-12)

  • Fix changelog.

1.0 (2018-11-12)

  • Stop distinguish unicode and bytes and always return ‘str’

0.10 (2018-09-12)

  • Add support for Python 3

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 files for xml-marshaller 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xml-marshaller 1.0.2
File Size Uploaded
xml_marshaller-1.0.2.tar.gz 10.3 kB Details

Release files / xml_marshaller-1.0.2.tar.gz

Download URL xml_marshaller-1.0.2.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
42f0402cb0c3f28e67650e59e1b7a66e169d2ba8dcc9d58a42925a4a61aaa893
BLAKE2b-256 checksum
How to use checksums
eeb8f97f1c4a39f89bf2a3571b7c14f7b6108e7f4b2253931a1b9e09a86ecd74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/2.7

Release history Release notifications | RSS feed

1.0.3

2 release files

This release

1.0.2 This release

1 release file

1.0.1

1 release file

1.0

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

0.9.2

1 release file

0.9.1

0.9

0.9a

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page