NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1626 most downloaded on PyPI
An XML Schema validator and decoder
Last release 2 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
Add decoding of binary datatypes (xs:hexBinary and xs:base64Binary)
Add decoding of binary datatypes (xs:hexBinary and xs:base64Binary)
Fix encoding from string values for some builtin datatypes (decimal, binary, duration and datetime)
Includes PR #220 to align the import of _xml.etree.ElementTree_ with _xml.etree_ parent module, both with C optimized module.
One column per quarter.
Include the pull request #220 (fix xml.etree import)
Additional tests for schema components
Fix for issues #213, #214, #215 and #218
Fix for issues #213, #214, #215 and #218
Code cleaning and optimizations on schema components
Reducing and grouping helper functions
### Hotfix release for packaging (issue #210)
Add XmlDocument and Wsdl11Document classes
Add schema export API to schema and global maps (issue #187)
Add schema export API to schema and global maps (issue #187)
Fix decoding with lax/skip validation modes (issue #204)
Add keep_unknown optional argument for iter_decode() methods
The internal XML regular expressions parser has been moved to XPath package *elementpath* (v2.0.2+). From this release the regex patterns are parsed t
The internal XML regular expressions parser has been moved to XPath package elementpath (v2.0.2+).
From this release the regex patterns are parsed through elementpath's API translate_pattern().
Use the regex engine of elementpath library
Fix and extend tests on xs:assert
All W3C tests now run successful. Only W3C tests for unavailable features (XML 1.1) or unimplemented features (dynamic schema load) are still failing.
All W3C tests now run successful. Only W3C tests for unavailable features (XML 1.1) or unimplemented features (dynamic schema load) are still failing. This release requires elementpath v2.0.x.
Full coverage of W3C tests (excluding ones for unavailable or unimplemented features)
Update and restrict elementpath dependency to v2.0.x
Fix check and iteration of empty model group
Fix substitution group iteration for local elements
Fix XPath context for schema nodes
Fix XPath context for schema nodes
Fix XPath parser and context for identities
Fix content type classification (issue #195)
Fix content type classification (issue #195)
Make sandbox mode more explicit (PR #191)
Allow alphanumeric prefixes for the base converter
Fix XPath issues with default namespace
Fix W3C tests on XSD identities
Add command-line interface utility for document API
Add ColumnarConverter class
Add command-line interface utility for document API
Fix a stable public API for XSD types, elements and attributes
Add security modes for accessing URLs
Fix namespace loading for chameleon schemas
Clean component parsing
Fix namespace loading for chameleon schemas
Fix UPA checks with nested choice/all models
Fixed issues #182 and #183
Extension of validation tests with *XMLSchema11* validator
Extension of validation tests with XMLSchema11 validator
Fixed several bugs
Extended testing with Travis CI
Change of *skip* validation mode with errors filtering in decode() or encode()
Change of skip validation mode with errors filtering in decode() or encode()
Extension of location hints by argument to imported/included schemas
Fixed lazy validation with identity constraints
Fixed many W3C instance tests (remain ~100 over 15344 tests)
First Python 3-only release. Unlike the announcements the XMLSchema10 has been kept as default validator for avoiding compatibility problems. It's onl
First Python 3-only release. Unlike the announcements the XMLSchema10 has been kept as default validator for avoiding compatibility problems. It's only a matter of names. For XSD 1.1 still use the class XMLSchema11.
Removed Python 2 compatibility code
Removed tests code from binary package
Improved identity constraints validation
Added JSON lazy decoding as experimental feature
Next release (v1.1.0) will be Python 3.5+ only.
Next release (v1.1.0) will be Python 3.5+ only.
Fix for ModelVisitor.iter_unordered_content()
Fixed default converter, AbderaConverter and JsonMLConverter for xs:anyType decode
Fixed validation tests with all converters
Added UnorderedConverter to validation tests
Enhancement of validation-only speed (~15%)
Enhancement of validation-only speed (~15%)
Added is_valid() and iter_errors() to module API
Improved XMLResource class for working with compressed files
Improved XMLResource class for working with compressed files
Fix for validation with XSD wildcards and 'lax' process content
Fix ambiguous items validation for xs:choice and xs:sequence models
Added logging for schema initialization and building (handled with argument *loglevel*)
Improved XPath 2.0 bindings
Added logging for schema initialization and building (handled with argument loglevel)
Update encoding of collapsed contents with a new model based reordering method
Removed XLink namespace from meta-schema (loaded from a fallback location like XHTML)
Fixed half of failed W3C instance tests (remain 255 over 15344 tests)
This is the first release with XSD 1.1 support. XSD 1.0/1.1 are tested with W3C XSD 1.1 suite (almost 100% of tests passed). XML validation is also te
This is the first release with XSD 1.1 support. XSD 1.0/1.1 are tested with W3C XSD 1.1 suite (almost 100% of tests passed). XML validation is also tested with W3C suite (~97% of tests passed).
Added XSD 1.1 validator with class XMLSchema11
Memory usage optimization with lazy build of the XSD 1.0 and 1.1 meta-schemas
Added facilities for the encoding of unordered and collapsed content
Fix path normalization and tests for Windows platform
Fix path normalization and tests for Windows platform
Added XML resource validation in lazy mode (experimental feature)
Added arguments filler and fill_missing to XSD decode/encode methods
Added arguments preserve_root, strip_namespaces, force_dict and force_list to XMLSchemaConverter
Added code coverage and pep8 testing
Drop support for Python 3.4
Added a script for running the W3C XSD test suite.
Added a script for running the W3C XSD test suite.
Check restrictions and model groups UPA violations
Model groups splitted between two modules for more focusing on models basics
Added two new exceptions for model group errors
More control on imported namespaces
Added use_meta argument to schema classes
Added includes list and imports dict to schema classes
Many fixes for passing the W3C's tests for XSD 1.0 schemas
Added a test for issue #105 and a fix for issue #103
Fixed Element type mismatch issue when apply *SafeXMLParser* to schema resources
Fixed Element type mismatch issue when apply SafeXMLParser to schema resources
More XSD 1.1 features implemented (open content and versioning namespace are missing)
Programmatic import of ElementTree for avoid module mismatches
Programmatic import of ElementTree for avoid module mismatches
Cleaning and refactoring of test scripts
Dependency *defusedxml* package replaced by a custom XMLParser for ElementTree
Dependency defusedxml package replaced by a custom XMLParser for ElementTree
Optional decoding of XSD date/time/duration builtin types
Fixes for issues #93, #96, #97 and #99
Merged with PR #89 (simpleType restriction annotation parsing)
Fixes for issues #87 and #88
Merged with PR #89 (simpleType restriction annotation parsing)
XSD 1.1 development: added assertion facet (still to be completed)
XSD 1.1 development: added explicitTimezone facet and XSD 1.1 builtin types
Fixes for issues #85 and #86
XSD 1.1 development: added explicitTimezone facet and XSD 1.1 builtin types
Fix for issue #82 and for similar unprotected XSD component lookups
Fix for issue #82 and for similar unprotected XSD component lookups
Added checks for namespace mapping of encoded trees and error messages
Unification of XSD group decode and encode methods
Unification of XSD group decode and encode methods
Children validation error class improved
Fixes for issues #77, #79 and #80
Added test scripts for helpers and ElementTree
Improved model validation for XSD groups encoding
Improved model validation for XSD groups encoding
Added parent reference to XSD components
Extended validator errors classes
Optimized error generation using helper methods
Improved particle parsing
Improved ElementTree and XPath API
Improved ElementTree and XPath API
Improved converters with decoding/encoding of namespace information
Validated data encoding to XML
Improved converters with decoding/encoding of namespace information
Added helper functions for encoding and decoding to JSON
Added XMLResource class for managing access to XML data sources
Added warnings for failed schema includes and namespace imports
Schema serialization with pickle for Python 3 (enhancement related to issue #68)
Schema serialization with pickle for Python 3 (enhancement related to issue #68)
Data encoding with the default converter
Improved decoding for xs:union
First experimental version of data encoding with the default converter
First experimental version of data encoding with the default converter
Fixes for issues #65, #66 and #67
Extended the tests on lxml XML data
Extended the tests on lxml XML data
Fixes for issues #61, #63 and #64
Encoding of XSD builtin types (strings and numerical)
Encoding of XSD builtin types (strings and numerical)
Fix for issue #62
Drop support for Python 3.3
Add support for preventing XML attacks with the use of the *defusedxml* package (added *defuse* argument to schemas)
Add support for preventing XML attacks with the use of the defusedxml package (added defuse argument to schemas)
Fix for group circularity (issue #58)
Fix for billion laughs attacks using XSD groups expansion
Added checks for model restrictions
Added checks for model restrictions
Added XsdType class as common class for XSD types
Removed XsdAnnotated class
Added XsdType class as common class for XSD types
Fixes for issues #55 and #56
Added XPath 1.0/2.0 full parsing with the derived *elementpath* package
Added XPath 1.0/2.0 full parsing with the derived elementpath package
Fixes for issues #52 and #54
Test package improved (tox.ini, other checks with test_package.py)
Added kwargs to *iter_decode()*, *dict_class* and *list_class* arguments have been removed
Fixes for issues #45, #46, #51
Added kwargs to iter_decode(), dict_class and list_class arguments have been removed
Added kwargs to converters initialization in order to push variable keyword arguments from iter_decode()
Nothing published for this version
Added *fetch_schema_locations* function to API
Substitution groups support
Added fetch_schema_locations function to API
Added locations argument to fetch_schema, validate and to_dict API functions
A more useful __repr__ for XSD component classes
Fixes for issues #35, #38, #39
Fixed issue #34 (min_occurs == 0 check in XsdGroup.is_emptiable)
Fixed issue #34 (min_occurs == 0 check in XsdGroup.is_emptiable)
Updated copyright information
Updated schema class creation (now use a metaclass)
Added index and expected attributes to XMLSchemaChildrenValidationError
Added locations optional argument to XMLSchema class
Key/Unique/Keyref constraints partially rewritten
Key/Unique/Keyref constraints partially rewritten
Fixed ad issue with UCS-2/4 and maxunicode
UnicodeSubset class rewritten (more speed, less memory)
UnicodeSubset class rewritten (more speed, less memory)
Updated unicode_categories.json to Python 3.6 unicodedata
Added XMLSchemaChildrenValidationError exception
XSD components modules has been merged with schema's modules into 'validators' subpackage
Some bug fixes
Code cleaning
XSD components modules has been merged with schema's modules into 'validators' subpackage
Improved test scripts with a *SchemaObserver* class and test line arguments
Improved test scripts with a SchemaObserver class and test line arguments
Full support for date and time XSD builtin types
Nothing published for this version
* Added identity constraints * Some bug fix
Added identity constraints
Some bug fix
Nothing published for this version
Factories code moved to XsdComponent subclasses for simplify parsing and debugging
Factories code moved to XsdComponent subclasses for simplify parsing and debugging
All XSD components built from ElementTree elements with a lazy approach
Implementation of the XSD validation modes ('strict'/'lax'/'skip') both for validating schemas and for validating/decoding XML files
Defined an XsdBaseComponent class as the common base class for all XSD components, schemas and global maps
Defined a ValidatorMixin for sharing a common API between validators/decoders classes
Added built and validity checks for all XSD components
Added converters for decode/encode data with different conventions
Added converters for decode/encode data with different conventions
Modifications on iter_decode() arguments in order to use converters
Added notations and substitution groups
Added notations and substitution groups
Created a subpackage for XSD components
Documentation extended and tested
Documentation extended and tested
Improved tests for XPath, validation and decoding
Your coding agent can read these notes before it upgrades. Set up the MCP server →