Table of Contents

Class FeatureCatalogue

Namespace
EncDotNet.S100.Features
Assembly
EncDotNet.S100.Features.dll

An S-100 Part 5 Feature Catalogue: the root of the model produced by FeatureCatalogueReader. It carries the catalogue's identity and producer plus every FeatureType, InformationType, attribute, Role and association the product specification defines. Wrap it in a FeatureCatalogueDecoder for code-to-name lookups.

public sealed class FeatureCatalogue
Inheritance
FeatureCatalogue
Inherited Members

Properties

CatalogueRef

The Feature Catalogue identity tuple (ProductId, VersionNumber) projected into a strongly-typed CatalogueRef, or null when either field is missing or unparseable. This is the preferred way to identify a catalogue instance for caching and compatibility checks (S-100 Edition 5.2.1 Part 2 ยง6).

public CatalogueRef? CatalogueRef { get; init; }

Property Value

CatalogueRef?

Classification

Security classification of the catalogue (S100FC:classification), or null when absent.

public string? Classification { get; init; }

Property Value

string

ComplexAttributes

Complex attributes (S100_FC_ComplexAttributes), in catalogue order; empty when the section is absent.

public IReadOnlyList<ComplexAttribute> ComplexAttributes { get; init; }

Property Value

IReadOnlyList<ComplexAttribute>

FeatureAssociations

Feature associations (S100_FC_FeatureAssociations), in catalogue order; empty when the section is absent.

public IReadOnlyList<FeatureAssociation> FeatureAssociations { get; init; }

Property Value

IReadOnlyList<FeatureAssociation>

FeatureTypes

Feature types (S100_FC_FeatureTypes), in catalogue order; empty when the section is absent.

public IReadOnlyList<FeatureType> FeatureTypes { get; init; }

Property Value

IReadOnlyList<FeatureType>

FieldOfApplication

Intended use of the catalogue (S100FC:fieldOfApplication), e.g. "Marine Navigation"; null when absent.

public string? FieldOfApplication { get; init; }

Property Value

string

InformationAssociations

Information associations (S100_FC_InformationAssociations), in catalogue order; empty when the section is absent.

public IReadOnlyList<InformationAssociation> InformationAssociations { get; init; }

Property Value

IReadOnlyList<InformationAssociation>

InformationTypes

Information types (S100_FC_InformationTypes), in catalogue order; empty when the section is absent.

public IReadOnlyList<InformationType> InformationTypes { get; init; }

Property Value

IReadOnlyList<InformationType>

Name

Title of the catalogue (S100FC:name).

public required string Name { get; init; }

Property Value

string

Producer

Organisation responsible for the catalogue (S100FC:producer), or null when absent.

public Producer? Producer { get; init; }

Property Value

Producer

ProductId

The product specification this Feature Catalogue targets, as declared in <S100FC:productId> (e.g. "S-101"). May be null when the source XML omits the element (some legacy bundled catalogues such as S-421 do not declare it).

public string? ProductId { get; init; }

Property Value

string

Roles

Association roles (S100_FC_Roles), in catalogue order; empty when the section is absent.

public IReadOnlyList<Role> Roles { get; init; }

Property Value

IReadOnlyList<Role>

Scope

Subject domain the catalogue covers (S100FC:scope), or null when absent.

public string? Scope { get; init; }

Property Value

string

SimpleAttributes

Simple attributes (S100_FC_SimpleAttributes), in catalogue order; empty when the section is absent.

public IReadOnlyList<SimpleAttribute> SimpleAttributes { get; init; }

Property Value

IReadOnlyList<SimpleAttribute>

VersionDate

Publication date of this version, verbatim from S100FC:versionDate (normally yyyy-MM-dd); not parsed. Empty when the element is absent.

public required string VersionDate { get; init; }

Property Value

string

VersionNumber

Catalogue version as written in S100FC:versionNumber, e.g. "2.0.0".

public required string VersionNumber { get; init; }

Property Value

string