Skip to main content

Python XML Binding

Project description

https://github.com/tefra/xsdata/raw/master/docs/_static/logo.png

Naive XML Bindings for python

https://travis-ci.com/tefra/xsdata.svg?branch=master https://readthedocs.org/projects/xsdata/badge https://codecov.io/gh/tefra/xsdata/branch/master/graph/badge.svg https://img.shields.io/github/languages/top/tefra/xsdata.svg https://www.codefactor.io/repository/github/tefra/xsdata/badge https://img.shields.io/pypi/pyversions/xsdata.svg https://img.shields.io/pypi/v/xsdata.svg

xsData is a complete XML data binding library for python allowing developers to access and use XML documents as simple objects rather than using DOM.

xsData comes with a code generator that can convert XML Schema 1.0 and 1.1 definitions to simple dataclasses with type hints and as minimum footprint as possible. The generated packages have no dependency on the library itself. So simple that you can write the models on your own if you happen to use an XML document with no schema available.

The XML Parser is highly optimized and uses lxml iterparse to bind the document data to the target models. The parser accepts a configuration instance with various options like fail on unknown properties and is also thread safe which means you can take advantage of the internal model inspection caching context for even faster parsing.

The parser and serializer are constantly tested against the W3C XML Schema 1.1 test suite and passes more than 99% of the valid instance cases.

https://github.com/tefra/xsdata/raw/master/docs/_static/demo.svg

Check the documentation demos or our W3C XML Schema 1.1 test runner and the samples repo for more ✨✨✨

Features

  • Generate data models from XML Schema 1.0 and 1.1 definitions.

  • Supports qualified elements/attributes.

  • Supports enumerations and inner classes.

  • Flattening strategies to keep the code as simple as possible.

  • Preserve embedded documentation and references

  • Pluggable code writer that supports different formats

  • Output: Python Data Classes

  • Output: PlantUML class diagram

Changelog: 20.7 (2020-07-04)

  • Updated analyzer to allow abstract types to be generated. #199

  • Removed support to generate code from multiple sources. #172

  • Fixed naming conflict with AttributeGroup analyzer handler. #194

  • Fixed analyzer to merge redefined attribute groups. #196

  • Fixed analyzer to block inheritance on xs:override derived types. #198

  • Refactored code to prepare for wsdl support.

Project details


Download files

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

Source Distribution

xsdata-20.7.tar.gz (694.9 kB view hashes)

Uploaded Source

Built Distribution

xsdata-20.7-py3-none-any.whl (85.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page