view flys-artifacts/doc/conf/themes.xml @ 5779:ebec12def170

Datacage: Add a pool of builders to make it multi threadable. XML DOM is not thread safe. Therefore the old implementation only allowed one thread to use the builder at a time. As the complexity of the configuration has increased over time this has become a bottleneck of the whole application because it took quiet some time to build a result. Furthermore the builder code path is visited very frequent. So many concurrent requests were piled up resulting in long waits for the users. To mitigate this problem a round robin pool of builders is used now. Each of the pooled builders has an independent copy of the XML template and can be run in parallel. The number of builders is determined by the system property 'flys.datacage.pool.size'. It defaults to 4.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 21 Apr 2013 12:48:09 +0200
parents fe2472e28a72
children a5d4904e6bb2
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE themes [
    <!ENTITY virtual-themes SYSTEM "conf/themes/virtual.xml">
    <!ENTITY general SYSTEM "conf/themes/default/general.xml">
    <!ENTITY longitudinal-section SYSTEM "conf/themes/default/longitudinal-section.xml">
    <!ENTITY cross-section SYSTEM "conf/themes/default/cross-section.xml">
    <!ENTITY discharge SYSTEM "conf/themes/default/discharge.xml">
    <!ENTITY duration SYSTEM "conf/themes/default/duration.xml">
    <!ENTITY fixings SYSTEM "conf/themes/default/fixings.xml">
    <!ENTITY floodmap SYSTEM "conf/themes/default/floodmap.xml">
    <!ENTITY historical-discharge SYSTEM "conf/themes/default/historical-discharge.xml">
    <!ENTITY reference SYSTEM "conf/themes/default/reference.xml">
    <!ENTITY sq-relation SYSTEM "conf/themes/default/sq-relation.xml">

    <!ENTITY general_sec SYSTEM "conf/themes/second/general.xml">
    <!ENTITY longitudinal-section_sec SYSTEM "conf/themes/second/longitudinal-section.xml">
    <!ENTITY cross-section_sec SYSTEM "conf/themes/second/cross-section.xml">
    <!ENTITY discharge_sec SYSTEM "conf/themes/second/discharge.xml">
    <!ENTITY duration_sec SYSTEM "conf/themes/second/duration.xml">
    <!ENTITY fixings_sec SYSTEM "conf/themes/second/fixings.xml">
    <!ENTITY floodmap_sec SYSTEM "conf/themes/second/floodmap.xml">
    <!ENTITY historical-discharge_sec SYSTEM "conf/themes/second/historical-discharge.xml">
    <!ENTITY reference_sec SYSTEM "conf/themes/second/reference.xml">
    <!ENTITY sq-relation_sec SYSTEM "conf/themes/second/sq-relation.xml">
]>
<themes>
    &virtual-themes;

    <themegroup name="default">
      &longitudinal-section;
      &cross-section;
      &discharge;
      &duration;
      &fixings;
      &floodmap;
      &historical-discharge;
      &reference;
      &sq-relation;
      &general;
    </themegroup>
    <themegroup name="second">
      &longitudinal-section_sec;
      &cross-section_sec;
      &discharge_sec;
      &duration_sec;
      &fixings_sec;
      &floodmap_sec;
      &historical-discharge_sec;
      &reference_sec;
      &sq-relation_sec;
      &general_sec;
    </themegroup>

    <!-- Mappings are following now. A mapping maps between a name of a facet 
        and a theme. Always the first matching mapping is taken, so consider putting 
        most specific mappings on top of the list. -->
    <mappings>
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ1)(\D.*)*" to="LongitudinalSectionW_HQ1_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ2)(\D.*)*" to="LongitudinalSectionW_HQ2_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ5)(\D.*)*" to="LongitudinalSectionW_HQ5_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ10)(\D.*)*" to="LongitudinalSectionW_HQ10_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ20)(\D.*)*" to="LongitudinalSectionW_HQ20_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ25)(\D.*)*" to="LongitudinalSectionW_HQ25_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ50)(\D.*)*" to="LongitudinalSectionW_HQ50_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ100)(\D.*)*" to="LongitudinalSectionW_HQ100_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ200)(\D.*)*" to="LongitudinalSectionW_HQ200_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ300)(\D.*)*" to="LongitudinalSectiLEVEL >= DEBUGonW_HQ300_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ500)(\D.*)*" to="LongitudinalSectionW_HQ500_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQ1000)(\D.*)*" to="LongitudinalSectionW_HQ1000_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HQExtrem)(\D.*)*" to="LongitudinalSectionW_HQExtrem_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
           pattern=".*(HQRZ)(\D.*)*" to="LongitudinalSectionW_HQRZ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(HSQ)(\D.*)*" to="LongitudinalSectionW_HSQ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(MHQ)(\D.*)*" to="LongitudinalSectionW_MHQ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(MNQ)(\D.*)*" to="LongitudinalSectionW_MNQ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(MQ)(\D.*)*" to="LongitudinalSectionW_MQ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
            pattern=".*(NQ)(\D.*)*" to="LongitudinalSectionW_NQ_Points" />
        <mapping from="longitudinal_section.w" masterAttr="ld_mode==location"
           to="LongitudinalSectionPoints" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ1)(\D.*)*"
           to="LongitudinalSectionW_HQ1" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ2)(\D.*)*"
           to="LongitudinalSectionW_HQ2" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ5)(\D.*)*"
            to="LongitudinalSectionW_HQ5" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ10)(\D.*)*"
            to="LongitudinalSectionW_HQ10" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ20)(\D.*)*"
            to="LongitudinalSectionW_HQ20" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ25)(\D.*)*"
            to="LongitudinalSectionW_HQ25" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ50)(\D.*)*"
            to="LongitudinalSectionW_HQ50" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ100)(\D.*)*"
            to="LongitudinalSectionW_HQ100" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ200)(\D.*)*"
            to="LongitudinalSectionW_HQ200" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ300)(\D.*)*"
            to="LongitudinalSectionW_HQ300" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ500)(\D.*)*"
            to="LongitudinalSectionW_HQ500" />
        <mapping from="longitudinal_section.w" pattern=".*(HQ1000)(\D.*)*"
            to="LongitudinalSectionW_HQ1000" />
        <mapping from="longitudinal_section.w" pattern=".*(HQExtrem)(\D.*)*"
            to="LongitudinalSectionW_HQExtrem" />
        <mapping from="longitudinal_section.w" pattern=".*(HQRZ)(\D.*)*"
            to="LongitudinalSectionW_HQRZ" />
        <mapping from="longitudinal_section.w" pattern=".*(HSQ)(\D.*)*"
            to="LongitudinalSectionW_HSQ" />
        <mapping from="longitudinal_section.w" pattern=".*(MHQ)(\D.*)*"
            to="LongitudinalSectionW_MHQ" />
        <mapping from="longitudinal_section.w" pattern=".*(MNQ)(\D.*)*"
            to="LongitudinalSectionW_MNQ" />
        <mapping from="longitudinal_section.w" pattern=".*(MQ)(\D.*)*"
            to="LongitudinalSectionW_MQ" />
        <mapping from="longitudinal_section.w" pattern=".*(NQ)(\D.*)*"
            to="LongitudinalSectionW_NQ" />
        <mapping from="longitudinal_section.w" to="LongitudinalSectionW" />
        <mapping from="longitudinal_section.q" pattern="(HQ1)(\D.*)*"
            to="LongitudinalSectionQ_HQ1" />
        <mapping from="longitudinal_section.q" pattern="(HQ2)(\D.*)*"
            to="LongitudinalSectionQ_HQ2" />
        <mapping from="longitudinal_section.q" pattern="(HQ5)(\D.*)*"
            to="LongitudinalSectionQ_HQ5" />
        <mapping from="longitudinal_section.q" pattern="(HQ10)(\D.*)*"
            to="LongitudinalSectionQ_HQ10" />
        <mapping from="longitudinal_section.q" pattern="(HQ20)(\D.*)*"
            to="LongitudinalSectionQ_HQ20" />
        <mapping from="longitudinal_section.q" pattern="(HQ25)(\D.*)*"
            to="LongitudinalSectionQ_HQ25" />
        <mapping from="longitudinal_section.q" pattern="(HQ50)(\D.*)*"
            to="LongitudinalSectionQ_HQ50" />
        <mapping from="longitudinal_section.q" pattern="(HQ100)(\D.*)*"
            to="LongitudinalSectionQ_HQ100" />
        <mapping from="longitudinal_section.q" pattern="(HQ200)(\D.*)*"
            to="LongitudinalSectionQ_HQ200" />
        <mapping from="longitudinal_section.q" pattern="(HQ300)(\D.*)*"
            to="LongitudinalSectionQ_HQ300" />
        <mapping from="longitudinal_section.q" pattern="(HQ500)(\D.*)*"
            to="LongitudinalSectionQ_HQ500" />
        <mapping from="longitudinal_section.q" pattern="(HQ1000)(\D.*)*"
            to="LongitudinalSectionQ_HQ1000" />
        <mapping from="longitudinal_section.q" pattern="(HQExtrem)(\D.*)*"
            to="LongitudinalSectionQ_HQExtrem" />
        <mapping from="longitudinal_section.q" pattern="(HQRZ)(\D.*)*"
            to="LongitudinalSectionQ_HQRZ" />
        <mapping from="longitudinal_section.q" pattern="(HSQ)(\D.*)*"
            to="LongitudinalSectionQ_HSQ" />
        <mapping from="longitudinal_section.q" pattern="(MHQ)(\D.*)*"
            to="LongitudinalSectionQ_MHQ" />
        <mapping from="longitudinal_section.q" pattern="(MNQ)(\D.*)*"
            to="LongitudinalSectionQ_MNQ" />
        <mapping from="longitudinal_section.q" pattern="(MQ)(\D.*)*"
            to="LongitudinalSectionQ_MQ" />
        <mapping from="longitudinal_section.q" pattern="(NQ)(\D.*)*"
            to="LongitudinalSectionQ_NQ" />
        <mapping from="longitudinal_section.q" to="LongitudinalSection" />
        <mapping from="discharge_longitudinal_section.q.infolding" to="LongitudinalSectionQInfolding" />
        <mapping from="discharge_longitudinal_section.q.cutting" to="LongitudinalSectionQInfoldCut" />

        <mapping from="discharge_curve.curve" to="DischargeCurve" />
        <mapping from="historical_discharge.historicalq" to="HistoricalDischargeCurveQ" />
        <mapping from="historical_discharge.historicalq.diff" to="HistoricalDischargeCurveQDiff" />
        <mapping from="historical_discharge.historicalw" to="HistoricalDischargeCurveW" />
        <mapping from="historical_discharge.historicalw.diff" to="HistoricalDischargeCurveWDiff" />
        <mapping from="historical_discharge.wq.curve" to="HistoricalDischargeWQCurve" />
        <mapping from="historical_discharge.wq.w" to="HistoricalDischargeWQW" />
        <mapping from="historical_discharge.wq.q" to="HistoricalDischargeWQQ" />
        <mapping from="cross_section" to="CrossSection" />
        <mapping from="cross_section_water_line" to="CrossSectionWaterLine" />
        <mapping from="computed_discharge_curve.q" to="ComputedDischargeCurve" />
        <mapping from="duration_curve.w" to="DurationCurveW" />
        <mapping from="duration_curve.q" to="DurationCurveQ" />
        <mapping from="discharge_longitudinal_section.w" to="DischargeLongitudinalSectionW" />
        <mapping from="discharge_longitudinal_section.c" to="DischargeLongitudinalSectionC" />
        <mapping from="discharge_longitudinal_section.q" to="DischargeLongitudinalSectionQ" />
        <mapping from="computed_discharge_curve.mainvalues.q" to="MainValuesQ" />
        <mapping from="computed_discharge_curve.mainvalues.w" to="MainValuesW" />
        <mapping from="duration_curve.mainvalues.q" to="MainValuesQ" />
        <mapping from="mainvalues.q" to="MainValuesQ" />
        <mapping from="mainvalues.w" to="MainValuesW" />
        <mapping from="longitudinal_section.annotations" to="Annotations" />
        <mapping from="w_differences" to="Differences" />
        <mapping from="floodmap.wsplgen" to="WSPLGEN" />
        <mapping from="floodmap.riveraxis" to="RiverAxis" />
        <mapping from="floodmap.kms" to="Kms" />
        <mapping from="floodmap.qps" to="Qps" />
        <mapping from="floodmap.hws_lines" to="Hws" />
        <mapping from="floodmap.hws_points" to="HwsPoints" />
        <mapping from="floodmap.hydr_boundaries" to="HydrBoundariesLines" />
        <mapping from="floodmap.hydr_boundaries_poly" to="HydrBoundariesPolys" />
        <mapping from="floodmap.catchment" to="Catchment" />
        <mapping from="floodmap.floodplain" to="Floodplains" />
        <mapping from="floodmap.lines" to="FloodmapLines" />
        <mapping from="floodmap.buildings" to="Buildings" />
        <mapping from="floodmap.fixpoints" to="Fixpoints" />
        <mapping from="floodmap.floodmarks" to="Floodmarks" />
        <mapping from="floodmap.floodmaps" to="Floodmaps" />
        <mapping from="floodmap.gauge_location" to="GaugeLocation" />
        <mapping from="floodmap.jetties" to="Jetties" />
        <mapping from="other.wq" to="WQPoints" />
        <mapping from="other.wkms" to="WKms" />
        <mapping from="other.wkms.marks" to="WKmsAnnotation" />
        <mapping from="other.wqkms" to="WQKms" />
        <mapping from="other.wqkms.w" to="WQKms" />
        <mapping from="other.wqkms.q" to="WQKms" />
        <mapping from="heightmarks_points" to="heightmarks_points" />
        <mapping from="area" to="Area" />
        <mapping from="cross_section.area" to="CrossSectionArea" />
        <mapping from="hyk" to="Hyk" />
        <mapping from="longitudinal_section.area" to="LongitudinalSectionArea" />
        <mapping from="longitudinal_section.manualpoints" to="ManualPoints" />
        <mapping from="cross_section.manualpoints" to="ManualPoints" />
        <mapping from="cross_section.manualline" to="CrossSectionWaterLine" />
        <mapping from="computed_discharge_curve.manualpoints" to="ManualPoints" />
        <mapping from="duration_curve.manualpoints" to="ManualPoints" />
        <mapping from="wdifferences.manualpoints" to="ManualPoints" />
        <mapping from="discharge_longitudinal_section.manualpoints"
            to="ManualPoints" />
        <mapping from="discharge_curve.manualpoints" to="ManualPoints" />
        <mapping from="reference_curve.manualpoints" to="ManualPoints" />
        <mapping from="reference_curve_normalized.manualpoints" to="ManualPoints" />
        <mapping from="historical_discharge.manualpoints" to="ManualPoints" />
        <mapping from="manualpoints" to="ManualPoints" />
        <mapping from="reference_curve" to="ReferenceCurve" />
        <mapping from="reference_curve_normalized" to="ReferenceCurveNormalized" />
        <mapping from="flow_velocity.totalchannel" to="FlowVelocityVTotalChannel" />
        <mapping from="flow_velocity.mainchannel" to="FlowVelocityVMainChannel" />
        <mapping from="flow_velocity.tau" to="FlowVelocityTau" />
        <mapping from="flow_velocity.totalchannel.filtered" to="FlowVelocityVTotalChannel" />
        <mapping from="flow_velocity.mainchannel.filtered" to="FlowVelocityVMainChannel" />
        <mapping from="flow_velocity.tau.filtered" to="FlowVelocityTau" />
        <mapping from="flow_velocity.discharge" to="FlowVelocityDischarge" />
        <mapping from="bedheight_middle.single" to="MiddleBedHeightSingle" />
        <mapping from="bedheight_middle.epoch" to="MiddleBedHeightEpoch" />
        <mapping from="bed_longitudinal_section.porosity_toplayer" to="PorosityTopLayer" />
        <mapping from="bed_longitudinal_section.porosity_sublayer" to="PorositySubLayer" />
        <mapping from="bed_longitudinal_section.sediment_density_toplayer" to="DensityTopLayer" />
        <mapping from="bed_longitudinal_section.sediment_density_sublayer" to="DensitySublayer" />
        <mapping from="bed_longitudinal_section.bed_diameter_toplayer" to="BedDiameterTopLayer" />
        <mapping from="bed_longitudinal_section.bed_diameter_sublayer" to="BedDiameterSubLayer" />
        <mapping from="bed_longitudinal_section.bedload_diameter" to="BedLoadDiameter" />
        <mapping from="bedheight_difference.year" to="BedheightDiffYear"/>
        <mapping from="bedheight_difference.year.filtered" to="BedheightDiffYear"/>
        <mapping from="bedheight_difference.morph_width" to="BedheightDiffMorphWidth"/>
        <mapping from="bedheight_difference.epoch" to="BedheightDiffEpoch"/>
        <mapping from="bedheight_difference.year.height1" to="BedheightDiffAbsHeight1"/>
        <mapping from="bedheight_difference.year.height2" to="BedheightDiffAbsHeight2"/>
        <mapping from="bedheight_difference.epoch.height1" to="BedheightDiffAbsHeight1"/>
        <mapping from="bedheight_difference.epoch.height2" to="BedheightDiffAbsHeight2"/>
        <mapping from="bedheight_difference.height_year" to="BedheightDiffHeightYear"/>
        <mapping from="bedheight_difference.epoch.filtered" to="BedheightDiffEpoch"/>
        <mapping from="bedheight_difference.year.height1.filtered" to="BedheightDiffAbsHeight1"/>
        <mapping from="bedheight_difference.year.height2.filtered" to="BedheightDiffAbsHeight2"/>
        <mapping from="bedheight_difference.epoch.height1.filtered" to="BedheightDiffAbsHeight1"/>
        <mapping from="bedheight_difference.epoch.height2.filtered" to="BedheightDiffAbsHeight2"/>
        <mapping from="bedheight_difference.height_year.filtered" to="BedheightDiffHeightYear"/>
        <mapping from="morph-width" to="MorphologicWidth"/>
        <mapping from="relativepoint" to="RelativePoint" />
        <mapping from="sq_a_measurement" to="SQMeasurements" />
        <mapping from="sq_a_outlier" to="SQOutliers" />
        <mapping from="sq_a_curve" to="SQCurve" />
        <mapping from="sq_a_outlier_curve" to="SQCurve" />
        <mapping from="sq_a_outlier_measurement" to="SQMeasurements" />
        <mapping from="sq_b_measurement" to="SQMeasurements" />
        <mapping from="sq_b_outlier" to="SQOutliers" />
        <mapping from="sq_b_curve" to="SQCurve" />
        <mapping from="sq_b_outlier_curve" to="SQCurve" />
        <mapping from="sq_b_outlier_measurement" to="SQMeasurements" />
        <mapping from="sq_c_measurement" to="SQMeasurements" />
        <mapping from="sq_c_outlier" to="SQOutliers" />
        <mapping from="sq_c_curve" to="SQCurve" />
        <mapping from="sq_c_outlier_curve" to="SQCurve" />
        <mapping from="sq_c_outlier_measurement" to="SQMeasurements" />
        <mapping from="sq_d_measurement" to="SQMeasurements" />
        <mapping from="sq_d_outlier" to="SQOutliers" />
        <mapping from="sq_d_curve" to="SQCurve" />
        <mapping from="sq_d_outlier_curve" to="SQCurve" />
        <mapping from="sq_d_outlier_measurement" to="SQMeasurements" />
        <mapping from="sq_e_measurement" to="SQMeasurements" />
        <mapping from="sq_e_outlier" to="SQOutliers" />
        <mapping from="sq_e_curve" to="SQCurve" />
        <mapping from="sq_e_outlier_curve" to="SQCurve" />
        <mapping from="sq_e_outlier_measurement" to="SQMeasurements" />
        <mapping from="sq_f_measurement" to="SQMeasurements" />
        <mapping from="sq_f_outlier" to="SQOutliers" />
        <mapping from="sq_f_curve" to="SQCurve" />
        <mapping from="sq_f_outlier_curve" to="SQCurve" />
        <mapping from="sq_f_outlier_measurement" to="SQMeasurements" />
        <mapping from="fix_sector_average_wq_0" to="FixingSectorAverageWQ0" />
        <mapping from="fix_sector_average_wq_1" to="FixingSectorAverageWQ1" />
        <mapping from="fix_sector_average_wq_2" to="FixingSectorAverageWQ2" />
        <mapping from="fix_sector_average_wq_3" to="FixingSectorAverageWQ3" />
        <mapping from="fix_analysis_events_wq" to="FixingAnalysisEventsWQ" />
        <mapping from="fix_outlier" to="FixingOutlier" />
        <mapping from="fix_wq_curve" to="FixingWQCurve" />
        <mapping from="fix_reference_events_wq" to="FixingReferenceEvents" />
        <mapping from="fix_sector_average_dwt_0" to="FixingDeltaWtAverage0" />
        <mapping from="fix_sector_average_dwt_1" to="FixingDeltaWtAverage1" />
        <mapping from="fix_sector_average_dwt_2" to="FixingDeltaWtAverage2" />
        <mapping from="fix_sector_average_dwt_3" to="FixingDeltaWtAverage3" />
        <mapping from="fix_analysis_events_dwt" to="FixingDeltaWtAnalysis" />
        <mapping from="fix_analysis_periods_dwt" to="FixingDeltaWtAnalysisPeriods" />
        <mapping from="fix_reference_events_dwt" to="FixingReferenceEvents" />
        <mapping from="fix_reference_period_dwt" to="FixingReferencePeriod" />
        <mapping from="fix_sector_average_ls_deviation_0" to="FixingSectorDeviationLS0" />
        <mapping from="fix_sector_average_ls_deviation_1" to="FixingSectorDeviationLS1" />
        <mapping from="fix_sector_average_ls_deviation_2" to="FixingSectorDeviationLS2" />
        <mapping from="fix_sector_average_ls_deviation_3" to="FixingSectorDeviationLS3" />
        <mapping from="fix_sector_average_ls_0" to="FixingLSAverage0" />
        <mapping from="fix_sector_average_ls_1" to="FixingLSAverage1" />
        <mapping from="fix_sector_average_ls_2" to="FixingLSAverage2" />
        <mapping from="fix_sector_average_ls_3" to="FixingLSAverage3" />
        <mapping from="fix_deviation_ls" to="FixLSDeviation" />
        <mapping from="fix_deviation_dwt" to="FixDeltaWtDeviation" />
        <mapping from="fix_analysis_events_ls" to="FixLSAnalysis" />
        <mapping from="fix_reference_events_ls" to="FixLSReference" />
        <mapping from="fix_derivate_curve" to="FixingDerivedCurve" />
        <mapping from="fix_derivate_curve.manualpoints" to="ManualPoints" />
        <mapping from="fix_deltawt_curve.manualpoints" to="ManualPoints" />
        <mapping from="qsectors" to="QSectors" />
        <mapping from="gauge_discharge_curve" to="GaugeDischargeCurve" />
        <mapping from="extreme_wq_curve" to="ExtremeWQCurve" />
        <mapping from="extreme_wq_curve_base" to="ExtremeWQBaseCurve" />
        <mapping from="sedimentload.coarse" to="SedimentLoadCoarse" />
        <mapping from="sedimentload.finemiddle" to="SedimentLoadFineMid" />
        <mapping from="sedimentload.sand" to="SedimentLoadSand" />
        <mapping from="sedimentload.susp_sand" to="SedimentLoadSuspSand" />
        <mapping from="sedimentload.susp_sand_bed" to="SedimentLoadSuspSandBed" />
        <mapping from="sedimentload.susp_sediment" to="SedimentLoadSediment" />
        <mapping from="sedimentload.total_load" to="SedimentLoadTotalLoad" />
        <mapping from="sedimentload.total" to="SedimentLoadTotal" />
    </mappings>

</themes>

http://dive4elements.wald.intevation.org