SC.Validator (sc v1.0.2)

View Source

Validates SCXML documents for structural correctness and semantic consistency.

Catches issues like invalid initial state references, unreachable states, malformed hierarchies, and other problems that could cause runtime errors.

Summary

Functions

Finalize validation with whole-document validations and optimization.

Validate an SCXML document and optimize it for runtime use.

Types

validation_result()

@type validation_result() :: %SC.Validator{
  errors: [String.t()],
  warnings: [String.t()]
}

validation_result_with_document()

@type validation_result_with_document() :: {validation_result(), SC.Document.t()}

Functions

finalize(result, document)

Finalize validation with whole-document validations and optimization.

This callback is called after all individual validations have completed, allowing for validations that require the entire document context. If the document is valid, it will be optimized for runtime performance.

validate(document)

@spec validate(SC.Document.t()) ::
  {:ok, SC.Document.t(), [String.t()]} | {:error, [String.t()], [String.t()]}

Validate an SCXML document and optimize it for runtime use.

Returns {:ok, optimized_document, warnings} if document is valid. Returns {:error, errors, warnings} if document has validation errors. The optimized document includes performance optimizations like lookup maps.