NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1423 most downloaded on PyPI
An XML Schema validator and decoder
Last release 3 months ago
30 Jun 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
115 releases · first in 2017
Fix for issues #473 , #474 and #475
normalize_url() : workaround for issue #467 (UNC paths with Python < 3.12.5)
normalize_url(): workaround for issue #467 (UNC paths with Python < 3.12.5)One column per quarter.
Add arguments validation for schemas and validation methods (by validation contexts)
Add arguments validation for schemas and validation methods (by validation contexts)
SchemaSettings dataclass for storing read-only settings for schema instances
and for managing package default settingsXMLResource class (issue #464)1000, applied to XsdGlobals global maps instances)1,000,000, applied to non-lazy XMLResource instances)XMLResource instancesAdd XPath selectors: ElementSelector and ElementPathSelectors
Fix XSD identity update with xsi:type substitution (issue #446)
Extend support of lxml.etree through *iterparse* optional argument
lxml.etree through iterparse optional argumentXsdUnion validation performance issue (related to #442)Fix xs:all groups occurs check (issue #437)
Migrate project metadata to pyproject.toml by @afuetterer (PR #436)
Migrate project metadata to pyproject.toml (PR #436)
Fix static typing errors with mypy==1.15.0 and elementpath==4.8.0
Fix incorrect validation error for substitution group with abstract head (issue #417 )
Fix other failing URL normalization tests
Fix failing URL normalization tests (issue #416)
Extended ModelVisitor to make it usable as an helper class for generating content (issues #405 and #408)
Fix UNC path tests (issues #405 and #408)
Update validation errors with logging stack trace in debug mode
Update validation errors with logging stacktrace in debug mode
Improve locations parsing and URL encoding
Rewrite the validation of openContent using InterleavedModelVisitor and SuffixedModelVisitor
Improve ModelVisitor and particle occurs checking
Add *download_schemas()* to package API
Add GData converter (issue #388/PR #391)
Add GData converter (issue #388/PR #391)
Fix typing protocols usage
Extend XSD annotations parsing (issue #366)
Use XPath subtree as fragment for xs:assert (issue #386)
Hotfix release for broken requirement
Namespace declarations processing modes through the option *xmlns_processing* for converters
XML declaration processing option xmlns_processing for converters
Decode/validate from XML document with dynamic schema load
XMLResource enhancement for a better XML resources processing
Improve lazy resources iteration removing preceding elements (thin_mode option)
Drop support for Python 3.7
Fix slowness of key selectors introduced by v2.5.0 (issue #378)
Fix identity keys tracking with additional full XPath checks on XML data
Improve schema export using XSD source encoding
Meta-schema elements and groups ignore xsi:type attributes (issue #350)
xsi:type attributes (issue #350)Improve sequence/all restriction checks for XSD 1.1
Wsdl11DocumentDetach content iteration methods from ModelVisitor
Fix mixed content extension with empty content (issue #337)
Fix mixed content extension without explicit mixed attribute (issue #334)
Refine string serialization of XML resources and data elements
Fix *schema_path* usage in XMLSchemaBase.iter_errors()
XMLSchemaBase.iter_errors()XMLSchemaBase validation APIAdd *to_etree()* to document API
Add *use_location_hints* argument to document API for giving the option of ignoring XSI schema locations hints
Add *keep_empty* and *element_hook* options to main iter_decode() method
iter_decode() methodBadgerFishConvertermaxOccurs==0 (issue #323)Fix XSD 1.1 assertions effective scope
Remove warnings during the build of the package using package_data specs in setup.py
process_namespaces=False and xsi:type in XML instanceDataElement.get(), restore DataElement.set() (issue #314)DataElementConverterRefactor XPath interface for the full XPath node implementation of _elementpath_ v3.0
BadgerFishConverter with mixed content (issue #315)get() and set() of DataElement (issue #314)Fix invalid element not detected with empty particle (issue #306)
Fix 'replace_existing' argument usage in XsdElement.get_binding method (issue #300)
XsdElement.get_binding method (issue #300)Protect converter calls in _iter_decode()/iter_encode()_
Protect converter calls in iter_decode()/iter_encode()
Extend XSD type matching for code generators (fallback to schema types with a local name)
Add localization for XSD parsing and validation related error messages
Add localization for validation related error messages
Add Italian translation
Add Russian partial translation (from PR #293)
Add 'nonlocal' option to *defuse* argument of XMLResource (also for schema classes)
XMLResource (also for schema classes)XMLResourceFix for global simple type naming (issue #278)
mypy==0.930 for static typing checksImprove error reporting for encoded data (issue #275)
Add iter_decode() to document level API
iter_decode() to document level APIXMLResource class adding usage of pathlib.Path objects
for source and base_url argumentsFix type annotation of XMLSchema source argument (issue #230)
XMLSchema source argument (issue #230)Near compliance with strict type annotations
Refactor XMLSchemaMeta deprecating BUILDERS attribute
Refactor XMLSchemaMeta deprecating BUILDER attribute
Extend type annotations to package API
Add static typing tests with checked mypy runs
Activate mypy checks for package
Make XSD annotations parsing lazy
get_annotation() method to multiple-facets classes (issue #255)Make XSD annotation parsing lazy
Add lazy annotations to schema instances
Add get_annotation() method to multiple-facets classes (issue #255)
Add testing config for Python 3.10 (Tox and CI)
Refactor normalize_url() using pathlib.PurePath
Fix for issue #245 (key/keyref with dynamic types)
Add multi-source initialization and *add_schema()* to schema class
XML data bindings and code generators are now considered stable
Fix ElementPathMixin to avoid conflicts when schema is used by an XPath 3 parser
Remove unnecessary bindings with schema proxy from ElementPathMixin to avoid conflicts when schema is used by an XPath 3 parser
Fix schema logger (issue #228)
Fix simple content restriction of xs:complexType
Add experimental XML data bindings with a DataBindingConverter
Optimize NamespaceView read-only mapping
Add experimental XML data bindings with a DataBindingConverter
Add experimental PythonGenerator for static codegen with Jinja2
Add DataElement class for creating objects with schema bindings
Your coding agent can read these notes before it upgrades. Set up the MCP server →