Commit Graph

729 Commits

Author SHA1 Message Date
Davide Brunato 1a06be7477 Fix the parse of keyref's refer to skip key references 2019-10-10 14:21:55 +02:00
Davide Brunato 9146d94d43 Fix assertion value for schema context analisys 2019-10-10 14:20:58 +02:00
Davide Brunato 922a43da21 Fix for unbound multi-schema W3C tests 2019-10-10 14:14:55 +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 690a172502 Add logging for schema initialization and building
- Add loglevel argument to schema init
  - Fallback location (for XLink and XHTML) moved at the
    end of import tentatives (full fix for issue #137)
  - Fix TestGlobalMaps after the remove of XLink from base schemas
2019-10-08 11:30:36 +02:00
Davide Brunato 433970cf72 Add FALLBACK_LOCATIONS to schema class
- XLink namespace removed from base schemas
  - Fallback locations dictionary added for XLink
    and XHTML namespaces
  - Fix for issue #137 (local mode)
2019-10-07 22:18:08 +02:00
Davide Brunato b7b6fef418 Base modules refactoring for fix ElementTree import 2019-10-07 15:31:18 +02:00
Davide Brunato 7fcacde313 Fix issue #136
- Protect facets validators from type and value errors
  - Add strictly_equal() helper to check fixed value equality
  - Move get_instance_type() from XsdType to global maps
2019-10-03 22:00:32 +02:00
Davide Brunato 9afff86ee9 Remove validators and patterns checks for XsdList/XsdUnion
- The base XsdList and XsdUnion types have no validators or patterns,
    that are added only to restrictions.
  - Added patterns optional argument to XsdUnion.iter_decode(): derived
    types pass our patterns to the xs:union base type, that checks them
    after normalization with the selected member type.
2019-10-03 07:13:56 +02:00
Davide Brunato 844ddec3ba Fix assertions
- 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.
2019-10-01 06:44:31 +02:00
Davide Brunato b6c6e2ac8f Change get_context() in document module
- Now the optional schema argument is a fallbak in case
    the schema path is not found into XML resource.
2019-09-23 17:29:08 +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 b1663c5550 Add root_type property to XsdType
- Atomic's property primitive_type transformed to attribute
  - Optimized base_type assignement
2019-09-21 10:47:11 +02:00
Davide Brunato 23390a1ed7 Fix xs:keyref ref building and add count_digits() helper 2019-09-20 11:49:01 +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 a4b1d8896b Add 'restriction' attribute to XsdGroup for simplify dynamic EDC checks 2019-09-13 07:32:57 +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 c35f86d681 Add IDREF checking and fix ID collecting
- ID are not counted for XML document root
  - IDREF checked with adding a key with 0 value if missing
    (TODO: Add a validation error instance or a reference)
2019-09-06 11:37:30 +02:00
Davide Brunato c36ef4a26a Copy identities dict for element references 2019-09-06 08:46:02 +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 1589f34468
Merge pull request #130 from libremente/master
Fix MIME type
2019-08-28 16:58:01 +02:00
Davide Brunato df939b9cea Fix xs:alternative and xs:keyref referefence building 2019-08-28 15:56:31 +02:00
libremente 1075c76aa3 Fix MIME type 2019-08-28 14:40:19 +02:00
Davide Brunato 2e52be0a9a Add publiccode.yml for Italian Public Services registry 2019-08-28 09:36:23 +02:00
Davide Brunato 1ff234b690 Add publiccode.yml for Italian Public Services registry 2019-08-27 14:15:56 +02:00
Davide Brunato e6726091c2 Fix README.rst syntax 2019-08-27 11:37:39 +02:00
Davide Brunato d442b6ad69 Merge branch 'develop' for updating to release v1.0.14 2019-08-27 10:58:47 +02:00
Davide Brunato 7b5a2b9d6d Removed unmap_prefixed() from NamespaceMapper
- Added an optional name table to unmap_qname() for the lookup
    of local names
  - Fix lxml encoding tests in case of default namespace
2019-08-27 10:58:32 +02:00
Davide Brunato 97b5203ba6 Update documentation 2019-08-26 11:30:25 +02:00
Davide Brunato 1c0e18b648 Fix XSD 1.1 xs:all group restriction
- Added an additional fallback check for xs:choice groups in
    Xsd11Group.is_all_restriction()
  - Fixed tests for wildcards and updated the W3C test script with
    total counters displayed before run
2019-08-26 11:01:41 +02:00
Davide Brunato e6fe1675c2 Fix fixed value check and model visiting with empty inner groups
- Added text_value() to XsdSimpleType and XsdComplexType for
    getting decoded text value for elements and attributes.
2019-08-26 08:10:58 +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 a6ef42d926 Fix model checking
- Do not check same elements (pe is e)
  - distinguishable_paths() now checks also intermediate xs:choice
    and xs:all groups
2019-08-23 08:43:41 +02:00
Davide Brunato b394c44933 Improve Element Declarations Consistent constraint checking 2019-08-20 22:17:19 +02:00
Davide Brunato e6e009386a Fix library tests
- Fixed etree encoding checks for py2
  - Fixed XSD 1.1 meta-schema restriction checking
  - Set memory lazy tests to higher level (something
    changed after lazy meta-schema build, need to be
    checked with large XML files)
2019-08-20 22:10:12 +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 74a45b9010 Refactoring test scripts
- Created test_factory subpackage
  - Avoid test discovery duplications
  - Added tests into test_cases dir for default discover
  - Grouped validation and validators tests in two dirs
2019-08-17 17:47:19 +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 41c2955ed5 Fix Unicode block lookup for XSD 1.1
- Fox XSD 1.1, in case of Unicode block lookup error (unknown
    Is... name) a set with all Unicode codepoints is returned.
2019-08-12 18:18:30 +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