A property should pass validation if it satisfy any single one of these constraints. Right now, if one sets maxErrors = 1 (or at least a number lower than the "OR'ed" shapes) the validator will fail.
This happens because there is a single counter for the count of error encountered thus far. Each part of the sh:or list increases that counter, so when maxErrors === 1, the first failure will immediately break the validation.
I'm guessing that a false-negative would also be reported if there were violations found before the sh:or constraint. Thus, any dismissible error from one of the constituents will reach the allowed max and prevent remaining alternatives from being checked.
From what we have in Cube Creator
A property should pass validation if it satisfy any single one of these constraints. Right now, if one sets
maxErrors = 1
(or at least a number lower than the "OR'ed" shapes) the validator will fail.This happens because there is a single counter for the count of error encountered thus far. Each part of the
sh:or
list increases that counter, so whenmaxErrors === 1
, the first failure will immediately break the validation.I'm guessing that a false-negative would also be reported if there were violations found before the
sh:or
constraint. Thus, any dismissible error from one of the constituents will reach the allowed max and prevent remaining alternatives from being checked.