Class S122MarineProtectedAreaDataset
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
Features
All typed features in the dataset (every concrete S-122 feature type).
public required IReadOnlyList<IS122Feature> Features { get; init; }
Property Value
InformationTypes
All typed information types in the dataset.
public required IReadOnlyList<IS122InformationType> InformationTypes { get; init; }
Property Value
MarineProtectedAreas
Typed Marine Protected Area features (S-122 FC §MarineProtectedArea).
public IReadOnlyList<S122MarineProtectedArea> MarineProtectedAreas { get; }
Property Value
ProductIdentifier
The S-122 product identifier (typically "S-122" or "INT.IHO.S-122…").
public string? ProductIdentifier { get; init; }
Property Value
RestrictedAreas
Typed Restricted Area features (S-122 FC §RestrictedArea).
public IReadOnlyList<S122RestrictedArea> RestrictedAreas { get; }
Property Value
Source
The originating feature-bag dataset.
public required S122Dataset Source { get; init; }
Property Value
VesselTrafficServiceAreas
Typed Vessel Traffic Service Area features (S-122 FC §VesselTrafficServiceArea).
public IReadOnlyList<S122VesselTrafficServiceArea> VesselTrafficServiceAreas { get; }
Property Value
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
datasetS122DatasetThe source dataset to project.
diagnosticsIReadOnlyList<ProjectionDiagnostic>Receives the accumulated projection diagnostics (unresolved xlinks, parse failures, etc.) as an immutable snapshot.
Returns
Exceptions
- ArgumentNullException
If
datasetisnull.- InvalidOperationException
Thrown if the dataset contains neither features nor information types.