The restriction subset check rejected 72 valid schemas (#148). Three language-preserving corrections: - Remove pointless particles (maxOccurs=0) from both the derived and base content before mapping, so they no longer consume a base particle and starve the particles after them (e.g. (e1 maxOccurs=0, e2) restricting (any)). - A content-free restriction (an empty sequence, or a group whose members all cannot occur) is a valid restriction of an EMPTY base: both accept only the empty sequence. - A derived group that reduces to empty after that removal validly restricts its base only when the base is itself emptiable (emptiable(base) accounts for the base's own occurrence), closing the vacuous-acceptance gap the removal would otherwise open in the MapAndSum and choice paths. XSTS: valid schemas rejected 72 to 45. invalid schemas accepted 527 to 528 from addB32, whose only invalidity is a malformed imported document not yet loaded (#161); the restriction itself is valid, so accepting it is correct. |
||
|---|---|---|
| .. | ||
| Canonical | ||
| Catalog | ||
| Emitting | ||
| HTML | ||
| Model | ||
| Parsing | ||
| Pattern | ||
| Regex | ||
| Schema | ||
| Stream | ||
| Validation | ||
| XInclude | ||
| XPath | ||
| XPointer | ||
| XSLT | ||
| API.swift | ||
| Lint.swift | ||
| PureXML.swift | ||
| QuickFix.swift | ||