# Validator class

class rapidjson.Validator(json_schema)
  Parameters

    json_schema – the JSON schema, specified as a `str` instance or an UTF-8 `bytes` instance

  Raises

    JSONDecodeError – if json_schema is not a valid `JSON` value

  __call__(json)
    Parameters

      json – the `JSON` value, specified as a `str` instance or an UTF-8 `bytes` instance, that will be validated

    Raises

      JSONDecodeError – if json is not a valid `JSON` value

    The given json value will be validated accordingly to the schema: a `ValidationError` will be raised if the validation fails, and the exception will contain three arguments, respectively the type of the error, the position in the schema and the position in the `JSON` document where the error occurred:

        >>> validate = Validator('{"required": ["a", "b"]}')
        >>> validate('{"a": null, "b": 1}')
        >>> try:
        ...   validate('{"a": null, "c": false}')
        ... except ValidationError as error:
        ...   print(error.args)
        ...
        ('required', '#', '#')

        >>> validate = Validator('{"type": "array",'
        ...                      ' "items": {"type": "string"},'
        ...                      ' "minItems": 1}')
        >>> validate('["foo", "bar"]')
        >>> try:
        ...   validate('[]')
        ... except ValidationError as error:
        ...   print(error.args)
        ...
        ('minItems', '#', '#')

        >>> try:
        ...   validate('[1]')
        ... except ValidationError as error:
        ...   print(error.args)
        ...
        ('type', '#/items', '#/0')

    When json is not a valid JSON document, a `JSONDecodeError` is raised instead:

        >>> validate('x')
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
        rapidjson.JSONDecodeError: Invalid JSON