Table of Contents

Class S101FeatureView

Namespace
EncDotNet.S100.Datasets.S101.Validation
Assembly
EncDotNet.S100.Datasets.S101.dll

A spec-vocabulary view over a single S101FeatureRecord.

public sealed class S101FeatureView
Inheritance
S101FeatureView
Inherited Members

Remarks

Implements the façade contract described in docs/design/non-gml-validation.md §3.1 (input model option (b)). Rules read feature-type acronyms and attribute acronyms; the raw record (with numeric codes, complex-attribute marker rows, spatial-record references, etc.) is reachable through the underlying Raw when needed.

Per the design note's closing paragraph of §3.1, this façade is deliberately a strict superset of what a future fully typed projection (option (d)) would expose. Rules MUST NOT introduce dependencies on S101FeatureRecord through this view type — anything that requires raw-record access goes via Raw.

Properties

Attributes

Flat list of attribute rows for the feature, one view per ISO 8211 ATTR row. Complex-attribute marker rows are preserved so rule authors who need the raw ordering can iterate them.

public IReadOnlyList<S101AttributeView> Attributes { get; }

Property Value

IReadOnlyList<S101AttributeView>

FeatureAssociations

Feature-to-feature associations attached to the feature, in record order.

public IReadOnlyList<S101FeatureAssociation> FeatureAssociations { get; }

Property Value

IReadOnlyList<S101FeatureAssociation>

FeatureTypeAcronym

Feature-type acronym resolved through FeatureTypeCatalogue — for example "DepthArea". null when FeatureTypeCode does not appear in the catalogue (the failure mode reported by S101-R-1.1).

public string? FeatureTypeAcronym { get; }

Property Value

string

FoidKey

FOID triple (producing agency, FIDN, FIDS) projected into the canonical string form used by the design note §4.3: "{producingAgency}:{FIDN}.{FIDS}". This is the value rule authors attach to RelatedFeatureId on findings.

public string FoidKey { get; }

Property Value

string

InformationAssociations

Feature-to-information-type associations attached to the feature, in record order.

public IReadOnlyList<S101InformationAssociation> InformationAssociations { get; }

Property Value

IReadOnlyList<S101InformationAssociation>

Raw

The underlying ISO 8211 feature record this view wraps.

public S101FeatureRecord Raw { get; }

Property Value

S101FeatureRecord

SpatialAssociations

Spatial associations attached to the feature, in record order.

public IReadOnlyList<S101SpatialAssociation> SpatialAssociations { get; }

Property Value

IReadOnlyList<S101SpatialAssociation>

Methods

ComplexAttributes(string)

Returns every complex-attribute instance whose parent acronym matches acronym. Each instance is the (possibly empty) slice of sub-attribute rows that followed its marker row in the original record.

public IReadOnlyList<IReadOnlyList<S101AttributeView>> ComplexAttributes(string acronym)

Parameters

acronym string

Returns

IReadOnlyList<IReadOnlyList<S101AttributeView>>

GetAllSimple(string)

Returns every simple-attribute row whose acronym matches acronym. Useful for rules that need to inspect every value of a repeating simple attribute.

public IEnumerable<S101AttributeView> GetAllSimple(string acronym)

Parameters

acronym string

Returns

IEnumerable<S101AttributeView>

GetSimple(string)

Convenience accessor for a simple attribute identified by acronym. Returns the value of the first matching row, or null when the attribute is absent.

public string? GetSimple(string acronym)

Parameters

acronym string

Returns

string

Remarks

Multi-valued simple attributes (the rare case where the same acronym appears more than once on a feature) require rule authors to iterate Attributes directly; this method is shaped for the dominant single-valued case.