PureXML/Sources/Schema
Mihaela Mihaljevic 380160cc2b refactor(validation): decompose XSD instance validation into composable rules
The two monolithic XSD content/identity rules only satisfied the OpenAPIKit
validation idiom at the wrong granularity: no per-constraint removability,
no isolable failing/near-miss tests. Split them into 32 named rules, each
finding tagged at its origin and cached per XSDContext so the walk still
runs once per document (the #101 decision against duplicating XSD's
recursive type resolution still holds). Wired the streaming path's ID/IDREF
and identity checks through the same framework instead of calling the
validators imperatively, and added the unwrapAndLookup combinator the rule
already named as required.

Also includes the mandated repo-wide swiftformat/swiftlint pass.
2026-07-12 14:12:17 +02:00
..
BuiltinType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidator.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorAttributes.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorContentModel.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorDerivation.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorHelpers.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorIDs.swift
ComplexValidatorNilFixed.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorStreaming.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorWildcards.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ComplexValidatorXSIType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentMatcher.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentModelDeterminism.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentModelDeterminismCompositional.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentModelDeterminismConflict.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentModelEffectiveModel.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentModelGroupDependency.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentNFABuilder.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentRTN.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ContentRTNMatcher.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
DateTimeParser.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
DateTimeValue.swift
DecimalValue.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
DerivationMethod.swift
DurationValue.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
GroupParticleMemo.swift feat(schema): carry a stable group-definition identity on shared expansions (#363) 2026-06-28 01:53:58 +02:00
IdentityConstraint.swift
IdentityFieldSimplicity.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IdentityFieldType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IdentityFieldValue.swift
IdentityTupleSet.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IdentityValidator.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IdentityValidatorDefaults.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IdentityValidatorHelpers.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
IDTracker.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
Lexical.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
OccurrenceRange.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ParticleNormalization.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ParticleRestriction.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ParticleRestrictionChoice.swift fix(schema): literal RecurseAsIfGroup for a non-repeating base choice 2026-07-05 08:58:35 +02:00
ParticleRestrictionElement.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
ParticleRestrictionHelpers.swift
Primitive.swift fix(schema): match a NaN value against a NaN enumeration (value-space identity) (#376) 2026-06-29 05:20:07 +02:00
RelaxNGCompactHelpers.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGCompactLexer.swift
RelaxNGCompactParser.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGContentType.swift
RelaxNGDerivative.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGDiagnostics.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGFacets.swift
RelaxNGGrammarCheck.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGGrammarCheckSections.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGNameClasses.swift
RelaxNGNode.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGParser.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGParserIncludes.swift
RelaxNGPattern.swift
RelaxNGRestrictionChecker.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGRestrictionOverlap.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGRestrictionPaths.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGRestrictions.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
RelaxNGSchema.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaAllGroupPlacement.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaAttributeApplicability.swift feat(schema): locate structure-pass schema diagnostics 2026-06-21 15:23:13 +02:00
SchemaAttributeRestriction.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaAttributeUniqueness.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaCompileValidation.swift refactor(schema): remove unused [String] consistency wrappers (#317) 2026-06-26 08:02:09 +02:00
SchemaCompositionValidations.swift feat(schema): locate composition/redefine-pass schema diagnostics 2026-06-21 19:41:31 +02:00
SchemaContentDerivation.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaContentOrder.swift
SchemaDerivationControl.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaDocument.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaDocumentHints.swift
SchemaElementDeclarationsConsistent.swift refactor(schema): split Element-Declarations-Consistent out of SchemaStructure 2026-06-22 15:30:58 +02:00
SchemaExtensionAllGroup.swift feat(schema): locate extension/substitution-pass schema diagnostics 2026-06-21 18:35:38 +02:00
SchemaFacetApplicability.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaIDAttribute.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaIdentityXPath.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaIDValueConstraint.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaImportNamespace.swift feat(schema): locate reference-resolution schema diagnostics 2026-06-21 18:09:20 +02:00
SchemaNameUniqueness.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaNestedDefinition.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaNotationValidity.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaRedefineAttributeGroupRestriction.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaRedefineSelfReference.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaReferenceForeignPools.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaReferenceResolution.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaReferences.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaSimpleTypeFinal.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaSimpleTypeValidity.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaSimpleTypeVariety.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaStructure.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaStructureHelpers.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaSubstitutionType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaUndeclaredNamespace.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaWildcardExpressibility.swift fix(schema): attribute-wildcard union/intersection per Errata E1-10 (#251) 2026-06-23 04:56:17 +02:00
SchemaWildcardNamespace.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SchemaXSIAttribute.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
SimpleContentMemo.swift perf(schema): memoize simpleContent base resolution so a chain is linear, not cubic (#374) 2026-06-29 03:26:07 +02:00
SimpleType.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
StepSiblingIndex.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
StreamingXSDValidator.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
TypeDerivation.swift
XPathQueryCache.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDAttributeParser.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDCompiled.swift fix(schema): reject an identity-constraint field that selects a non-simple node (#381) 2026-06-29 09:08:25 +02:00
XSDCompletions.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDComplexContent.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDContext.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDDerivation.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDDerivationTables.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDFinding.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDFindingsCache.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDParser.swift fix(schema): reject an identity-constraint field that selects a non-simple node (#381) 2026-06-29 09:08:25 +02:00
XSDParserHelpers.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDParserParticles.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDParserTypeReferences.swift
XSDParserUnion.swift
XSDRuleToken.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDSchemaValidations.swift
XSDSimpleContentParser.swift perf(schema): memoize simpleContent base resolution so a chain is linear, not cubic (#374) 2026-06-29 03:26:07 +02:00
XSDSimpleParser.swift fix(schema): reject an unknown \p{...} category or block name (#248) 2026-06-23 02:15:26 +02:00
XSDSimpleParser+Facets.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDSimpleTypeOrder.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDSubstitutionMembers.swift
XSDValidations.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00
XSDWildcardParser.swift refactor(validation): decompose XSD instance validation into composable rules 2026-07-12 14:12:17 +02:00