PureXML/Sources/Schema/XSDFinding.swift
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

16 lines
412 B
Swift

/// A validation finding tagged with the decomposed rule it belongs to.
struct XSDFinding {
let rule: XSDRuleToken
let error: XSDFailure
init(_ rule: XSDRuleToken, reason: String, at path: XSDPath) {
self.rule = rule
error = XSDFailure(reason: reason, at: path)
}
init(_ rule: XSDRuleToken, _ error: XSDFailure) {
self.rule = rule
self.error = error
}
}