NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2392 most downloaded on PyPI
Python XML Binding
Last release 7 months ago
15 Feb 2026
Release timing varies
gaps range from 3 weeks to 7 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
64 releases · first in 2020
One column per quarter.
Bump min dependency versions by @tefra in #1203
Full Changelog: v26.1...v26.2
Fix missing imports on inheriting multiple mixins for the same class … by @Risto97 in #1157
Full Changelog: v25.7...v26.1
Fixes
Features
Deprecations
Fix: KeyError in XmlMetaBuilder.build_class_meta for certain packages by @jootten in #1144
XmlMetaBuilder.build_class_meta for certain packages by @jootten in #1144Full Changelog: v25.4...v25.7
Update pre commit hooks by @tefra in #1123
Full Changelog: v24.12...v25.4
Features
Allow extensions to match module paths (#1132)
Improve duplicate class names detection and resolution (#1127)
Fixes
Fix release action by @tefra in #1087
Full Changelog: v24.11...v24.12
Fixes
Set the default value of prohibited fields to None (#1098)
Set body and fault as optional in output soap classes (#1099)
Resolve a conflict with type location when an element and a complex type have the same name (#1107)
Features
Allow Xml Parser subclasses to override how the root class is located (#1090)
Include common soap encoding schema (#1100)
Deprecations
Add cli config to use generic collections by @tefra in #1082
Full Changelog: v24.9...v24.11
Fixes
Features
Deprecations
fix: fix python 3.13 deprecation by @tlambert03 in #1077
Full Changelog: v24.7...v24.9
Fixes
Features
fix: Reset attr types derived from empty simple types by @tefra in #1062
Full Changelog: v24.6.1...v24.7
Features
Fixes
fix: Ruff check command typo breaks generator by @tefra in #1061
Full Changelog: v24.6...v24.6.1
fix: Derived element json serialization by @tefra in #1035
Full Changelog: v24.5...v24.6
Features
Fixes
Rewrite TreeSerializer, drop support for native python ElementTree
Add xml and lxml tree serializers
Features
Fixes
Unnest class with circular reference
Fixes
Avoid generating ambiguous choices
Features
Fixes
make FieldInfo a protocol by @tlambert03 in https://github.com/tefra/xsdata/pull/949
Full Changelog: https://github.com/tefra/xsdata/compare/v24.2...v24.2.1
deprecate: Serializer config pretty_print/pretty_print_identation by @tefra in https://github.com/tefra/xsdata/pull/942
Full Changelog: https://github.com/tefra/xsdata/compare/v24.1...v24.2
Fixed deprecation warnings for datetime.datetime.utcnow()
Fixed PycodeSerializer not adding imports for nested classes
Fixed decimal converter to avoid scientific notations
Fixed conflicting enum values leading to wrong default values
Fixed XML meta var index conflicts.
This release is bigger than intended and includes many major changes, that's why it took so long.
Added option to ignore xml pattern restrictions #727
Added list wrapper for elements and primitive nodes #710
Fixed code generation inconsistencies in different operating systems.
Added option to filter out unused global types #691
Fix empty lists do not get serialized #686
Added support for xml date/time nanoseconds #679
Added config option to unnest classes
Added official support for python 3.11
Fixed substitution groups on duplicate global types #648
Added recursive glob for cli dir source #643
Fixed wsdl generator to use operation name for rpc input messages #609
Fixed unescaped quotes in regex pattern #592
Automate cli generate options #578
Automate cli generate options #578
Fixed generator not cascading default values to inner classes #579
Re-raise xml syntax errors as xsdata.exceptions.ParserError #571
Added cli summary with recovered warnings and issues #583
Removed the native and lxml SAX handlers #582
Deprecated JsonSerializer indent property, use SerializerConfig instead
Deprecated JsonSerializer indent property, use SerializerConfig instead
Fixed SchemaMapper assigning wrong namespace for imported unqualified elements
Fixed AttributeTypeHandler to maintain occurs between any flattening
Fixed missing required field metadata property
Fixed nillable fields not being marked as optional
Fixed fields ordering during class reduce process (Codegen from xml/json)
Added support for xs:defaultOpenContent:appliesToEmpty attribute
Added ParserConfig class factory option #549
Added SerializerConfig option to ignore optional default attributes #555
Added warning on unexpected duplicate types #564
Added GeneratorConfig support for kw_only and slots for python >= 3.10
Added structure style namespace-clusters #573
Updated text fields default value to empty string and marked as required #570
Updated fields derived from xs:substitutionGroups to optional
Updated fields derived from xs:any to optional
Updated AttributeDefaultValueHandler to preserve acceptable default values
Updated AttributeDefaultValueHandler to mark as optional any xsi:type attribute
Updated xs:alternative handling to resemble xs:choice
Updated mixed content handler to group all elements under wildcard
Updated ElementMapper to detect nillable types
Updated DictMapper to generate list of xs:anySimpleType for empty list nodes
Updated the compatibility layer for dataclass style plugins
Updated namespaces structure style to convert namespaces similar to jaxb
http://www.w3.org/XML/1998/namespace to org.w3.XML.1998.namespaceUpdate binding process for nillable types and fields
Fixed docstrings backslash escaping #518
Fixed no args Dict annotation, raising an exception #494
Fixed no args Dict annotation, raising an exception #494
Fixed original name case not working for field names #498
Fixed element type resolution with duplicate name conflicts #503
Added handler to flatten bare inner classes
Added the ability for custom types to subclass named tuples
Added keyword meta in the reserved words #491
Added new xml type Ignore to skip fields during binding
#504
Updated generic model DerivedElement.substituted flag with xsi:type
Updated core components to improve binding performance
Updated JSON parser #495
Moved Definitive XML Schema tests to the samples repository
Added output structure style single-package #469
Split requirements to extras cli, soap and lxml #419
--wsdl--compound-fields to a boolean flagAdded constant name convention config #407
Notice: In the next release installation profiles will be introduced that will turn the cli, lxml and soap features optional.
Added class name context for user naming schemes #348
This is a sleeper release ✨✨✨ so many code generation improvements and finally the JSON binding is aligned with XML.
Fixed XmlWriter converting attribute keys to QName. #346
Added SerializerConfig with new options. #268, #320
Catch all type errors on xsi cache build #316
Added sub command to download remote schemas and definitions. #279
Elements to maintain ordering for repeatable choices.
#296Fixed generator adding multiple default value fields. #249
This is my favorite release so far, maybe because xsdata reached one year of development ✨✨✨ or maybe because some of the last original components finally got the rewrite they deserved.
Added field metadata key tokens for xs:list or xs:NMTOKENS derived elements.
tokens for xs:list or xs:NMTOKENS derived elements.Added codegen support for WSDL 1.1 and SOAP 1.1 bindings.
--ns-struct to group classes by target namespaces.
#206Updated analyzer to allow abstract types to be generated. #199
Updated XmlSerializer to render default namespace whenever possible.
Added version option in the xsdata cli.
Fix flattening enumeration unions.
Nothing published for this version
Added support to fetch remote schemas.
Updated codegen cli to accept multiple definitions or directories as argument.
Added support for abstract xsi:types in XmlParser.
Fixed open content attribute with mode suffix to be generated last.
Added support for sequential fields.
Added copies of common schemas xlink, xsi, xml.
Added support xs:any and xs:anyAttribute elements.
Your coding agent can read these notes before it upgrades. Set up the MCP server →