{*
 *******************************************************************************
 *
 *  Copyright 2026 RIEGL Laser Measurement Systems
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *  SPDX-License-Identifier: Apache-2.0
 *
 *******************************************************************************
 *}
{*!
 *******************************************************************************
 *
 * \author RIEGL LMS GmbH, Austria
 * \brief  Description of RIEGL RDB 2 database file contents
 *
 *  NOTE: All information in this file is preliminary, since the
 *        definition of the database schemas is not yet complete.
 *
 *******************************************************************************
 *}

unit riegl.rdb.default.schema;

{$WRITEABLECONST ON} // see section "initialization"

interface

// File schema version
const
  RDB_SCHEMA_VERSION = 'ffc879de';
  RDB_SCHEMA_DATE = '2025-04-18';

// Schema for ".avg.fwa" files
const
  RDB_SCHEMA_RIEGL_AVG_FWA : System.String = (''
    + '{"attributes":["riegl.id*","riegl.amplitude","riegl.gain","riegl.raw_r'
    + 'ange","riegl.wfm_echo_time_offset","riegl.wfm_sbl_id","riegl.deviation'
    + '?","riegl.pulse_width?"],"extension":"avg.fwa","metadata":[],"identifi'
    + 'er":"avg.fwa"}'
  );

// Schema for ".avg.sbx" files
const
  RDB_SCHEMA_RIEGL_AVG_SBX : System.String = (''
    + '{"attributes":["riegl.id*","riegl.wfm_sbl_channel","riegl.wfm_sbl_mean'
    + '","riegl.wfm_sbl_std_dev","riegl.wfm_sbl_time_offset","riegl.wfm_sda_f'
    + 'irst","riegl.wfm_sda_count"],"extension":"avg.sbx","metadata":[],"iden'
    + 'tifier":"avg.sbx"}'
  );

// Schema for ".avg.sidx" files
const
  RDB_SCHEMA_RIEGL_AVG_SIDX : System.String = (''
    + '{"attributes":["riegl.id","riegl.shot_timestamp_hr*","riegl.wfm_sbl_fi'
    + 'rst","riegl.wfm_sbl_count","riegl.echo_first?","riegl.echo_count?"],"e'
    + 'xtension":"avg.sidx","metadata":["riegl.shot_info","riegl.waveform_inf'
    + 'o","riegl.echo_info?","riegl.waveform_averaging_settings"],"identifier'
    + '":"avg.sidx"}'
  );

// Schema for ".avg.sp{C}" files
const
  RDB_SCHEMA_RIEGL_AVG_SPC : System.String = (''
    + '{"attributes":["riegl.id*","riegl.wfm_sample_value"],"extension":"avg.'
    + 'sp{C}","metadata":[],"identifier":"avg.sp{C}"}'
  );

// Schema for ".bsx" files
const
  RDB_SCHEMA_RIEGL_BSX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.accelerometer_'
    + 'bias","riegl.accelerometer_scale","riegl.gyroscope_bias","riegl.gyrosc'
    + 'ope_scale"],"extension":"bsx","metadata":["riegl.time_base"],"identifi'
    + 'er":"bsx"}'
  );

// Schema for ".cpx" files
const
  RDB_SCHEMA_RIEGL_CPX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.xyz_accuracies","riegl.c'
    + 'ontrol_object_type","riegl.zenith_vector","riegl.used_for_adjustment",'
    + '"riegl.acquisition_date?","riegl.cp_surface_inclination_angle","riegl.'
    + 'cp_surface_inclination_tolerance_angle","riegl.cp_surface_northing_ang'
    + 'le?","riegl.cp_surface_northing_tolerance_angle?","riegl.cp_search_rad'
    + 'ius?","riegl.cp_maximum_distance?","riegl.import_line_number"],"extens'
    + 'ion":"cpx","metadata":["riegl.geo_tag","riegl.control_object_catalog",'
    + '"riegl.item_names","riegl.imported_files"],"identifier":"cpx"}'
  );

// Schema for ".cyl" files
const
  RDB_SCHEMA_RIEGL_CYL : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.cylinder_axis_direction"'
    + ',"riegl.cylinder_radius","riegl.cylinder_height","riegl.cylinder_radiu'
    + 's_confidence","riegl.cylinder_direction_confidence","riegl.std_dev"],"'
    + 'extension":"cyl","metadata":["riegl.geo_tag"],"identifier":"cyl"}'
  );

// Schema for ".dmix" files
const
  RDB_SCHEMA_RIEGL_DMIX : System.String = (''
    + '{"attributes":["riegl.id","riegl.dmi_count","riegl.dmi_path_length_raw'
    + '","riegl.pof_timestamp*"],"extension":"dmix","metadata":["riegl.device'
    + '?","riegl.dmi_config","riegl.time_base"],"identifier":"dmix"}'
  );

// Schema for ".doix" files
const
  RDB_SCHEMA_RIEGL_DOIX : System.String = (''
    + '{"attributes":["riegl.id","riegl.shot_origin","riegl.shot_direction*",'
    + '"riegl.scan_line_index","riegl.shot_index_line"],"extension":"doix","m'
    + 'etadata":[],"identifier":"doix"}'
  );

// Schema for ".eifx" files
const
  RDB_SCHEMA_RIEGL_EIFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.event_timestamp*","riegl.event_index?'
    + '","riegl.event_pulse_width?","riegl.event_fake_pulse?","riegl.raw_line'
    + '_angle?","riegl.raw_frame_angle?"],"extension":"eifx","metadata":["rie'
    + 'gl.device?","riegl.time_base","riegl.ttip_configuration?"],"identifier'
    + '":"eifx"}'
  );

// Schema for ".epfx" files
const
  RDB_SCHEMA_RIEGL_EPFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.event_timestamp*","riegl.event_index?'
    + '","riegl.event_pulse_width?","riegl.event_fake_pulse?","riegl.raw_line'
    + '_angle?","riegl.raw_frame_angle?","riegl.xyz","riegl.model_cs_axis_x",'
    + '"riegl.model_cs_axis_y","riegl.model_cs_axis_z"],"extension":"epfx","m'
    + 'etadata":["riegl.device?","riegl.geo_tag","riegl.time_base","riegl.tti'
    + 'p_configuration?"],"identifier":"epfx"}'
  );

// Schema for ".fwa" files
const
  RDB_SCHEMA_RIEGL_FWA : System.String = (''
    + '{"attributes":["riegl.id*","riegl.amplitude","riegl.gain","riegl.raw_r'
    + 'ange","riegl.wfm_echo_time_offset","riegl.wfm_sbl_id","riegl.deviation'
    + '?","riegl.pulse_width?","riegl.extinction?","riegl.svb_amplitude_volum'
    + 'etric?","riegl.svb_attenuation_volumetric?","riegl.svb_target_attenuat'
    + 'ion_coefficient_volumetric?","riegl.svb_surface?","riegl.svb_bottom?",'
    + '"riegl.svb_path_length?"],"extension":"fwa","metadata":[],"identifier"'
    + ':"fwa"}'
  );

// Schema for ".imux" files
const
  RDB_SCHEMA_RIEGL_IMUX : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp*","riegl.temperature","rieg'
    + 'l.accelerometer","riegl.gyroscope","riegl.accelerometer_raw","riegl.gy'
    + 'roscope_raw","riegl.magnetic_field_sensor_raw","riegl.frame_angle_coar'
    + 'se","riegl.line_angle_coarse","riegl.frame_scan_active","riegl.data_ac'
    + 'quisition_active","riegl.barometric_height_amsl"],"extension":"imux","'
    + 'metadata":["riegl.device","riegl.time_base","riegl.riloc_sensor_inform'
    + 'ation","riegl.rxp_json_parameter_1"],"identifier":"imux"}'
  );

// Schema for ".llhx" files
const
  RDB_SCHEMA_RIEGL_LLHX : System.String = (''
    + '{"attributes":["riegl.pof_latitude","riegl.pof_longitude","riegl.pof_h'
    + 'eight","riegl.pof_timestamp*","riegl.pof_accuracy_north","riegl.pof_ac'
    + 'curacy_east","riegl.pof_accuracy_down","riegl.pof_pdop","riegl.pof_hdo'
    + 'p","riegl.pof_vdop","riegl.pof_age_of_corrections","riegl.pof_baseline'
    + '_length","riegl.pof_solution_gnss","riegl.pof_satellites_gnss","riegl.'
    + 'id"],"extension":"llhx","metadata":["riegl.device?","riegl.geo_tag","r'
    + 'iegl.time_base"],"identifier":"llhx"}'
  );

// Schema for ".llhx" files
const
  RDB_SCHEMA_RIEGL_TRAJECTORY_LLHX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.pof_latitude",'
    + '"riegl.pof_longitude","riegl.pof_height","riegl.pof_accuracy_north","r'
    + 'iegl.pof_accuracy_east","riegl.pof_accuracy_down","riegl.pof_accuracy_'
    + 'north_east?","riegl.pof_accuracy_east_down?","riegl.pof_accuracy_down_'
    + 'north?","riegl.pof_velocity_ned?","riegl.pof_velocity_accuracy_north?"'
    + ',"riegl.pof_velocity_accuracy_east?","riegl.pof_velocity_accuracy_down'
    + '?","riegl.pof_velocity_accuracy_north_east?","riegl.pof_velocity_accur'
    + 'acy_east_down?","riegl.pof_velocity_accuracy_down_north?","riegl.pof_p'
    + 'dop","riegl.pof_hdop","riegl.pof_vdop","riegl.pof_age_of_corrections?"'
    + ',"riegl.pof_baseline_length?","riegl.pof_solution_gnss","riegl.pof_sat'
    + 'ellites_gnss","riegl.pof_path_length?"],"extension":"llhx","metadata":'
    + '["riegl.device?","riegl.geo_tag","riegl.time_base"],"identifier":"traj'
    + 'ectory.llhx"}'
  );

// Schema for ".mpx" files
const
  RDB_SCHEMA_RIEGL_MPX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xy_map*","riegl.amplitude","riegl.ref'
    + 'lectance","riegl.deviation","riegl.timestamp_min?","riegl.timestamp_ma'
    + 'x?","riegl.point_count","riegl.point_count_grid_cell","riegl.pixel_lin'
    + 'ear_sums?","riegl.pixel_square_sums?","riegl.height_min","riegl.height'
    + '_max","riegl.height_mean","riegl.height_center","riegl.surface_normal"'
    + ',"riegl.pca_thickness","riegl.std_dev","riegl.voxel_count"],"extension'
    + '":"mpx","metadata":["riegl.geo_tag","riegl.pixel_info","riegl.time_bas'
    + 'e?"],"identifier":"mpx"}'
  );

// Schema for ".mtch" files
const
  RDB_SCHEMA_RIEGL_MTCH : System.String = (''
    + '{"attributes":["riegl.xyz*","riegl.plane_references","riegl.plane_patc'
    + 'h_distance","riegl.plane_patch_lateral_distance","riegl.plane_patch_li'
    + 'nk_vector","riegl.id"],"extension":"mtch","metadata":["riegl.plane_pat'
    + 'ch_matching"],"identifier":"mtch"}'
  );

// Schema for ".mvx" files
const
  RDB_SCHEMA_RIEGL_MVX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz_map*","riegl.amplitude","riegl.re'
    + 'flectance","riegl.deviation","riegl.timestamp_min?","riegl.timestamp_m'
    + 'ax?","riegl.point_count","riegl.shape_id","riegl.covariances?","riegl.'
    + 'pca_axis_min","riegl.pca_axis_max","riegl.pca_extents","riegl.std_dev"'
    + ',"riegl.voxel_collapsed"],"extension":"mvx","metadata":["riegl.geo_tag'
    + '","riegl.time_base?","riegl.voxel_info"],"identifier":"mvx"}'
  );

// Schema for ".obsx" files
const
  RDB_SCHEMA_RIEGL_OBSX : System.String = (''
    + '{"attributes":["riegl.xyz","riegl.surface_normal","riegl.plane_slope_c'
    + 'lass?","riegl.id*","riegl.sda1_plane_patch_one","riegl.sda1_plane_patc'
    + 'h_two","riegl.sda1_source_file_one","riegl.sda1_source_file_two"],"ext'
    + 'ension":"obsx","metadata":["riegl.geo_tag","riegl.plane_slope_class_in'
    + 'fo?","riegl.pointcloud_info","riegl.sda1_source_files"],"identifier":"'
    + 'obsx"}'
  );

// Schema for ".ocyl" files
const
  RDB_SCHEMA_RIEGL_OCYL : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.cylinder_axis_direction"'
    + ',"riegl.cylinder_radius","riegl.cylinder_height","riegl.cylinder_radiu'
    + 's_confidence","riegl.cylinder_direction_confidence","riegl.model_fit_q'
    + 'uality?","riegl.std_dev","riegl.xyz_socs","riegl.direction","riegl.mir'
    + 'ror_facet","riegl.timestamp"],"extension":"ocyl","metadata":["riegl.de'
    + 'vice","riegl.device_geometry","riegl.geo_tag","riegl.georeferencing_pa'
    + 'rameters","riegl.scan_pattern?","riegl.time_base"],"identifier":"ocyl"'
    + '}'
  );

// Schema for ".opefx" files
const
  RDB_SCHEMA_RIEGL_OPEFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.xyz_accuracies?","riegl.'
    + 'surface_normal","riegl.plane_up","riegl.point_count","riegl.std_dev","'
    + 'riegl.plane_width","riegl.plane_height","riegl.plane_confidence_normal'
    + '","riegl.model_fit_quality?","riegl.used_for_adjustment","riegl.xyz_so'
    + 'cs","riegl.timestamp","riegl.mirror_facet","riegl.platform_rpy_ROCS_NE'
    + 'D","riegl.platform_drpy_ROCS_NED","riegl.platform_xyz_ROCS_ENU","riegl'
    + '.platform_dxyz_ROCS_ENU","riegl.sda.shift_vector","riegl.raw_range","r'
    + 'iegl.raw_frame_angle","riegl.raw_line_angle","riegl.reference_object_i'
    + 'd"],"extension":"opefx","metadata":["riegl.device","riegl.device_geome'
    + 'try","riegl.geo_tag","riegl.georeferencing_parameters","riegl.scan_pat'
    + 'tern?","riegl.time_base","riegl.item_names","riegl.control_object_refe'
    + 'rence_file"],"identifier":"opefx"}'
  );

// Schema for ".opp" files
const
  RDB_SCHEMA_RIEGL_OPP : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.xyz_accuracies?","riegl.'
    + 'surface_normal","riegl.plane_up","riegl.point_count","riegl.std_dev","'
    + 'riegl.plane_width","riegl.plane_height","riegl.plane_confidence_normal'
    + '","riegl.model_fit_quality?","riegl.used_for_adjustment","riegl.xyz_so'
    + 'cs","riegl.timestamp","riegl.mirror_facet","riegl.platform_rpy_ROCS_NE'
    + 'D","riegl.platform_drpy_ROCS_NED","riegl.platform_xyz_ROCS_ENU","riegl'
    + '.platform_dxyz_ROCS_ENU","riegl.sda.shift_vector","riegl.raw_range","r'
    + 'iegl.raw_frame_angle","riegl.raw_line_angle","riegl.reference_object_i'
    + 'd"],"extension":"opp","metadata":["riegl.device","riegl.device_geometr'
    + 'y","riegl.geo_tag","riegl.georeferencing_parameters","riegl.scan_patte'
    + 'rn?","riegl.time_base","riegl.item_names","riegl.control_object_refere'
    + 'nce_file"],"identifier":"opp"}'
  );

// Schema for ".opx" files
const
  RDB_SCHEMA_RIEGL_OPX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.control_object_type","ri'
    + 'egl.model_cs_axis_x?","riegl.model_cs_axis_y?","riegl.model_cs_axis_z?'
    + '","riegl.model_fit_quality?","riegl.obs_confidence_xy?","riegl.obs_con'
    + 'fidence_z?","riegl.obs_signal_confidence_rot?","riegl.obs_confidence_r'
    + 'ange?","riegl.obs_confidence_theta?","riegl.obs_confidence_phi?","rieg'
    + 'l.point_count?","riegl.used_for_adjustment","riegl.xyz_socs","riegl.ti'
    + 'mestamp","riegl.mirror_facet","riegl.platform_rpy_ROCS_NED","riegl.pla'
    + 'tform_drpy_ROCS_NED","riegl.platform_xyz_ROCS_ENU","riegl.platform_dxy'
    + 'z_ROCS_ENU","riegl.sda.shift_vector","riegl.raw_range","riegl.raw_fram'
    + 'e_angle","riegl.raw_line_angle","riegl.reference_object_id"],"extensio'
    + 'n":"opx","metadata":["riegl.device","riegl.device_geometry","riegl.geo'
    + '_tag","riegl.georeferencing_parameters","riegl.scan_pattern?","riegl.t'
    + 'ime_base","riegl.control_object_catalog","riegl.item_names","riegl.con'
    + 'trol_object_reference_file"],"identifier":"opx"}'
  );

// Schema for ".owp" files
const
  RDB_SCHEMA_RIEGL_OWP : System.String = (''
    + '{"attributes":["riegl.id*","riegl.raw_range","riegl.amplitude","riegl.'
    + 'deviation","riegl.gain"],"extension":"owp","metadata":[],"identifier":'
    + '"owp"}'
  );

// Schema for ".pefx" files
const
  RDB_SCHEMA_RIEGL_PEFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.xyz_accuracies?","riegl.'
    + 'surface_normal","riegl.plane_up","riegl.std_dev","riegl.plane_confiden'
    + 'ce_normal","riegl.plane_width","riegl.plane_height","riegl.vertex_firs'
    + 't","riegl.vertex_count","riegl.used_for_adjustment","riegl.acquisition'
    + '_date?","riegl.import_line_number","riegl.import_line_count"],"extensi'
    + 'on":"pefx","metadata":["riegl.geo_tag","riegl.vertex_info","riegl.item'
    + '_names","riegl.imported_files"],"identifier":"pefx"}'
  );

// Schema for ".pofx" files
const
  RDB_SCHEMA_RIEGL_PROJECT_POFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.pof_latitude",'
    + '"riegl.pof_longitude","riegl.pof_height","riegl.pof_roll","riegl.pof_p'
    + 'itch","riegl.pof_yaw","riegl.pof_velocity_ned?","riegl.pof_path_length'
    + '?"],"extension":"pofx","metadata":["riegl.device?","riegl.geo_tag","ri'
    + 'egl.time_base","riegl.trajectory_info"],"identifier":"project.pofx"}'
  );

// Schema for ".pofx" files
const
  RDB_SCHEMA_RIEGL_SCAN_POFX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.pof_latitude",'
    + '"riegl.pof_longitude","riegl.pof_height","riegl.pof_roll","riegl.pof_p'
    + 'itch","riegl.pof_yaw","riegl.pof_path_length?","riegl.pof_xyz","riegl.'
    + 'pof_roll_ned","riegl.pof_pitch_ned","riegl.pof_yaw_ned"],"extension":"'
    + 'pofx","metadata":["riegl.device?","riegl.time_base","riegl.geo_tag","r'
    + 'iegl.trajectory_info"],"identifier":"scan.pofx"}'
  );

// Schema for ".poqx" files
const
  RDB_SCHEMA_RIEGL_PROJECT_POQX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.pof_accuracy_n'
    + 'orth","riegl.pof_accuracy_east","riegl.pof_accuracy_down","riegl.pof_a'
    + 'ccuracy_north_east?","riegl.pof_accuracy_east_down?","riegl.pof_accura'
    + 'cy_down_north?","riegl.pof_velocity_accuracy_north?","riegl.pof_veloci'
    + 'ty_accuracy_east?","riegl.pof_velocity_accuracy_down?","riegl.pof_velo'
    + 'city_accuracy_north_east?","riegl.pof_velocity_accuracy_east_down?","r'
    + 'iegl.pof_velocity_accuracy_down_north?","riegl.pof_accuracy_roll","rie'
    + 'gl.pof_accuracy_pitch","riegl.pof_accuracy_yaw","riegl.pof_path_length'
    + '?","riegl.pof_pdop","riegl.pof_hdop","riegl.pof_vdop","riegl.pof_satel'
    + 'lites_gnss?","riegl.pof_satellites_gps?","riegl.pof_satellites_glonass'
    + '?","riegl.pof_satellites_beidou?","riegl.pof_satellites_galileo?","rie'
    + 'gl.pof_satellites_qzss?","riegl.pof_solution_gnss","riegl.pof_baseline'
    + '_length?"],"extension":"poqx","metadata":["riegl.time_base","riegl.tra'
    + 'jectory_info"],"identifier":"project.poqx"}'
  );

// Schema for ".poqx" files
const
  RDB_SCHEMA_RIEGL_SCAN_POQX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_timestamp*","riegl.pof_accuracy_n'
    + 'orth","riegl.pof_accuracy_east","riegl.pof_accuracy_down","riegl.pof_a'
    + 'ccuracy_north_east?","riegl.pof_accuracy_east_down?","riegl.pof_accura'
    + 'cy_down_north?","riegl.pof_velocity_accuracy_north?","riegl.pof_veloci'
    + 'ty_accuracy_east?","riegl.pof_velocity_accuracy_down?","riegl.pof_velo'
    + 'city_accuracy_north_east?","riegl.pof_velocity_accuracy_east_down?","r'
    + 'iegl.pof_velocity_accuracy_down_north?","riegl.pof_accuracy_roll","rie'
    + 'gl.pof_accuracy_pitch","riegl.pof_accuracy_yaw","riegl.pof_path_length'
    + '?","riegl.pof_pdop","riegl.pof_hdop","riegl.pof_vdop","riegl.pof_satel'
    + 'lites_gnss?","riegl.pof_satellites_gps?","riegl.pof_satellites_glonass'
    + '?","riegl.pof_satellites_beidou?","riegl.pof_satellites_galileo?","rie'
    + 'gl.pof_satellites_qzss?","riegl.pof_solution_gnss","riegl.pof_baseline'
    + '_length?"],"extension":"poqx","metadata":["riegl.time_base","riegl.tra'
    + 'jectory_info"],"identifier":"scan.poqx"}'
  );

// Schema for ".ppx" files
const
  RDB_SCHEMA_RIEGL_PPX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pps_timestamp_intern*","riegl.pps_tim'
    + 'estamp_extern"],"extension":"ppx","metadata":["riegl.device","riegl.ti'
    + 'me_base"],"identifier":"ppx"}'
  );

// Schema for ".ptch" files
const
  RDB_SCHEMA_RIEGL_PROJECT_PTCH : System.String = (''
    + '{"attributes":["riegl.xyz*","riegl.surface_normal","riegl.plane_up","r'
    + 'iegl.reflectance?","riegl.point_count","riegl.std_dev","riegl.plane_wi'
    + 'dth","riegl.plane_height","riegl.plane_count","riegl.covariances","rie'
    + 'gl.id"],"extension":"ptch","metadata":["riegl.device","riegl.geo_tag?"'
    + ',"riegl.scan_pattern?","riegl.time_base?","riegl.plane_patch_statistic'
    + 's?"],"identifier":"project.ptch"}'
  );

// Schema for ".ptch" files
const
  RDB_SCHEMA_RIEGL_SCAN_PTCH : System.String = (''
    + '{"attributes":["riegl.xyz*","riegl.xyz_socs","riegl.direction?","riegl'
    + '.direction_medium?","riegl.direction_coarse?","riegl.surface_normal","'
    + 'riegl.plane_up","riegl.timestamp","riegl.reflectance?","riegl.point_co'
    + 'unt","riegl.std_dev","riegl.plane_width","riegl.plane_height","riegl.p'
    + 'lane_count","riegl.mirror_facet","riegl.covariances","riegl.id","riegl'
    + '.plane_slope_class?","riegl.plane_occupancy","riegl.plane_confidence_n'
    + 'ormal","riegl.plane_cog_link","riegl.match_count","riegl.platform_rpy_'
    + 'ROCS_NED","riegl.platform_xyz_ROCS_ENU","riegl.platform_drpy_ROCS_NED"'
    + ',"riegl.platform_dxyz_ROCS_ENU","riegl.sda.shift_vector","riegl.raw_ra'
    + 'nge","riegl.raw_frame_angle","riegl.raw_line_angle"],"extension":"ptch'
    + '","metadata":["riegl.device","riegl.device_geometry","riegl.geo_tag","'
    + 'riegl.georeferencing_parameters","riegl.scan_pattern?","riegl.time_bas'
    + 'e","riegl.plane_patch_statistics?","riegl.plane_slope_class_info?"],"i'
    + 'dentifier":"scan.ptch"}'
  );

// Schema for ".ptch" files
const
  RDB_SCHEMA_RIEGL_SCANPOS_PTCH : System.String = (''
    + '{"attributes":["riegl.xyz*","riegl.surface_normal","riegl.plane_up","r'
    + 'iegl.reflectance?","riegl.point_count","riegl.std_dev","riegl.plane_wi'
    + 'dth","riegl.plane_height","riegl.plane_count","riegl.covariances","rie'
    + 'gl.id"],"extension":"ptch","metadata":["riegl.device","riegl.geo_tag?"'
    + ',"riegl.scan_pattern?","riegl.time_base?","riegl.plane_patch_statistic'
    + 's?"],"identifier":"scanpos.ptch"}'
  );

// Schema for ".rdbx" files
const
  RDB_SCHEMA_RIEGL_RDBX : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp","riegl.xyz*","riegl.xyz_so'
    + 'cs","riegl.direction_medium?","riegl.direction?","riegl.amplitude","ri'
    + 'egl.reflectance?","riegl.deviation?","riegl.pulse_width?","riegl.targe'
    + 't_index","riegl.target_count","riegl.mirror_facet?","riegl.scan_segmen'
    + 't?","riegl.mta_uncertain_point?","riegl.mta_zone?","riegl.window_echo_'
    + 'impact_corrected?","riegl.dyntrig_uncertain_point?","riegl.rgba?","rie'
    + 'gl.class?","riegl.start_of_scan_line?","riegl.end_of_scan_line?","rieg'
    + 'l.source_indicator?","riegl.fwa?","riegl.waveform_available?","riegl.w'
    + 'fm_sbl_id?","riegl.wfm_echo_time_offset?","riegl.scan_angle","riegl.sc'
    + 'an_direction","riegl.source_index?","riegl.scan_line_index?","riegl.sh'
    + 'ot_index_line?","riegl.hydro_refraction_corrected?","riegl.hydro_inter'
    + 'section_point?","riegl.hydro_intersection_normal?","riegl.extinction?"'
    + ',"riegl.svb_amplitude_volumetric?","riegl.svb_reflectance_volumetric?"'
    + ',"riegl.svb_reflectance_bottom_uncorrected?","riegl.svb_surface?","rie'
    + 'gl.svb_bottom?","riegl.svb_path_length?"],"extension":"rdbx","metadata'
    + '":["riegl.atmosphere","riegl.beam_geometry","riegl.device_geometry","r'
    + 'iegl.device","riegl.gaussian_decomposition?","riegl.exponential_decomp'
    + 'osition?","riegl.geo_tag","riegl.georeferencing_parameters","riegl.mta'
    + '_settings?","riegl.near_range_correction?","riegl.noise_estimates?","r'
    + 'iegl.angular_notch_filter?","riegl.notch_filter?","riegl.pointcloud_in'
    + 'fo?","riegl.pulse_position_modulation?","riegl.range_statistics?","rie'
    + 'gl.receiver_internals?","riegl.reflectance_calculation?","riegl.reflec'
    + 'tance_correction?","riegl.scan_pattern","riegl.time_base","riegl.wavef'
    + 'orm_settings?","riegl.window_analysis?","riegl.window_echo_correction?'
    + '"],"identifier":"rdbx"}'
  );

// Schema for ".rmvx" files
const
  RDB_SCHEMA_RIEGL_RMVX : System.String = (''
    + '{"attributes":["riegl.id","riegl.voxel_index*","riegl.amplitude","rieg'
    + 'l.reflectance","riegl.deviation","riegl.direction_medium","riegl.point'
    + '_count","riegl.voxel_linear_sums","riegl.voxel_square_sums","riegl.tim'
    + 'estamp_min?","riegl.timestamp_max?"],"extension":"rmvx","metadata":["r'
    + 'iegl.geo_tag","riegl.voxel_info","riegl.time_base?"],"identifier":"rmv'
    + 'x"}'
  );

// Schema for ".rt.llhx" files
const
  RDB_SCHEMA_RIEGL_TRAJECTORY_RT_LLHX : System.String = (''
    + '{"attributes":["riegl.id","riegl.pof_latitude","riegl.pof_longitude","'
    + 'riegl.pof_height","riegl.pof_timestamp*","riegl.pof_accuracy_north","r'
    + 'iegl.pof_accuracy_east","riegl.pof_accuracy_down","riegl.pof_pdop","ri'
    + 'egl.pof_hdop","riegl.pof_vdop","riegl.pof_age_of_corrections","riegl.p'
    + 'of_baseline_length","riegl.pof_solution_gnss","riegl.pof_satellites_gn'
    + 'ss","riegl.pof_course?","riegl.pof_xyz_ned_velocity?"],"extension":"rt'
    + '.llhx","metadata":["riegl.device?","riegl.geo_tag","riegl.time_base"],'
    + '"identifier":"trajectory.rt.llhx"}'
  );

// Schema for ".s10x" files
const
  RDB_SCHEMA_RIEGL_S10X : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp*","riegl.frame_angle_coarse'
    + '","riegl.gyroscope_raw","riegl.accelerometer_raw","riegl.magnetic_fiel'
    + 'd_sensor_raw","riegl.gyroscope","riegl.accelerometer","riegl.magnetic_'
    + 'field_sensor","riegl.barometric_height_amsl","riegl.temperature","rieg'
    + 'l.line_scan_active","riegl.frame_scan_active","riegl.data_acquisition_'
    + 'active"],"extension":"s10x","metadata":["riegl.time_base","riegl.devic'
    + 'e?","riegl.pose_sensors"],"identifier":"s10x"}'
  );

// Schema for ".sbx" files
const
  RDB_SCHEMA_RIEGL_SBX : System.String = (''
    + '{"attributes":["riegl.id*","riegl.wfm_sbl_channel","riegl.wfm_sbl_mean'
    + '","riegl.wfm_sbl_std_dev","riegl.wfm_sbl_time_offset","riegl.wfm_sda_f'
    + 'irst","riegl.wfm_sda_count"],"extension":"sbx","metadata":[],"identifi'
    + 'er":"sbx"}'
  );

// Schema for ".sdcx" files
const
  RDB_SCHEMA_RIEGL_SDCX : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp*","riegl.xyz","riegl.amplit'
    + 'ude","riegl.reflectance?","riegl.deviation?","riegl.pulse_width?","rie'
    + 'gl.target_index","riegl.target_count","riegl.mirror_facet?","riegl.sca'
    + 'n_segment?","riegl.mta_uncertain_point?","riegl.mta_zone?","riegl.wind'
    + 'ow_echo_impact_corrected?","riegl.dyntrig_uncertain_point?","riegl.cla'
    + 'ss?","riegl.start_of_scan_line?","riegl.end_of_scan_line?","riegl.sour'
    + 'ce_indicator?","riegl.fwa?","riegl.waveform_available?","riegl.wfm_sbl'
    + '_id?","riegl.wfm_echo_time_offset?","riegl.extinction?","riegl.svb_amp'
    + 'litude_volumetric?","riegl.svb_surface?","riegl.svb_bottom?","riegl.sv'
    + 'b_path_length?"],"extension":"sdcx","metadata":["riegl.atmosphere","ri'
    + 'egl.beam_geometry","riegl.device_geometry","riegl.device","riegl.gauss'
    + 'ian_decomposition?","riegl.exponential_decomposition?","riegl.mta_sett'
    + 'ings?","riegl.near_range_correction?","riegl.noise_estimates?","riegl.'
    + 'angular_notch_filter?","riegl.notch_filter?","riegl.pointcloud_info?",'
    + '"riegl.pulse_position_modulation?","riegl.range_statistics?","riegl.re'
    + 'ceiver_internals?","riegl.reflectance_calculation?","riegl.reflectance'
    + '_correction?","riegl.scan_pattern","riegl.time_base","riegl.window_ana'
    + 'lysis?","riegl.window_echo_correction?"],"identifier":"sdcx"}'
  );

// Schema for ".sidx" files
const
  RDB_SCHEMA_RIEGL_SIDX : System.String = (''
    + '{"attributes":["riegl.id","riegl.shot_timestamp_hr*","riegl.echo_first'
    + '","riegl.echo_count"],"extension":"sidx","metadata":["riegl.shot_info"'
    + ',"riegl.echo_info"],"identifier":"sidx"}'
  );

// Schema for ".sodx" files
const
  RDB_SCHEMA_RIEGL_SODX : System.String = (''
    + '{"attributes":["riegl.id","riegl.shot_timestamp_hr*","riegl.mirror_fac'
    + 'et","riegl.scan_segment","riegl.start_of_scan_line","riegl.line_angle_'
    + 'coarse","riegl.shot_origin","riegl.shot_biaxial_shift?","riegl.shot_di'
    + 'rection","riegl.shot_direction_levelled?","riegl.wfm_sbl_first?","rieg'
    + 'l.wfm_sbl_count?","riegl.echo_first?","riegl.echo_count?"],"extension"'
    + ':"sodx","metadata":["riegl.atmosphere","riegl.device","riegl.device_ge'
    + 'ometry","riegl.device_output_limits","riegl.beam_geometry","riegl.near'
    + '_range_correction?","riegl.window_echo_correction?","riegl.receiver_in'
    + 'ternals?","riegl.gaussian_decomposition?","riegl.exponential_decomposi'
    + 'tion?","riegl.mta_settings?","riegl.pulse_position_modulation?","riegl'
    + '.notch_filter?","riegl.reflectance_calculation?","riegl.scan_pattern",'
    + '"riegl.time_base","riegl.waveform_info?","riegl.echo_info?"],"identifi'
    + 'er":"sodx"}'
  );

// Schema for ".sp{C}" files
const
  RDB_SCHEMA_RIEGL_SPC : System.String = (''
    + '{"attributes":["riegl.id*","riegl.wfm_sample_value"],"extension":"sp{C'
    + '}","metadata":[],"identifier":"sp{C}"}'
  );

// Schema for ".vtx" files
const
  RDB_SCHEMA_RIEGL_VTX : System.String = (''
    + '{"attributes":["riegl.id*","riegl.xyz","riegl.xyz_accuracies?"],"exten'
    + 'sion":"vtx","metadata":["riegl.geo_tag"],"identifier":"vtx"}'
  );

// Schema for ".vxls" files
const
  RDB_SCHEMA_RIEGL_VXLS : System.String = (''
    + '{"attributes":["riegl.id","riegl.xyz*","riegl.covariances","riegl.pca_'
    + 'axis_max","riegl.pca_axis_min","riegl.pca_extents","riegl.point_count"'
    + ',"riegl.reflectance","riegl.shape_id","riegl.voxel_collapsed","riegl.s'
    + 'td_dev?"],"extension":"vxls","metadata":["riegl.voxel_info","riegl.geo'
    + '_tag?"],"identifier":"vxls"}'
  );

// Schema for ".wdcx" files
const
  RDB_SCHEMA_RIEGL_WDCX : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp","riegl.xyz*","riegl.xyz_so'
    + 'cs","riegl.direction_medium?","riegl.direction?","riegl.amplitude","ri'
    + 'egl.reflectance?","riegl.deviation?","riegl.pulse_width?","riegl.targe'
    + 't_index","riegl.target_count","riegl.mirror_facet?","riegl.scan_segmen'
    + 't?","riegl.mta_uncertain_point?","riegl.mta_zone?","riegl.window_echo_'
    + 'impact_corrected?","riegl.dyntrig_uncertain_point?","riegl.rgba?","rie'
    + 'gl.class?","riegl.start_of_scan_line?","riegl.end_of_scan_line?","rieg'
    + 'l.source_indicator?","riegl.fwa?","riegl.waveform_available?","riegl.w'
    + 'fm_sbl_id?","riegl.wfm_echo_time_offset?","riegl.scan_angle","riegl.sc'
    + 'an_direction","riegl.source_index?","riegl.scan_line_index?","riegl.sh'
    + 'ot_index_line?","riegl.hydro_refraction_corrected?","riegl.hydro_inter'
    + 'section_point?","riegl.hydro_intersection_normal?","riegl.extinction?"'
    + ',"riegl.svb_amplitude_volumetric?","riegl.svb_reflectance_volumetric?"'
    + ',"riegl.svb_reflectance_bottom_uncorrected?","riegl.svb_surface?","rie'
    + 'gl.svb_bottom?","riegl.svb_path_length?"],"extension":"wdcx","metadata'
    + '":["riegl.atmosphere","riegl.beam_geometry","riegl.device_geometry","r'
    + 'iegl.device","riegl.gaussian_decomposition?","riegl.exponential_decomp'
    + 'osition?","riegl.geo_tag","riegl.georeferencing_parameters","riegl.mta'
    + '_settings?","riegl.near_range_correction?","riegl.noise_estimates?","r'
    + 'iegl.angular_notch_filter?","riegl.notch_filter?","riegl.pointcloud_in'
    + 'fo?","riegl.pulse_position_modulation?","riegl.range_statistics?","rie'
    + 'gl.receiver_internals?","riegl.reflectance_calculation?","riegl.reflec'
    + 'tance_correction?","riegl.scan_pattern","riegl.time_base","riegl.wavef'
    + 'orm_settings?","riegl.window_analysis?","riegl.window_echo_correction?'
    + '"],"identifier":"wdcx"}'
  );

// Schema for ".wex" files
const
  RDB_SCHEMA_RIEGL_WEX : System.String = (''
    + '{"attributes":["riegl.id","riegl.timestamp*","riegl.wex_filter_valid",'
    + '"riegl.wex_point_count","riegl.wex_amplitude","riegl.wex_amplitude_std'
    + '_dev","riegl.wex_amplitude_min","riegl.wex_amplitude_max","riegl.wex_a'
    + 'mplitude_offset","riegl.wex_deviation","riegl.wex_deviation_std_dev","'
    + 'riegl.wex_deviation_min","riegl.wex_deviation_max","riegl.wex_range","'
    + 'riegl.wex_range_std_dev","riegl.wex_range_min","riegl.wex_range_max","'
    + 'riegl.wex_filter_range_min","riegl.wex_filter_range_max","riegl.wex_fi'
    + 'lter_amplitude_max"],"extension":"wex","metadata":["riegl.device","rie'
    + 'gl.notch_filter","riegl.window_analysis"],"identifier":"wex"}'
  );

// Table of all RDB file schema strings
const
  RDB_SCHEMA_ARRAY : array of System.String = nil; // filled during initialization

implementation

procedure FixStringEncoding;
begin
  // As the unit (.pas file) doesn't contain a BOM, we need to convert all strings
  // from UTF-8 to "native" encoding at runtime (tested on Delphi 7 and Delphi XE5)

  RDB_SCHEMA_RIEGL_AVG_FWA := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_AVG_FWA)));
  RDB_SCHEMA_RIEGL_AVG_SBX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_AVG_SBX)));
  RDB_SCHEMA_RIEGL_AVG_SIDX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_AVG_SIDX)));
  RDB_SCHEMA_RIEGL_AVG_SPC := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_AVG_SPC)));
  RDB_SCHEMA_RIEGL_BSX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_BSX)));
  RDB_SCHEMA_RIEGL_CPX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_CPX)));
  RDB_SCHEMA_RIEGL_CYL := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_CYL)));
  RDB_SCHEMA_RIEGL_DMIX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_DMIX)));
  RDB_SCHEMA_RIEGL_DOIX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_DOIX)));
  RDB_SCHEMA_RIEGL_EIFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_EIFX)));
  RDB_SCHEMA_RIEGL_EPFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_EPFX)));
  RDB_SCHEMA_RIEGL_FWA := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_FWA)));
  RDB_SCHEMA_RIEGL_IMUX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_IMUX)));
  RDB_SCHEMA_RIEGL_LLHX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_LLHX)));
  RDB_SCHEMA_RIEGL_TRAJECTORY_LLHX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_TRAJECTORY_LLHX)));
  RDB_SCHEMA_RIEGL_MPX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_MPX)));
  RDB_SCHEMA_RIEGL_MTCH := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_MTCH)));
  RDB_SCHEMA_RIEGL_MVX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_MVX)));
  RDB_SCHEMA_RIEGL_OBSX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OBSX)));
  RDB_SCHEMA_RIEGL_OCYL := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OCYL)));
  RDB_SCHEMA_RIEGL_OPEFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OPEFX)));
  RDB_SCHEMA_RIEGL_OPP := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OPP)));
  RDB_SCHEMA_RIEGL_OPX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OPX)));
  RDB_SCHEMA_RIEGL_OWP := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_OWP)));
  RDB_SCHEMA_RIEGL_PEFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_PEFX)));
  RDB_SCHEMA_RIEGL_PROJECT_POFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_PROJECT_POFX)));
  RDB_SCHEMA_RIEGL_SCAN_POFX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SCAN_POFX)));
  RDB_SCHEMA_RIEGL_PROJECT_POQX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_PROJECT_POQX)));
  RDB_SCHEMA_RIEGL_SCAN_POQX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SCAN_POQX)));
  RDB_SCHEMA_RIEGL_PPX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_PPX)));
  RDB_SCHEMA_RIEGL_PROJECT_PTCH := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_PROJECT_PTCH)));
  RDB_SCHEMA_RIEGL_SCAN_PTCH := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SCAN_PTCH)));
  RDB_SCHEMA_RIEGL_SCANPOS_PTCH := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SCANPOS_PTCH)));
  RDB_SCHEMA_RIEGL_RDBX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_RDBX)));
  RDB_SCHEMA_RIEGL_RMVX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_RMVX)));
  RDB_SCHEMA_RIEGL_TRAJECTORY_RT_LLHX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_TRAJECTORY_RT_LLHX)));
  RDB_SCHEMA_RIEGL_S10X := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_S10X)));
  RDB_SCHEMA_RIEGL_SBX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SBX)));
  RDB_SCHEMA_RIEGL_SDCX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SDCX)));
  RDB_SCHEMA_RIEGL_SIDX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SIDX)));
  RDB_SCHEMA_RIEGL_SODX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SODX)));
  RDB_SCHEMA_RIEGL_SPC := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_SPC)));
  RDB_SCHEMA_RIEGL_VTX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_VTX)));
  RDB_SCHEMA_RIEGL_VXLS := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_VXLS)));
  RDB_SCHEMA_RIEGL_WDCX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_WDCX)));
  RDB_SCHEMA_RIEGL_WEX := String(UTF8ToAnsi(AnsiString(RDB_SCHEMA_RIEGL_WEX)));
end;

procedure FillSchemaArray;
var
  i : Integer;
begin
  SetLength(RDB_SCHEMA_ARRAY, 46); i := -1;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_AVG_FWA;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_AVG_SBX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_AVG_SIDX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_AVG_SPC;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_BSX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_CPX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_CYL;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_DMIX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_DOIX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_EIFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_EPFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_FWA;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_IMUX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_LLHX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_TRAJECTORY_LLHX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_MPX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_MTCH;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_MVX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OBSX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OCYL;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OPEFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OPP;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OPX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_OWP;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_PEFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_PROJECT_POFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SCAN_POFX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_PROJECT_POQX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SCAN_POQX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_PPX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_PROJECT_PTCH;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SCAN_PTCH;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SCANPOS_PTCH;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_RDBX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_RMVX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_TRAJECTORY_RT_LLHX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_S10X;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SBX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SDCX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SIDX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SODX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_SPC;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_VTX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_VXLS;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_WDCX;
  Inc(i); RDB_SCHEMA_ARRAY[i] := RDB_SCHEMA_RIEGL_WEX;
end;

initialization

FixStringEncoding;
FillSchemaArray;

end.
