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
FeatureAssociations
Feature-to-feature associations attached to the feature, in record order.
public IReadOnlyList<S101FeatureAssociation> FeatureAssociations { get; }
Property Value
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
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
InformationAssociations
Feature-to-information-type associations attached to the feature, in record order.
public IReadOnlyList<S101InformationAssociation> InformationAssociations { get; }
Property Value
Raw
The underlying ISO 8211 feature record this view wraps.
public S101FeatureRecord Raw { get; }
Property Value
SpatialAssociations
Spatial associations attached to the feature, in record order.
public IReadOnlyList<S101SpatialAssociation> SpatialAssociations { get; }
Property Value
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
acronymstring
Returns
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
acronymstring
Returns
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
acronymstring
Returns
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.