<!-- *************************************************************************************** -->
<!-- *                                                                                     * -->
<!-- *                RiSCAN PRO/RiPROFILE - DOCUMENT TYPE DEFINITION                      * -->
<!-- *                =============== Version 2.6.2 =================                      * -->
<!-- *                   (C) 2016  RIEGL LASER MEASUREMENT SYSTEMS                         * -->
<!-- *                                                                                     * -->
<!-- * The description provides information on project structure used by RiSCAN PRO;       * -->
<!-- * some tags are not described in detail as they are NOT required for post processing. * -->
<!-- *                                                                                     * -->
<!-- * With the help of this description it is possible to make use of the                 * -->
<!-- * pre-registration done in RiSCAN PRO in postprocessing software packages by          * -->
<!-- * importing the project structure.                                                    * -->
<!-- *                                                                                     * -->
<!-- * Main data acquired within RiSCAN PRO include scan data, image data, registration    * -->
<!-- * information. Furthermore, image calibration data are included to make direct use    * -->
<!-- * of the images for, e.g., texturing triangulated surfaces generated from scan data.  * -->
<!-- *                                                                                     * -->
<!-- * As scan data are stored in a binary format it is recommended to use RiSCANLib to    * -->
<!-- * access the data. RiSCANLib provides the data in cartesian or polar coordinates in   * -->
<!-- * the scanner's own coordinate system. With the registration information contained    * -->
<!-- * in the project file, the scan data can be transformed into the project coordinate   * -->
<!-- * system or the global coordinate sytem easily.                                       * -->
<!-- *                                                                                     * -->
<!-- * Abbreviations:                                                                      * -->
<!-- *                                                                                     * -->
<!-- * SOCS .... Scanner's Own Coordinate System                                           * -->
<!-- * PRCS .... PRoject Coordinate System                                                 * -->
<!-- * CMCS .... CaMera Coordinate System                                                  * -->
<!-- * GLCS .... GLobal Coordinate System                                                  * -->
<!-- * ARCS .... ARbitrary Coordinate System                                               * -->
<!-- * LLCS .... Locally Levelled Coordinate System                                        * -->
<!-- * TPL ..... Tie Point List                                                            * -->
<!-- * TOL ..... Tie Object List                                                           * -->
<!-- *                                                                                     * -->
<!-- * SOP ..... Sensor's Orientation and Position within PRCS                             * -->
<!-- * POP ..... Orientation and Position of PRCS within GLCS                              * -->
<!-- * COP ..... Camera's Orientation and Position (note that COP has different meaning    * -->
<!-- *           when applied to images depending whether the camera was mounted on top    * -->
<!-- *           of a scanner or not.                                                      * -->
<!-- * VOP ..... VOCS (Voxel Coordinate System) position and orientation in PRCS           * -->
<!-- * SOPV .... Scanner Orientation and Position in VOCS                                  * -->
<!-- * AOP ..... Orientation and Position of ARCS within PRCS                              * -->
<!-- * LOP ..... Orientation and Position of LLCS within PRCS                              * -->
<!-- *                                                                                     * -->
<!-- * MAJOR PROJECT STRUCTURE CHANGES:                                                    * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.18.0 (RISD Version):                                                     * -->
<!-- *    - Added   "lidar-device-id".                                                     * -->
<!-- *    - Added   "lidar-device-name".                                                   * -->
<!-- *    - Added   "camera-device-id".                                                    * -->
<!-- *    - Added   "camera-device-name".                                                  * -->
<!-- *    - Added   "panoramaimages" and "panoramaimage".                                  * -->
<!-- *    - Added   "gnss-receiver-id".                                                    * -->
<!-- *    - Added   "gnss-receiver-name".                                                  * -->
<!-- *    - Added   "imu-id".                                                              * -->
<!-- *    - Added   "imu-name".                                                            * -->
<!-- *    - Removed "camcalibs".                                                           * -->
<!-- *    - Removed "mountcalib_ref".                                                      * -->
<!-- *    - Removed "camcalib_ref".                                                        * --> 
<!-- *    - Removed "camcalibs".                                                           * -->
<!-- *    - Removed "mountcalibs".                                                         * -->
<!-- *    - Removed "tiltmounts".                                                          * -->
<!-- *    - Removed "mountcalib ".                                                         * -->
<!-- *    - Removed "camcalib_opencv".                                                     * -->
<!-- *    - Removed "camcalib_tsai".                                                       * -->
<!-- *    - Removed "camcalibtask_freeimages".                                             * -->
<!-- *    - Removed "camcalibtask_chessboard".                                             * -->
<!-- *    - Removed "chessboardimage".                                                     * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.17.0:                                                                    * -->
<!-- *    - Added "point_attribute_filters".                                               * -->
<!-- *    - Added "stems_ref".                                                             * -->
<!-- *    - Added 3D View Light Source "color_temperature".                                * -->
<!-- *    - Added 3D View Light Source "shading_setting".                                  * -->
<!-- *    - Added 3D View Light Source "ambient_intensity".                                * -->  
<!-- *    - Added 3D View Light Source "diffuse_intensity".                                * -->
<!-- *    - Added 3D View Light Source "specular_intensity".                               * -->
<!-- *    - Added 3D View Light Source "linear_attenuation".                               * -->
<!-- *    - Added 3D View Light Source "quadric_attenuation".                              * -->
<!-- *    - Added 3D View Light Source "material_shininess".                               * -->
<!-- *    - Added 3D View Light Source "material_specular_intensity".                      * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.16.0:                                                                    * -->
<!-- *    - Added "camcalibwizard" to "camcalibs".                                         * -->
<!-- *    - Added "systemdescriptions" and "systemdescription" to "calibrations".          * -->
<!-- *    - Added "trajectories" and "trajectory".                                         * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.15.1:                                                                    * -->
<!-- *    - Added "wheel_component_diameter", "wheel_components", "wheel_diameter"         * -->
<!-- *      to "reflcalib".                                                                * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.15:                                                                      * -->
<!-- *    - Added "scale" to "overlayitem ".                                               * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.12.2:                                                                    * -->
<!-- *    - Added "arc_objects" and "arc_object" to "geometry_objects".                    * -->
<!-- *    - Added "monitor_app_scan_position_ref" to "scanposition".                       * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.12:                                                                      * -->
<!-- *    - Added "anchor_point_position_ref" to "scanposition".                           * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.11:                                                                      * -->
<!-- *    - Added "xray_view" to to "objectview".                                          * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.10:                                                                      * -->
<!-- *    - Added MSA 2 boolean switch "force_match" to "tp_prcs" and "tp_llcs"            * -->
<!-- *      true: Force lidar observations to match. i.e.: ignore lidar observation        * -->
<!-- *      accuracies in adjustment.                                                      * -->
<!-- *      false: Consider lidar observation accuracies in adjustment.                    * -->
<!-- *    - Added MSA 2 boolean switch "used_for_adjustment" to "tp_prcs" and "tp_llcs"    * -->
<!-- *      true: Use this control point for adjustment and show residuals in report.      * -->
<!-- *      false: Only show residuals in report but do not use in adjustment.             * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.8.1:                                                                     * -->
<!-- *    - Added "use_color_below" to "view_description"                                  * -->
<!-- *    - Added "use_color_above" to "view_description"                                  * -->
<!-- *    - Added "stereo_enabled" to "objectview"                                         * --> 
<!-- *    - Added "stereo_mode" to "objectview"                                            * -->
<!-- *    - Added "eye_distance" to "objectview"                                           * -->
<!-- *    - Added "eye_dist_factor" to "objectview"                                        * -->
<!-- *    - Added "focal_dist_divider" to "objectview"                                     * -->
<!-- *    - Added "invert_eyes" to "objectview"                                            * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.7:                                                                       * -->
<!-- *    - "coordsystems" as parent for "llcs" and "arcs" added.                          * -->
<!-- *    - "llcs" locally levelled coordinate system added.                               * -->
<!-- *    - "arcs" arbitrary coordinate system added.                                      * -->             
<!-- *    - "tpl_llcs" added.                                                              * -->
<!-- *    - "tp_llcs" added.                                                               * -->
<!-- *    - "tpl_arcs" added.                                                              * -->
<!-- *    - "tp_arcs" added.                                                               * -->
<!-- *    - "lop" matrix added.                                                            * -->             
<!-- *    - "aop" matrix added.                                                            * -->
<!-- *    - "up" vector element added to tp_socs                                           * -->
<!-- *    - "gsm_crs" and "accuracy" added to tp_glcs, tp_prcs                             * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.6.4:                                                                     * -->
<!-- *    - "show_invalid_points" added                                                    * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.6.3:                                                                     * -->
<!-- *    - "position_accuracy" removed and replaced by                                    * -->
<!-- *      "position_accuracy_horz" and "position_accuracy_vert".                         * -->
<!-- *    - "display_pca_planes" added to voxelfile                                        * -->
<!-- *    - "reference_position_ref" added to poseestimation.                              * -->
<!-- *    - "shock_detected" added.                                                        * -->
<!-- *    - "shock_factor" added.                                                          * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.5.5:                                                                     * -->
<!-- *    - "project_epsg" added.                                                          * -->
<!-- *    - "project_wkt" added.                                                           * -->
<!-- *    - "project_location" added.                                                      * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.4.2:                                                                     * -->
<!-- *    - enhances matrices with separate translation and accuracies                     * -->
<!-- *    - adds VPP, VOP and SOPV                                                         * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.4.1:                                                                     * -->
<!-- *    - "voxelfile" updated.                                                           * -->
<!-- *    - "planefile" updated.                                                           * -->
<!-- *    - "observations" updated.                                                        * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.4.0:                                                                     * -->
<!-- *    - "atmosphere" element added.                                                    * -->
<!-- *    - "atmosphere_override" element added.                                           * -->
<!-- *    - "observations" element added.                                                  * -->
<!-- *    - "planefileobservation" element added.                                          * -->
<!-- *    - "planefiles" element added.                                                    * -->
<!-- *    - "planefile" element added.                                                     * -->
<!-- *    - "voxelfiles" element added.                                                    * -->
<!-- *    - "voxelfile" element added.                                                     * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.3.1:                                                                     * -->
<!-- *    - "synchronize_divider" attribute added to element "objectview".                 * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.3.0:                                                                     * -->
<!-- *    - "poseestimations" element added as parent for a "poseestimation" element.      * -->
<!-- *    - "poseestimation" element added.                                                * -->
<!-- *                                                                                     * -->
<!-- *  Version 2.2.0:                                                                     * -->
<!-- *    - "rdb2pointcloud" element added to represent a RDB 2.0 pointcloud.              * -->
<!-- *    - "rdb2pointclouds" element added to "scanposition" to group "rdb2pointcloud"    * -->
<!-- *      elements.                                                                      * -->
<!-- *    - "geometry_objects" -> "pointclouds" now additionally accept "rdb2pointcloud"   * -->
<!-- *      child elements.                                                                * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.12:                                                                   * -->
<!-- *    - Project: Optional "guid" element added.                                        * -->
<!-- *    - Project: "crs_type" element added.                                             * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.11:                                                                   * -->
<!-- *    - navigation_style added                                                         * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.10:                                                                   * -->
<!-- *    - GeoSysManager settings added to project and objectview elements                * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.9:                                                                    * -->
<!-- *    - mountcalib elements have additional 'adjusted' sub-element                     * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.8:                                                                    * -->
<!-- *    - scan, scan_colored, scan_computed elements have measurement program id tag     * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.7:                                                                    * -->
<!-- *    - scan, scan_colored, scan_computed elements have an optional guid element       * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.6:                                                                    * -->
<!-- *    - MTA-* tags added to project, scan, scan_colored and scan_computed tags         * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.5:                                                                    * -->
<!-- *    - Project: geographic position added ("project_latitude", "project_longitude")   * -->
<!-- *    - Images: raw orientation angles for internal calibration purposes added         * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.4:                                                                    * -->
<!-- *    - Added matrix "reference" to aerial view objects which describes the            * -->
<!-- *      the relation between the global and project coordinate systems at the          * -->
<!-- *      time of image import.                                                          * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.3:                                                                    * -->
<!-- *    - Added element "auxfold" for scans, images and polydata objects. This           * -->
<!-- *      element can be used to reference files outside the project folder.             * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.2:                                                                    * -->
<!-- *    - Project overview parameters added to project node.                             * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.1:                                                                    * -->
<!-- *    - GLCS tie points (tp_glcs) have new mandatory property "height".                * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.1:                                                                    * -->
<!-- *    - List "poses" and element "pose" belonging to element "animation"               * -->
<!-- *      removed. This information is stored in an auxiliary file now.                  * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.18.0:                                                                    * -->
<!-- *    - Removed "union_view" elements                                                  * -->
<!-- *    - New parameters for "view_description" added                                    * -->
<!-- *    - New parameters for "geometryinfo" added (reflmax, reflmin, valid_refl)         * -->
<!-- *                                                                                     * -->
<!-- *  Version 1.17.0:                                                                    * -->
<!-- *    - Camera calibration (element "camcalib_opencv") extended in order to            * -->
<!-- *      support lenses with very large field-of-view (e.g. 10mm fisheye lens).         * -->
<!-- *    - Reflectors (SOCS tiepoints) extended by new property "reflectivity" in dB.     * -->
<!-- *                                                                                     * -->
<!-- *   Version 1.16.0 and prior:                                                         * -->
<!-- *     No revision history available for these versions.                               * -->
<!-- *                                                                                     * -->
<!-- *************************************************************************************** -->

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // ENTITIES                                                                          // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ENTITY % object_attrlist "name CDATA #REQUIRED kind CDATA #REQUIRED fold CDATA #IMPLIED states CDATA #IMPLIED date_deleted CDATA #IMPLIED">
  <!ENTITY % vector_attrlist "length CDATA #REQUIRED">
  <!ENTITY % matrix_attrlist "cols CDATA #REQUIRED rows CDATA #REQUIRED">

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // EXTERNAL ELEMENTS                                                                 // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT extern ANY>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // GENERAL ELEMENTS                                                                  // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT posX     (#PCDATA)>
  <!ELEMENT posY     (#PCDATA)>
  <!ELEMENT posZ     (#PCDATA)>
  <!ELEMENT accX     (#PCDATA)>
  <!ELEMENT accY     (#PCDATA)>
  <!ELEMENT accZ     (#PCDATA)>
  <!ELEMENT accRoll  (#PCDATA)>
  <!ELEMENT accPitch (#PCDATA)>
  <!ELEMENT accYaw   (#PCDATA)>
  <!ELEMENT accHorz  (#PCDATA)>
  <!ELEMENT accVert  (#PCDATA)>
  <!ELEMENT gsm_crs  (#PCDATA)> <!-- GeoSys Manager UID   -->
  <!ELEMENT name (#PCDATA)>     <!-- name of object   -->
  <!ELEMENT text (#PCDATA)>     <!-- description text -->
  <!ELEMENT link (#PCDATA)>     <!-- link/url         -->
  <!ELEMENT file (#PCDATA)>     <!-- file reference   -->
  <!ELEMENT fold (#PCDATA)>     <!-- folder reference -->

  <!-- RISD Links -->
  <!ELEMENT lidar-device-id               (#PCDATA)>
  <!ELEMENT lidar-device-name             (#PCDATA)>
  <!ELEMENT camera-device-id              (#PCDATA)>
  <!ELEMENT camera-device-name            (#PCDATA)>
  <!ELEMENT panorama-camera-device-id     (#PCDATA)>
  <!ELEMENT panorama-camera-device-name   (#PCDATA)>
  <!ELEMENT gnss-receiver-id              (#PCDATA)>
  <!ELEMENT gnss-receiver-name            (#PCDATA)>
  <!ELEMENT imu-id                        (#PCDATA)>
  <!ELEMENT imu-name                      (#PCDATA)>

  <!-- used noderefs:                                        -->
  <!-- Note:                                                 -->
  <!-- linked_tp ........ all tp's, optional                 -->
  <!-- refl_ref ......... all tp's, optional                 -->
  <!-- referrer_ref ..... all tp's except tp_image, *        -->
  <!-- finescan_ref ..... only tp_socs and to_socs, optional -->
  <!-- finescantp_ref ... only reflector scans               -->

  <!ELEMENT scanpos_ref                   EMPTY> <!ATTLIST scanpos_ref                  noderef CDATA #REQUIRED>
  <!ELEMENT tiltmount_ref                 EMPTY> <!ATTLIST tiltmount_ref                noderef CDATA #REQUIRED>
  <!ELEMENT position_ref                  EMPTY> <!ATTLIST position_ref                 noderef CDATA #REQUIRED>
  <!ELEMENT source_ref                    EMPTY> <!ATTLIST source_ref                   noderef CDATA #REQUIRED>
  <!ELEMENT source_image_ref              EMPTY> <!ATTLIST source_image_ref             noderef CDATA #REQUIRED>
  <!ELEMENT linked_ref                    EMPTY> <!ATTLIST linked_ref                   noderef CDATA #REQUIRED>
  <!ELEMENT refl_ref                      EMPTY> <!ATTLIST refl_ref                     noderef CDATA #REQUIRED>
  <!ELEMENT refl_ref_quality              (#PCDATA)>    
  <!ELEMENT referrer_ref                  EMPTY> <!ATTLIST referrer_ref                  noderef CDATA #REQUIRED>
  <!ELEMENT finescan_ref                  EMPTY> <!ATTLIST finescan_ref                  noderef CDATA #REQUIRED>
  <!ELEMENT finescantp_ref                EMPTY> <!ATTLIST finescantp_ref                noderef CDATA #REQUIRED>
  <!ELEMENT object_ref                    EMPTY> <!ATTLIST object_ref                    noderef CDATA #REQUIRED>
  <!ELEMENT camcalibundist_ref            EMPTY> <!ATTLIST camcalibundist_ref            noderef CDATA #REQUIRED>
  <!ELEMENT scan_ref                      EMPTY> <!ATTLIST scan_ref                      noderef CDATA #REQUIRED>
  <!ELEMENT opt_tiltmount_ref             EMPTY> <!ATTLIST opt_tiltmount_ref             noderef CDATA #REQUIRED>
  <!ELEMENT opt_position_ref              EMPTY> <!ATTLIST opt_position_ref              noderef CDATA #REQUIRED>
  <!ELEMENT value_ref                     EMPTY> <!ATTLIST value_ref                     noderef CDATA #REQUIRED>
  <!ELEMENT overlay_ref                   EMPTY> <!ATTLIST overlay_ref                   noderef CDATA #REQUIRED>
  <!ELEMENT coordsys_ref                  EMPTY> <!ATTLIST coordsys_ref                  noderef CDATA #REQUIRED>
  <!ELEMENT monitor_app_scan_position_ref EMPTY> <!ATTLIST monitor_app_scan_position_ref noderef CDATA #REQUIRED>
  <!ELEMENT plane_file_one_ref            EMPTY> <!ATTLIST plane_file_one_ref            noderef CDATA #REQUIRED>
  <!ELEMENT plane_file_two_ref            EMPTY> <!ATTLIST plane_file_two_ref            noderef CDATA #REQUIRED>
  <!ELEMENT plane_file_ref                EMPTY> <!ATTLIST plane_file_ref                noderef CDATA #REQUIRED>
  <!ELEMENT points_file_ref               EMPTY> <!ATTLIST points_file_ref               noderef CDATA #REQUIRED>
  <!ELEMENT reference_position_ref        EMPTY> <!ATTLIST reference_position_ref        noderef CDATA #REQUIRED>
  <!ELEMENT voxel_file_ref                EMPTY> <!ATTLIST voxel_file_ref                noderef CDATA #REQUIRED>
  <!ELEMENT plobs_file_ref                EMPTY> <!ATTLIST plobs_file_ref                noderef CDATA #REQUIRED>
  <!ELEMENT ptobs_file_ref                EMPTY> <!ATTLIST ptobs_file_ref                noderef CDATA #REQUIRED>
  <!ELEMENT vpp_ref                       EMPTY> <!ATTLIST vpp_ref                       noderef CDATA #REQUIRED>
  <!ELEMENT anchor_point_position_ref     EMPTY> <!ATTLIST anchor_point_position_ref     noderef CDATA #REQUIRED>
  <!ELEMENT systemdescription_ref         EMPTY> <!ATTLIST systemdescription_ref         noderef CDATA #REQUIRED>
  <!ELEMENT trajectory_piece_ref          EMPTY> <!ATTLIST trajectory_piece_ref          noderef CDATA #REQUIRED>
  <!ELEMENT trajectory_ref                EMPTY> <!ATTLIST trajectory_ref                noderef CDATA #REQUIRED>
  <!ELEMENT stems_ref                     EMPTY> <!ATTLIST stems_ref                     noderef CDATA #REQUIRED>
  <!ELEMENT msa2_control_plane_ref        EMPTY> <!ATTLIST msa2_control_plane_ref        noderef CDATA #REQUIRED>

  <!-- folders and documents: -->

  <!ELEMENT folder (document*, document_fold*, folder*, name, url*)>
  <!ATTLIST folder %object_attrlist;>

  <!ELEMENT document (file, name)>
  <!ATTLIST document %object_attrlist;>
  
  <!ELEMENT document_fold (file, name)>
  <!ATTLIST document_fold %object_attrlist;>

  <!ELEMENT url (link, name)>
  <!ATTLIST url %object_attrlist;>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // PROJECT                                                                           // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

<!-- ************************************************************************************************* -->
<!-- *  Tag 'crs_type' identifies the project coordinate reference system type and can have the      * -->
<!-- *  following values:                                                                            * -->
<!-- *    0 means project coordinate reference system is a local ENU system.                         * -->
<!-- *    1 means project coordinate reference system is ECEF WGS84.                                 * -->
<!-- *    2 means project coordinate reference system is a ECEF system defined by 'gsm_project_crs'. * -->
<!-- ************************************************************************************************* -->

<!ELEMENT height_layers (height_layer*)>
<!ELEMENT height_layer (active, height_max, height_min, name)>
<!ELEMENT height_min (#PCDATA)>   
<!ELEMENT height_max (#PCDATA)> 

<!ELEMENT point_flags (point_flag*)>
<!ELEMENT point_flag (
  checked,
  color,
  description,
  name,
  point_size,
  title,
  use_color,
  visible
)>
<!ELEMENT title     (#PCDATA)>
<!ELEMENT checked   (#PCDATA)>
<!ELEMENT use_color (#PCDATA)>

<!ELEMENT project (
  app_caption,
  app_version,
  calibrations,
  camera,
  cameraserport,
  collections,
  commandport,
  coordsystems,
  crs_type,
  dataport,
  date_created,
  date_modified,
  doc_version,
  folder*,
  geometry_objects,
  gps_port,
  gps_useinitscript,
  gps_usequitscript,
  gsm_database_file,
  gsm_export_crs,
  gsm_export_dtr,
  gsm_import_crs,
  gsm_import_dtr,
  gsm_project_crs,
  gsm_scanner_crs,
  gsm_scanner_dtr,
  guid?,
  height_layers?,
  instrument_phi_offset,
  instrument_range_offset,
  instrument_theta_offset,
  msa2_control_plane_ref?,
  mta_autocalc_enabled,
  mta_estmax_scanrange,
  mta_manual_fixed_zone,
  mta_manual_range_max,
  mta_manual_range_min,
  name,
  overview_max_x,
  overview_max_y,
  overview_min_x,
  overview_min_y,
  point_flags?,
  pop,
  ppm_air_pressure,
  ppm_air_temperature,
  ppm_moisture_pressure,
  ppm_total_geometric_correction,
  project_epsg,
  project_location?,
  project_wkt,
  scanpositions,
  snapshot_ip_addr,
  snapshot_ip_port,
  snapshot_ip_timeout,
  snapshot_mode,
  text,
  timesyncepoch,
  tol_prcs,
  tpl_glcs,
  tpl_prcs,
  views,
  vpps?
)>
<!ATTLIST project %object_attrlist;>

  <!ELEMENT app_caption                    (#PCDATA)>
  <!ELEMENT app_version                    (#PCDATA)>
  <!ELEMENT camera                         (#PCDATA)>
  <!ELEMENT cameraserport                  (#PCDATA)>
  <!ELEMENT commandport                    (#PCDATA)>
  <!ELEMENT dataport                       (#PCDATA)>
  <!ELEMENT gps_port                       (#PCDATA)>
  <!ELEMENT gps_useinitscript              (#PCDATA)>
  <!ELEMENT gps_usequitscript              (#PCDATA)>
  <!ELEMENT gsm_database_file              (#PCDATA)>
  <!ELEMENT gsm_project_crs                (#PCDATA)>
  <!ELEMENT gsm_scanner_crs                (#PCDATA)>
  <!ELEMENT gsm_scanner_dtr                (#PCDATA)>
  <!ELEMENT gsm_import_crs                 (#PCDATA)>
  <!ELEMENT gsm_import_dtr                 (#PCDATA)>
  <!ELEMENT gsm_export_crs                 (#PCDATA)>
  <!ELEMENT gsm_export_dtr                 (#PCDATA)>
  <!ELEMENT date_created                   (#PCDATA)>
  <!ELEMENT date_modified                  (#PCDATA)>
  <!ELEMENT doc_version                    (#PCDATA)>
  <!ELEMENT instrument_phi_offset          (#PCDATA)>
  <!ELEMENT instrument_range_offset        (#PCDATA)>
  <!ELEMENT instrument_theta_offset        (#PCDATA)>
  <!ELEMENT ppm_air_pressure               (#PCDATA)>
  <!ELEMENT ppm_air_temperature            (#PCDATA)>
  <!ELEMENT ppm_moisture_pressure          (#PCDATA)>
  <!ELEMENT ppm_total_geometric_correction (#PCDATA)>
  <!ELEMENT snapshot_ip_addr               (#PCDATA)>
  <!ELEMENT snapshot_ip_port               (#PCDATA)>
  <!ELEMENT snapshot_ip_timeout            (#PCDATA)>
  <!ELEMENT snapshot_mode                  (#PCDATA)>
  <!ELEMENT timesyncepoch                  (#PCDATA)>
  <!ELEMENT overview_min_x                 (#PCDATA)>
  <!ELEMENT overview_min_y                 (#PCDATA)>
  <!ELEMENT overview_max_x                 (#PCDATA)>
  <!ELEMENT overview_max_y                 (#PCDATA)>
  <!ELEMENT mta_autocalc_enabled           (#PCDATA)>
  <!ELEMENT mta_estmax_scanrange           (#PCDATA)>
  <!ELEMENT mta_manual_fixed_zone          (#PCDATA)>
  <!ELEMENT mta_manual_range_min           (#PCDATA)>
  <!ELEMENT mta_manual_range_max           (#PCDATA)>
  <!ELEMENT guid                           (#PCDATA)>
  <!ELEMENT crs_type                       (#PCDATA)>
  <!ELEMENT project_epsg                   (#PCDATA)>
  <!ELEMENT project_wkt                    (#PCDATA)>
  
  <!ELEMENT project_location (
    coordinate1,
    coordinate2,
    coordinate3,
    epsg,
    use_location
  )>
  <!ELEMENT coordinate1  (#PCDATA)>
  <!ELEMENT coordinate2  (#PCDATA)>
  <!ELEMENT coordinate3  (#PCDATA)>
  <!ELEMENT epsg         (#PCDATA)>
  <!ELEMENT use_location (#PCDATA)>
    
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // CALIBRATIONS                                                                      // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT calibrations (
    reflcalibs,
    systemdescriptions
  )>
  <!ATTLIST calibrations %object_attrlist;>

    <!-- ************************************************************************************************* -->
    <!-- * There is a single 'tiltmounts' tag in the project which may contain numerous tiltmount tags.  * -->
    <!-- *                                                                                               * -->
    <!-- * Each 'tiltmount' tag describes a mechanical tilt mount unit with several different distinct   * -->
    <!-- * positions. For every position of the tilt mount a transformation matrix describes the         * -->
    <!-- * transformation with respect to a reference position.                                          * -->
    <!-- *                                                                                               * -->
    <!-- * If a 'tiltmount_ref' tag exists at a scan position, the 'noderef' attribute points to the     * -->
    <!-- * tiltmount used. If this tag exists, also the 'tiltmount_position' tag exists indicating the   * -->
    <!-- * position of the tilt mount at which the scanner has been mounted during data acquisition.     * -->
    <!-- *                                                                                               * -->
    <!-- * If a 'position_ref' tag exists at a scan position, the noderef attribute points to a          * -->
    <!-- * referenced scan position. The referenced scan position has always a tiltmount_ref tag.        * -->
    <!-- * If 'position_ref' tag exists, also the tiltmount_position tag exists indicating the position  * -->
    <!-- * of the tilt mount at which the scanner has been mounted during data acquisition.              * -->
    <!-- * In this case the SOP matrix has another meaning: the SOP transforms from the local SOCS into  * -->
    <!-- * the coordinate system of the referenced scan position. In that case transforming into PRCS    * -->
    <!-- * requires to apply SOP(scanpos_referred) * SOP(scanpos)                                        * -->
    <!-- ************************************************************************************************* -->

    <!ELEMENT tiltmounts (tiltmount*)>
    <!ATTLIST tiltmounts %object_attrlist;>

      <!ELEMENT tiltmount (
        name,
        tiltposition*
      )>
      <!ATTLIST tiltmount %object_attrlist;>

        <!ELEMENT tiltposition (
          angle,
          description,
          matrix
        )>
        <!ELEMENT angle       (#PCDATA)>
        <!ELEMENT description (#PCDATA)>
        <!ELEMENT matrix (#PCDATA)> 
        <!ATTLIST matrix %matrix_attrlist;>





      <!ELEMENT settings           (#PCDATA)>

      <!ELEMENT camcalibtask_scandata (
        camera-device-id?,
        camera-device-name?,
        name,
        scanpos_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST camcalibtask_scandata %object_attrlist;>

        <!ELEMENT tpl_calib (active, tp_calib*)>
        <!ATTLIST tpl_calib %object_attrlist;>

          <!ELEMENT tp_calib (
            active,
            linked_ref?,
            name,
            referrer_ref*,
            vector,
            view
          )>
          <!ATTLIST tp_calib %object_attrlist;>

        <!ELEMENT ncols     (#PCDATA)>
        <!ELEMENT nrows     (#PCDATA)>
        <!ELEMENT rowheight (#PCDATA)>
        <!ELEMENT colwidth  (#PCDATA)>

        
        <!ELEMENT camcalibwizard (
	        camera-device-id?,
          camera-device-name?,
          name,
          systemdescription_ref?
        )>
	      <!ATTLIST camcalibwizard %object_attrlist;>

    <!ELEMENT reflcalibs (reflcalib*)>
    <!ATTLIST reflcalibs %object_attrlist;>

      <!ELEMENT reflcalib (
        active,
        name,
        range_max,
        refl_color,
        refl_const,
        refl_type,
        (
          (v_cylinder_diameter, v_cylinder_height                                                            ) |
          (v_diameter                                                                                        ) |
          (v_disc_diameter, v_disc_width                                                                     ) |
          (v_sphere_diameter                                                                                 ) |
          (wheel_component_diameter, wheel_components, wheel_diameter                                        ) |
          (reflectance_max, reflectance_min, wedge_angle, wedge_color, wedge_count, wedge_diameter, wedge_offset           ) |
          (reflectance_max, reflectance_min, wedge_angle, wedge_color, wedge_count, wedge_height, wedge_offset, wedge_width)
        )
      )>
      <!ATTLIST reflcalib %object_attrlist;>

        <!ELEMENT refl_color               (#PCDATA)>
        <!ELEMENT refl_const               (#PCDATA)>
        <!ELEMENT refl_type                (#PCDATA)>
        <!ELEMENT v_cube_depth             (#PCDATA)>
        <!ELEMENT v_cube_height            (#PCDATA)>
        <!ELEMENT v_cube_width             (#PCDATA)>
        <!ELEMENT v_cylinder_diameter      (#PCDATA)>
        <!ELEMENT v_cylinder_height        (#PCDATA)>
        <!ELEMENT v_disc_diameter          (#PCDATA)>
        <!ELEMENT v_disc_width             (#PCDATA)>
        <!ELEMENT v_sphere_diameter        (#PCDATA)>
        <!ELEMENT v_diameter               (#PCDATA)>
        <!ELEMENT wheel_component_diameter (#PCDATA)>
        <!ELEMENT wheel_components         (#PCDATA)>
        <!ELEMENT wheel_diameter           (#PCDATA)>
        <!ELEMENT wedge_angle              (#PCDATA)>
        <!ELEMENT wedge_color              (#PCDATA)>
        <!ELEMENT wedge_count              (#PCDATA)>
        <!ELEMENT wedge_diameter           (#PCDATA)>
        <!ELEMENT wedge_height             (#PCDATA)>
        <!ELEMENT wedge_offset             (#PCDATA)>
        <!ELEMENT wedge_width              (#PCDATA)>
        <!ELEMENT reflectance_min          (#PCDATA)>
        <!ELEMENT reflectance_max          (#PCDATA)>

        <!ELEMENT systemdescription (
          camcalibtask_scandata*,
          camcalibwizard*,
          file,
          name,
          original_filename
        )>
        <!ATTLIST systemdescription %object_attrlist;>
        <!ELEMENT original_filename (#PCDATA)>

        <!ELEMENT systemdescriptions (
          name,
          systemdescription*
        )>
        <!ATTLIST systemdescriptions %object_attrlist;>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // COLLECTIONS                                                                       // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT collections (animations, overlays, scanconfs, values, viewports, viewtypes)>
  <!ATTLIST collections %object_attrlist;>

  <!ELEMENT viewtypes (view_type*)>
  <!ATTLIST viewtypes %object_attrlist;>
  
  <!ELEMENT view_type (
    name,
    view_description
  )>
  <!ATTLIST view_type %object_attrlist;>
  
    <!ELEMENT viewports (viewport*)>
    <!ATTLIST viewports %object_attrlist;>

      <!ELEMENT viewport (
        direction,
        focal_length,
        mode,
        name,
        position,
        scene_scale,
        up
      )>
      <!ATTLIST viewport %object_attrlist;>

        <!ELEMENT scene_scale  (#PCDATA)>
        <!ELEMENT focal_length (#PCDATA)>
        <!ELEMENT mode         (#PCDATA)>
        <!ELEMENT direction    (#PCDATA)> <!ATTLIST direction %vector_attrlist;>
        <!ELEMENT up           (#PCDATA)> <!ATTLIST up        %vector_attrlist;>
        <!ELEMENT position     (#PCDATA)> <!ATTLIST position  %vector_attrlist;>



    <!ELEMENT scanconfs (scanconf*)>
    <!ATTLIST scanconfs %object_attrlist;>

      <!ELEMENT scanconf (
        blurlimit,
        laser_clock,
        name,
        phi_count,
        phi_delta,
        phi_start,
        theta_count,
        theta_delta,
        theta_start
      )>
      <!ATTLIST scanconf %object_attrlist;>

        <!ELEMENT blurlimit   (#PCDATA)>
        <!ELEMENT theta_start (#PCDATA)>
        <!ELEMENT theta_stop  (#PCDATA)>
        <!ELEMENT theta_delta (#PCDATA)>
        <!ELEMENT theta_count (#PCDATA)>
        <!ELEMENT phi_start   (#PCDATA)>
        <!ELEMENT phi_stop    (#PCDATA)>
        <!ELEMENT phi_delta   (#PCDATA)>
        <!ELEMENT phi_count   (#PCDATA)>
        <!ELEMENT laser_clock (#PCDATA)>



    <!ELEMENT animations (animation*)>
    <!ATTLIST animations %object_attrlist;>

      <!ELEMENT animation (
        name
      )>
      <!ATTLIST animation %object_attrlist;>

          <!ELEMENT duration   (#PCDATA)>
          <!ELEMENT pose_name  (#PCDATA)>
          <!ELEMENT speed      (#PCDATA)>
          <!ELEMENT splitter   (#PCDATA)>
          <!ELEMENT breakpoint (#PCDATA)>


    <!ELEMENT values (value*)>
    <!ATTLIST values %object_attrlist;>

      <!ELEMENT value (
        name,
        valuetype,
        valuevalue
      )>
      <!ATTLIST value %object_attrlist;>

          <!ELEMENT valuetype  (#PCDATA)>
          <!ELEMENT valuevalue (#PCDATA)>



    <!ELEMENT overlays (overlay*)>
    <!ATTLIST overlays %object_attrlist;>

    <!ELEMENT overlay (name, overlayitem*)>
    <!ATTLIST overlay %object_attrlist;>

      <!ELEMENT overlayitem (
        alpha,
        horz_align,
        horz_pos,
        horz_pos_relation,
	scale,
        source_ref?,
        tex_filter_mode,
        transparent,
        vert_align,
        vert_pos,
        vert_pos_relation,
        visible
      )>
      <!ATTLIST overlayitem %object_attrlist;>

        <!ELEMENT alpha             (#PCDATA)>
        <!ELEMENT horz_align        (#PCDATA)>
        <!ELEMENT horz_pos          (#PCDATA)>
        <!ELEMENT horz_pos_relation (#PCDATA)>
	<!ELEMENT scale             (#PCDATA)>
        <!ELEMENT tex_filter_mode   (#PCDATA)>
        <!ELEMENT transparent       (#PCDATA)>
        <!ELEMENT vert_align        (#PCDATA)>
        <!ELEMENT vert_pos          (#PCDATA)>
        <!ELEMENT vert_pos_relation (#PCDATA)>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // SCAN POSITIONS                                                                    // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!-- ************************************************************************************************* -->
  <!-- * There is a single 'scanpositions' tag in each project. The 'scanpositions' holds in           * -->
  <!-- * general several 'scanposition' tags. A 'scanposition' tag holds all data (or in case          * -->
  <!-- * of large amount of data links to the data files) acquired at a single scan position.          * -->
  <!-- * ALL scans and images in a single scan position share the SAME SOP information.                * -->
  <!-- * Below the subtags of 'scanposition' are described:                                            * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'singlescans' holds numerous tags 'scan' describing the scanstaken at the scan position.  * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'scansequences' holds all scan sequences taken at the scan position.                      * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'tiepointscans' holds all tie point scans taken at the scan position as 'scan' tags.      * -->
  <!-- *   Each tie point scan holds the scan data acquired on a tie point (e.g. a reflector).         * -->
  <!-- *   Tag 'fileref' provides the file name of the image file. The path of the file is defined     * -->
  <!-- *   as follows: <path to this xml file>\SCANS\<name of 'scanposition' tag>\TIEPOINTSCANS.       * -->
  <!-- *   Use RiSCANLIB to access the binary 3dd file.                                                * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'scan' holds descriptors for the scan data. Physical data are in degree, meter, Hz.       * -->
  <!-- *   Tag 'fileref' provides the file name of the 3dd data file. The path of the file is defined  * -->
  <!-- *   as follows: <path to this xml file>\SCANS\<name of 'scanposition' tag>\SINGLESCANS.         * -->
  <!-- *   Use RiSCANLIB to access the binary 3dd file.                                                * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'singlemeshes' holds all single meshes at the scan position. A single mesh is generated   * -->
  <!-- *   on request by the user. The meshes are stored as VTK poly data files (*.vtp)                * -->
  <!-- *   Please see www.kitware.com for further information                                          * -->
  <!-- *   The mesh contains the points in the SOCS system, intensity and optional color information,  * -->
  <!-- *   triangulation information, and optionally texturing coordinates.                            * -->
  <!-- *   The path of the file is defined as follows:                                                 * -->
  <!-- *   <path to this xml file>\SCANS\<name of 'scanposition' tag>\SINGLEMESHES.                    * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'sop' holds the transformation matrix converting data from SOCS to PRCS.                  * -->
  <!-- *   pPRCS and pSOCS are point vectors in PRCS and SOCS, respectively.                           * -->
  <!-- *   pPRCS[0] = pSOCS[0]*M[0,0] + pSOCS[1]*M[1,0] + pSOCS[2]*M[2,0] + pSOCS[3]*M[3,0]            * -->
  <!-- *   pPRCS[1] = pSOCS[1]*M[0,1] + pSOCS[1]*M[1,1] + pSOCS[2]*M[2,1] + pSOCS[3]*M[3,1]            * -->
  <!-- *   pPRCS[2] = pSOCS[2]*M[0,2] + pSOCS[1]*M[1,2] + pSOCS[2]*M[2,2] + pSOCS[3]*M[3,2]            * -->
  <!-- *   pPRCS[3] = pSOCS[3]*M[0,3] + pSOCS[1]*M[1,3] + pSOCS[2]*M[2,3] + pSOCS[3]*M[3,3]            * -->
  <!-- *   Values are stored in the order M[0,0] M[1,0] M[2,0] M[3,0] M[0,1] ...                       * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'scanposimages' holds all images acquired at a scan position with the camera mounted on   * -->
  <!-- *   the scanner. The azimuth angle at which the image as been taken, phi, is stored in degrees. * -->
  <!-- *   Tag 'fileref' provides the file name of the image file. The path of the file is defined     * -->
  <!-- *   as follows: <path to this xml file>\SCANS\<name of 'scanposition' tag>\SCANPOSIMAGES.       * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'poseestimations' holds all pose estimation records acquired at this scanposition.        * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'scanposundistimages' holds all undistorted images at a scan position.                    * -->
  <!-- *   Undistorted images are generated on user request and are used for texturing meshes.         * -->
  <!-- *   The path of the file is defined as follows:                                                 * -->
  <!-- *   <path to this xml file>\SCANS\<name of 'scanposition' tag>\SCANPOSIMAGES.                   * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'cop' holds the transformation matrix for the camera images (COP).                        * -->
  <!-- *   See the definition of SOP for details on storing format. With each image RiSCAN PRO         * -->
  <!-- *   stores a transform matrix (COP) holding the information about the orientation of the        * -->
  <!-- *   camera within the scanner's own coordinate system.                                          * -->
  <!-- *                                                                                               * -->
  <!-- * Tag 'tpl_socs' contains a list of positions of reference objects (reflectors, spheres, etc.)  * -->
  <!-- *   in the SOCS.                                                                                * -->
  <!-- ************************************************************************************************* -->

  <!ELEMENT scanpositions (record*, scanposition*)>
  <!ATTLIST scanpositions %object_attrlist;>

    <!ELEMENT scanposition (
      anchor_point_position_ref?,
      date_created?,
      folder*,
      gps_records?,
      monitor_app_scan_position_ref?,
      name,
      observations,
      (opt_tiltmount_ref | opt_position_ref)?,
      panoramaimages?,
      plane_file_ref?,
      planefiles,
      plobs_file_ref?,
      points_file_ref?,
      polydata_objects,
      poseestimations,
      position_accuracy_horz,
      position_accuracy_vert,
      position_coordsys,
      position_enabled,
      position_vector,
      ppm_air_pressure,
      ppm_air_temperature,
      ppm_instrument,
      ppm_moisture_pressure,
      ppm_total_geometric_correction,
      ptobs_file_ref?,
      rdb2pointclouds,
      registered,
      scanposimages,
      scanposundistimages,
      scansequences,
      singlescans,
      sop,
      sopv?,
      text,
      tiepointscans,
      tiltmount_position,
      tol_socs,
      tpl_socs,
      voxel_file_ref?,
      voxelfiles
    )>
    <!ATTLIST scanposition %object_attrlist;>

    <!ELEMENT record (
      anchor_point_position_ref?,
      date_created?,
      folder*,
      gps_records?,
      laserdatafold,
      monitor_app_scan_position_ref?,
      name,
      observations,
      (opt_tiltmount_ref | opt_position_ref)?,
      panoramaimages?,
      plane_file_ref?,
      planefiles,
      plobs_file_ref?,
      points_file_ref?,
      polydata_objects,
      poseestimations,
      position_accuracy_horz,
      position_accuracy_vert,
      position_coordsys,
      position_enabled,
      position_vector,
      ppm_air_pressure,
      ppm_air_temperature,
      ppm_instrument,
      ppm_moisture_pressure,
      ppm_total_geometric_correction,
      ptobs_file_ref?,
      rdb2pointclouds,
      registered,
      scanposimages,
      scanposundistimages,
      scansequences,
      singlescans,
      sop,
      sopv?,
      text,
      tiepointscans,
      tiltmount_position,
      tol_socs,
      tpl_socs,
      trajectories,
      voxel_file_ref?,
      voxelfiles
    )>
    <!ATTLIST record %object_attrlist;>

      <!ELEMENT position_accuracy_horz (#PCDATA)>
      <!ELEMENT position_accuracy_vert (#PCDATA)>
      <!ELEMENT position_enabled       (#PCDATA)>
      <!ELEMENT position_vector        (#PCDATA)>  <!ATTLIST position_vector %vector_attrlist;>
      <!ELEMENT position_coordsys      (#PCDATA)>

      <!ELEMENT gps_records (
        gps_record*
      )>
      <!ELEMENT gps_record EMPTY>
      <!ATTLIST gps_record timestamp CDATA #IMPLIED latitude CDATA #IMPLIED longitude CDATA #IMPLIED altitude CDATA #IMPLIED satellites CDATA #IMPLIED>

      <!ELEMENT ppm_instrument     (#PCDATA)>
      <!ELEMENT registered         (#PCDATA)>
      <!ELEMENT tiltmount_position (#PCDATA)>
      
      <!ELEMENT observations (rdb2observation | planefileobservation | ptsplanesobservation)*>
      <!ATTLIST observations %object_attrlist;>

      <!ELEMENT rdb2observation (
        auxfold?,
        colored?,
        file,
        lidar-device-id?,
        lidar-device-name?,
        name,
        plane_file_one_ref?,
        plane_file_two_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST rdb2observation %object_attrlist;>

      <!ELEMENT planefileobservation (
        auxfold?,
        colored?,
        file,
        lidar-device-id?,
        lidar-device-name?,
        name,
        plane_file_one_ref?,
        plane_file_two_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST planefileobservation %object_attrlist;>
      
      <!ELEMENT ptsplanesobservation (
        auxfold?,
        colored?,
        file,
        lidar-device-id?,
        lidar-device-name?,
        name,
        plane_file_one_ref?,
        plane_file_two_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST ptsplanesobservation %object_attrlist;>
      
      <!ELEMENT planefiles (planefile)*>
      <!ATTLIST planefiles %object_attrlist;>
      <!ELEMENT planefile (
        auxfold?,
        colored?,
        file,
        lidar-device-id?,
        lidar-device-name?,
        name,
        systemdescription_ref?,
        use_for_msa
      )>
      <!ATTLIST planefile %object_attrlist;>
      
      <!ELEMENT voxelfiles (voxelfile)*>
      <!ATTLIST voxelfiles %object_attrlist;>
      <!ELEMENT voxelfile (
        auxfold?,
        colored?,
        file,
        lidar-device-id?,
        lidar-device-name?,
        name,
        systemdescription_ref?
      )>
      <!ATTLIST voxelfile %object_attrlist;>
      
      <!ELEMENT rdb2pointcloud (
        auxfold?,
        colored?,
        file,
        fold?,
        lidar-device-id?,
        lidar-device-name?,
        name,
        stems_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST rdb2pointcloud %object_attrlist;>
        
      <!ELEMENT poseestimations (poseestimation*)>
      <!ATTLIST poseestimations %object_attrlist;>
      
      <!ELEMENT poseestimation (
        auxfold?,
        file,
        gnss-receiver-id,
        gnss-receiver-name,
        name,
        reference_position_ref?,
        systemdescription_ref?
      )>
      <!ATTLIST poseestimation %object_attrlist;>

      <!ELEMENT scanposimages (scanposimage*)>
      <!ATTLIST scanposimages %object_attrlist;>

        <!ELEMENT scanposimage (
          auxfold?,
          camera-device-id?,
          camera-device-name?,
          cop,
          file,
          frame_angle,
          line_angle,
          name,
          source_image_ref?,
          systemdescription_ref?,
          text,
          tpl_image
        )>
        <!ATTLIST scanposimage %object_attrlist;>

          <!ELEMENT freeze         (#PCDATA)>
          <!ELEMENT frame_angle    (#PCDATA)>
          <!ELEMENT line_angle     (#PCDATA)>

          <!-- ************************************************************************************************ -->
          <!-- * This node holds the transformation matrix for the camera images (COP).                       * -->
          <!-- * See the definition of SOP for details on storing format.                                     * -->
          <!-- *                                                                                              * -->
          <!-- * Case 1: Image within scan position (i.e., camera mounted on top of scanner:                  * -->
          <!-- *                                                                                              * -->
          <!-- * With each image, RiSCAN PRO stores a transform matrix (COP) holding the information about    * -->
          <!-- * the orientation of the camera within the scanner's own coordinate system with respect to     * -->
          <!-- * a reference orientation. Furthermore, a mounting matrix have to be available which           * -->
          <!-- * transforms from the SOCS system into the CMCS at the reference orientation. This information * -->
          <!-- * is contained also in the calibrations section addressed as mounting calibration. The         * -->
          <!-- * mounting calibration has to be updated after every mounting of the camera. In order to       * -->
          <!-- * transform a pixel in the image into a ray in PRCS/GLCS the following transformations have    * -->
          <!-- * to be applied:                                                                               * -->
          <!-- *                                                                                              * -->
          <!-- *    * Distorted to undistorted pixel coordinates using the intrinsic parameters of the camera * -->
          <!-- *    * Reverse perspective projection to obtain a ray in CMCS                                  * -->
          <!-- *    * Transform of ray by (mounting matrix)-1 and by COP into SOCS                            * -->
          <!-- *    * Transform of ray by SOP into PRCS and if necessary by POP into GLCS                     * -->
          <!-- *                                                                                              * -->
          <!-- * Case 2: Image within project (i.e., camera NOT mounted:                                      * -->
          <!-- *                                                                                              * -->
          <!-- * There is a single transformation matrix stored (COP) which transforms from the camera's      * -->
          <!-- * coordinate system into the project coordinate system. In order to transform a pixel in       * -->
          <!-- * the image into a ray in PRCS/GLCS the following transformations have to be applied:          * -->
          <!-- *                                                                                              * -->
          <!-- *    * Distorted to undistorted pixel coordinates using the intrinsic parameters of the        * -->
          <!-- *      camera                                                                                  * -->
          <!-- *    * Reverse perspective projection to obtain a ray in CMCS                                  * -->
          <!-- *    * Transform of ray by COP into PRCS and if necessary by POP into GLCS                     * -->
          <!-- ************************************************************************************************ -->

          <!ELEMENT cop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
          <!ATTLIST cop %object_attrlist;>

          <!ELEMENT tpl_image (active, tp_image*)>
          <!ATTLIST tpl_image %object_attrlist;>

            <!ELEMENT combinedadjustment (#PCDATA)>

            <!ELEMENT tp_image (
              active,
              linked_ref?,
              name,
              refl_ref?,
              refl_ref_quality?,
              size,
              u,
              v,
              view
            )>
            <!ATTLIST tp_image %object_attrlist;>

              <!ELEMENT active (#PCDATA)>
              <!ELEMENT u      (#PCDATA)>
              <!ELEMENT v      (#PCDATA)>
              <!ELEMENT size   (#PCDATA)>

      <!ELEMENT singlescans (scan | scan_colored | scan_computed)*>
      <!ATTLIST singlescans %object_attrlist;>

      <!ELEMENT laserdatafold (laserdata)*>
      <!ATTLIST laserdatafold %object_attrlist;>

      <!ELEMENT innerboundingbox  (#PCDATA)>
      <!ELEMENT outerboundingbox  (#PCDATA)>
      <!ELEMENT innerboundingboxxmin (#PCDATA)>
      <!ELEMENT innerboundingboxymin (#PCDATA)>
      <!ELEMENT innerboundingboxzmin (#PCDATA)>
      <!ELEMENT outerboundingboxxmin (#PCDATA)>
      <!ELEMENT outerboundingboxymin (#PCDATA)>
      <!ELEMENT outerboundingboxzmin (#PCDATA)>
      <!ELEMENT innerboundingboxxmax (#PCDATA)>
      <!ELEMENT innerboundingboxymax (#PCDATA)>
      <!ELEMENT innerboundingboxzmax (#PCDATA)>
      <!ELEMENT outerboundingboxxmax (#PCDATA)>
      <!ELEMENT outerboundingboxymax (#PCDATA)>
      <!ELEMENT outerboundingboxzmax (#PCDATA)>

      <!ELEMENT axisalignedboundingbox (
          innerboundingbox,
          innerboundingboxxmax,
          innerboundingboxxmin,
          innerboundingboxymax,
          innerboundingboxymin,
          innerboundingboxzmax,
          innerboundingboxzmin,
          outerboundingbox,
          outerboundingboxxmax,
          outerboundingboxxmin,
          outerboundingboxymax,
          outerboundingboxymin,
          outerboundingboxzmax,
          outerboundingboxzmin
      )>

      <!ELEMENT laserdata (
          auxfold?,
          axisalignedboundingbox?,
          beamfocus?,
          blurlimit?,
          colored?,
          commandport?,
          dataport?,
          file,
          finescantp_ref?,
          fold?,
          frame_count?,
          geometryinfo?,
          guid?,
          hemispherical_acquisition_setting?,
          hemispherical_conversion_setting?,
          hemispherical_scan?,
          instrument?,
          laser_clock?,
          laserattenuated?,
          lidar-device-id?,
          lidar-device-name?,
          measurementprogram?,
          measurementprogramid?,
          motion?,
          mta_autocalc_enabled?,
          mta_estmax_scanrange?,
          mta_manual_fixed_zone?,
          mta_manual_range_max?,
          mta_manual_range_min?,
          name,
          numtargets?,
          phi_count?,
          phi_delta?,
          phi_start?,
          range_statistics?,
          serialnumber?,
          settings?,
          shock_detected?,
          shock_factor?,
          systemdescription_ref?,
          text?,
          theta_count?,
          theta_delta?,
          theta_start?,
          trajectory_piece_ref?,
          trajectory_ref?,
          time?,
          type?,
          wideninglensactivated?
      )>
      <!ATTLIST laserdata %object_attrlist;>
      
      <!ELEMENT rdb2pointclouds (rdb2pointcloud)*>
      <!ATTLIST rdb2pointclouds %object_attrlist;>

        <!ELEMENT scan (
          auxfold?,
          beamfocus,
          blurlimit, 
          colored?,
          commandport,
          dataport,
          file,
          finescantp_ref?,
          fold?,
          frame_count, 
          geometryinfo?,
          guid?,
          hemispherical_acquisition_setting?,
          hemispherical_conversion_setting?,
          hemispherical_scan?,
          instrument,
          laser_clock,
          laserattenuated,
          lidar-device-id?,
          lidar-device-name?,
          measurementprogram,
          measurementprogramid,
          motion, 
          mta_autocalc_enabled,
          mta_estmax_scanrange,
          mta_manual_fixed_zone,
          mta_manual_range_max,
          mta_manual_range_min,
          name,
          numtargets,
          phi_count, 
          phi_delta, 
          phi_start,
          range_statistics?,
          serialnumber,
          settings,
          shock_detected,
          shock_factor,
          systemdescription_ref?,
          text,
          theta_count, 
          theta_delta, 
          theta_start, 
          time, 
          type, 
          wideninglensactivated
        )>
        <!ATTLIST scan %object_attrlist;>

          <!ELEMENT colored                           (#PCDATA)>
          <!ELEMENT auxfold                           (#PCDATA)>
          <!ELEMENT numtargets                        (#PCDATA)>
          <!ELEMENT serialnumber                      (#PCDATA)>
          <!ELEMENT instrument                        (#PCDATA)>
          <!ELEMENT motion                            (#PCDATA)>
          <!ELEMENT laserattenuated                   (#PCDATA)>
          <!ELEMENT wideninglensactivated             (#PCDATA)>
          <!ELEMENT time                              (#PCDATA)>
          <!ELEMENT beamfocus                         (#PCDATA)>
          <!ELEMENT type                              (#PCDATA)>
          <!ELEMENT frame_count                       (#PCDATA)>
          <!ELEMENT measurementprogram                (#PCDATA)>
          <!ELEMENT measurementprogramid              (#PCDATA)>
          <!ELEMENT hemispherical_acquisition_setting (#PCDATA)>
          <!ELEMENT hemispherical_conversion_setting  (#PCDATA)> 
          <!ELEMENT hemispherical_scan                (#PCDATA)>
          <!ELEMENT shock_detected                    (#PCDATA)>
          <!ELEMENT shock_factor                      (#PCDATA)> 
          
          <!ELEMENT range_statistics (
            range_avg,
            range_max,
            range_min,
            range_stddev
          )>
          <!ELEMENT range_avg    (#PCDATA)>
          <!ELEMENT range_max    (#PCDATA)>
          <!ELEMENT range_min    (#PCDATA)>
          <!ELEMENT range_stddev (#PCDATA)>
    
          <!ELEMENT geometryinfo (
            intmax,
            intmin,
            maxcart,
            maxpolar,
            mincart,
            minpolar,
            reflmax?,
            reflmin?,
            valid_cart,
            valid_int,
            valid_refl?
          )>

            <!ELEMENT mincart    (#PCDATA)> <!ATTLIST mincart  %vector_attrlist;>
            <!ELEMENT maxcart    (#PCDATA)> <!ATTLIST maxcart  %vector_attrlist;>
            <!ELEMENT minpolar   (#PCDATA)> <!ATTLIST minpolar %vector_attrlist;>
            <!ELEMENT maxpolar   (#PCDATA)> <!ATTLIST maxpolar %vector_attrlist;>

            <!ELEMENT intmin     (#PCDATA)>
            <!ELEMENT intmax     (#PCDATA)>
            <!ELEMENT reflmin    (#PCDATA)>
            <!ELEMENT reflmax    (#PCDATA)>
            <!ELEMENT valid_cart (#PCDATA)>
            <!ELEMENT valid_int  (#PCDATA)>
            <!ELEMENT valid_refl (#PCDATA)>

        <!ELEMENT scan_colored (
          auxfold?,
          beamfocus, 
          blurlimit, 
          colored?,
          commandport,
          dataport,
          file,
          finescantp_ref?,
          fold?,
          frame_count, 
          geometryinfo?,
          guid?,
          hemispherical_acquisition_setting?,
          hemispherical_conversion_setting?,
          hemispherical_scan?,
          instrument,
          laser_clock,
          laserattenuated,
          lidar-device-id?,
          lidar-device-name?,
          measurementprogram,
          measurementprogramid,
          motion,
          mta_autocalc_enabled,
          mta_estmax_scanrange,
          mta_manual_fixed_zone,
          mta_manual_range_max,
          mta_manual_range_min,
          name,
          numtargets,
          phi_count, 
          phi_delta, 
          phi_start,
          serialnumber,
          settings,
          shock_detected,
          shock_factor,
          systemdescription_ref?,
          text,
          theta_count, 
          theta_delta, 
          theta_start, 
          time, 
          type, 
          wideninglensactivated
        )>
        <!ATTLIST scan_colored %object_attrlist;>

        <!ELEMENT scan_computed (
          auxfold?,
          beamfocus, 
          blurlimit, 
          colored?,
          commandport,
          dataport,
          file,
          finescantp_ref?,
          fold?,
          frame_count, 
          geometryinfo?,
          guid?,
          hemispherical_acquisition_setting?,
          hemispherical_conversion_setting?,
          hemispherical_scan?,
          instrument,
          laser_clock,
          laserattenuated,
          lidar-device-id?,
          lidar-device-name?,
          measurementprogram,
          measurementprogramid,
          motion,
          mta_autocalc_enabled,
          mta_estmax_scanrange,
          mta_manual_fixed_zone,
          mta_manual_range_max,
          mta_manual_range_min,
          name,
          numtargets,
          phi_count, 
          phi_delta, 
          phi_start,
          serialnumber,
          settings,
          shock_detected,
          shock_factor,
          systemdescription_ref?,
          text,
          theta_count, 
          theta_delta, 
          theta_start, 
          time, 
          type, 
          wideninglensactivated
        )>
        <!ATTLIST scan_computed %object_attrlist;>

      <!ELEMENT scansequences (scan | scan_colored | scan_computed)*>
      <!ATTLIST scansequences %object_attrlist;>

      <!ELEMENT tiepointscans (scan | scan_colored | scan_computed)*>
      <!ATTLIST tiepointscans %object_attrlist;>

      <!ELEMENT polydata_objects (polydata_object*)>
      <!ATTLIST polydata_objects %object_attrlist;>

        <!ELEMENT polydata_object (
          abserr_deci,
          accerror_deci,
          auxfold?,
          boundsmooth,
          color,
          conv_smooth,
          decimate,
          depth_fac,
          depth_thr,
          edgeangle_smooth,
          edgesmooth,
          featangle_deci,
          featangle_smooth,
          file,
          fisheye,
          geometryinfo?,
          itercount_smooth,
          keep_inf,
          modbound_deci,
          name,
          noise,
          nonmanifold_smooth,
          passband_smooth,
          polydata_subobject*,
          preservetopt_deci,
          presplit_deci,
          redfact_deci,
          relfact_smooth,
          ring_auto,
          ring_start,
          ring_stop,
          ring_use,
          smooth,
          smoothmode,
          source_ref*,
          splitangle_deci,
          splitting_deci,
          text,
          use_depth_fac,
          use_depth_thr,
          use_for_msa,
          use_noise,
          value_ref*,
          verbose_level,
          wedge_auto,
          wedge_start,
          wedge_stop,
          wedge_use
        )>
        <!ATTLIST polydata_object %object_attrlist;>

          <!ELEMENT polydata_subobject (
            abserr_deci,
            accerror_deci,
            boundsmooth,
            color,
            conv_smooth,
            decimate,
            depth_fac,
            depth_thr,
            edgeangle_smooth,
            edgesmooth,
            featangle_deci,
            featangle_smooth,
            file,
            fisheye,
            geometryinfo?,
            itercount_smooth,
            keep_inf,
            modbound_deci,
            name,
            noise,
            nonmanifold_smooth,
            passband_smooth,
            preservetopt_deci,
            presplit_deci,
            redfact_deci,
            relfact_smooth,
            ring_auto,
            ring_start,
            ring_stop,
            ring_use,
            smooth,
            smoothmode,
            source_ref*,
            splitangle_deci,
            splitting_deci,
            text,
            use_depth_fac,
            use_depth_thr,
            use_noise,
            verbose_level,
            wedge_auto,
            wedge_start,
            wedge_stop,
            wedge_use
          )>
          <!ATTLIST polydata_subobject %object_attrlist;>

            <!ELEMENT fisheye            (#PCDATA)>
            <!ELEMENT keep_inf           (#PCDATA)>
            <!ELEMENT use_depth_fac      (#PCDATA)>
            <!ELEMENT depth_fac          (#PCDATA)>
            <!ELEMENT use_depth_thr      (#PCDATA)>
            <!ELEMENT depth_thr          (#PCDATA)>
            <!ELEMENT use_for_msa        (#PCDATA)>
            <!ELEMENT use_noise          (#PCDATA)>
            <!ELEMENT noise              (#PCDATA)>
            <!ELEMENT wedge_use          (#PCDATA)>
            <!ELEMENT wedge_auto         (#PCDATA)>
            <!ELEMENT wedge_start        (#PCDATA)>
            <!ELEMENT wedge_stop         (#PCDATA)>
            <!ELEMENT ring_use           (#PCDATA)>
            <!ELEMENT ring_auto          (#PCDATA)>
            <!ELEMENT ring_start         (#PCDATA)>
            <!ELEMENT ring_stop          (#PCDATA)>
            <!ELEMENT color              (#PCDATA)>
            <!ELEMENT verbose_level      (#PCDATA)>

            <!ELEMENT smooth             (#PCDATA)>
            <!ELEMENT decimate           (#PCDATA)>
            <!ELEMENT smoothmode         (#PCDATA)>
            <!ELEMENT edgesmooth         (#PCDATA)>
            <!ELEMENT boundsmooth        (#PCDATA)>
            <!ELEMENT nonmanifold_smooth (#PCDATA)>
            <!ELEMENT itercount_smooth   (#PCDATA)>
            <!ELEMENT relfact_smooth     (#PCDATA)>
            <!ELEMENT passband_smooth    (#PCDATA)>
            <!ELEMENT featangle_smooth   (#PCDATA)>
            <!ELEMENT conv_smooth        (#PCDATA)>
            <!ELEMENT edgeangle_smooth   (#PCDATA)>
            <!ELEMENT preservetopt_deci  (#PCDATA)>
            <!ELEMENT splitting_deci     (#PCDATA)>
            <!ELEMENT modbound_deci      (#PCDATA)>
            <!ELEMENT presplit_deci      (#PCDATA)>
            <!ELEMENT accerror_deci      (#PCDATA)>
            <!ELEMENT redfact_deci       (#PCDATA)>
            <!ELEMENT abserr_deci        (#PCDATA)>
            <!ELEMENT featangle_deci     (#PCDATA)>
            <!ELEMENT splitangle_deci    (#PCDATA)>
            
      <!ELEMENT scanposundistimages (scanposundistimage*)>
      <!ATTLIST scanposundistimages %object_attrlist;>

        <!ELEMENT scanposundistimage (
          auxfold?,
          camera-device-id?,
          camera-device-name?,
	        cop,
          file,
          frame_angle,
          line_angle,
          name,
          source_image_ref?,
          systemdescription_ref?,
          text,
          tpl_image
        )>
        <!ATTLIST scanposundistimage %object_attrlist;>

      <!-- ************************************************************************************************ -->
      <!-- * This node holds the transformation matrix converting data from SOCS to PRCS.                 * -->
      <!-- * pPRCS and pSOCS are point vectors in PRCS and SOCS, respectively.                            * -->
      <!-- * pPRCS[0] = pSOCS[0]*M[0,0] + pSOCS[1]*M[1,0] + pSOCS[2]*M[2,0] + pSOCS[3]*M[3,0]             * -->
      <!-- * pPRCS[1] = pSOCS[1]*M[0,1] + pSOCS[1]*M[1,1] + pSOCS[2]*M[2,1] + pSOCS[3]*M[3,1]             * -->
      <!-- * pPRCS[2] = pSOCS[2]*M[0,2] + pSOCS[1]*M[1,2] + pSOCS[2]*M[2,2] + pSOCS[3]*M[3,2]             * -->
      <!-- * pPRCS[3] = pSOCS[3]*M[0,3] + pSOCS[1]*M[1,3] + pSOCS[2]*M[2,3] + pSOCS[3]*M[3,3]             * -->
      <!-- * Values are stored in the order M[0,0] M[1,0] M[2,0] M[3,0] M[0,1] ...                        * -->
      <!-- ************************************************************************************************ -->

      <!ELEMENT sop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
      <!ATTLIST sop %object_attrlist;>
      
      <!ELEMENT sopv (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?, vpp_ref?)>
      <!ATTLIST sopv %object_attrlist;>

      <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
      <!-- // TOL (SOCS)                                                                        // -->
      <!-- /////////////////////////////////////////////////////////////////////////////////////// -->

      <!ELEMENT tol_socs (active, to_socs*)>
      <!ATTLIST tol_socs %object_attrlist;>

        <!ELEMENT to_socs (
          active,
          area,
          direction,
          file?,
          finescan_ref?,
          linked_ref?,
          meanampl,
          name,
          nmeas,
          normal,
          origin,
          stdev
        )>
        <!ATTLIST to_socs %object_attrlist;>

        <!ELEMENT normal    (#PCDATA)> <!ATTLIST normal %vector_attrlist;>
        <!ELEMENT origin    (#PCDATA)> <!ATTLIST origin %vector_attrlist;>
<!--        <!ELEMENT direction (#PCDATA)> <!ATTLIST origin %vector_attrlist;>-->
        <!ELEMENT nmeas    (#PCDATA)>
        <!ELEMENT meanampl (#PCDATA)>
        <!ELEMENT area     (#PCDATA)>
        <!ELEMENT stdev    (#PCDATA)>

      <!-- /////////////////////////////////////////////////////////////////////////////////////// -->
      <!-- // TPL (SOCS)                                                                        // -->
      <!-- /////////////////////////////////////////////////////////////////////////////////////// -->

      <!ELEMENT tpl_socs (active, tp_socs*)>
      <!ATTLIST tpl_socs %object_attrlist;>

        <!ELEMENT tp_socs (
          accuracy,
          active,
          direction?,
          finescan_ref?,
          intensity,
          linked_ref?,
          name,
          pixels,
          referrer_ref*,
          refl_ref?,
          refl_ref_quality?,
          reflectivity,
          refltype,
          up?,
          vector,
          view
        )>
        <!ATTLIST tp_socs %object_attrlist;>

          <!ELEMENT vector       (#PCDATA)> <!ATTLIST vector   %vector_attrlist;>
          <!ELEMENT accuracy     (#PCDATA)> <!ATTLIST accuracy %vector_attrlist;>
          <!ELEMENT pixels       (#PCDATA)>
          <!ELEMENT refltype     (#PCDATA)>
          <!ELEMENT intensity    (#PCDATA)>
          <!ELEMENT reflectivity (#PCDATA)>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // VIEWS                                                                             // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT views (objectview)*>
  <!ATTLIST views %object_attrlist;>

    <!ELEMENT view_description (combine, lut, lut_cycles, param*, paramcount, show_invalid_points, use_color_above, use_color_below, viewtype)>

      <!ELEMENT viewtype   (#PCDATA)>
      <!ELEMENT paramcount (#PCDATA)>

      <!ELEMENT param (paramtype, paramvalue)>

        <!ELEMENT paramtype  (#PCDATA)>
        <!ELEMENT paramvalue (#PCDATA)>
          
      <!ELEMENT combine    (#PCDATA)>
      <!ELEMENT lut        (#PCDATA)>
      <!ELEMENT lut_cycles (#PCDATA)>
      <!ELEMENT show_invalid_points (#PCDATA)>
      <!ELEMENT use_color_below (#PCDATA)>
      <!ELEMENT use_color_above (#PCDATA)>

    <!ELEMENT objectview (
      background_color,
      bbox_color,
      coordsys_ref?,
      dynamic_div_fps,
      dynamic_div_mode,
      dynamic_divider,
      eye_dist_factor,
      eye_distance,
      focal_dist_divider,
      font_color,
      font_name,
      font_scale,
      font_style,
      geometryinfo?,
      gsm_view_crs,
      gsm_view_dtr,
      gsm_view_on,
      invert_eyes,
      name,
      objects_referenced,
      overlay_ref?,
      pickpoint_color,
      pickpoint_size,
      point_attribute_filters?,
      point_flags?,
      show_axis,
      show_bbox,
      show_grid,
      static_divider,
      stereo_enabled,
      stereo_mode,
      synchronize_divider,
      xray_view
    )>
    <!ATTLIST objectview %object_attrlist;>
      <!ELEMENT background_color    (#PCDATA)>
      <!ELEMENT bbox_color          (#PCDATA)>
      <!ELEMENT dynamic_div_fps     (#PCDATA)>
      <!ELEMENT dynamic_div_mode    (#PCDATA)>
      <!ELEMENT dynamic_divider     (#PCDATA)>
      <!ELEMENT font_color          (#PCDATA)>      
      <!ELEMENT font_name           (#PCDATA)>
      <!ELEMENT font_scale          (#PCDATA)>
      <!ELEMENT font_style          (#PCDATA)>
      <!ELEMENT pickpoint_color     (#PCDATA)>
      <!ELEMENT pickpoint_size      (#PCDATA)>
      <!ELEMENT show_axis           (#PCDATA)>
      <!ELEMENT show_bbox           (#PCDATA)>
      <!ELEMENT show_grid           (#PCDATA)>
      <!ELEMENT static_divider      (#PCDATA)>
      <!ELEMENT synchronize_divider (#PCDATA)>
      <!ELEMENT gsm_view_crs        (#PCDATA)>
      <!ELEMENT gsm_view_dtr        (#PCDATA)>
      <!ELEMENT gsm_view_on         (#PCDATA)>
      <!ELEMENT stereo_enabled      (#PCDATA)>
      <!ELEMENT stereo_mode         (#PCDATA)>
      <!ELEMENT eye_distance        (#PCDATA)>
      <!ELEMENT eye_dist_factor     (#PCDATA)>
      <!ELEMENT focal_dist_divider  (#PCDATA)>
      <!ELEMENT invert_eyes         (#PCDATA)>
      <!ELEMENT xray_view           (#PCDATA)>

      <!-- NO EXTERNAL DATA SHOULD BE PLACED BEYOND THIS POINT -->

      <!ELEMENT objects_referenced (object_referenced*)>

        <!ELEMENT object_referenced (
          a_dataloaded,
          a_locked,        
          a_type,
          (
            (camera_mode, depth_of_view, direction, focal_length, navigation_mode, navigation_style, near_plane, ortho_dist, ortho_scene_scale, position, prcs_scale, scene_scale, up                                        ) |
            (ambient_intensity, azimuth, color_temperature, diffuse_intensity, elevation, linear_attenuation, material_shininess, material_specular_intensity, quadric_attenuation, shading_setting, shining, source_mode, specular_intensity ) |
            (color, object_ref, show_caption, tp_connection, visible                                                                                                                                                         ) |
            (color, object_ref, show_caption, visible                                                                                                                                                                        ) |
            (color_mode, multi_color, object_ref, point_color, point_flags?, point_size, point_size_mode, show_first_targets, show_last_targets, show_other_targets, show_single_targets, smooth_points, view_description, visible         ) |
            (object_ref, point_normals, poly_lists?, poly_normals, polylines?, vertex_lists?, view_description, visible                                                                                                      ) |
            (color_mode, dyn_size_offset, lod_factor, object_ref, occl_cull, point_color, point_size, smooth_points, use_dyn_size, use_lod, view_description, visible                                                        ) |
					(object_ref, show_caption, tp_color, tp_draw_mode, tp_point_size, visible                                                                                                                                ) |
					(object_ref, show_caption, to_color, to_draw_mode, to_line_width, visible                                                                                                                                ) |
					(line_color, line_width, node_color, node_size, object_ref, render_always_on_top, show_area, show_caption, show_nodes, show_segment_lengths, show_total_length, visible                                  ) |
          (line_color, line_width, node_color, node_size, object_ref, show_arc_height, show_arc_length, show_caption, show_central_angle, show_chord_length, show_nodes, show_radius, visible                      ) |
					(object_ref, sphere_color, visible                                                                                                                                                                       ) |
					(cylinder_color, object_ref, visible                                                                                                                                                                     ) |
					(object_ref, plane_color, plane_draw_mode, visible                                                                                                                                                       ) |
					(dist_end_point, dist_line_color, dist_line_width, dist_name, dist_point_color, dist_point_size, dist_show_angle, dist_show_horiz, dist_show_slant, dist_show_vert, dist_start_point, visible            ) |
	            (object_ref, sect_color, sect_color_mode, sect_draw_mode, sect_node_color, sect_node_size, sect_show_hq_lines, sect_show_lq_lines, sect_show_mf_lines, sect_show_nodes, sect_size, visible                   ) |
            (object_ref, ortho_draw_style, ortho_point_size, visible                                                                                                                                                         ) |
            (aerialview_backface, aerialview_interpolation, object_ref, visible                                                                                                                                              ) |
            (object_ref, point_color, point_size, show_caption, visible                                                                                                                                                      ) |
            (clip_pca_result, cog_color, cog_color_use, cog_point_size, cog_visible, display_pca_planes, normal_length, normal_width, object_ref, pca_result_visible, point_flags?, show_normal, view_description, visible, voxel_alpha, voxel_color, voxel_color_mode, voxel_draw_mode, voxel_line_width, voxel_scale, voxel_visible          ) |
            (minmax_plane_scale, normal_length, normal_width, object_ref, origin_size, plane_alpha, plane_color, plane_color_mode, plane_draw_mode, point_flags?, show_main_plane, show_minmax_plane, show_normal, show_origin, view_description, visible) |
            (object_ref, observation_color, observation_color_mode, observation_line_width, point_flags?, view_description, visible                                                                                                        ) 
		  )
        )>

          <!ELEMENT a_dataloaded                (#PCDATA)>
          <!ELEMENT a_locked                    (#PCDATA)>
          <!ELEMENT a_type                      (#PCDATA)>
          <!ELEMENT aerialview_backface         (#PCDATA)>
          <!ELEMENT aerialview_interpolation    (#PCDATA)>
          <!ELEMENT back_face                   (#PCDATA)>
          <!ELEMENT camera_mode                 (#PCDATA)>
          <!ELEMENT clip_pca_result             (#PCDATA)>
          <!ELEMENT cog_color                   (#PCDATA)>
          <!ELEMENT cog_color_use               (#PCDATA)>
          <!ELEMENT cog_point_size              (#PCDATA)>
          <!ELEMENT cog_visible                 (#PCDATA)>
          <!ELEMENT color_mode                  (#PCDATA)>
          <!ELEMENT cylinder_color              (#PCDATA)>
          <!ELEMENT depth_of_view               (#PCDATA)>
          <!ELEMENT display_pca_planes          (#PCDATA)>
          <!ELEMENT dist_end_point              (#PCDATA)> <!ATTLIST dist_end_point    %vector_attrlist;>
          <!ELEMENT dist_line_color             (#PCDATA)>
          <!ELEMENT dist_line_width             (#PCDATA)>
          <!ELEMENT dist_name                   (#PCDATA)>
          <!ELEMENT dist_point_color            (#PCDATA)>
          <!ELEMENT dist_point_size             (#PCDATA)>
          <!ELEMENT dist_show_angle             (#PCDATA)>
          <!ELEMENT dist_show_horiz             (#PCDATA)>
          <!ELEMENT dist_show_slant             (#PCDATA)>
          <!ELEMENT dist_show_vert              (#PCDATA)> 
          <!ELEMENT dist_start_point            (#PCDATA)> <!ATTLIST dist_start_point  %vector_attrlist;>
          <!ELEMENT dyn_size_offset             (#PCDATA)>
          <!ELEMENT dynamic                     (#PCDATA)>
          <!ELEMENT face_color                  (#PCDATA)>
          <!ELEMENT front_face                  (#PCDATA)>
          <!ELEMENT length                      (#PCDATA)>
          <!ELEMENT line_color                  (#PCDATA)>
          <!ELEMENT line_width                  (#PCDATA)>
          <!ELEMENT show_segment_lengths        (#PCDATA)>           
          <!ELEMENT show_total_length           (#PCDATA)>        
          <!ELEMENT show_area                   (#PCDATA)>
          <!ELEMENT show_radius                 (#PCDATA)>
          <!ELEMENT show_central_angle          (#PCDATA)>
          <!ELEMENT show_arc_length             (#PCDATA)>
          <!ELEMENT show_chord_length           (#PCDATA)>
          <!ELEMENT show_arc_height             (#PCDATA)>
          <!ELEMENT lod_factor                  (#PCDATA)>
          <!ELEMENT minmax_plane_scale          (#PCDATA)>
          <!ELEMENT multi_color                 (#PCDATA)>
          <!ELEMENT navigation_mode             (#PCDATA)>
          <!ELEMENT navigation_style            (#PCDATA)>
          <!ELEMENT near_plane                  (#PCDATA)>
          <!ELEMENT node_color                  (#PCDATA)>
          <!ELEMENT node_size                   (#PCDATA)>
          <!ELEMENT normal_length               (#PCDATA)>
          <!ELEMENT normal_width                (#PCDATA)>
          <!ELEMENT observation_color           (#PCDATA)>
          <!ELEMENT observation_color_mode      (#PCDATA)>
          <!ELEMENT observation_line_width      (#PCDATA)>
          <!ELEMENT occl_cull                   (#PCDATA)>
          <!ELEMENT origin_size                 (#PCDATA)>
          <!ELEMENT ortho_dist                  (#PCDATA)>
          <!ELEMENT ortho_scene_scale           (#PCDATA)>
          <!ELEMENT pca_result_visible          (#PCDATA)>
          <!ELEMENT prcs_scale                  (#PCDATA)> <!ATTLIST prcs_scale %vector_attrlist;>
          <!ELEMENT plane_color                 (#PCDATA)>
          <!ELEMENT plane_draw_mode             (#PCDATA)>
          <!ELEMENT plane_alpha                 (#PCDATA)>
          <!ELEMENT plane_color_mode            (#PCDATA)>
          <!ELEMENT point_color                 (#PCDATA)>
          <!ELEMENT point_size                  (#PCDATA)>
          <!ELEMENT point_size_mode             (#PCDATA)>
          <!ELEMENT polygon_alpha               (#PCDATA)>
          <!ELEMENT polygon_color               (#PCDATA)>
          <!ELEMENT sect_color                  (#PCDATA)>
          <!ELEMENT sect_color_mode             (#PCDATA)>
          <!ELEMENT sect_draw_mode              (#PCDATA)>
          <!ELEMENT sect_node_color             (#PCDATA)>
          <!ELEMENT sect_node_size              (#PCDATA)>
          <!ELEMENT sect_show_hq_lines          (#PCDATA)>
          <!ELEMENT sect_show_lq_lines          (#PCDATA)>
          <!ELEMENT sect_show_mf_lines          (#PCDATA)>
          <!ELEMENT sect_show_nodes             (#PCDATA)>
          <!ELEMENT sect_size                   (#PCDATA)>
          <!ELEMENT ortho_draw_style            (#PCDATA)>
          <!ELEMENT ortho_point_size            (#PCDATA)>
          <!ELEMENT shining                     (#PCDATA)>
          <!ELEMENT source_mode                 (#PCDATA)>
          <!ELEMENT azimuth                     (#PCDATA)>
          <!ELEMENT elevation                   (#PCDATA)>
          <!ELEMENT ambient_intensity           (#PCDATA)>  
          <!ELEMENT shading_setting             (#PCDATA)>
          <!ELEMENT color_temperature           (#PCDATA)>
          <!ELEMENT diffuse_intensity           (#PCDATA)>
          <!ELEMENT linear_attenuation          (#PCDATA)>
          <!ELEMENT material_shininess          (#PCDATA)>
          <!ELEMENT material_specular_intensity (#PCDATA)>
          <!ELEMENT quadric_attenuation         (#PCDATA)>
          <!ELEMENT specular_intensity          (#PCDATA)>
          <!ELEMENT show_caption                (#PCDATA)>
          <!ELEMENT show_dist                   (#PCDATA)>
          <!ELEMENT show_first_targets          (#PCDATA)>
          <!ELEMENT show_last_targets           (#PCDATA)>
          <!ELEMENT show_origin                 (#PCDATA)>
          <!ELEMENT show_other_targets          (#PCDATA)>
          <!ELEMENT show_main_plane             (#PCDATA)>
          <!ELEMENT show_minmax_plane           (#PCDATA)>
          <!ELEMENT show_nodes                  (#PCDATA)>
          <!ELEMENT show_normal                 (#PCDATA)>
          <!ELEMENT show_single_targets         (#PCDATA)>
          <!ELEMENT show_texture                (#PCDATA)>
          <!ELEMENT show_tps                    (#PCDATA)>
          <!ELEMENT smooth_points               (#PCDATA)>
          <!ELEMENT sphere_color                (#PCDATA)>
          <!ELEMENT static                      (#PCDATA)>
          <!ELEMENT to_draw_mode                (#PCDATA)>
          <!ELEMENT to_line_width               (#PCDATA)>
          <!ELEMENT to_color                    (#PCDATA)>
          <!ELEMENT tp_draw_mode                (#PCDATA)>
          <!ELEMENT tp_point_size               (#PCDATA)>
          <!ELEMENT tp_color                    (#PCDATA)>
          <!ELEMENT use_dyn_size                (#PCDATA)>
          <!ELEMENT use_lod                     (#PCDATA)>
          <!ELEMENT visible                     (#PCDATA)>
          <!ELEMENT voxel_alpha                 (#PCDATA)>
          <!ELEMENT voxel_color                 (#PCDATA)>
          <!ELEMENT voxel_color_mode            (#PCDATA)>
          <!ELEMENT voxel_draw_mode             (#PCDATA)>
          <!ELEMENT voxel_line_width            (#PCDATA)>          
          <!ELEMENT voxel_scale                 (#PCDATA)>
          <!ELEMENT voxel_visible               (#PCDATA)>
          <!ELEMENT wireframe_color             (#PCDATA)>
          <!ELEMENT wireframe_full              (#PCDATA)>
          <!ELEMENT wireframe_overlay           (#PCDATA)>
          <!ELEMENT render_always_on_top        (#PCDATA)>

          <!ELEMENT vertex_lists (vertex_list*)>

            <!ELEMENT vertex_list (
              color_mode,
              name,
              point_color,
              point_size,
              smooth_points,
              visible
            )>

          <!ELEMENT poly_lists (poly_list*)>

            <!ELEMENT poly_list (
              back_face,
              color_mode,
              dynamic,
              face_color,
              front_face,
              line_width,
              name,
              point_size,
              polygon_alpha,
              polygon_color,
              show_texture,
              smooth_points,
              static,
              visible,
              wireframe_color,
              wireframe_full,
              wireframe_overlay
            )>

          <!ELEMENT point_normals (
            color,
            length,
            line_width,
            visible
          )>

          <!ELEMENT poly_normals (
            color,
            length,
            line_width,
            visible
          )>

          <!ELEMENT polylines (
            line_color,
            line_width,
            name,
            node_color,
            node_size,
            show_nodes,
            visible
          )>

          <!ELEMENT tp_connection (
            mode,
            show_dist,
            visible
          )>

          <!ELEMENT point_attribute_filters (
            descriptor*, filter_range_item*
          )>

          <!ELEMENT gradient               (#PCDATA)>
          <!ELEMENT filter_types           (#PCDATA)>
          <!ELEMENT descriptor_name        (#PCDATA)>
          <!ELEMENT attribute_unit         (#PCDATA)>
          <!ELEMENT caption                (#PCDATA)>
          <!ELEMENT maximal_occuring_value (#PCDATA)>
          <!ELEMENT minimal_occuring_value (#PCDATA)>
          <!ELEMENT minimal_value          (#PCDATA)>
          <!ELEMENT maximal_value          (#PCDATA)>
          <!ELEMENT lower_value            (#PCDATA)>
          <!ELEMENT upper_value            (#PCDATA)>
          <!ELEMENT inverted               (#PCDATA)>
          <!ELEMENT resolution             (#PCDATA)>

          <!ELEMENT descriptor (
            attribute_unit,
            caption,
            maximal_occuring_value,
            maximal_value,
            minimal_occuring_value,
            minimal_value,
            name,
            resolution
          )>

          <!ELEMENT filter_range_item (
            active,
            alpha,
            color,
            descriptor_name,
            filter_types,
            gradient,
            inverted,
            lower_value,
            upper_value
          )>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // COORDSYSTEMS                                                                      // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
          
  <!ELEMENT coordsystems (
    arcs*,
    llcs*
  )>
  <!ATTLIST coordsystems %object_attrlist;>
  
  <!ELEMENT arcs (
    aop,
    name,
    registered,
    tpl_arcs
  )>
  <!ATTLIST arcs %object_attrlist;>
  
  <!ELEMENT llcs (
    lop,
    name,
    registered,
    tpl_llcs
  )>
  <!ATTLIST llcs %object_attrlist;>
  
  <!ELEMENT lop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
  <!ATTLIST lop %object_attrlist;>
  
  <!ELEMENT aop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
  <!ATTLIST aop %object_attrlist;>

  <!ELEMENT tpl_llcs (active, tp_llcs*)>
  <!ATTLIST tpl_llcs %object_attrlist;>

  <!ELEMENT tpl_arcs (active, tp_arcs*)>
  <!ATTLIST tpl_arcs %object_attrlist;>

  <!ELEMENT tp_llcs (
    accuracy,
    active,
    force_match,
    linked_ref?,
    name,
    referrer_ref*,
    refl_ref?,
    refl_ref_quality?,
    used_for_adjustment,
    vector,
    view
  )>
  <!ATTLIST tp_llcs %object_attrlist;>

  <!ELEMENT force_match (#PCDATA)> 
  <!ELEMENT used_for_adjustment  (#PCDATA)> 
  
  <!ELEMENT tp_arcs (
    active,
    linked_ref?,
    name,
    referrer_ref*,
    refl_ref?,
    refl_ref_quality?,
    vector,
    view
  )>
  <!ATTLIST tp_arcs %object_attrlist;>
          
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // OBJECTS                                                                           // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT geometry_objects (
    arc_objects,
    cylinder_objects,
    images,
    observations,
    orthophotos,
    panoramaimages,
    plane_objects,
    planefiles,
    point_objects,
    pointclouds,
    polydata_objects,
    polyline_objects,
    section_objects,
    sphere_objects,
    trajectories,
    undistimages,
    voxelfiles
  )>
  <!ATTLIST geometry_objects %object_attrlist;>


    <!ELEMENT trajectories (name?, trajectory*)>
    <!ATTLIST trajectories %object_attrlist;>
    <!ELEMENT trajectory (
      gnss-receiver-id,
      gnss-receiver-name,
      imu-id,
      imu-name,
      name,
      systemdescription_ref?
    )>
    <!ATTLIST trajectory %object_attrlist;>

    <!-- ************************************************************************************************ -->
    <!-- * Tag 'images' holds all images taken at arbitrary positions, i.e., with a camera not          * -->
    <!-- * mounted on top of an instrument. Thus, these images are not related to any scan position.    * -->
    <!-- * Tag 'file' provides the file name of the image file. The path of the file is defined         * -->
    <!-- *   as follows: <path to this xml file>\IMAGES\.                                               * -->
    <!-- * Tag 'cop' holds the transformation matrix for the camera images (COP).                       * -->
    <!-- *   See the definition of SOP for details on storing format.                                   * -->
    <!-- *   There is a single transformation matrix stored (COP) which transforms from the camera's    * -->
    <!-- *   coordinate system into the project coordinate system. In order to transform a pixel in     * -->
    <!-- *   the image into a ray in PRCS/GLCS the following transformations have to be applied:        * -->
    <!-- *   * Distorted to undistorted pixel coordinates using the intrinsic parameters of the camera  * -->
    <!-- *   * Reverse perspective projection to obtain a ray in CMCS                                   * -->
    <!-- *   * Transform of ray by COP into PRCS and if necessary by POP into GLCS                      * -->
    <!-- ************************************************************************************************ -->

    <!ELEMENT images (image*)>
    <!ATTLIST images %object_attrlist;>

      <!ELEMENT image (
        auxfold?,
        camera-device-id?,
        camera-device-name?,
        cop, 
        file, 
        name,
        source_image_ref?, 
        systemdescription_ref?,
        text, 
        tpl_image
      )>
      <!ATTLIST image %object_attrlist;>

    <!ELEMENT undistimages (undistimage*)>
    <!ATTLIST undistimages %object_attrlist;>

      <!ELEMENT undistimage (
        auxfold?,
        camera-device-id?,
        camera-device-name?,
        cop,
        file,
        name,
        source_image_ref?,
        systemdescription_ref?,
        text,
        tpl_image
      )>
      <!ATTLIST undistimage %object_attrlist;>

    <!ELEMENT pointclouds (simple_pointcloud*, organized_pointcloud*, rdb2pointcloud*)>
    <!ATTLIST pointclouds %object_attrlist;>

      <!ELEMENT simple_pointcloud (
        file,
        geometryinfo?,
        name,
        text
      )>
      <!ATTLIST simple_pointcloud %object_attrlist;>

      <!ELEMENT organized_pointcloud (
        file,
        name,
        text
      )>
      <!ATTLIST organized_pointcloud %object_attrlist;>

    <!ELEMENT polyline_objects (polyline_object*)>
    <!ATTLIST polyline_objects %object_attrlist;>

      <!ELEMENT polyline_object (
        name,
        point*
      )>
      <!ATTLIST polyline_object %object_attrlist;>

        <!ELEMENT point (#PCDATA)>
        <!ATTLIST point %vector_attrlist;>

    <!ELEMENT section_objects (section_object*)>
    <!ATTLIST section_objects %object_attrlist;>

      <!ELEMENT section_object (
        file,
        name
      )>
      <!ATTLIST section_object %object_attrlist;>

    <!ELEMENT point_objects (point_object*)>
    <!ATTLIST point_objects %object_attrlist;>

      <!ELEMENT point_object (
        name,
        position
      )>
      <!ATTLIST point_object %object_attrlist;>

    <!ELEMENT sphere_objects (sphere_object*)>
    <!ATTLIST sphere_objects %object_attrlist;>

      <!ELEMENT sphere_object (
        direction,
        name,
        position, 
        radius,
        up
      )>
      <!ATTLIST sphere_object %object_attrlist;>

        <!ELEMENT radius (#PCDATA)>

    <!ELEMENT cylinder_objects (cylinder_object*)>
    <!ATTLIST cylinder_objects %object_attrlist;>

      <!ELEMENT cylinder_object (
        direction,
        height,
        name,
        position, 
        radius,
        up
      )>
      <!ATTLIST cylinder_object %object_attrlist;>

    <!ELEMENT arc_objects (arc_object*)>
    <!ATTLIST arc_objects %object_attrlist;>
    
    <!ELEMENT arc_object (
      name,
      point*
    )>
    <!ATTLIST arc_object %object_attrlist;>

    <!ELEMENT panoramaimage (
      camera-device-id?,
      camera-device-name?,
      cop,
      file,
      name,
      panorama-camera-device-id?,
      panorama-camera-device-name?,
      systemdescription_ref?,
      text,
      tpl_image?
    )>
    <!ATTLIST panoramaimage %object_attrlist;>

    <!ELEMENT panoramaimages (panoramaimage*)>
    <!ATTLIST panoramaimages %object_attrlist;>

    <!ELEMENT plane_objects (plane_object*)>
    <!ATTLIST plane_objects %object_attrlist;>

      <!ELEMENT plane_object (
        direction,
        height,
        name,
        plane_info,
        position, 
        up, 
        width
      )>
      <!ATTLIST plane_object %object_attrlist;>

        <!ELEMENT width  (#PCDATA)>
        <!ELEMENT height (#PCDATA)>

        <!ELEMENT plane_info (
          avg_int,
          mean,
          stddev
        )>

          <!ELEMENT avg_int  (#PCDATA)>
          <!ELEMENT mean     (#PCDATA)>
          <!ELEMENT stddev   (#PCDATA)>

    <!ELEMENT orthophotos (aerialview*, orthophoto*)>
    <!ATTLIST orthophotos %object_attrlist;>

      <!ELEMENT orthophoto (
        coord_system,
        file,
        insertpoint,
        name,
        offscr_resol,
        orientation,        
        text
      )>
      <!ATTLIST orthophoto %object_attrlist;>

        <!ELEMENT coord_system (#PCDATA)>
        <!ELEMENT offscr_resol (#PCDATA)>
        <!ELEMENT insertpoint  (#PCDATA)> <!ATTLIST insertpoint %vector_attrlist;>
        <!ELEMENT orientation  (#PCDATA)> <!ATTLIST orientation %matrix_attrlist;>

      <!ELEMENT aerialview (
        file,
        matrix,
        name,
        reference,
        scalex,
        scaley,
        text
      )>
      <!ATTLIST aerialview %object_attrlist;>

        <!ELEMENT reference (#PCDATA)> <!ATTLIST reference %matrix_attrlist;>
        <!ELEMENT scalex (#PCDATA)>
        <!ELEMENT scaley (#PCDATA)>

<!--
    <!ELEMENT mesh_objects (polydata_object*)>
    <!ATTLIST mesh_objects %object_attrlist;>

      <!ELEMENT mesh_object (
        abserr_deci,
        accerror_deci,
        boundsmooth,
        color,
        conv_smooth,
        decimate,
        depth_fac,
        depth_thr,
        edgeangle_smooth,
        edgesmooth,
        featangle_deci,
        featangle_smooth,
        file,
        fisheye,
        itercount_smooth,
        keep_inf,
        modbound_deci,
        name,
        noise,
        nonmanifold_smooth,
        passband_smooth,
        preservetopt_deci,
        presplit_deci,
        redfact_deci,
        relfact_smooth,
        ring_auto,
        ring_start,
        ring_stop,
        ring_use,
        smooth,
        smoothmode,
        source_ref,
        splitangle_deci,
        splitting_deci,
        text,
        use_depth_fac,
        use_depth_thr,
        use_for_msa,
        use_noise,
        verbose_level,
        wedge_auto,
        wedge_start,
        wedge_stop,
        wedge_use
      )>
      <!ATTLIST mesh_object %object_attrlist;>

        <!ELEMENT fisheye            (#PCDATA)>
        <!ELEMENT keep_inf           (#PCDATA)>
        <!ELEMENT use_depth_fac      (#PCDATA)>
        <!ELEMENT depth_fac          (#PCDATA)>
        <!ELEMENT use_depth_thr      (#PCDATA)>
        <!ELEMENT depth_thr          (#PCDATA)>
        <!ELEMENT use_for_msa        (#PCDATA)>
        <!ELEMENT use_noise          (#PCDATA)>
        <!ELEMENT noise              (#PCDATA)>
        <!ELEMENT wedge_use          (#PCDATA)>
        <!ELEMENT wedge_auto         (#PCDATA)>
        <!ELEMENT wedge_start        (#PCDATA)>
        <!ELEMENT wedge_stop         (#PCDATA)>
        <!ELEMENT ring_use           (#PCDATA)>
        <!ELEMENT ring_auto          (#PCDATA)>
        <!ELEMENT ring_start         (#PCDATA)>
        <!ELEMENT ring_stop          (#PCDATA)>
        <!ELEMENT color              (#PCDATA)>
        <!ELEMENT verbose_level      (#PCDATA)>

        <!ELEMENT smooth             (#PCDATA)>
        <!ELEMENT decimate           (#PCDATA)>
        <!ELEMENT smoothmode         (#PCDATA)>
        <!ELEMENT edgesmooth         (#PCDATA)>
        <!ELEMENT boundsmooth        (#PCDATA)>
        <!ELEMENT nonmanifold_smooth (#PCDATA)>
        <!ELEMENT itercount_smooth   (#PCDATA)>
        <!ELEMENT relfact_smooth     (#PCDATA)>
        <!ELEMENT passband_smooth    (#PCDATA)>
        <!ELEMENT featangle_smooth   (#PCDATA)>
        <!ELEMENT conv_smooth        (#PCDATA)>
        <!ELEMENT edgeangle_smooth   (#PCDATA)>
        <!ELEMENT preservetopt_deci  (#PCDATA)>
        <!ELEMENT splitting_deci     (#PCDATA)>
        <!ELEMENT modbound_deci      (#PCDATA)>
        <!ELEMENT presplit_deci      (#PCDATA)>
        <!ELEMENT accerror_deci      (#PCDATA)>
        <!ELEMENT redfact_deci       (#PCDATA)>
        <!ELEMENT abserr_deci        (#PCDATA)>
        <!ELEMENT featangle_deci     (#PCDATA)>
        <!ELEMENT splitangle_deci    (#PCDATA)>
-->

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // TOL (PRCS)                                                                        // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT tol_prcs (active, to_prcs*)>
  <!ATTLIST tol_prcs %object_attrlist;>

    <!ELEMENT to_prcs (
      active,
      area,
      direction,
      name,
      normal,
      origin,
      stdev,
      weight      
    )>
    <!ATTLIST to_prcs %object_attrlist;>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // TPL (PRCS)                                                                        // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT tpl_prcs (active, tp_prcs*)>
  <!ATTLIST tpl_prcs %object_attrlist;>

    <!ELEMENT tp_prcs (
      accuracy,
      active,
      fixed,
      force_match,
      gsm_crs,
      height,
      linked_ref?,
      name,
      referrer_ref*,
      refl_ref?,
      refl_ref_quality?,
      used_for_adjustment,
      vector,
      view,
      weight
    )>
    <!ATTLIST tp_prcs %object_attrlist;>

      <!ELEMENT fixed  (#PCDATA)>
      <!ELEMENT view   (#PCDATA)>
      <!ELEMENT weight (#PCDATA)>
      

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // POP                                                                               // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT pop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
  <!ATTLIST pop %object_attrlist;>
  
  <!ELEMENT vpps (
    vpp*
  )>
  <!ATTLIST vpps %object_attrlist;>
  
  <!ELEMENT vpp (
    plane_file_ref?,
    planefile*,
    vop,
    voxel_file_ref?,
    voxelfile*
  )>
  <!ATTLIST vpp %object_attrlist;>
  
  <!ELEMENT vop (accPitch?, accRoll?, accX?, accY?, accYaw?, accZ?, freeze, matrix, posX?, posY?, posZ?)>
  <!ATTLIST vop %object_attrlist;>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- * TPL (GLCS)                                                                         // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->

  <!ELEMENT tpl_glcs (active, tp_glcs*)>
  <!ATTLIST tpl_glcs %object_attrlist;>

    <!ELEMENT tp_glcs (
      accHorz,
      accVert,
      active,
      gsm_crs,
      height,
      name,
      referrer_ref*,
      refl_ref?,
      refl_ref_quality?,
      vector,
      view
    )>
    <!ATTLIST tp_glcs %object_attrlist;>

<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
<!-- // EOF                                                                               // -->
<!-- /////////////////////////////////////////////////////////////////////////////////////// -->
