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://github.com/tefra/xsdata/workflows/tests/badge.svg 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.

It ships with a code generator for XML Schema definitions and WSDL 1.1 with SOAP 1.1 bindings. It produces simple dataclasses with type hints in order to reduce the learning curve for users that have to write the binding models manually.

The included xml parser and serializer are highly optimized and adaptable with handlers based on native python and lxml. The parser configuration offers the ability to skip unknown properties and to process xinclude statements.

xsData is constantly tested against the W3C XML Schema 1.1 test suite.

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 for XML Schema 1.0 and 1.1 definitions.

  • Generate data models for WSDL 1.1 and SOAP 1.1 bindings.

  • Support qualified elements/attributes, enumerations and inner classes.

  • Preserve embedded documentation and references.

  • Data binding for XML and JSON documents.

  • Pluggable code writer that supports python dataclasses and PlantUML class diagrams.

Changelog: 21.2 (2021-02-02)

  • Added class name context for user naming schemes #348

  • Added mixed pascal naming scheme #348

  • Added access to element/attribute name generators #381

  • Added XmlHexBinary/XmlBase64Binary builtin data types #387

  • Added support for xs:anyType root elements #399

  • Updated JSON binding modules to use the fields local name #389

  • Updated enum classes generation
    • Promote all inner enums to root #383

    • Fixed issues with producing invalid members #385

    • Added support for list/tuple member values

  • Updated parsers accuracy for Union types

  • Updated dependency resolution accuracy

  • Update base classes generation strategies

  • Updated builtin data types with helper constructors/methods

  • Fixed inner class names conflicts #375

  • Fixed issue not generating fields derived from xs:alternative elements #393

  • Fixed duplicate root class name regression from v20.12

  • Fixed issue adding unused lib imports

  • Fixed issue adding unused name properties to choice elements

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-21.2.tar.gz (218.6 kB view hashes)

Uploaded Source

Built Distribution

xsdata-21.2-py3-none-any.whl (134.7 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