Table of Contents

Struct Iso8211RootInfo

Namespace
EncDotNet.S100.Datasets.Pipelines
Assembly
EncDotNet.S100.Datasets.Pipelines.dll

A cheap, parse-once view of an ISO 8211 dataset's envelope, handed to each product's DatasetIso8211Matcher so it can recognize its own datasets without re-reading the file. S-100 ISO 8211 products (S-101, S-401) declare themselves in the DSID field's PRSP subfield (e.g. INT.IHO.S-401.1.2). Legacy S-57 is identified instead by the presence of its DSPM field; its PRSP holds a small integer naming the S-57 product specification (1 for a maritime ENC, 10 for an inland ENC), not an S-100 product identifier (S-57 Ed 3.1 Part 3 §7.3.1.1; S-100 Edition 5.2.1 Part 10a).

public readonly record struct Iso8211RootInfo : IEquatable<Iso8211RootInfo>
Implements
Inherited Members

Properties

EncodingSpecification

The declared encoding specification (DSID/ENSP), e.g. S-100 Part 10a. Empty when the dataset declares none. Carried for matchers that need to distinguish encodings; the built-in products discriminate on ProductSpecification alone.

public required string EncodingSpecification { get; init; }

Property Value

string

HasDataSetParameterField

Whether the Data Descriptive Record defines the S-57 DSPM (Data Set Parameter) field, which S-100 ISO 8211 products never carry.

public required bool HasDataSetParameterField { get; init; }

Property Value

bool

ProductSpecification

The declared product specification (DSID/PRSP): an S-100 product identifier such as INT.IHO.S-101.1.0.2, or for legacy S-57 the decimal digits of its numeric code (e.g. 10; see DeclaresS57ProductSpecification(int)). Empty when the dataset declares none (a non-conformant cell).

public required string ProductSpecification { get; init; }

Property Value

string

Methods

DeclaresProduct(string)

Whether ProductSpecification declares productId, comparing canonical "S-NNN" forms so the long-form identifier (INT.IHO.S-401.1.2) matches the product's canonical spec string (S-401).

public bool DeclaresProduct(string productId)

Parameters

productId string

The canonical product id to look for (e.g. "S-401").

Returns

bool

DeclaresS57ProductSpecification(int)

Whether this is a legacy S-57 dataset (HasDataSetParameterField) whose ProductSpecification declares the S-57 product specification code — e.g. InlandElectronicNavigationalChart for an inland ENC. S-57 declares the product specification as a small integer rather than the S-100 long-form identifier (S-57 Edition 3.1 Part 3 §7.3.1.1), so an S-100 cell never satisfies this test.

public bool DeclaresS57ProductSpecification(int code)

Parameters

code int

The S-57 product specification code to look for.

Returns

bool