- union validation error location fixed.
- potential memory leak fixed. See #222.
- python 3.13 support added.
- multiple pydantic model validators bug fixed.
- custom field xml serializer/validator support added. See #212
- collection of tagged union deserialization bug fixed. See #206
- exclude_none and exclude_unset serialization flags support added. See #204.
- named tuple support added. See #172
- dynamic model creation support added. See https://pydantic-xml.readthedocs.io/en/latest/pages/misc.html#dynamic-model-creation
- mypy plugin dataclass_transform decorated model bug fixed. See #152 (comment).
- PEP-681 (Data Class Transforms) support added. See #178.
- pydantic 2.7 enum type support added. See #182
- pydantic 2.6 incompatibility fixed. See #167.
- union collection deserialization bug fixed. See #165.
- mypy plugin added. See https://pydantic-xml.readthedocs.io/en/latest/pages/misc.html#mypy.
- optional raw element bug fixed. See #158.
- validation errors provide the full path to the malformed field (including nested sub-models).
- error text contain the xml document source line where the error occurred (lxml parser only). See #150.
- nillable element support added. See #146.
- adjacent sub-elements support added. See #143.
- attributes with default namespace bug fixed. See #137.
- bool type encoding format changed from 'True' to 'true'. See #126.
- None type encoding format changed from 'None' to ''.
- root model default value bug fixed.
- python 3.12 support added.
- raw element missing tail bug fixed. See #118.
- model validator 'before' mode support added.
- model level skip_empty parameter added.
- wrapped element extra entities checking bugs fixed.
- pydantic extra='forbid' parameter is being applied to xml elements too. See #106.
- raw element typed fields support added. See #14.
- pydantic field exclude flag bug fixed (works only for serialization now).
- library upgraded to pydantic version 2. See https://docs.pydantic.dev/2.0/migration/
- generic models are no longer inherited from BaseGenericXmlModel but from BaseXmlModel.
- custom root type declaration has been changed. It must inherit RootXmlModel from now on.
- encoding customization api has been changed. See https://pydantic-xml.readthedocs.io/en/v2.0.0/pages/misc.html#encoding
- element attributes can be bound to TypedDict. See https://pydantic-xml.readthedocs.io/en/v2.0.0/pages/data-binding/mappings.html#typed-dict
- tagged unions support added. See https://pydantic-xml.readthedocs.io/en/v2.0.0/pages/data-binding/unions.html#discriminated-unions
- computed entities support added. See https://pydantic-xml.readthedocs.io/en/v2.0.0/pages/misc.html#computed-entities
- decimal type support added.
- unparameterized root models serializer generation bug fixed. Affected by pydantic/pydantic#7119.
- XmlModelMeta accepts ModelMetaclass directly. See #90.
- tagged unions support added.
- pydantic validation context support added.
- library upgraded to pydantic version 2. See https://docs.pydantic.dev/2.0/migration/
- library api stabilized
- custom root type serialization format changed.
- from_xml, from_xml_tree methods return type bound to cls type. This resolves the problem with mypy checker. See #65
- wrapped sub-elements serialization bug fixed. See #70
- forward refs support added. See #61
- piped union typehints support added. See #56
- model parameters inheritance bug fixed. See #51
- union types support added
- xml model encoding api unified with pydantic json encoding api
- root model validation raises exception instead of returning None
- xml model params inheritance implemented
- multiple element search strategies implemented
- ipaddress objects serialization support added
- py.typed file added
- distutils dependency removed
- default namespace redefinition during serialization fixed (for lxml only). See #27.
- field default parameter support added.
- field default_factory parameter support added.
- root model validation added.
- pydantic field alias support implemented.
- recursive (self-referencing) models support added.
- inherit_ns flag dropped due to recursive models implementation details.
- attribute default namespace bug fixed.
- default namespace support added.
- generic models support
- namespace inheritance bug fixed.
- Initial release