PureXML/Sources/Schema
Mihaela Mihaljevic 96ec9cd1e0 fix(schema): reject circular type derivation (ct-props-correct.3 / st-props-correct.2)
A complex or simple type may not derive, transitively through its base, from
itself. Such schemas were accepted. The check walks the base chain built from
each type's complexContent/simpleContent extension/restriction base (and a
simpleType's restriction base), following an edge only when the base resolves to
the schema's own target namespace.

Three exceptions keep it from over-rejecting: element content that recurses (an
element of the type's own type) is not a derivation and is not followed; a type
redefined in xs:redefine legitimately names itself as its base, so redefined
types end the chain; and the ur-types (anyType/anySimpleType/anyAtomicType,
which the schema-for-schemas bootstraps with self-referential definitions) end
the chain. The target-namespace gate prevents a local type whose base is a
same-local-name type in another namespace from being mistaken for a self-cycle
(found by an adversarial critic; the engine resolves by local name).

XSTS: invalid schemas accepted 519 to 516 (addB101, elemM003, xsd007.e now
rejected), no other bucket raised. Union/list and genuine cross-namespace
derivation cycles are a disclosed under-rejection.
2026-06-15 01:26:37 +02:00
..
BuiltinType.swift
ComplexType.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
ComplexValidator.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
ComplexValidatorDerivation.swift
ComplexValidatorHelpers.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
ComplexValidatorIDs.swift
ComplexValidatorStreaming.swift
ComplexValidatorXSIType.swift
ContentMatcher.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
ContentModelDeterminism.swift feat(schema): enforce Unique Particle Attribution (cos-nonambig) 2026-06-14 09:35:33 +02:00
DateTimeParser.swift
DateTimeValue.swift
DecimalValue.swift
DerivationMethod.swift
DurationValue.swift
IdentityConstraint.swift
IdentityValidator.swift
IDTracker.swift
Lexical.swift
ParticleNormalization.swift fix(schema): normalize content model, scope occurrence subsumption in particle restriction 2026-06-14 17:18:38 +02:00
ParticleRestriction.swift fix(schema): implement MapAndSum (sequence restricting a choice) in particle restriction 2026-06-14 23:46:37 +02:00
Primitive.swift
RelaxNGCompactHelpers.swift
RelaxNGCompactLexer.swift
RelaxNGCompactParser.swift
RelaxNGContentType.swift
RelaxNGDerivative.swift
RelaxNGDiagnostics.swift
RelaxNGFacets.swift
RelaxNGGrammarCheck.swift
RelaxNGGrammarCheckSections.swift
RelaxNGNameClasses.swift
RelaxNGNode.swift
RelaxNGParser.swift
RelaxNGParserIncludes.swift
RelaxNGPattern.swift
RelaxNGRestrictionChecker.swift
RelaxNGRestrictionOverlap.swift
RelaxNGRestrictionPaths.swift
RelaxNGRestrictions.swift
RelaxNGSchema.swift
SchemaContentOrder.swift feat(schema): a simpleType must have exactly one of restriction/list/union 2026-06-14 14:30:25 +02:00
SchemaDerivationControl.swift feat(schema): validate final/block derivation-control value space 2026-06-14 14:19:10 +02:00
SchemaDocument.swift
SchemaFacetApplicability.swift feat(schema): validate built-in-typed default/fixed values 2026-06-14 11:55:55 +02:00
SchemaIDAttribute.swift fix(schema): reject circular type derivation (ct-props-correct.3 / st-props-correct.2) 2026-06-15 01:26:37 +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): a simpleType must have exactly one of restriction/list/union 2026-06-14 14:30:25 +02:00
SchemaWildcardNamespace.swift feat(schema): validate wildcard namespace constraint value space 2026-06-14 11:00:45 +02:00
SimpleType.swift
StreamingXSDValidator.swift
TypeDerivation.swift
XSDAttributeParser.swift
XSDCompletions.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
XSDComplexContent.swift
XSDContext.swift fix(schema): content-free restriction of emptiable base, substitution-group declaration order 2026-06-14 22:48:12 +02:00
XSDDerivation.swift fix(schema): reject circular type derivation (ct-props-correct.3 / st-props-correct.2) 2026-06-15 01:26:37 +02:00
XSDParser.swift fix(schema): reject circular type derivation (ct-props-correct.3 / st-props-correct.2) 2026-06-15 01:26:37 +02:00
XSDSchemaValidations.swift feat(schema): full NameAndTypeOK type derivation in element restriction 2026-06-14 13:47:18 +02:00
XSDSimpleParser.swift
XSDValidations.swift
XSDWildcardParser.swift