v3.3.0 (2024-04-17)
- Rewrite the validation of openContent using InterleavedModelVisitor and SuffixedModelVisitor
- Fix validation of XSD 1.1 'all' nested models
v3.2.1 (2024-04-07)
- 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)
- Add download_schemas() to package API (#387)
- Fix issue with facets on list types (#396)
v3.1.0 (2024-03-13)
- Add GData converter (issue #388/PR #391)
- Fix typing protocols usage
- Extend XSD annotations parsing (issue #366)
v3.0.2 (2024-02-18)
- Use XPath subtree as fragment for xs:assert (issue #386)
- Fix in XMLSchemaProxy definition and usage for providing a base-uri to schema nodes (issue #379)
- Module xpath.py splitted to a subpackage for including all the custom XPath 1.0/2.0 parsers and related classes to XPath
- Add support for Python 3.13 (pre-releases)
v3.0.1 (2024-01-09)
- 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)
- 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
v2.5.1 (2023-12-19)
- 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)
- Fix identity keys tracking with additional full XPath checks on XML data
- Rewrite schema exports using relative paths
v2.4.0 (2023-07-27)
- Improve schema export using XSD source encoding
- Add XML signature and encryption to local fallback schemas (issue #357)
v2.3.1 (2023-06-14)
- 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)
- Improve sequence/all restriction checks for XSD 1.1
- Add schema argument to Wsdl11Document
v2.2.3 (2023-04-14)
- Add support for Python 3.12
- Detach content iteration methods from ModelVisitor
v2.2.2 (2023-03-05)
- Fix mixed content extension with empty content (issue #337)
- Fix lru_cache() usage on global maps caching
v2.2.1 (2023-02-11)
- Fix mixed content extension without explicit mixed attribute (issue #334)
v2.2.0 (2023-02-06)
- 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
v2.1.1 (2022-10-01)
- Fix schema_path usage in XMLSchemaBase.iter_errors()
- Add allow_empty option to XMLSchemaBase validation API
v2.1.0 (2022-09-25)
- Add to_etree() to document API
- Improve generic encoding with wildcards
- Clean document API and schema decoding
v2.0.4 (2022-09-08)
- Add use_location_hints argument to document API for giving the option of ignoring XSI schema locations hints
- Fix import from locations hints with namespace mismatch (issue #324)
v2.0.3 (2022-08-25)
- Add keep_empty and element_hook options to main iter_decode() method
- Fix default namespace mapping in BadgerFishConverter
- Fix type restriction check if restricted particle has maxOccurs==0 (issue #323)
v2.0.2 (2022-08-12)
- Fix XSD 1.1 assertions effective scope
- Add support for Python 3.11
v2.0.1 (2022-07-21)
- Remove warnings during the build of the package using package_data specs in setup.py
- Fix decoding with process_namespaces=False and xsi:type in XML instance
- Refactor DataElement.get(), restore DataElement.set() (issue #314)
- Add map_attribute_names argument to DataElementConverter
v2.0.0 (2022-07-18)
- Refactor XPath interface for the full XPath node implementation of elementpath v3.0
- Fix BadgerFishConverter with mixed content (issue #315)
- Improve get() and set() of DataElement (issue #314)
v1.11.3 (2022-06-24)
- Fix invalid element not detected with empty particle (issue #306)
- Fix Sphinx warnings (issue #305)
v1.11.2 (2022-06-11)
- Fix 'replace_existing' argument usage in XsdElement.get_binding method (issue #300)
- Add Russian full translation (from PR #303 and #304)
v1.11.1 (2022-05-22)
- Protect converter calls in iter_decode()/iter_encode()
- Extend XSD type matching for code generators (fallback to schema types with a local name)
v1.11.0 (2022-05-14)
- Add localization for validation related error messages
- Add Italian translation
- Add Russian partial translation (from PR #293)
v1.10.0 (2022-03-07)
- Add 'nonlocal' option to defuse argument of XMLResource (also for schema classes)
- Add 'none' option to allow argument of XMLResource
- Fix too strict parsing on XSD annotations (issue #287)
- Drop support for Python 3.6
v1.9.2 (2021-12-23)
- Fix for global simple type naming (issue #278)
v1.9.1 (2021-12-08)
- Improve error reporting for encoded data (issue #275)
- Fix attribute duplicates in attribute group (issue #276)
- Add process_skipped optional argument to decoding/encoding
v1.9.0 (2021-11-30)
- Add iter_decode() to document level API
- Enhance XMLResource class adding usage of pathlib.Path objects for source and base_url arguments
- Fix for issue #273
v1.8.2 (2021-11-11)
- Fix for issues #266 and #268
- Fix type annotation of XMLSchema source argument (issue #230)
v1.8.1 (2021-10-20)
- Near compliance with strict type annotations
- Removed ModelGroup class, merged with XsdGroup
- Some optimizations and fixes from static analysis
v1.8.0 (2021-09-27)
- Refactor XMLSchemaMeta deprecating BUILDER attribute
- Extend type annotations to package API
- Add static typing tests with checked mypy runs
v1.7.1 (2021-09-03)
- Activate mypy checks for package
- Fix for issues #257 and #259
v1.7.0 (2021-08-02)
- Make XSD annotation parsing lazy
- Add lazy annotations to schema instances
- Add get_annotation() method to multiple-facets classes (issue #255)
v1.6.4 (2021-06-09)
- Add testing config for Python 3.10 (Tox and CI)
- Fix internal _PurePath class with Python 3.10 (issue #251)
- Remove redundant xmlns="" declaration when encoding with lxml (issue #252)
v1.6.3 (2021-06-07)
- Refactor normalize_url() using pathlib.PurePath
- Support UNC paths (issue #246)
- Fix API docs (issue #248)
v1.6.2 (2021-05-03)
- Fix for issue #245 (key/keyref with dynamic types)
- Change default decoding of mixed content with only text to a string instead of a dictionary (issue #242)
v1.6.1 (2021-04-11)
- Add multi-source initialization and add_schema() to schema class
- Add bytes strings to accepted XML sources (issue #238)
v1.6.0 (2021-04-06)
- XML data bindings and code generators are now considered stable
- Add arguments 'max_depth' and 'extra_validator' to validation methods
- Enhance decoding with 'value_hook' argument
v1.5.3 (2021-03-14)
- 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)
v1.5.2 (2021-03-04)
- Improve empty content checking
- Fix simple content restriction of xs:complexType
- Fix facets retrieving for xs:complexType with simple content
v1.5.1 (2021-02-11)
- Optimize NamespaceView read-only mapping
- Add experimental XML data bindings with a DataBindingConverter
- Add experimental PythonGenerator for static codegen with Jinja2
v1.5.0 (2021-02-05)
- Add DataElement class for creating objects with schema bindings
- Add DataElementConverter for decode to structured objects
- Add an experimental abstract base class for building jinja2 based code generators (jinja2 as an optional dependency)
v1.4.2 (2021-01-24)
- Add decoding of binary datatypes (xs:hexBinary and xs:base64Binary)
- Fix encoding from string values for some builtin datatypes (decimal, binary, duration and datetime)
v1.4.1 (2020-12-24)
- Include the pull request #220 (fix xml.etree import)
- Additional tests for schema components
v1.4.0 (2020-12-23)
- Fix for issues #213, #214, #215 and #218
- Code cleaning and optimizations on schema components
- Reducing and grouping helper functions
v1.3.1 (2020-11-10)
- Apply patches for packaging (issue #210)
v1.3.0 (2020-11-09)
- Drop support for Python 3.5
- Add XmlDocument and Wsdl11Document classes
- Refactoring of XMLResource to support ElementTree-like XPath API on both full and lazy modes
v1.2.5 (2020-09-26)
- 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
v1.2.4 (2020-09-13)
- Use the regex engine of elementpath library
- Fix and extend tests on xs:assert
v1.2.3 (2020-08-14)
- 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
v1.2.2 (2020-06-15)
- Fix XPath context for schema nodes
- Fix XPath parser and context for identities
v1.2.1 (2020-06-12)
- 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
v1.2.0 (2020-05-28)
- 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
v1.1.3 (2020-04-28)
- Clean component parsing
- Fix namespace loading for chameleon schemas
- Fix UPA checks with nested choice/all models
- Fixed issues #182 and #183
v1.1.2 (2020-03-22)
- Extension of validation tests with XMLSchema11 validator
- Fixed several bugs
- Extended testing with Travis CI
v1.1.1 (2020-02-19)
- 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)
v1.1.0 (2020-01-23)
- Removed Python 2 compatibility code
- Removed tests code from binary package
- Improved identity constraints validation
- Added JSON lazy decoding as experimental feature
v1.0.18 (2019-12-24)
- 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
v1.0.17 (2019-12-22)
- Enhancement of validation-only speed (~15%)
- Added is_valid() and iter_errors() to module API
v1.0.16 (2019-11-18)
- 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
v1.0.15 (2019-10-13)
- 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)
v1.0.14 (2019-08-27)
- 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
v1.0.13 (2019-06-19)
- 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
v1.0.11 (2019-05-05)
- 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
v1.0.10 (2019-02-25)
- Fixed Element type mismatch issue when apply SafeXMLParser to schema resources
- More XSD 1.1 features implemented (open content and versioning namespace are missing)
v1.0.9 (2019-02-03)
- Programmatic import of ElementTree for avoid module mismatches
- Cleaning and refactoring of test scripts
v1.0.8 (2019-01-30)
- 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
v1.0.7 (2018-11-15)
- 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)
v1.0.6 (2018-10-21)
- Fixes for issues #85 and #86
- XSD 1.1 development: added explicitTimezone facet and XSD 1.1 builtin types
v1.0.5 (2018-09-27)
- Fix for issue #82 and for similar unprotected XSD component lookups
- Added checks for namespace mapping of encoded trees and error messages
v1.0.4 (2018-09-22)
- 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
v1.0.3 (2018-08-26)
- 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
v1.0.2 (2018-07-26)
- Improved ElementTree and XPath API
v1.0.1 (2018-07-14)
- 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
v0.9.31 (2018-06-24)
- Schema serialization with pickle for Python 3 (enhancement related to issue #68)
- Data encoding with the default converter
- Improved decoding for xs:union
v0.9.30 (2018-06-06)
- First experimental version of data encoding with the default converter
- Fixes for issues #65, #66 and #67
v0.9.29 (2018-06-03)
- Extended the tests on lxml XML data
- Fixes for issues #61, #63 and #64
v0.9.28 (2018-05-18)
- Encoding of XSD builtin types (strings and numerical)
- Fix for issue #62
- Drop support for Python 3.3
v0.9.27 (2018-05-08)
- 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
v0.9.26 (2018-04-12)
- Added checks for model restrictions
v0.9.25 (2018-04-05)
- Removed XsdAnnotated class
- Added XsdType class as common class for XSD types
- Fixes for issues #55 and #56
v0.9.24 (2018-04-03)
- 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)
v0.9.23 (2018-03-10)
- 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()
v0.9.21 (2018-02-15)
- Fixes 'final' derivation attribute for complexType
- Decoupling of the XPath module from XsdComponent API
- Fix for issue #41
v0.9.20 (2018-01-22)
- 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
v0.9.18 (2018-01-12)
- 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
v0.9.17 (2017-12-28)
- Key/Unique/Keyref constraints partially rewritten
- Fixed ad issue with UCS-2/4 and maxunicode
v0.9.16 (2017-12-23)
- UnicodeSubset class rewritten (more speed, less memory)
- Updated unicode_categories.json to Python 3.6 unicodedata
- Added XMLSchemaChildrenValidationError exception
v0.9.15 (2017-12-15)
- Some bug fixes
- Code cleaning
- XSD components modules has been merged with schema's modules into 'validators' subpackage
v0.9.14 (2017-11-23)
- Improved test scripts with a SchemaObserver class and test line arguments
- Full support for date and time XSD builtin types
v0.9.12 (2017-09-14)
- Added identity constraints
- Some bug fix
v0.9.10 (2017-07-08)
- 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
v0.9.9 (2017-06-12)
- Added converters for decode/encode data with different conventions
- Modifications on iter_decode() arguments in order to use converters
v0.9.8 (2017-05-27)
- Added notations and substitution groups
- Created a subpackage for XSD components
v0.9.7 (2017-05-21)
- Documentation extended and tested
- Improved tests for XPath, validation and decoding
- Added an XPath parser
- Added iterfind(), find() and findall() APIs for searching XSD element declarations using XPath