- Add custom parser for assertion facet (without position() and last()).
- Move parser initialization to XsdAssert.parse_xpath_test() because
all the components must be defined.
- Rename XMLSchemaTestCase to XsdValidatorTestCase
- Add casepath() helper
- Modify TestResources: derive from TestCase and use casepath()
- Split test_package.py into 3 modules (added test_etree.py and
test_memory.py)
- Update .tox with new environments 'package' and 'memory'
- Replace test_package with test_etree into test_all.py script
- Modify XsdValidatorTestCase.check_schema() to use xs prefix for
XSD namespace and no namespace as targetNamespace for a fast
reuse of common and user sample cases
- The XPath pipe operator is parsed by the 'elementpath' package
- Configured tox.ini using the test_all.py as command
- Removed exception class XMLSchemaXPathError
- Local elements and attributes with form == 'unqualified' now
have an unqualified name.
- Attribute groups include both qualified and unqualified lookups
for unqualified attributes.
Module to constraints.py:
- XPathSelector renamed to XsdSelector
- Created a XsdFieldSelector subclass for parsing xs:field definitions
- Added an XsdSelectorXPathParser created by xpath builder function
Module xpath.py:
- Created 2 full lists for XPath1 and XPath2 (to complete)
- Created the XPathSelector class
Test cases refactoring:
- now the base dir is tests/cases/
- test cases grouped into examples/, features/ and issues/ subdirs
- added --extra argument to test scripts that use extra cases
- add setUpClass() method to test classes
- XMLSchemaTestCase class removed
- common test definitions are now in xmlschema/tests/__init__.py
- xmlschema/tests/_test_common.py deleted
* new file: xmlschema/components/constraints.py
* parsed xs:unique, xs:key and xs:keyref and subcomponents
* added '|' as reference delimiter in xpath.py tokenizer
* improved XPathParser to check operator: the base class
admits all operators, subclasses can restricts overriding
NOT_ALLOWED_OPERATORS class attribute.
* Added ElementData namedtuple to represent Element
decoded or encoded data.
* Fixed a bug in qname.reference_to_qname() that mapped
every local name to target namespace.
* Documentation extended
* Docuemtation examples now are tested with doctest
* Improved tests for XPath, validation and decoding
* The collection.xsd example schema has been extended
* Removed the exception XMLSchemaBaseValidatorError
* Now XMLSchemaValidationError is the parent class of
decode/encode exceptions
* Added test files for decoder (examples/decoder/*);
* Added a variant of test schema vehicles.xsd (examples/vehicles/vehicles2.xsd);
* Added XPath filter predicates;
* Fixed empty dict decoding to None (issue #4).