A config value must match its declared type
R6.d through R6.h are one check with several arms. They share a code and a locator and stop at the first violation, so a reader of the result sees at most one error per config key.
The rule
Normative: this is the rule
- A config value whose type does not match the
typeits schema declares is refused withR6_CONFIG_INVALIDatnode.{id}.config.{key}, where{id}is the node's id and{key}the config key. - A schema that declares no
type, or one that declares a type name the implementation does not recognise, imposes no type constraint and the value passes. - R6.d to R6.h all raise this same code at this same locator and are evaluated in one fixed order (type, then
enum, thenminimum,maximum,minLength,maxLength,pattern) stopping at the first violation, so one config key never yields more than one error. - The arms are distinguished by the error's message, not by its code.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · R6.d · changed in spec 1.0