Skip to content

Standards

Jan Bernitt edited this page Feb 4, 2024 · 7 revisions

This page captures the standards implemented by this library and how it deviates from the specifications.

The deviations are on purpose to provide a more uniform and easy to use tool.

Warning

Noncompliant

  • Edge case: The empty path means self or root and cannot be used to select an object's property with empty name. The alternative path notation {} ({<property>} for the property with empty name) can be used instead. However, this also implies that property names starting with a { are understood as special path notation and not as a property name starting with {.

This library only implements the Vocabulary for Structural Validation part of the specification.

Thereby the validation schema is not provided via a JSON schema document but through annotations on the targeted property methods. Therefore all validations are declared on the property method they affect and not on their parent (like in the case of required in the spec).

Note

Remarks

Warning

Noncompliant

  • Divination: required and dependentRequired are not satisfied by a property that is defined null unless also used with acceptNull()
  • Extension: This library's variant of dependentRequired supports more types of conditions and therefore uses a slightly different way of declaration

WIP

JSON Pointer - RFC-6901

Note

Remarks

  • Clarification: (In the context of JSON patch) any path segment containing letters is considered a property name, for example /1e0 is not a array index in exponential notation but the object property named "1e0".