sissaschool/xmlschema
XML Schema validator and data conversion library for Python
30 Releases
Latest: 5mo ago
v4.3.1 (2026-01-17)v4.3.1Latest
📋 Changes
- `normalize_url()`: workaround for issue #467 (UNC paths with Python < 3.12.5)
- META_SCHEMA and BASE_SCHEMA paths converted to 'file' URL scheme
- Clean optional dependencies
v4.3.0 (2026-01-06)v4.3.0
📋 Changes
- Add arguments validation for schemas and validation methods (by validation contexts)
- Add custom XPath parser for find/findall/iterfind APIs on schemas for match
- Improve build of XSD elements and groups, using a three-state built flag for
- Extend and fix memory tests (Python 3.14+ seems to consume more memory)
- Drop support for Python 3.9 and add development support for Python 3.15
v4.2.0 (2025-10-14)v4.2.0
📋 Changes
- Add arguments validation for schemas and validation methods (by validation contexts)
- Add `SchemaSettings` dataclass for storing read-only settings for schema instances
- Add *block* argument to `XMLResource` class (issue #464)
- Add *MAX_SCHEMA_SOURCES* package limit (`1000`, applied to `XsdGlobals` global maps instances)
- Add *MAX_XML_ELEMENTS* package limit (`1,000,000`, applied to non-lazy `XMLResource` instances)
- Reduce *MAX_XML_DEPTH* limit to 1000 and apply it to all `XMLResource` instances
- Fix for substitute match in case of unexpected child (issue #461)
v4.1.0 (2025-06-05)v4.1.0
📋 Changes
- Add XPath selectors: ElementSelector and ElementPathSelectors
- Add *selector* argument to XMLResource and iterparse filters
- Fix element substitution (issue #452)
- Restore v3.4.5 builder methods as helpers (issue #451)
- Add overall_min_occurs and overall_max_occurs helpers to XsdElement (issue #449)
- Extend error message for XML syntax errors (issue #448)
- Fix query/fragment like for filenames (issue #447)
v4.0.1 (2025-04-13)v4.0.1
📋 Changes
- Fix XSD identity update with xsi:type substitution (issue #446)
v4.0.0 (2025-04-11)v4.0.0
📋 Changes
- Extend support of `lxml.etree` through *iterparse* optional argument
- Rework internal decoding/encoding methods, replacing generators with normal functions
- Replace kwargs with a validation context (DecodeContext and EncodeContext)
- Add SchemaLoader class and variants (related to #419)
- Slicing of XsdGlobals with parent maps
- Fix `XsdUnion` validation performance issue (related to #442)
- Drop support for Python 3.8
v3.4.5 (2025-03-22)v3.4.5
📋 Changes
- Fix xs:all groups occurs check (issue #437)
v3.4.4 (2025-03-18)v3.4.4
📋 Changes
- Migrate project metadata to pyproject.toml by @afuetterer (PR #436)
- Fix static typing errors with mypy==1.15.0 and elementpath==4.8.0
v3.4.3 (2024-10-31)v3.4.3
📋 Changes
- Fix incorrect validation error for substitution group with abstract head (issue #417)
- Refactor XSD identities processing using also typed XPath 2.0+ for getting values (issue #418)
- Clean tag retrieval during encode for some converter types (Abdera, BadgerFish and GData)
v3.4.2 (2024-09-17)v3.4.2
📋 Changes
- Fix other failing URL normalization tests
- Avoid the use of sys.version_info for checking results, better to extend the check to more values.
v3.4.1 (2024-09-12)v3.4.1
📋 Changes
- Fix failing URL normalization tests (issue #416)
- Disable protocols checking with elementpath v4.5.0
v3.4.0 (2024-09-10)v3.4.0
📋 Changes
- Extended ModelVisitor to make it usable as an helper class for generating content
v3.3.2 (2024-07-29)v3.3.2
📋 Changes
- Fix UNC path tests (issues #405 and #408)
v3.3.1 (2024-04-27)v3.3.1
📋 Changes
- Update validation errors with logging stack trace in debug mode
- Improve locations parsing and URL encoding
v3.3.0 (2024-04-17)v3.3.0
📋 Changes
- Rewrite the validation of openContent using InterleavedModelVisitor and SuffixedModelVisitor
- Fix validation of XSD 1.1 'all' nested models
v3.2.1 (2024-04-07)v3.2.1
📋 Changes
- Improve ModelVisitor and particle occurs checking
- Fix interleave mode with XSD 1.1 open content (issue #397)
- Fix for export/download of XSD sources with commented-out imports/include (issue #387)
v3.2.0 (2024-03-25)v3.2.0
📋 Changes
- Add *download_schemas()* to package API (#387)
- Fix issue with facets on list types (#396)
v3.1.0 (2024-03-13)v3.1.0
📋 Changes
- Add GData converter (issue #388/PR #391)
- Fix static typing protocols usage
- Extend XSD annotations parsing (issue #366)
v3.0.2 (2024-02-18)v3.0.2
📋 Changes
- Use XPath subtree as fragment for xs:assert (issue #386)
- Fix in XMLSchemaProxy definition and usage for providing
- Module xpath.py splitted to a subpackage for including all the
- Add support for Python 3.13 (pre-releases)
v3.0.1 (2024-01-09)v3.0.1
📋 Changes
- Hotfix release for broken requirement
- Set python-requires metadata to >=3.8 (pull request #382)
- Upgrade GitHub Actions (pull request #381)
v3.0.0 (2024-01-07)v3.0.0
📦 WARNING: this release has been yanked in PyPI due to a broken requirement, use [v3.0.1](https://github.com/sissaschool/xmlschema/tree/v3.0.1).
- Namespace declarations processing modes through the option *xmlns_processing* for converters
- Decode/validate from XML document with dynamic schema load
- XMLResource class enhancement for a better XML resources processing
- Improve lazy resources iteration removing preceding elements (*thin_mode* option)
- Add *uri_mapper* option for using relocated or URN-addressed schemas
- Drop support for Python 3.7
v2.5.1 (2023-12-19)v2.5.1
📋 Changes
- Fix slowness of key selectors introduced by v2.5.0 (issue #378)
- Remove redundant wheel dep from _pyproject.toml_ and unnecessary build deps from _tox.ini_ (PR #368)
v2.5.0 (2023-09-21)v2.5.0
📋 Changes
- Fix identity keys tracking with additional full XPath checks on XML data
- Rewrite schema exports using relative paths
v2.4.0 (2023-07-27)v2.4.0
📋 Changes
- Improve schema export using XSD source encoding
- Add XML signature and encryption to local fallback schemas (issue #357)
v2.3.1 (2023-06-14)v2.3.1
📋 Changes
- Meta-schema elements and groups ignore `xsi:type` attributes (issue #350)
- Use the meta-schemas only for validating XSD sources otherwise create dummy schemas
v2.3.0 (2023-05-18)v2.3.0
📋 Changes
- Improve sequence/all restriction checks for XSD 1.1
- Add *schema* argument to `Wsdl11Document`
v2.2.3 (2023-04-14)v2.2.3
📋 Changes
- Add support for Python 3.12
- Detach content iteration methods from ModelVisitor
v2.2.2 (2023-03-05)v2.2.2
📋 Changes
- Fix mixed content extension with empty content (issue #337)
- Fix lru_cache() usage on global maps caching
v2.2.1 (2023-02-11)v2.2.1
📋 Changes
- Fix mixed content extension without explicit mixed attribute (issue #334)
v2.2.0 (2023-02-06)v2.2.0
📋 Changes
- Refine string serialization of XML resources and data elements
- Switch to use elementpath v4
- Fix _sequence_type_ property for XSD types
- Remove *XsdElement.get_attribute()*: unused and doesn't work as expected
