Table of Contents

Class S127MarineServicesDataset

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

Strongly-typed projection of an S127Dataset as a graph of typed S-127 features (S-127 Edition 2.0.0 — Marine Resources and Services).

public sealed class S127MarineServicesDataset
Inheritance
S127MarineServicesDataset
Inherited Members

Remarks

The projection follows the S-124 / S-125 / S-128 / S-201 pattern: a static From(S127Dataset, out IReadOnlyList<ProjectionDiagnostic>) factory walks the source feature bag and produces typed shapes (S127PilotBoardingPlace, S127RouteingMeasure, S127VesselTrafficServiceArea, S127SignalStation, S127RegulatedArea, S127ShipReportingService, S127Authority) implementing IS127Feature. FC codes that the typed model does not break out individually fall through to S127OtherFeature; geometry survives in all cases.

Feature-to-feature xlink:href bindings (e.g. the theAuthority role on a service feature) are resolved into typed IS127Feature references after a two-pass projection so that referent objects are fully constructed before binding. Unresolved targets surface as ProjectionDiagnostic entries with code "xlink.unresolved"; the projection never throws for a missing target.

S-127 Edition 2.0.0 declares no information types; the InformationTypes bag is preserved for forward compatibility but the projection does nothing with it today.

Properties

Authorities

Convenience filter — every S127Authority in the dataset.

public required IReadOnlyList<S127Authority> Authorities { get; init; }

Property Value

IReadOnlyList<S127Authority>

DatasetIdentifier

The dataset identifier carried by the source GML root gml:id.

public string? DatasetIdentifier { get; init; }

Property Value

string

Features

All typed features in source order. Includes every concrete typed shape (S127PilotBoardingPlace et al.) plus S127Authority and S127OtherFeature.

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

Property Value

IReadOnlyList<IS127Feature>

OtherFeatures

Convenience filter — every S127OtherFeature in the dataset.

public required IReadOnlyList<S127OtherFeature> OtherFeatures { get; init; }

Property Value

IReadOnlyList<S127OtherFeature>

ProductIdentifier

The S-127 product identifier (typically "S-127").

public string? ProductIdentifier { get; init; }

Property Value

string

Source

The originating feature-bag dataset.

public required S127Dataset Source { get; init; }

Property Value

S127Dataset

Methods

From(S127Dataset, out IReadOnlyList<ProjectionDiagnostic>)

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

public static S127MarineServicesDataset From(S127Dataset dataset, out IReadOnlyList<ProjectionDiagnostic> diagnostics)

Parameters

dataset S127Dataset

The source dataset to project.

diagnostics IReadOnlyList<ProjectionDiagnostic>

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

Returns

S127MarineServicesDataset

Exceptions

ArgumentNullException

If dataset is null.

InvalidOperationException

Thrown when the source dataset contains no features and no information types.