Metadata-Version: 2.1
Name: xml-marshaller
Version: 1.0.2
Summary: Converting Python objects to XML and back again.
Home-page: http://www.python.org/community/sigs/current/xml-sig/
Author: XML-SIG
Author-email: xml-sig@python.org
Maintainer: Nicolas Delaby
Maintainer-email: nicolas@nexedi.com
License: Python License (CNRI Python License)
Keywords: XML marshaller
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Python License (CNRI Python License)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Text Processing :: Markup :: XML
Requires-Dist: lxml
Requires-Dist: six

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]
