PureXML/Sources/Schema
Mihaela Mihaljevic 01650a454e fix(schema): reject year 0000 in dateTime, date, gYearMonth, gYear
XSD 1.0 has no year zero (the year before 0001 is -0001), so 0000-01-01T00:00:00
and the other 0000 forms are not valid values. DateTimeParser.parseYearOnly now
rejects a zero magnitude for both signs, so negative years like -0001 still parse.

Closes the XSTS dateTime011 false negative: invalid-instances-accepted 31 -> 30,
no other bucket moved (valid-schemas-rejected and valid-instances-rejected held at
0). 1449 unit tests pass; the full XSTS suite settles at 0/43/0/30.
2026-06-20 01:31:14 +02:00
..
BuiltinType.swift fix(schema): compare identity-constraint fields across the decimal value space; invalid-instances-accepted 95 to 94 (#147) 2026-06-18 11:01:05 +02:00
ComplexType.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
ComplexValidator.swift fix(schema): a fixed mixed element must have no element children; invalid-instances-accepted 37 to 34 (#147) 2026-06-18 15:51:25 +02:00
ComplexValidatorAttributes.swift fix(schema): exclude use="prohibited" attributes from effective uses at instance time; invalid-instances-accepted 43 to 39 (#147) 2026-06-18 15:28:35 +02:00
ComplexValidatorContentModel.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
ComplexValidatorDerivation.swift fix(schema): reject an xsi:type that names an abstract type; invalid-instances-accepted 34 to 32 (#147) 2026-06-18 15:58:08 +02:00
ComplexValidatorHelpers.swift fix(schema): process xsd:anyType wildcards as lax; invalid-instances-accepted 101 to 95 (#146, #147) 2026-06-18 10:44:33 +02:00
ComplexValidatorIDs.swift
ComplexValidatorStreaming.swift fix(schema): process xsd:anyType wildcards as lax; invalid-instances-accepted 101 to 95 (#146, #147) 2026-06-18 10:44:33 +02:00
ComplexValidatorXSIType.swift
ContentMatcher.swift fix(schema): bound content-matcher configuration set per counter 2026-06-19 23:32:04 +02:00
ContentModelDeterminism.swift
ContentNFABuilder.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
DateTimeParser.swift fix(schema): reject year 0000 in dateTime, date, gYearMonth, gYear 2026-06-20 01:31:14 +02:00
DateTimeValue.swift
DecimalValue.swift
DerivationMethod.swift
DurationValue.swift
IdentityConstraint.swift
IdentityFieldValue.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
IdentityValidator.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
IdentityValidatorDefaults.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
IDTracker.swift
Lexical.swift
OccurrenceRange.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
ParticleNormalization.swift
ParticleRestriction.swift
ParticleRestrictionElement.swift
ParticleRestrictionHelpers.swift
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
SchemaAllGroupPlacement.swift
SchemaAttributeApplicability.swift
SchemaAttributeRestriction.swift
SchemaAttributeUniqueness.swift
SchemaCompileValidation.swift Reject invalid simpleContent inline restrictions 2026-06-18 22:01:01 +02:00
SchemaCompositionValidations.swift fix(schema): enforce model-group redefine restriction (cos-group-restrict) 2026-06-18 18:24:58 +02:00
SchemaContentOrder.swift
SchemaDerivationControl.swift feat(schema): key the instance derivation/substitution backbone by namespaced identity; re-land blockDefault; invalid-instances-accepted 89 to 81 (#186, #147) 2026-06-18 12:41:18 +02:00
SchemaDocument.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
SchemaDocumentHints.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
SchemaExtensionAllGroup.swift Reject mixedness-changing complexContent extensions 2026-06-18 22:37:49 +02:00
SchemaFacetApplicability.swift fix(schema): reject a constraining facet on anySimpleType-based simpleContent 2026-06-18 19:27:28 +02:00
SchemaIDAttribute.swift
SchemaIdentityXPath.swift
SchemaIDValueConstraint.swift
SchemaImportNamespace.swift
SchemaNameUniqueness.swift fix(schema): a redefined schema's targetNamespace must match the redefiner (src-redefine); invalid-schemas-accepted 74 to 71 (#161) 2026-06-18 01:25:34 +02:00
SchemaNestedDefinition.swift
SchemaNotationValidity.swift
SchemaRedefineSelfReference.swift refactor(schema): extract shared base-component resolution for redefines 2026-06-18 20:20:26 +02:00
SchemaReferenceForeignPools.swift
SchemaReferenceResolution.swift
SchemaReferences.swift
SchemaSimpleTypeFinal.swift
SchemaSimpleTypeValidity.swift
SchemaStructure.swift fix(schema): reject a constraining facet on anySimpleType-based simpleContent 2026-06-18 19:27:28 +02:00
SchemaStructureHelpers.swift
SchemaSubstitutionType.swift Reject complex substitutions for anySimpleType heads 2026-06-18 23:04:11 +02:00
SchemaWildcardNamespace.swift
SimpleType.swift
StreamingXSDValidator.swift
TypeDerivation.swift
XPathQueryCache.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
XSDAttributeParser.swift fix(schema): exclude use="prohibited" attributes from effective uses at instance time; invalid-instances-accepted 43 to 39 (#147) 2026-06-18 15:28:35 +02:00
XSDCompletions.swift
XSDComplexContent.swift
XSDContext.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
XSDDerivation.swift fix(schema): bar a substitution-group member blocked by the head's type; invalid-instances-accepted 53 to 50 (#147) 2026-06-18 14:02:14 +02:00
XSDDerivationTables.swift fix(schema): key a local element's block by its effective instance namespace; invalid-instances-accepted 32 to 31 (#147) 2026-06-18 16:12:08 +02:00
XSDParser.swift fix(schema): make the container-location root fallback live 2026-06-19 23:32:04 +02:00
XSDParserHelpers.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
XSDParserParticles.swift fix(schema): count content-model occurrences 2026-06-19 23:32:04 +02:00
XSDParserTypeReferences.swift fix(schema): process xsd:anyType wildcards as lax; invalid-instances-accepted 101 to 95 (#146, #147) 2026-06-18 10:44:33 +02:00
XSDParserUnion.swift docs: align stale figures with code and the enforced XSTS gate 2026-06-19 23:32:04 +02:00
XSDSchemaValidations.swift
XSDSimpleContentParser.swift Reject invalid simpleContent inline restrictions 2026-06-18 22:01:01 +02:00
XSDSimpleParser.swift
XSDSimpleParser+Facets.swift
XSDSubstitutionMembers.swift fix(schema): stop blocked substitution chaining 2026-06-19 08:37:19 +02:00
XSDValidations.swift fix(schema): default/fixed value for identity-constraint fields; invalid-instances-accepted 50 to 45 (#147) 2026-06-18 14:47:47 +02:00
XSDWildcardParser.swift fix(schema): intersect a complex type's attribute wildcard sources; invalid-instances-accepted 94 to 89 (#147) 2026-06-18 11:21:32 +02:00