Table of Contents

Class S122MarineProtectedAreaDataset

Namespace
EncDotNet.S100.Datasets.S122.DataModel
Assembly
EncDotNet.S100.Datasets.S122.dll

Strongly-typed projection of an S122Dataset as a catalogue of Marine Protected Areas and related zoned features (S-122 FC 2.0.0 § Marine Protected Area Product Specification).

public sealed class S122MarineProtectedAreaDataset
Inheritance
S122MarineProtectedAreaDataset
Inherited Members

Remarks

S-122 datasets carry a heterogeneous collection of zoned features (S122MarineProtectedArea, S122RestrictedArea, S122VesselTrafficServiceArea, …) plus a set of non-geographic information types (S122Authority, S122Regulations, S122ContactDetails, S122SpatialQuality, …) which features bind to via xlink:href associations such as theAuthority, theInformation, theCartographicText.

The projection mirrors the S-125 / S-201 pattern: a static From(S122Dataset, out IReadOnlyList<ProjectionDiagnostic>) factory walks the source feature bag and produces a graph of typed shapes. Each typed feature exposes both the raw References collection and the resolved InformationReferences / FeatureReferences bindings.

Projection issues — unresolved xlinks, attribute parse failures — surface as ProjectionDiagnostic entries rather than exceptions. The projection only throws when the source dataset has no features and no information types (i.e. is fully empty).

Properties

DatasetIdentifier

The dataset identifier carried by the source GML Dataset element.

public string? DatasetIdentifier { get; init; }

Property Value

string

Features

All typed features in the dataset (every concrete S-122 feature type).

public required IReadOnlyList<IS122Feature> Features { get; init; }

Property Value

IReadOnlyList<IS122Feature>

InformationTypes

All typed information types in the dataset.

public required IReadOnlyList<IS122InformationType> InformationTypes { get; init; }

Property Value

IReadOnlyList<IS122InformationType>

MarineProtectedAreas

Typed Marine Protected Area features (S-122 FC §MarineProtectedArea).

public IReadOnlyList<S122MarineProtectedArea> MarineProtectedAreas { get; }

Property Value

IReadOnlyList<S122MarineProtectedArea>

ProductIdentifier

The S-122 product identifier (typically "S-122" or "INT.IHO.S-122…").

public string? ProductIdentifier { get; init; }

Property Value

string

RestrictedAreas

Typed Restricted Area features (S-122 FC §RestrictedArea).

public IReadOnlyList<S122RestrictedArea> RestrictedAreas { get; }

Property Value

IReadOnlyList<S122RestrictedArea>

Source

The originating feature-bag dataset.

public required S122Dataset Source { get; init; }

Property Value

S122Dataset

VesselTrafficServiceAreas

Typed Vessel Traffic Service Area features (S-122 FC §VesselTrafficServiceArea).

public IReadOnlyList<S122VesselTrafficServiceArea> VesselTrafficServiceAreas { get; }

Property Value

IReadOnlyList<S122VesselTrafficServiceArea>

Methods

From(S122Dataset, out IReadOnlyList<ProjectionDiagnostic>)

Projects a feature-bag S122Dataset into the typed data model. Issues encountered during projection are reported via diagnostics; the projection only throws for a fully empty source.

public static S122MarineProtectedAreaDataset From(S122Dataset dataset, out IReadOnlyList<ProjectionDiagnostic> diagnostics)

Parameters

dataset S122Dataset

The source dataset to project.

diagnostics IReadOnlyList<ProjectionDiagnostic>

Receives the accumulated projection diagnostics (unresolved xlinks, parse failures, etc.) as an immutable snapshot.

Returns

S122MarineProtectedAreaDataset

Exceptions

ArgumentNullException

If dataset is null.

InvalidOperationException

Thrown if the dataset contains neither features nor information types.