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