Skip to content
Back to top

# bson_validate_with_error_and_offset()

## Synopsis

    bool
    bson_validate_with_error_and_offset (const bson_t *bson,
                                         bson_validate_flags_t flags,
                                         size_t *offset,
                                         bson_error_t *error)

## Parameters

- `bson`: A bson_t.

- `flags`: A bitwise-or of all desired bson_validate_flags_t.

- `offset`: Optional location where the error offset will be written.

- `error`: Optional bson_error_t.

## Description

Validates a BSON document by walking through the document and inspecting the keys and values for valid content.

You can modify how the validation occurs through the use of the `flags` parameter, see bson_validate_flags_t for details.

## Returns

If `bson` passes the requested validations, returns true. Otherwise, returns false and writes each non-NULL output parameter: `offset` with the byte offset of the detected error and `error` with the details.

The bson_error_t domain is set to `BSON_ERROR_INVALID`. Its code is set to one of the `bson_validate_flags_t` flags indicating which validation failed; for example, if a key contains invalid UTF-8, then the code is set to `BSON_VALIDATE_UTF8`, but if the basic structure of the BSON document is corrupt, the code is set to `BSON_VALIDATE_NONE`. The error message is filled out, and gives more detail if possible.

See also

bson_validate(), bson_validate_with_error().
bson_visitor_t can be used for custom validation, Example Custom Validation.