Skip to content
Open
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
d285d4d
feat(xsd): implement element substitution groups
AlexanderWillner May 26, 2026
78f4b7b
feat(xsd): implement complexContent extension base merging
AlexanderWillner May 26, 2026
2733b7c
fix(xsd): resolve types/elements in own targetNamespace
AlexanderWillner May 26, 2026
9f15149
fix: cross-namespace substitution group validation
AlexanderWillner May 27, 2026
d453c29
fix: namespace-aware element ref matching for cross-namespace refs
AlexanderWillner May 27, 2026
7b791d7
test: add NAS substitution group regression test
AlexanderWillner May 27, 2026
921372c
feat: add sequence order validation in xs:sequence
AlexanderWillner May 27, 2026
75efca9
feat: merge extension bases for imported namespace types
AlexanderWillner May 27, 2026
640ece3
feat: implement xsd:any wildcard support
AlexanderWillner May 27, 2026
6571ef1
feat: public XSD schema fields + get_type_element_order API
AlexanderWillner May 27, 2026
e6bcd20
fix(xsd): resolve root elements from imported schemas
AlexanderWillner May 28, 2026
84af57a
Merge branch 'feat/xsd-complex-content-extension'
AlexanderWillner May 28, 2026
0c61303
feat(xsd): add validate_xsd_strict for strict XSD validation
AlexanderWillner May 29, 2026
bca7790
fix(xsd): propagate compositor minOccurs to child particles
AlexanderWillner May 29, 2026
07e6d88
fix(xsd): resolve attributeGroup refs and attribute ref declarations
AlexanderWillner May 29, 2026
5009e7e
Fix strict XSD validation: merge base attributes and handle choice gr…
AlexanderWillner May 29, 2026
8c00f3b
fix(strict): resolve cross-include prefixes, inherited simpleContent …
AlexanderWillner May 30, 2026
c21be46
validation/xsd: fix clippy warnings and doctest issues
May 30, 2026
14b8ac0
feat(xsd): enforce xs:sequence element ordering in strict validation
Jun 1, 2026
c13eeed
feat: add Element wrapper for ergonomic XML traversal
Jun 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix(strict): resolve cross-include prefixes, inherited simpleContent …
…attrs

Extends strict XSD validation with several fixes that eliminate false
positives on real-world NAS files (91k+ errors on WFS Transaction files
reduced to 0):

- Merge xmlns prefix declarations from included schemas into root
  prefix_map so QName resolution (e.g. gmd:LI_Lineage) works when the
  prefix is declared in an include, not the root schema document
- Store prefix_map on ImportedSchema for cross-namespace resolution
- Inherit attributes from simpleContent extension chains via
  resolve_simple_content_base_attributes (fixes gml:MeasureType uom,
  gml:CodeWithAuthorityType codeSpace)
- Handle <restriction> branch in collect_simple_content_attributes
  (not just <extension>)
- Search imported schemas in resolve_element_ref for unprefixed refs
- Scan imported types by local name when prefix is unknown
- Treat elements with no type_ref/inline_type/element_ref as anyType
  (valid per XSD spec) instead of reporting unresolved-type errors
- Resolve element namespace via imported prefix_maps before
  element-based fallback
- Inline named model groups via two-pass parsing and group_defs map
- Resolve substitution group members to their own type declarations
  (not abstract head) for correct content model validation
- Loop on unbounded Group particles in sequence validation
- report_unexpected parameter avoids double-reporting in group context
  • Loading branch information
AlexanderWillner committed May 30, 2026
commit 8c00f3b275498e4d3514872f79a97cb10e97896a
Loading