Schema

Basic schema used to validate values against a set of validation rules.

Description

The Schema class provides a basic schema to validate values against a set of validation rules.

Important points

  • This schema is used as a basis for specific schemas to validate objects, project properties, arrays and maps.

Constructors

Creates a new instance of a validation schema and sets its values.

See IValidationRule

public Schema(bool required, List<IValidationRule> rules)

  • required: bool - (optional) true to always require non-null values.
  • rules: List<IValidationRule> - (optional) list with validation rules.

Properties

IsRequired

Gets and sets a flag that always requires non-null values. For null values it raises a validation error.

public bool IsRequired { get; set; }

Rules

Gets and sets validation rules to check values against.

public List<IValidationRule> Rules { get; set; }

Instance methods

MakeOptional

Makes validated values optional. Validation for null values will be skipped. This method returns a reference to this exception to implement the Builder pattern to chain additional calls.

public Schema MakeOptional()

  • returns: Schema - validation schema

MakeRequired

Makes validated values always required (non-null). For null values the schema will raise errors. This method returns a reference to this exception to implement the Builder pattern to chain additional calls.

public Schema MakeRequired()

  • returns: Schema - validation schema

PerformTypeValidation

Validates a given value to match a specified type. The type can be defined as a Schema, type, a type name or TypeCode When type is a Schema, it executes validation recursively against that Schema.

protected void PerformTypeValidation(string path, object type, object value, List<ValidationResult> results)

  • path: string - path to the value in dot notation.
  • type: object - type to match the value type
  • value: object - value to be validated.
  • results: ValidationResult[] - list with validation results.

PerformValidation

Validates a given value against the schema and configured validation rules.

protected internal override void PerformValidation(string path, object value, List<ValidationResult> results)

  • path: string - path to the value in dot notation.
  • value: object - value to be validated.
  • results: List<ValidationResult> - list with validation results.

Validate

Validates the given value and returns validation results. See ValidationResult

public List<ValidationResult> Validate(object value)

  • value: object - value to be validated.
  • returns: List<ValidationResult> - list with validation results.

ValidateAndReturnException

Validates the given value and returns a ValidationException if errors were found.

public ValidationException ValidateAndReturnException(string correlationId, object value, bool strict = false)

  • correlationId: string - (optional) transaction id used to trace execution through the call chain.
  • value: object - value to be validated.
  • strict: bool - true to treat warnings as errors.
  • returns: ValidationException - validation exception.

ValidateAndThrowException

Validates the given value and throws a ValidationException if errors were found.
See ValidationException.throwExceptionIfNeeded

public void ValidateAndThrowException(string correlationId, object value, bool strict = false)

  • correlationId: string - (optional) transaction id used to trace execution through the call chain.
  • value: object - value to be validated.
  • strict: bool - true to treat warnings as errors.

WithRule

Adds validation rule to this schema. This method returns a reference to this exception to implement the Builder pattern to chain additional calls.

public Schema WithRule(IValidationRule rule)

See also