Table of Contents

Class ValidationFinding

Namespace
EncDotNet.S100.Validation
Assembly
EncDotNet.S100.Core.dll

A single finding emitted by an IValidationRule<TModel>.

public sealed record ValidationFinding : IEquatable<ValidationFinding>
Inheritance
ValidationFinding
Implements
Inherited Members

Remarks

Findings are intended to be both machine-actionable (via RuleId) and human-readable (via Message). Rule identifiers should trace back to a clause of the relevant IHO product specification — for example "S421-R-3.1" for clause 3.1 of S-421 — so that consumers can cite the normative requirement that has been violated.

Either Point or BoundingBox (or neither) may be populated to give the finding a spatial location. This enables downstream consumers — such as the viewer's finding layer or an MCP agent — to surface findings spatially.

Properties

BoundingBox

Optional bounding rectangle associated with the finding (e.g. the envelope of an out-of-range coverage extent). Set on findings whose natural spatial extent is an area rather than a single point.

public BoundingBox? BoundingBox { get; init; }

Property Value

BoundingBox

DatasetId

Identifier of the dataset the finding relates to, when the rule was evaluated in a context that has a dataset identity.

public string? DatasetId { get; init; }

Property Value

string

Message

Human-readable description of the finding.

public required string Message { get; init; }

Property Value

string

Point

Optional point location associated with the finding (e.g. the position of a waypoint outside the legal lat/lon range).

public GeoPosition? Point { get; init; }

Property Value

GeoPosition?

RelatedFeatureId

Identifier of the feature, information type, or other addressable object within the dataset the finding relates to (typically a gml:id).

public string? RelatedFeatureId { get; init; }

Property Value

string

RuleId

Stable identifier for the rule that emitted this finding, traceable to a spec clause (e.g. "S421-R-3.1").

public required string RuleId { get; init; }

Property Value

string

Severity

The severity assigned to this finding.

public required ValidationSeverity Severity { get; init; }

Property Value

ValidationSeverity