PureXML/Sources/Schema
Mihaela Mihaljevic 0143381f67 feat(schema): enforce facet applicability to simple-type variety
A constraining facet must apply to its simple type's variety (XSD 1.0 Part 2):
a list may be constrained only by length/minLength/maxLength, pattern,
enumeration, whiteSpace; a union only by pattern and enumeration. A value-bound
facet (maxInclusive, totalDigits, ...) constrains an atomic value space, so
restricting a list of integer by maxInclusive was wrongly accepted.

The base's variety is resolved from the raw tree (this runs before the types
are compiled), namespace-aware so a user type sharing a built-in's local name
does not flip the variety: a base in the XSD namespace is a built-in (only the
list datatypes are list-variety), a base in the schema's own target namespace
resolves to a declared global, and an external or unresolvable base is skipped.

XSTS: invalid schemas accepted 664 to 638, valid schemas rejected held at 72,
instance buckets unchanged.
2026-06-14 11:36:21 +02:00
..
BuiltinType.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
ComplexType.swift fix(schema): honor empty-element default/fixed values and replace enumeration on restriction 2026-06-13 18:04:25 +02:00
ComplexValidator.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
ComplexValidatorDerivation.swift fix(schema): enforce element-level block against xsi:type substitution 2026-06-13 18:04:25 +02:00
ComplexValidatorHelpers.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
ComplexValidatorIDs.swift fix(schema): enforce document-scoped xs:ID uniqueness and xs:IDREF resolution 2026-06-13 19:17:34 +02:00
ComplexValidatorStreaming.swift fix(xsd): error on unknown xsi:type; cycle-detect type references 2026-06-10 03:10:00 +02:00
ComplexValidatorXSIType.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
ContentMatcher.swift fix(schema,regex): bound NFA state explosion and class-subtraction crash; land XSTS baseline 2026-06-13 18:04:25 +02:00
ContentModelDeterminism.swift feat(schema): enforce Unique Particle Attribution (cos-nonambig) 2026-06-14 09:35:33 +02:00
DateTimeParser.swift feat(schema): validate value-bound facet definitions; accept gMonth --MM-- 2026-06-13 22:10:57 +02:00
DateTimeValue.swift
DecimalValue.swift
DerivationMethod.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00
DurationValue.swift style(schema): drop vestigial day clamp in DurationValue.instant 2026-06-13 18:04:25 +02:00
IdentityConstraint.swift feat(xsd): add identity constraints (unique, key, keyref) 2026-06-08 08:58:36 +02:00
IdentityValidator.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
IDTracker.swift fix(schema): enforce document-scoped xs:ID uniqueness and xs:IDREF resolution 2026-06-13 19:17:34 +02:00
Lexical.swift
ParticleRestriction.swift feat(xsd): Particle Valid (Restriction) 2026-06-10 04:13:54 +02:00
Primitive.swift
RelaxNGCompactHelpers.swift feat(relaxng): fold RNC ~ string concatenation 2026-06-08 17:38:58 +02:00
RelaxNGCompactLexer.swift feat(relaxng): add compact syntax (RNC) and include/externalRef 2026-06-08 09:13:09 +02:00
RelaxNGCompactParser.swift feat(relaxng): skip RNC >> follow-annotations, completing #79 2026-06-09 03:20:47 +02:00
RelaxNGContentType.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGDerivative.swift feat(relaxng): QName values with dual-context resolution, instance level clean 2026-06-10 10:57:14 +02:00
RelaxNGDiagnostics.swift feat(relaxng): distinguish undeclared attribute from invalid value 2026-06-09 01:11:54 +02:00
RelaxNGFacets.swift feat(relaxng): compact-syntax datatype parameter blocks 2026-06-08 16:55:57 +02:00
RelaxNGGrammarCheck.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGGrammarCheckSections.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGNameClasses.swift feat(relaxng): ns inheritance, QNames, include-start, combine, data-except 2026-06-10 10:24:46 +02:00
RelaxNGNode.swift feat(relaxng): grammar scoping, parentRef, include overrides, div flattening 2026-06-10 10:34:44 +02:00
RelaxNGParser.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGParserIncludes.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGPattern.swift feat(relaxng): QName values with dual-context resolution, instance level clean 2026-06-10 10:57:14 +02:00
RelaxNGRestrictionChecker.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGRestrictionOverlap.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGRestrictionPaths.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGRestrictions.swift feat(relaxng): schema-correctness validation, spec suite complete 2026-06-10 11:38:45 +02:00
RelaxNGSchema.swift feat(validation): streaming RELAX NG validation 2026-06-09 10:35:42 +02:00
SchemaContentOrder.swift feat(schema): enforce complexType shorthand content order 2026-06-14 11:15:24 +02:00
SchemaDocument.swift feat(schema): validate constraining-facet definitions at compile time 2026-06-13 21:50:51 +02:00
SchemaFacetApplicability.swift feat(schema): enforce facet applicability to simple-type variety 2026-06-14 11:36:21 +02:00
SchemaIDAttribute.swift feat(schema): validate the id attribute (xs:ID) at compile time 2026-06-13 22:29:29 +02:00
SchemaIdentityXPath.swift feat(schema): validate identity-constraint selector/field XPath subset 2026-06-14 10:30:06 +02:00
SchemaNameUniqueness.swift feat(schema): resolve keyref refer to a declared key or unique 2026-06-14 08:04:34 +02:00
SchemaReferences.swift feat(schema): resolve keyref refer to a declared key or unique 2026-06-14 08:04:34 +02:00
SchemaStructure.swift feat(schema): enforce facet applicability to simple-type variety 2026-06-14 11:36:21 +02:00
SchemaWildcardNamespace.swift feat(schema): validate wildcard namespace constraint value space 2026-06-14 11:00:45 +02:00
SimpleType.swift feat(schema): built-in xsi:type resolution gated by substitution validity 2026-06-13 21:21:35 +02:00
StreamingXSDValidator.swift fix(xsd): error on unknown xsi:type; cycle-detect type references 2026-06-10 03:10:00 +02:00
TypeDerivation.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00
XSDAttributeParser.swift fix(schema): resolve <xs:attribute ref> to global attribute declarations 2026-06-13 19:30:11 +02:00
XSDCompletions.swift fix(xsd): error on unknown xsi:type; cycle-detect type references 2026-06-10 03:10:00 +02:00
XSDComplexContent.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00
XSDContext.swift feat(schema): validate constraining-facet definitions at compile time 2026-06-13 21:50:51 +02:00
XSDDerivation.swift fix(schema): enforce block="substitution" on substitution-group heads 2026-06-13 18:31:07 +02:00
XSDParser.swift feat(schema): enforce Unique Particle Attribution (cos-nonambig) 2026-06-14 09:35:33 +02:00
XSDSchemaValidations.swift refactor(xsd): schema-consistency checks through the validation framework 2026-06-10 06:04:40 +02:00
XSDSimpleParser.swift feat(schema): validate pattern facet regular expressions at compile time 2026-06-13 23:52:11 +02:00
XSDValidations.swift fix(schema): enforce document-scoped xs:ID uniqueness and xs:IDREF resolution 2026-06-13 19:17:34 +02:00
XSDWildcardParser.swift feat(schema): XSD derivation control (abstract, block, final, redefine) 2026-06-08 14:14:23 +02:00