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.
138 lines
6.3 KiB
Swift
138 lines
6.3 KiB
Swift
/// The decomposed XSD instance-validation rules (content validity and identity
|
|
/// constraints), split out of ``BuiltinValidation``'s main declaration to keep
|
|
/// each file's type body under the length limit. See ``PureXML/Validation/XSD``
|
|
/// for why these are decomposed the way they are.
|
|
public extension PureXML.Validation.BuiltinValidation {
|
|
// MARK: XSD instance: content validity
|
|
|
|
static var xsdNilAttributeRequiresNillable: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.nilAttributeRequiresNillable
|
|
}
|
|
|
|
static var xsdNilElementMustBeEmpty: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.nilElementMustBeEmpty
|
|
}
|
|
|
|
static var xsdNilElementNoFixedConstraint: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.nilElementNoFixedConstraint
|
|
}
|
|
|
|
static var xsdFixedElementNoChildren: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.fixedElementNoChildren
|
|
}
|
|
|
|
static var xsdFixedElementValueMatches: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.fixedElementValueMatches
|
|
}
|
|
|
|
static var xsdEmptyContentForbidsChildren: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.emptyContentForbidsChildren
|
|
}
|
|
|
|
static var xsdSimpleContentForbidsChildren: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.simpleContentForbidsChildren
|
|
}
|
|
|
|
static var xsdSimpleContentTypeValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.simpleContentTypeValid
|
|
}
|
|
|
|
static var xsdTextForbidden: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.textForbidden
|
|
}
|
|
|
|
static var xsdWildcardElementUndeclared: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.wildcardElementUndeclared
|
|
}
|
|
|
|
static var xsdSimpleTypeDisallowedAttribute: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.simpleTypeDisallowedAttribute
|
|
}
|
|
|
|
static var xsdSimpleTypeForbidsChildren: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.simpleTypeForbidsChildren
|
|
}
|
|
|
|
static var xsdSimpleTypeValueValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.simpleTypeValueValid
|
|
}
|
|
|
|
static var xsdTypeReferenceResolves: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.typeReferenceResolves
|
|
}
|
|
|
|
static var xsdContentModelStructure: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.contentModelStructure
|
|
}
|
|
|
|
static var xsdAttributeTypeValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.attributeTypeValid
|
|
}
|
|
|
|
static var xsdAttributeFixedMatches: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.attributeFixedMatches
|
|
}
|
|
|
|
static var xsdAttributeRequiredPresent: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.attributeRequiredPresent
|
|
}
|
|
|
|
static var xsdAttributeSingleID: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.attributeSingleID
|
|
}
|
|
|
|
static var xsdAttributeDeclaredOrPermitted: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.attributeDeclaredOrPermitted
|
|
}
|
|
|
|
static var xsdWildcardAttributeUndeclared: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.wildcardAttributeUndeclared
|
|
}
|
|
|
|
static var xsdWildcardAttributeTypeValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.wildcardAttributeTypeValid
|
|
}
|
|
|
|
static var xsdWildcardAttributeFixedMatches: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.wildcardAttributeFixedMatches
|
|
}
|
|
|
|
static var xsdXsiTypeSubstitutionValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.xsiTypeSubstitutionValid
|
|
}
|
|
|
|
static var xsdXsiTypeOverrideResolves: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.xsiTypeOverrideResolves
|
|
}
|
|
|
|
static var xsdIdIdrefConsistent: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.idIdrefConsistent
|
|
}
|
|
|
|
// MARK: XSD instance: identity constraints
|
|
|
|
static var xsdIdentityConstraintXPathsValid: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityConstraintXPathsValid
|
|
}
|
|
|
|
static var xsdIdentityKeyFieldPresent: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityKeyFieldPresent
|
|
}
|
|
|
|
static var xsdIdentityValueUnique: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityValueUnique
|
|
}
|
|
|
|
static var xsdIdentityKeyrefResolves: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityKeyrefResolves
|
|
}
|
|
|
|
static var xsdIdentityFieldCardinality: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityFieldCardinality
|
|
}
|
|
|
|
static var xsdIdentityFieldMustBeSimple: PureXML.Validation.Validation<PureXML.Model.Node, PureXML.Validation.XSDContext> {
|
|
PureXML.Validation.XSD.identityFieldMustBeSimple
|
|
}
|
|
}
|