Complete the element-vs-element type clause of Particle Valid (Restriction): the restricting element's type must be, or derive by restriction from, the base element's type. Previously only names were compared, so an unrelated, wider, or ur-type element type was accepted under restriction. Enrich the content-model particle: Term.element carries the element type's derivation identity (the resolved type name, anyType for an absent type, nil for an inline anonymous type). Record named simpleType restriction derivations in the derivation table alongside complex ones. The element-vs-element check walks the user restriction chain and then the built-in lattice to decide derivation by name; an ur-type base, a union base (membership is not a restriction chain), and an inline anonymous type are permitted, so no valid restriction is rejected. XSTS: invalid schemas accepted 616 to 594, invalid instances accepted 165 to 160 (more invalid schemas rejected up front), valid schemas rejected held at 72, valid instances rejected held at 214. |
||
|---|---|---|
| .. | ||
| BuiltinType.swift | ||
| ComplexType.swift | ||
| ComplexValidator.swift | ||
| ComplexValidatorDerivation.swift | ||
| ComplexValidatorHelpers.swift | ||
| ComplexValidatorIDs.swift | ||
| ComplexValidatorStreaming.swift | ||
| ComplexValidatorXSIType.swift | ||
| ContentMatcher.swift | ||
| ContentModelDeterminism.swift | ||
| DateTimeParser.swift | ||
| DateTimeValue.swift | ||
| DecimalValue.swift | ||
| DerivationMethod.swift | ||
| DurationValue.swift | ||
| IdentityConstraint.swift | ||
| IdentityValidator.swift | ||
| IDTracker.swift | ||
| Lexical.swift | ||
| ParticleRestriction.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 | ||
| SchemaContentOrder.swift | ||
| SchemaDocument.swift | ||
| SchemaFacetApplicability.swift | ||
| SchemaIDAttribute.swift | ||
| SchemaIdentityXPath.swift | ||
| SchemaNameUniqueness.swift | ||
| SchemaReferences.swift | ||
| SchemaStructure.swift | ||
| SchemaWildcardNamespace.swift | ||
| SimpleType.swift | ||
| StreamingXSDValidator.swift | ||
| TypeDerivation.swift | ||
| XSDAttributeParser.swift | ||
| XSDCompletions.swift | ||
| XSDComplexContent.swift | ||
| XSDContext.swift | ||
| XSDDerivation.swift | ||
| XSDParser.swift | ||
| XSDSchemaValidations.swift | ||
| XSDSimpleParser.swift | ||
| XSDValidations.swift | ||
| XSDWildcardParser.swift | ||