Table of Contents

Class S111SpeedBandReader

Namespace
EncDotNet.S100.Datasets.S111
Assembly
EncDotNet.S100.Datasets.S111.dll

Parses the surface-current speed-band table from the bundled Rules/select_arrow.xsl transform shipped with the S-111 portrayal catalogue (Ed 2.0.0, S-100 Part 9 ยง11).

public static class S111SpeedBandReader
Inheritance
S111SpeedBandReader
Inherited Members

Remarks

The XSLT contains one <lookup> element per speed band (SurfaceCurrentSpeedBand1 .. SurfaceCurrentSpeedBand9) whose <range> child carries lower, upper and closure attributes. Three <xsl:variable> declarations (scaleFloor, scaleCeiling, scaleFactorIntermediate) hold the symbol-scaling constants that bands 1-3 / 4-8 / 9 reference respectively.

This reader extracts the table only; the rule logic (how bands map to colour tokens / symbol references / which scale constant applies) stays in S111PortrayalCatalogue.

Methods

Read(Stream)

Parses select_arrow.xsl and returns the speed-band table in lookup-definition order.

public static IReadOnlyList<S111SpeedBandReader.SpeedBand> Read(Stream xsltStream)

Parameters

xsltStream Stream

Stream over the XSLT source. The caller owns the stream.

Returns

IReadOnlyList<S111SpeedBandReader.SpeedBand>

Exceptions

InvalidOperationException

Thrown if the XSLT is missing one of the three scale-factor variables (scaleFloor, scaleCeiling, scaleFactorIntermediate), or if a <range> uses a closure value other than geLtInterval or geSemiInterval, or if a lookup label is not a recognised SurfaceCurrentSpeedBand{N}.