Class S111SpeedBandReader
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
xsltStreamStreamStream over the XSLT source. The caller owns the stream.
Returns
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 thangeLtIntervalorgeSemiInterval, or if a lookup label is not a recognisedSurfaceCurrentSpeedBand{N}.