Class S127MarineServicesDataset
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
DatasetIdentifier
The dataset identifier carried by the source GML root gml:id.
public string? DatasetIdentifier { get; init; }
Property Value
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
OtherFeatures
Convenience filter — every S127OtherFeature in the dataset.
public required IReadOnlyList<S127OtherFeature> OtherFeatures { get; init; }
Property Value
ProductIdentifier
The S-127 product identifier (typically "S-127").
public string? ProductIdentifier { get; init; }
Property Value
Source
The originating feature-bag dataset.
public required S127Dataset Source { get; init; }
Property Value
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
datasetS127DatasetThe source dataset to project.
diagnosticsIReadOnlyList<ProjectionDiagnostic>Receives the accumulated projection diagnostics (unresolved xlinks, attribute parse failures, etc.) as an immutable snapshot.
Returns
Exceptions
- ArgumentNullException
If
datasetisnull.- InvalidOperationException
Thrown when the source dataset contains no features and no information types.