Skip to content
VERASPEC
Repository
The conformance validatorstable

Design rules

  • Every stage runs. The validator does not stop at the first error, because a producer fixing one problem needs to see the rest. The only exceptions are an unparseable document and one over the hard cap, where continuing would be meaningless.
  • A schema failure does not suppress the semantic stages. Every rule is written against possibly-missing, possibly-mistyped input, so a structurally invalid record is still audited for everything the schema cannot express.
  • Nothing raises on hostile input, and nothing fails open. Any exception escaping a rule is a bug in this validator, never a property of the record. It is contained — untrusted input must not turn validation into a crash — but it is not silenced: it is logged to the ver_validator logger and reported as VER001, and the report's status becomes indeterminate. An earlier version swallowed it into an empty finding list, which made the validator fail open: the crashed rule contributed nothing, every other rule passed, and the record came back ok: true. A rule that did not finish has said nothing, and "said nothing" is not "found nothing". Every other rule still runs, so one broken rule costs the report one rule, not all of them.
  • A policy exception never edits a verdict. --ignore and ok_after_policy_exceptions are recorded alongside the standards result, never in place of it.