- Add iter_substitutes() to Xsd11Element to fix upa.xsd/upa2.xsd
tests with instances. Now for XsdElement the abstract substitutes
are simply ignored by iter_substitutes().
- Added XMLSchemaNamespaceError for namespace related errors
- version_check moved to schema class
- resolve_qname() now raises KeyError if namespace prefix is not found
- resolve_qname() now raises XMLSchemaNamespaceError if a namespace
is mapped with a prefix but is not loaded by an import
- Checked and improved 'built' properties for XSD components:
* Simple types, attributes and attribute group are now built
withoug cheching on base types.
* Don't check global subcomponents: the scope of built is to
assure that local parts are built.
- Split global maps checks from build phase:
* XsdGlobals._check_schema substituted by check() method with
two opional arguments. The new methos is useful also to check
global maps also after schema building.
- Added validator=None argument to parse_error() method
- Added custom is_matching() and match() for XsdElement
- Removed custom match() for XsdAnyElement and XsdAnyAttribute
- Added matched_element() to XsdAnyElement
- Added matched_element() to XsdElement as match() alias
- Removed iter_elements() from XsdGroup (do not iter substitutes)
- Removed iter_subelement() from ModelGroup (use iter_elements)
- Clean converter code on some element_encode() implementations
- Split decode()/encode() for components and for schemas
- Removed to_dict and to_etree for XSD components
- Updated fetch_schema_locations() to build XMLResource instance
- Added XMLResource.iterfind() for XPath iteration of a resource;
- Validator API refactored: remove path argument from iter_errors()
of components, add validate, is_valid, iter_errors to XMLSchema
class with additional arguments path and schema_path.
- Fix test case patterns.xml (now find also duplicated IDs)
- Added check on type matching of same elements
- Added XsdGroup.check_particles() for check Unique Particle Attribution
Constraint of schema
- Fixed group redefine (clear in any case when _parse begins)
- Fix XsdType.is_derived(other, derivation=None) when the 2nd argument
is provided (eg. 'extension')
- Fix XMLSchemaBase._import_namespaces(): set namespace='' in case of
no namespace and check that it's different from self.target_namespace.
- Refine iter_components for schemas: now filter the globals that
don't belong to the schema (same namespace but different schemas)
- Cleaned XsdGlobals.all_errors property