Commit Graph

87 Commits

Author SHA1 Message Date
Davide Brunato d89a597c82 Update documentation and fix PEP8 errors 2019-10-11 13:44:10 +02:00
Davide Brunato 75664150e6 Improve XPath bindings
- Extend ElementPathMixin with instance _xpath_parser
  - Add xpath_tokens dictionary to schema objects
  - Fix serialization removing xpath_tokens classes
2019-10-09 15:03:50 +02:00
Davide Brunato b7b6fef418 Base modules refactoring for fix ElementTree import 2019-10-07 15:31:18 +02:00
Davide Brunato 8d56d128ca Add XSD 1.1 inheritable check on XML instance validation
- Add substitutes to dynamic checks
2019-09-23 09:26:31 +02:00
Davide Brunato a95dfe26fe Add is_list() to XsdSimpleType and fix xs:QName length facets 2019-09-19 19:00:05 +02:00
Davide Brunato 0480e4bee8 Add is_override() to XsdComponent for XSD 1.1 schemas
- Change is_global() from property to function
2019-09-19 06:37:42 +02:00
Davide Brunato e4d9941eb3 Fix wildcard restriction checking in case of notQName 2019-09-18 10:52:48 +02:00
Davide Brunato 7b696fbabb Fix wildcard union and add tests for wildcard intersection 2019-09-18 09:41:01 +02:00
Davide Brunato 590c7e6c41 Add intersection() to XsdWildcard
- Renamed XsdWildcard.extend() to union()
2019-09-17 16:37:16 +02:00
Davide Brunato 07070ad714 Fix W3C instance tests
- 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().
2019-09-11 18:43:13 +02:00
Davide Brunato c530fda102 Fix openContent validation ad regex character group parsing
- Put interleave mode after model match for precedence
  - Fix regex parsing of character group ending with '-'
  - Fix complexType mixed content extension
2019-09-06 06:42:34 +02:00
Davide Brunato 4f5c819d0f Fix XSD 1.1 wildcard matching
- Add option occurs to is_matching() method
  - Create a custom match() method with additional option resolve
  - Replace matched_element() with match(name, resolve=True)
2019-09-05 07:06:48 +02:00
Davide Brunato 33b6db54e9 Refactoring of ModelVisitor and Xsd11AnyElement
- Modify ModelVisitor for using XSD 1.1 xs:all groups
  - Remove inverted list from _subgroups item
  - Use occurs to store sum of xs:all items
  - Add precedences to Xsd11AnyElement for managing cases of
    overlapping wildcard (overlap with an adjacent element
    that also matches an item).
2019-09-04 10:53:59 +02:00
Davide Brunato f5afa915fc Expand model tests with XMLSchema11 class 2019-08-31 07:22:44 +02:00
Davide Brunato 747036aad4 Fix for issue #127 and other W3C XML tests
- Added data_value() method to XsdElement and XsdAttribute()
  - Rename identity constraints dictionaries to 'identities'
  - Fix XSD 1.1 wilcards
2019-08-25 22:51:00 +02:00
Davide Brunato 6c47e49971 Fixing W3C XSD 1.1 schema tests
- Add XSD 1.1 skip list in W3C test script
  - Regex: check unescaped double hyphens (--)
  - Check model extension allowed types
2019-08-23 08:48:02 +02:00
Davide Brunato b394c44933 Improve Element Declarations Consistent constraint checking 2019-08-20 22:17:19 +02:00
Davide Brunato 9e58e99e01 Add XSD 1.1 support and XSD components API to documentation 2019-08-19 13:52:30 +02:00
Davide Brunato 7a0dbf9afc Fix other XSD 1.1 parsing errors for wilcards 2019-08-17 09:36:24 +02:00
Davide Brunato 7ef629e6c3 Add xs:all restriction checking for XSD 1.1 2019-08-12 18:23:43 +02:00
Davide Brunato 9f7b09be7a Refactor XSD wilcards namespace parsing
- XsdWildcard.namespace transformed to a list
  - Replace ##local with '' and ##targetNamespace with target_namespace
2019-08-11 11:01:51 +02:00
Davide Brunato 3ff9e8b010 Add openContent override to include notQName
- Replace list_builtins.xsd with xsd11-extra.xsd
2019-08-10 23:59:38 +02:00
Davide Brunato f8ad4d975c Code cleaning: remove get_xml_bool_attribute() helper function 2019-08-09 12:45:11 +02:00
Davide Brunato 52d1e1bb8e Close XSD 1.1 development
- Still some W3C and local tests to be fixed
  - Fix min/max facets derivation (decode with primitive type)
2019-08-05 17:57:34 +02:00
Davide Brunato 3d38e87d2e Clean iter_decode and iter_encode arguments for XSD components 2019-08-02 16:19:55 +02:00
Davide Brunato 6e90de7b4c Add Version Control namespace attributes
- Added xsd_version property to XSD components
  - Add version_check() helper to XsdValidator base class
2019-07-31 14:19:02 +02:00
Davide Brunato 3d33424541 Refactor and clean reference and name attributes parsing
- Add an helper method _parse_reference()
  - Removed ref property, replaced by attribute
2019-07-29 16:01:48 +02:00
Davide Brunato 035be87572 Complete XSD 1.1 wildcards (xs:any and xs:anyAttribute) 2019-07-23 16:02:17 +02:00
Davide Brunato e26d20b770 Add restriction check for openContent 2019-07-19 18:54:19 +02:00
Davide Brunato 3db78707b1 Complete openContent and defaultOpenContent parsing 2019-07-12 18:22:11 +02:00
Davide Brunato 40d0207968 Clean element matching
- 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
2019-07-08 09:37:29 +02:00
Davide Brunato 281a426ec4 Code optimization on parse helpers
- Remove iter_xsd_components() and has_hsd_components() helpers
    replaced by filter() and any() calls
2019-06-26 07:27:18 +02:00
Davide Brunato fe521dcaf4 Uniformating iter_decode/iter_encode arguments for XSD components
- Move optional argument 'converter' to keyword arguments
  - Adjust filler parameter usage in XsdAttributeGroup.iter_decode
2019-06-08 09:43:15 +02:00
Davide Brunato d21ac11dde Fix default values decoding as reported by issue #108
- Default and fixed values are inserted during the decode or
    encode process
  - Update tox.ini to include coverage and flake8 to environments
    and an optional environment to build source and wheel packages
2019-05-31 09:29:41 +02:00
Davide Brunato 3d5c7ee110 Start next release development
- Update release to v1.0.12
  - Add XsdDefaultOpenContent subclass
  - Fix openContent parsing in complex types
2019-05-09 11:04:50 +02:00
Davide Brunato b36472bd6d Fix tests for a new release
- W3C test script cleaned
  - Fix attribute wildcard extension: new method extend_namespace()
  - Generate an error if schema has the attribute targetNamespace=''
  - Fix complexType redefinition checks
  - Fix UPA violation checking
2019-04-29 11:44:15 +02:00
Davide Brunato db18407ca2 Fix wildcards and models checks 2019-04-27 23:15:24 +02:00
Davide Brunato 36dbb1a904 Move and fix XsdType.is_derived()
- Method replaced by an abstract method and moved to XsdSimpleType
2019-04-15 18:49:42 +02:00
Davide Brunato 8f4eaaa46c Fix model group checking
- Refactoring ParticleMixin hierarchy
2019-04-15 13:07:31 +02:00
Davide Brunato 7b77f6be14 Split XSD group validators from model
- Code cleaning and refactoring in order to complete model verifiers
2019-04-09 16:56:28 +02:00
Davide Brunato 64d21997a5 Additional fixes for checking invalid schemas 2019-03-31 09:35:50 +02:00
Davide Brunato b221fa255f Bugfix for attributes and attribute groups 2019-03-27 11:59:22 +01:00
Davide Brunato b434721a93 Fix deterministic model cheching 2019-03-23 22:50:59 +01:00
Davide Brunato f1427a3335 Fix complex restriction checking
- ParticleMixin.is_restriction() renamed to has_particle_restriction()
2019-03-22 18:17:57 +01:00
Davide Brunato a8eebf3d15 Starting integration with W3C test suite
- Added a script for using W3C test suite with unittest
  - Started with invalid schema tests
2019-03-01 09:33:06 +01:00
Davide Brunato 9d6b88baae Change copyright years info 2019-01-20 16:56:10 +01:00
Davide Brunato aebbe296c2 Fix for issue #93 2018-12-24 23:27:02 +01:00
Davide Brunato bd90cacc7a QNames refactoring
- Moved all QNames to the same module
  - Create module helpers.py that includes XSD parse utils and name
    manipulation helper functions
2018-10-08 23:47:18 +02:00
Davide Brunato c790838d13 Move XSD builtin QNames to qnames.py module 2018-10-08 15:32:50 +02:00
Davide Brunato 79fdea9a55 Code cleaning: removed get_xml_attribute helper function 2018-10-05 07:15:25 +02:00