bson_validate_flags_t#
Document validation options
Synopsis#
#include <bson/bson-types.h>
typedef enum {
BSON_VALIDATE_NONE = 0,
BSON_VALIDATE_UTF8 = (1 << 0),
BSON_VALIDATE_DOLLAR_KEYS = (1 << 1),
BSON_VALIDATE_DOT_KEYS = (1 << 2),
BSON_VALIDATE_UTF8_ALLOW_NULL = (1 << 3),
BSON_VALIDATE_EMPTY_KEYS = (1 << 4),
} bson_validate_flags_t;
Description#
bson_validate_flags_t
is a set of binary flags which may be combined to specify a level of BSON document validation.
A value of 0
, false
, or BSON_VALIDATE_NONE
equivalently requests the minimum applicable level of validation.
In the context of validation APIs bson_validate(), bson_validate_with_error(), and bson_validate_with_error_and_offset() the minimum validation still guarantees that a document can be successfully traversed by bson_iter_visit_all().
Higher level APIs using this type may have different minimum validation levels. For example, libmongoc
functions that take bson_validate_flags_t
use 0
to mean the document contents are not visited and malformed headers will not be detected by the client.
Each defined flag aside from BSON_VALIDATE_NONE
describes an optional validation feature that may be enabled, alone or in combination with other features:
BSON_VALIDATE_NONE
Minimum level of validation; inlibbson
, validates element headers.BSON_VALIDATE_UTF8
All keys and string values are checked for invalid UTF-8.BSON_VALIDATE_UTF8_ALLOW_NULL
String values are allowed to have embedded NULL bytes.BSON_VALIDATE_DOLLAR_KEYS
Prohibit keys that start with$
outside of a “DBRef” subdocument.BSON_VALIDATE_DOT_KEYS
Prohibit keys that contain.
anywhere in the string.BSON_VALIDATE_EMPTY_KEYS
Prohibit zero-length keys.
See also