Struct Iso8211RootInfo
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
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
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
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
productIdstringThe canonical product id to look for (e.g.
"S-401").
Returns
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
codeintThe S-57 product specification code to look for.