<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:geom  Version:1.0.0.0 - Thu Apr 30 14:01:45 EDT 2015 -->
  <!-- Generated from the PDS4 Information Model Version 1.4.0.0 - System Build 5b -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/pds4/geom/v1"
    xmlns:geom="http://pds.nasa.gov/pds4/geom/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    xmlns:disp="http://pds.nasa.gov/pds4/disp/v1"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.0.0.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1400.xsd"/>
    <xs:import namespace="http://pds.nasa.gov/pds4/disp/v1" schemaLocation="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1100.xsd"/>
 
  <xs:annotation>
<xs:documentation>Initial release.</xs:documentation>
  </xs:annotation>
 
  <xs:element name="Geometry" type="geom:Geometry"> </xs:element>

  <xs:complexType name="Acceleration_Vector_Cartesian_Base">
    <xs:annotation>
      <xs:documentation>The Acceleration_Vector_Cartesian_Base is a
        three dimensional, rectangular coordinates vector. Uses units of
        linear acceleration. The included attributes are not sufficient
        to identify the endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_acceleration" type="geom:x_acceleration" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_acceleration" type="geom:y_acceleration" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_acceleration" type="geom:z_acceleration" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Acceleration_Vector_Cartesian_Extended_Base">
    <xs:annotation>
      <xs:documentation>The Acceleration_Vector_Cartesian_Extended_Base
        is a three dimensional, rectangular coordinates vector. Uses
        units of linear acceleration. The included attributes are not
        sufficient to identify the endpoints of the vector. While the
        attribute Coordinate_System is optional, it must be used here if
        the coordinate system has not been specified in the enclosing
        class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Acceleration_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Acceleration_Vector_Cartesian_Generic">
    <xs:annotation>
      <xs:documentation>Acceleration_Vector_Cartesian_Generic is a three
        dimensional, rectangular coordinates vector. Uses units of
        linear acceleration. Includes attributes to identify the
        endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Acceleration_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Articulation_Device_Parameters">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="device_id" type="geom:device_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="device_name" type="geom:device_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="device_mode" type="geom:device_mode" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="Device_Angle" type="geom:Device_Angle"> </xs:element>
        <xs:element name="Device_Component_State" type="geom:Device_Component_State"> </xs:element>
        <xs:element name="Device_Motor_Clicks" type="geom:Device_Motor_Clicks"> </xs:element>
        <xs:element name="Device_Orientation_Quaternion" type="geom:Device_Orientation_Quaternion"> </xs:element>
        <xs:element name="Device_Position_Vector" type="geom:Device_Position_Vector"> </xs:element>
        <xs:element name="Device_Temperature" type="geom:Device_Temperature"> </xs:element>
        <xs:element name="Reference_Coordinate_Space" type="geom:Reference_Coordinate_Space"> </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Axis_Vector">
    <xs:annotation>
      <xs:documentation>The Axis_Vector describes the axis of the
        camera, defined as the normal to the image plane.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Vector_Cartesian_No_Units">
        <xs:sequence>
          <xs:element name="x_no_units" type="geom:x_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_no_units" type="geom:y_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_no_units" type="geom:z_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="CAHVORE_Model">
    <xs:annotation>
      <xs:documentation>A third model, CAHVORE, describes more general
        cameras including those with fisheye or otherwise wide field of
        view lenses. An additional vector, E, describes the apparent
        motion of the camera entrance pupil. (Taken from Camera Response
        Simulation for Planetary Exploration, by Dr. Richard Madison,
        Marc Pomerantz, and Dr. Abhinandan Jain,
        http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/37771/1/05-1692
        .pdf) </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:CAHVOR_Model">
        <xs:sequence>
          <xs:element name="Entrance_Vector" type="geom:Entrance_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="CAHVOR_Model">
    <xs:annotation>
      <xs:documentation>The CAHVOR model describes a camera with radial
        lens distortion about the lens axis. In addition to the CAHV
        parameters, it includes 3-vectors O and R. Vector O is the
        optical axis of the lens, slightly different from vector A due
        to imperfect lens mounting. A ray from a point in space, passing
        through the pinhole, bends at the pinhole according to a
        function of the angle between the ray and optical axis O. The
        function is a polynomial whose coefficients are stored in vector
        R. (Taken from Camera Response Simulation for Planetary
        Exploration, by Dr. Richard Madison, Marc Pomerantz, and Dr.
        Abhinandan Jain,
        http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/37771/1/05-1692
        .pdf) </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:CAHV_Model">
        <xs:sequence>
          <xs:element name="Optical_Terms" type="geom:Optical_Terms" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Radial_Terms" type="geom:Radial_Terms" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="CAHV_Model">
    <xs:annotation>
      <xs:documentation>The CAHV camera model is equivalent to the
        standard linear photogrammetric model for a pinhole camera, It
        is useful for very small field of view cameras and as a building
        block for more complex camera models. The CAHV model consists of
        four 3-vectors: C, A, H, and V. Vector C gives the location of
        the pinhole. Vector A gives the camera axis, defined as the
        normal to the image plane. Vector H encodes the horizontal axis
        of the image plane (H'), the coor- dinate (Hc) of the image
        column at the optical centre of the image plane, and the
        horizontal focal length (Hs) of the camera, in pixels. Vector V
        encodes corresponding information (V', Vc, Vs) in the vertical
        direction. The angle (theta) between horizontal and vertical
        vectors H' and V' is about 90 degrees. (Taken from Camera
        Response Simulation for Planetary Exploration, by Dr. Richard
        Madison, Marc Pomerantz, and Dr. Abhinandan Jain,
        http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/37771/1/05-1692
        .pdf) </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Center_Vector" type="geom:Center_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Axis_Vector" type="geom:Axis_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Horizontal_Vector" type="geom:Horizontal_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Vertical_Vector" type="geom:Vertical_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Coordinate_Space" type="geom:Reference_Coordinate_Space" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Camera_Model_Parameters">
    <xs:annotation>
      <xs:documentation>A camera model describes the mathematical
        relationship between the coordinates of a point in 3-dimensional
        space and its projection onto a 2-dimensional image plane. There
        are numerous types of camera models, only two of which are
        currently implemented. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="model_type" type="geom:model_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="model_desc_file_name" type="geom:model_desc_file_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="calibration_source_id" type="geom:calibration_source_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="solution_id" type="geom:solution_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="CAHVORE_Model" type="geom:CAHVORE_Model"> </xs:element>
        <xs:element name="CAHVOR_Model" type="geom:CAHVOR_Model"> </xs:element>
        <xs:element name="CAHV_Model" type="geom:CAHV_Model"> </xs:element>
        <xs:element name="Reference_Coordinate_Space" type="geom:Reference_Coordinate_Space"> </xs:element>
        <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification"> </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Center_Vector">
    <xs:annotation>
      <xs:documentation>The Center_Vector describes the location of the
        pinhole of a camera. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_Identification">
    <xs:annotation>
      <xs:documentation>The Central_Body_Identification class uniquely
        identifies the body associated with the central body associated
        with an observation (for ex., a planet in the solar system).
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Geometry_Identification_Base">
        <xs:sequence>
          <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_To_Spacecraft_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Central_Body_To_Spacecraft_Position_Vector_Cartesian is a
        linear, rectangular coordinates vector from the center of mass
        of the central body (e.g., planet) to the spacecraft.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_To_Spacecraft_Position_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Central_Body_To_Spacecraft_Position_Vector_Planetocentric is a
        spherical position vector in Planetocentric coordinates. It
        extends from the center of mass of the central body (e.g.,
        planet) to the spacecraft. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radius_position" type="geom:radius_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_position" type="geom:longitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_position" type="geom:latitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_To_Target_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Central_Body_To_Target_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the center of mass of the
        central body (e.g., planet) to the target specified in the
        parent Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_To_Target_Position_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Central_Body_To_Target_Position_Vector_Planetocentric is a
        spherical position vector in Planetocentric coordinates. It
        extends from the center of mass of the central body (e.g.,
        planet) to the target specified in the parent Geometry_Orbiter
        class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radius_position" type="geom:radius_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_position" type="geom:longitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_position" type="geom:latitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Coordinate_Space_Definition">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Present_Coordinate_Space" type="geom:Present_Coordinate_Space" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Origin_Offset_Vector" type="geom:Origin_Offset_Vector" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Rotation_Quaternion" type="geom:Rotation_Quaternion" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Coordinate_Space" type="geom:Reference_Coordinate_Space" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Coordinate_Space_Identification">
    <xs:annotation>
      <xs:documentation>The Coordinate_Space_Identification class
        uniquely identifies a coordinate space (i.e., reference frame +
        position) with respect to which the values of the attributes in
        the containing class are defined. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SPICE_Kernel_Identification" type="geom:SPICE_Kernel_Identification" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Coordinate_Space_Index" type="geom:Coordinate_Space_Index" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Coordinate_Space_Index">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_No_Units">
        <xs:sequence>
          <xs:element name="solution_id" type="geom:solution_id" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Coordinate_System">
    <xs:annotation>
      <xs:documentation>The Coordinate_System class fully describes a
        coordinate system. It identifes the reference frame, coordinate
        system type (cartesian, planetocentric, etc.), origin, and the
        instantiation time of the system. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="coordinate_system_type" nillable="true" type="geom:coordinate_system_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="coordinate_system_time" type="geom:coordinate_system_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Coordinate_System_Origin_Identification" type="geom:Coordinate_System_Origin_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:coordinate_system_type = ('Azimuth-Elevation', 'Cartesian', 'Planetocentric', 'Planetodetic', 'Planetographic', 'Spherical')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Coordinate_System_Origin_Identification">
    <xs:annotation>
      <xs:documentation>The Coordinate_System_Origin_Identification
        class provides the origin of a coordinate system using
        body_spice_name (or _id). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Geometry_Identification_Base">
        <xs:sequence>
          <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Derived_Geometry">
    <xs:annotation>
      <xs:documentation>Includes stuff like inst/solar az/el, distances,
        etc. relative to a single specified reference frame or
        coordinate space</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="incidence_angle" type="geom:incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="emission_angle" type="geom:emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="phase_angle" type="geom:phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      </xs:choice>
      <xs:element name="Reference_Coordinate_Space" type="geom:Reference_Coordinate_Space" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Device_Angle">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Device_Angle_Index" type="geom:Device_Angle_Index" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Device_Angle_Index">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:List_Index_Angle">
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
          </xs:choice>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="index_value_angle" type="geom:index_value_angle" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Device_Component_State">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Device_Component_State_Index" type="geom:Device_Component_State_Index" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Device_Component_State_Index">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:List_Index_Text">
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
          </xs:choice>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="index_value_string" type="geom:index_value_string" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Device_Motor_Clicks">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Device_Motor_Clicks_Index" type="geom:Device_Motor_Clicks_Index" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Device_Motor_Clicks_Index">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:List_Index_No_Units">
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
          </xs:choice>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="index_value_no_units" type="geom:index_value_no_units" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Device_Orientation_Quaternion">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Quaternion_SPICE_Style">
        <xs:sequence>
          <xs:element name="qcos" type="geom:qcos" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin1" type="geom:qsin1" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin2" type="geom:qsin2" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin3" type="geom:qsin3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Device_Position_Vector">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Device_Temperature">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Device_Temperature_Index" type="geom:Device_Temperature_Index" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Device_Temperature_Index">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:List_Index_Temperature">
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
          </xs:choice>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="index_value_temperature" type="geom:index_value_temperature" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Distance_Generic">
    <xs:annotation>
      <xs:documentation>The distance between the two objects, both of
        which must be specified. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="distance" type="geom:distance" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Distances">
    <xs:annotation>
      <xs:documentation>The Distances class is a container class for
        distances.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="spacecraft_geocentric_distance" type="geom:spacecraft_geocentric_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_heliocentric_distance" type="geom:spacecraft_heliocentric_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_to_central_body_distance" type="geom:spacecraft_to_central_body_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_to_target_center_distance" type="geom:spacecraft_to_target_center_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_to_target_boresight_intercept_distance" type="geom:spacecraft_to_target_boresight_intercept_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_to_target_subspacecraft_distance" type="geom:spacecraft_to_target_subspacecraft_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_geocentric_distance" type="geom:target_geocentric_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_heliocentric_distance" type="geom:target_heliocentric_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_ssb_distance" type="geom:target_ssb_distance" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Distance_Generic" type="geom:Distance_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Earth_To_Central_Body_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Earth_To_Central_Body_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the Earth to the central
        body (e.g., planet). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Earth_To_Spacecraft_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Earth_To_Spacecraft_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the Earth to the spacecraft.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Earth_To_Target_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The Earth_To_Target_Position_Vector_Cartesian is
        a linear, rectangular coordinates vector from the Earth to the
        target specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Entrance_Vector">
    <xs:annotation>
      <xs:documentation>The Entrance_Vector describes the location of
        the entrance pupil of a camera. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Footprint_Vertices">
    <xs:annotation>
      <xs:documentation>The Footprint_Vertices class provides a set of
        associations between pixels and their projections on the target.
        The pixels should be choose to be the vertices of a polygon,
        plotted sequenually in a the direction. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Pixel_Intercept" type="geom:Pixel_Intercept" minOccurs="3" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Generic_Vectors">
    <xs:annotation>
      <xs:documentation>The Generic_Vectors class is a container class
        for all of the build your own vector templates.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Position_Vector_Cartesian_Generic" type="geom:Position_Vector_Cartesian_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Velocity_Vector_Cartesian_Generic" type="geom:Velocity_Vector_Cartesian_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Acceleration_Vector_Cartesian_Generic" type="geom:Acceleration_Vector_Cartesian_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Position_Vector_Planetocentric_Generic" type="geom:Position_Vector_Planetocentric_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Velocity_Vector_Planetocentric_Generic" type="geom:Velocity_Vector_Planetocentric_Generic" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geometry">
    <xs:annotation>
      <xs:documentation>The Geometry class is a container for all
        geometric information in the label.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SPICE_Kernel_Files" type="geom:SPICE_Kernel_Files" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Image_Display_Geometry" type="geom:Image_Display_Geometry" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Geometry_Orbiter" type="geom:Geometry_Orbiter" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Geometry_Lander" type="geom:Geometry_Lander" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geometry_Identification_Base">
    <xs:annotation>
      <xs:documentation>The Geometry_Identification_Base class provides
        multiple attributes which can be used to identify a physical
        object (spacecraft, planet instrument, transmitter, system
        barycenter, etc.) or a reference frame. At least one must be
        used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geometry_Lander">
    <xs:annotation>
      <xs:documentation>The Geometry_Lander class is a container for all
        geometric information in the label relating to a landed
        spacecraft, including rovers.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Articulation_Device_Parameters" type="geom:Articulation_Device_Parameters" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Camera_Model_Parameters" type="geom:Camera_Model_Parameters" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Coordinate_Space_Definition" type="geom:Coordinate_Space_Definition" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Derived_Geometry" type="geom:Derived_Geometry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Motion_Counter" type="geom:Motion_Counter" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geometry_Orbiter">
    <xs:annotation>
      <xs:documentation>The Geometry_Orbiter class is a container for
        geometric information (positions, velocities, orientations,
        etc.) relevant to orbiter or flyby spacecraft
        observations.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="geometry_reference_time" type="geom:geometry_reference_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Central_Body_Identification" type="geom:Central_Body_Identification" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Distances" type="geom:Distances" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Pixel_Dimensions" type="geom:Pixel_Dimensions" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Surface_Geometry" type="geom:Surface_Geometry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Illumination_Geometry" type="geom:Illumination_Geometry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Specific_Position_Vectors" type="geom:Specific_Position_Vectors" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Specific_Velocity_Vectors" type="geom:Specific_Velocity_Vectors" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Specific_Cartesian_Vectors" type="geom:Specific_Cartesian_Vectors" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Specific_Planetocentric_Vectors" type="geom:Specific_Planetocentric_Vectors" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Generic_Vectors" type="geom:Generic_Vectors" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Horizontal_Vector">
    <xs:annotation>
      <xs:documentation>The Horizontal_Vector encodes the horizontal
        axis of the image plane (H'), the coordinate (Hc) of the image
        column at the optical centre of the image plane, and the
        horizontal focal length (Hs) of the camera, in pixels.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Vector_Cartesian_Pixel">
        <xs:sequence>
          <xs:element name="x_pixel" type="geom:x_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_pixel" type="geom:y_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_pixel" type="geom:z_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Illumination_FOV_Range_Values">
    <xs:annotation>
      <xs:documentation>The Illumination_FOV_Range_Values class contains
        attributes providing illumination parameters as minimum/maximum
        pairs for either the field of view or the portion in the FoV of
        the target specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="illumination_range_designation" type="geom:illumination_range_designation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_emission_angle" type="geom:minimum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_emission_angle" type="geom:maximum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_incidence_angle" type="geom:minimum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_incidence_angle" type="geom:maximum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_phase_angle" type="geom:minimum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_phase_angle" type="geom:maximum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:illumination_range_designation = ('Field of View', 'Target')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Illumination_Geometry">
    <xs:annotation>
      <xs:documentation>The Illumination_Geometry class contains two
        optional classes used to describing the field of view
        lighting.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Illumination_Single_Values" type="geom:Illumination_Single_Values" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Illumination_FOV_Range_Values" type="geom:Illumination_FOV_Range_Values" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Illumination_Single_Values">
    <xs:annotation>
      <xs:documentation>The Illumination_Single_Values class contains
        attributes providing illumination parameters at a single
        location in the field of view. If reference_location is used,
        and indicates a point on a target, the target must be the one
        specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="reference_location" type="geom:reference_location" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="reference_pixel_location" type="geom:reference_pixel_location" minOccurs="0" maxOccurs="1"> </xs:element>
      </xs:choice>
      <xs:element name="Reference_Pixel" type="geom:Reference_Pixel" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="emission_angle" type="geom:emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="incidence_angle" type="geom:incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="phase_angle" type="geom:phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="solar_elongation" type="geom:solar_elongation" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:reference_location = ('Boresight Intercept Point', 'Subspacecraft Point', 'Target Center')"/> -->
    <!-- <xs:assert test="geom:reference_pixel_location = ('Center', 'Lower Left Corner', 'Lower Right Corner', 'Upper Left Corner', 'Upper Right Corner')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Image_Display_Geometry">
    <xs:annotation>
      <xs:documentation>Image_Display_Geometry class provides an
        unambiguous description of the orientation of the image
        contents. Given an image, displayed as described by the
        Display_Direction class, any one of the Object_Orientation_*
        classes should allow unambiguous orientation of the contents of
        the image. The use of disp:Display_Direction is optional, but
        must be given either here or in the Display Discipline Area of
        the label. The Object_Orientation_North_East class is typically
        used for instruments for which the entire field of view is a
        portion of the target surface (e.g., instruments on Mars orbital
        spacecraft); otherwise use Object_Orientation_RA_Dec (e.g.,
        flyby missions, missions with orbit radii much larger than the
        target radius such as Voyager or Cassini). At least one of these
        must be used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Display_Direction" type="disp:Display_Direction" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="Object_Orientation_North_East" type="geom:Object_Orientation_North_East"> </xs:element>
        <xs:element name="Object_Orientation_RA_Dec" type="geom:Object_Orientation_RA_Dec"> </xs:element>
      </xs:choice>
      <xs:element name="Quaternion_SPICE_Style" type="geom:Quaternion_SPICE_Style" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Quaternion__non_SPICE_Style" type="geom:Quaternion__non_SPICE_Style" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Object_Orientation_Clock_Angles" type="geom:Object_Orientation_Clock_Angles" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="List_Index_Angle">
    <xs:annotation>
      <xs:documentation>Used when the list values are angles.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_Base">
        <xs:sequence>
          <xs:element name="index_value_angle" type="geom:index_value_angle" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="List_Index_Base">
    <xs:annotation>
      <xs:documentation>The List_Index class is a private (i.e.,
        abstract) class designed to enable the use of indexed lists. The
        minimum requirement is at least one of sequence number, name or
        "id", plus the set of values themselves. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="3">
        <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
      </xs:choice>
      <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="List_Index_Length">
    <xs:annotation>
      <xs:documentation>Used when the list values are lengths.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_Base">
        <xs:sequence>
          <xs:element name="index_value_length" type="geom:index_value_length" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="List_Index_No_Units">
    <xs:annotation>
      <xs:documentation>Used when the list values have no units.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_Base">
        <xs:sequence>
          <xs:element name="index_value_no_units" type="geom:index_value_no_units" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="List_Index_Temperature">
    <xs:annotation>
      <xs:documentation>Used when the list values are temperatures.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_Base">
        <xs:sequence>
          <xs:element name="index_value_temperature" type="geom:index_value_temperature" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="List_Index_Text">
    <xs:annotation>
      <xs:documentation>Used when the list values are strings.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:List_Index_Base">
        <xs:sequence>
          <xs:element name="index_value_string" type="geom:index_value_string" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Motion_Counter">
    <xs:annotation>
      <xs:documentation>The Motion_Counter class provides a set of
        integers which describe a (potentially) unique location
        (position / orientation) for a rover or other movable object.
        Each time an event occurs that results in a movement, a new
        motion counter value is created. This includes intentional
        motion due to drive commands, as well as potential motion due to
        other articulating devices, such as arms or antennae. This
        motion counter (or part of it) is used as a reference to define
        instances of coordinate systems which can move such as SITE or
        ROVER frames. The motion counter is defined in a
        mission-specific manner. Although the original intent was to
        have incrementing indices (e.g., MER), the motion counter could
        also contain any integer values which conform to the above
        definition, such as time or spacecraft clock
        values.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Motion_Counter_Index" type="geom:Motion_Counter_Index" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Motion_Counter_Index">
    <xs:annotation>
      <xs:documentation>The Motion_Counter_Index class identifies and
        populates one element of a Motion_Counter list. The class should
        be repeated for each element of the list. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:List_Index_No_Units">
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="index_sequence_number" type="geom:index_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_name" type="geom:index_name" minOccurs="0" maxOccurs="1"> </xs:element>
            <xs:element name="index_id" type="geom:index_id" minOccurs="0" maxOccurs="1"> </xs:element>
          </xs:choice>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="index_value_no_units" type="geom:index_value_no_units" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Object_Orientation_Clock_Angles">
    <xs:annotation>
      <xs:documentation>The Object_Orientation_Clock_Angles class
        provides the clock angles measure from the center of the field
        of view to celestial and ecliptic north, and to the sun.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="celestial_north_clock_angle" type="geom:celestial_north_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ecliptic_north_clock_angle" type="geom:ecliptic_north_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="central_body_north_pole_clock_angle" type="geom:central_body_north_pole_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_north_pole_clock_angle" type="geom:target_north_pole_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_positive_pole_clock_angle" type="geom:target_positive_pole_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="body_positive_pole_clock_angle" type="geom:body_positive_pole_clock_angle" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sun_direction_clock_angle" type="geom:sun_direction_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Object_Orientation_North_East">
    <xs:annotation>
      <xs:documentation>The Object_Orientation_North_East class provides
        the parameters needed to describe the orientation of an external
        coordinate system relative to the image coordinate frame as
        described by the Image_Orientation class. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="north_azimuth" type="geom:north_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="east_azimuth" type="geom:east_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Object_Orientation_RA_Dec">
    <xs:annotation>
      <xs:documentation>The Object_Orientation_RA_Dec class provides the
        parameters needed to describe the orientation of the celestial
        reference frame relative to the image coordinate frame as
        described by the Image_Orientation class. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="geometry_reference_time" type="geom:geometry_reference_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Pixel" type="geom:Reference_Pixel" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_pixel_location" type="geom:reference_pixel_location" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="right_ascension_hour_angle" type="geom:right_ascension_hour_angle" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="right_ascension_angle" type="geom:right_ascension_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      </xs:choice>
      <xs:element name="declination_angle" type="geom:declination_angle" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="2">
        <xs:element name="celestial_north_clock_angle" type="geom:celestial_north_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
        <xs:element name="ecliptic_north_clock_angle" type="geom:ecliptic_north_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      </xs:choice>
      <xs:element name="Reference_Frame_Identification" type="geom:Reference_Frame_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:reference_pixel_location = ('Center', 'Lower Left Corner', 'Lower Right Corner', 'Upper Left Corner', 'Upper Right Corner')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Observer_Identification">
    <xs:annotation>
      <xs:documentation>Within the Geometry dictionary context, an
        "Observer" is the body on the "from" end of a vector,
        quaternion, or other translation through space.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Geometry_Identification_Base">
        <xs:sequence>
          <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Optical_Terms">
    <xs:annotation>
      <xs:documentation>The Optical_Terms provides the optical axis
        coefficients used for lens-distortion correction when the
        distortion is radial. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Polynomial_Coefficients_3">
        <xs:sequence>
          <xs:element name="c0" type="geom:c0" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="c1" type="geom:c1" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="c2" type="geom:c2" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Origin_Offset_Vector">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Pixel_Dimensions">
    <xs:annotation>
      <xs:documentation>The Pixel_Dimensions class contains information
        regarding pixel size.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="horizontal_pixel_size_angular" type="geom:horizontal_pixel_size_angular" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="vertical_pixel_size_angular" type="geom:vertical_pixel_size_angular" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="horizontal_pixel_scale_factor" type="geom:horizontal_pixel_scale_factor" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="vertical_pixel_scale_factor" type="geom:vertical_pixel_scale_factor" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Pixel_Size_Projected" type="geom:Pixel_Size_Projected" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Pixel_Intercept">
    <xs:annotation>
      <xs:documentation>The Pixel_Intercept class provides the latitude
        and longitude on the surface of the target for the projection of
        the specificed pixel. The pixel is specfied using either
        reference_pixel_location or Reference_Pixel. Although each of
        these is optional, one must be used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="reference_pixel_location" type="geom:reference_pixel_location" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Pixel" type="geom:Reference_Pixel" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_latitude" type="geom:pixel_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_longitude" type="geom:pixel_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:reference_pixel_location = ('Center', 'Lower Left Corner', 'Lower Right Corner', 'Upper Left Corner', 'Upper Right Corner')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Pixel_Size_Projected">
    <xs:annotation>
      <xs:documentation>The Pixel_Size_Projected class gives the size,
        in units of length (e.g., kilometers) of the projection of a
        pixel onto the surface of the target which is specified in the
        parent Geometry_Orbiter class. The reference_location attribute
        is used to identify the specific point on the target.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="reference_location" type="geom:reference_location" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="horizontal_pixel_size_projected" type="geom:horizontal_pixel_size_projected" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="vertical_pixel_size_projected" type="geom:vertical_pixel_size_projected" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="geom:reference_location = ('Boresight Intercept Point', 'Subspacecraft Point', 'Target Center')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Polynomial_Coefficients_1">
    <xs:annotation>
      <xs:documentation>The Polynomial_Coefficients_1 class provides a
        one polynomial coefficient. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="c0" type="geom:c0" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Polynomial_Coefficients_2">
    <xs:annotation>
      <xs:documentation>The Polynomial_Coefficients_2 class provides two
        polynomial coefficients. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="c0" type="geom:c0" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="c1" type="geom:c1" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Polynomial_Coefficients_3">
    <xs:annotation>
      <xs:documentation>The Polynomial_Coefficients_3 class provides
        three polynomial coefficients. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="c0" type="geom:c0" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="c1" type="geom:c1" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="c2" type="geom:c2" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Cartesian_Base">
    <xs:annotation>
      <xs:documentation>The Position_Vector_Cartesian_Base is a three
        dimensional, rectangular coordinates vector. Uses units of
        length. The included attributes are not sufficient to identify
        the endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Cartesian_Extended_Base">
    <xs:annotation>
      <xs:documentation>The Position_Vector_Cartesian_Extended_Base is a
        three dimensional, rectangular coordinates vector. Uses units of
        length. The included attributes are not sufficient to identify
        the endpoints of the vector. While the attribute
        Coordinate_System is optional, it must be used here if the
        coordinate system has not been specified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Position_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Cartesian_Generic">
    <xs:annotation>
      <xs:documentation>Position_Vector_Cartesian_Generic is a three
        dimensional, rectangular coordinates vector. Uses units of
        length. Includes attributes to identify the endpoints of the
        vector. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Planetocentric_Base">
    <xs:annotation>
      <xs:documentation>The Position_Vector_Planetocentric_Base is a
        three dimensional spherical vector (radius, longitude, latitude)
        with the angular coordinates defined to be consistent with the
        Planetocentric coordinate system. Uses linear units for the
        radius dimension, and angular units for the other two
        dimensions. The included attributes are not sufficient to
        identify the endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="radius_position" type="geom:radius_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_position" type="geom:longitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_position" type="geom:latitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Planetocentric_Extended_Base">
    <xs:annotation>
      <xs:documentation>The Position_Vector_Planetocentric_Extended_Base
        is a three dimensional spherical vector (radius, longitude,
        latitude) with the angular coordinates defined to be consistent
        with the Planetocentric coordinate system. Uses linear units for
        the radius dimension, and angular units for the other two
        dimensions. The included attributes are not sufficient to
        identify the endpoints of the vector. While the attribute
        Coordinate_System is optional, it must be used here if the
        coordinate system has not been specified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Position_Vector_Planetocentric_Base">
        <xs:sequence>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Position_Vector_Planetocentric_Generic">
    <xs:annotation>
      <xs:documentation>The Position_Vector_Planetocentric_Generic is a
        three dimensional spherical vector (radius, longitude, latitude)
        with the angular coordinates defined to be consistent with the
        Planetocentric coordinate system. Uses linear units for the
        radius dimension, and angular units for the other two
        dimensions. Includes attributes to identify the endpoints of the
        vector. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Position_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Present_Coordinate_Space">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Coordinate_Space_Identification">
        <xs:sequence>
          <xs:element name="SPICE_Kernel_Identification" type="geom:SPICE_Kernel_Identification" minOccurs="0" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Coordinate_Space_Index" type="geom:Coordinate_Space_Index" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Quaternion_SPICE_Style">
    <xs:annotation>
      <xs:documentation>The Quaternion_SPICE_Style class provides a
        quaternion that describes the transformation information between
        two reference frames. For a SPICE style quaternion the order of
        the four components is (Qcos, Qsin1, Qsin2, Qsin3). See NAIF
        SPICE documentation for additional details. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="qcos" type="geom:qcos" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qsin1" type="geom:qsin1" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qsin2" type="geom:qsin2" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qsin3" type="geom:qsin3" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Quaternion__non_SPICE_Style">
    <xs:annotation>
      <xs:documentation>The Quaternion__non_SPICE_Style class provides a
        quaternion that describes the transformation information between
        two reference frames. For a non-SPICE style quaternion the order
        of the four components is (Qsin1, Qsin2, Qsin3, Qcos). See NAIF
        SPICE documentation for additional details. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="qsin1" type="geom:qsin1" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qsin2" type="geom:qsin2" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qsin3" type="geom:qsin3" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="qcos" type="geom:qcos" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Radial_Terms">
    <xs:annotation>
      <xs:documentation>The Radial_Vector provides the radial lens
        distortion coefficients defined in the ground (object)
        coordinate system. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Polynomial_Coefficients_3">
        <xs:sequence>
          <xs:element name="c0" type="geom:c0" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="c1" type="geom:c1" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="c2" type="geom:c2" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Reference_Coordinate_Space">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Coordinate_Space_Identification">
        <xs:sequence>
          <xs:element name="SPICE_Kernel_Identification" type="geom:SPICE_Kernel_Identification" minOccurs="0" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Coordinate_Space_Index" type="geom:Coordinate_Space_Index" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Reference_Frame_Identification">
    <xs:annotation>
      <xs:documentation>The Reference_Frame_Identification class is a
        base class for identifying reference frames. These are frames in
        the NAIF sense, i.e., three orthogonal axes with a specified
        orientation, but without a fixed origin. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Geometry_Identification_Base">
        <xs:sequence>
          <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Reference_Pixel">
    <xs:annotation>
      <xs:documentation>The Reference_Pixel class provides the pixel
        coordinates, line and sample, to which values in the containing
        class apply. Integer values indicate the center of the pixel.
        Sub-pixel values are permitted. For pixel_sample, the leading
        edge (left edge for sample increasing to the right) has a value
        0.5 less than the integer value at the center, and the value for
        the trailing edge is the center integer value + 0.5. For
        pixel_line, the leading and trailing edges (top and bottom
        respectively for line increasing downward) again are -0.5 and
        +0.5 with respect to the center integer value.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vertical_coordinate_pixel" type="geom:vertical_coordinate_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="horizontal_coordinate_pixel" type="geom:horizontal_coordinate_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Rotation_Quaternion">
    <xs:annotation>
<xs:documentation>TBD</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Quaternion_SPICE_Style">
        <xs:sequence>
          <xs:element name="qcos" type="geom:qcos" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin1" type="geom:qsin1" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin2" type="geom:qsin2" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="qsin3" type="geom:qsin3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SPICE_Kernel_Files">
    <xs:annotation>
      <xs:documentation>The SPICE_Kernel_Files class provides references
        to the SPICE files used when calculating geometric values. The
        preferred reference mechanism is to give the LIDVID for each
        SPICE file. If a LIDVID has not been asigned, then the file name
        of that file is used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SPICE_Kernel_Identification" type="geom:SPICE_Kernel_Identification" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPICE_Kernel_Identification">
    <xs:annotation>
      <xs:documentation>The SPICE_Kernel_Identification class includes
        the SPICE kernel type and provides three alternatives for
        identifying the product: LIDVID using Internal_Reference (this
        is the preferred option), the official file name of the kernel
        file as assigned by the PDS NAIF node, or the local file name
        assigned by the mission pending the official NAIF designation.
        Local file names must be unique, and one-to-one associations
        between the local file name and the NAIF file name or LIDVID
        must be maintained. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="kernel_type" type="pds:kernel_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="file_name" type="pds:file_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_spice_kernel_name" type="geom:local_spice_kernel_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="pds:kernel_type = ('CK', 'DBK', 'DSK', 'EK', 'FK', 'IK', 'LSK', 'MK', 'PCK', 'SCLK', 'SPK')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="SSB_To_Central_Body_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        SSB_To_Central_Body_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the Solar System Barycenter
        to the central body (e.g., planet). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SSB_To_Spacecraft_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The SSB_To_Spacecraft_Position_Vector_Cartesian
        is a linear, rectangular coordinates vector from the Solar
        System Barycenter to the spacecraft. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SSB_To_Target_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The SSB_To_Target_Position_Vector_Cartesian is a
        linear, rectangular coordinates vector from the Solar System
        Barycenter to the target specified in the parent
        Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian is
        a velocity vector in rectangular coordinates that gives the
        velocity of the spacecraft with respect to the central body
        (e.g., planet). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the spacecraft with respect to Earth.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the spacecraft with respect to the Solar System
        Barycenter. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>
        Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the spacecraft with respect to the center of the
        Sun. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the spacecraft with respect to the target specified
        in the parent Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric is
        a spherical velocity vector in Planetocentric coordinates that
        gives the velocity of the spacecraft with respect to the
        designated target. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radial_velocity" type="geom:radial_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_velocity" type="geom:longitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_velocity" type="geom:latitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_To_Target_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_To_Target_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the spacecraft to the target
        specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Spacecraft_To_Target_Position_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Spacecraft_To_Target_Position_Vector_Planetocentric is a
        spherical position vector in Planetocentric coordinates. It
        extends from the spacecraft to the target specified in the
        parent Geometry_Orbiter class.. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radius_position" type="geom:radius_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_position" type="geom:longitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_position" type="geom:latitude_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Specific_Cartesian_Vectors">
    <xs:annotation>
      <xs:documentation>The Specific_Cartesian_Vectors class is a
        container class for all cartesian vectors with pre-identified
        endpoints. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Central_Body_To_Spacecraft_Position_Vector_Cartesian" type="geom:Central_Body_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Central_Body_To_Target_Position_Vector_Cartesian" type="geom:Central_Body_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_To_Target_Position_Vector_Cartesian" type="geom:Spacecraft_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Central_Body_Position_Vector_Cartesian" type="geom:SSB_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Spacecraft_Position_Vector_Cartesian" type="geom:SSB_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Target_Position_Vector_Cartesian" type="geom:SSB_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Central_Body_Position_Vector_Cartesian" type="geom:Sun_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Spacecraft_Position_Vector_Cartesian" type="geom:Sun_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Target_Position_Vector_Cartesian" type="geom:Sun_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Central_Body_Position_Vector_Cartesian" type="geom:Earth_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Spacecraft_Position_Vector_Cartesian" type="geom:Earth_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Target_Position_Vector_Cartesian" type="geom:Earth_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Central_Body_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Central_Body_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Earth_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Earth_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_SSB_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_SSB_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Sun_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Sun_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Specific_Planetocentric_Vectors">
    <xs:annotation>
      <xs:documentation>The Specific_Planetocentric_Vectors class is a
        container class for all planetocentric vectors with
        pre-identified endpoints. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Central_Body_To_Spacecraft_Position_Vector_Planetocentric" type="geom:Central_Body_To_Spacecraft_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Central_Body_To_Target_Position_Vector_Planetocentric" type="geom:Central_Body_To_Target_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_To_Target_Position_Vector_Planetocentric" type="geom:Spacecraft_To_Target_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric" type="geom:Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric" type="geom:Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric" type="geom:Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Specific_Position_Vectors">
    <xs:annotation>
      <xs:documentation>The Specific_Position_Vectors class is a
        container class for all position vectors with pre-identified
        endpoints. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Central_Body_To_Spacecraft_Position_Vector_Cartesian" type="geom:Central_Body_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Central_Body_To_Target_Position_Vector_Cartesian" type="geom:Central_Body_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_To_Target_Position_Vector_Cartesian" type="geom:Spacecraft_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Central_Body_To_Spacecraft_Position_Vector_Planetocentric" type="geom:Central_Body_To_Spacecraft_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Central_Body_To_Target_Position_Vector_Planetocentric" type="geom:Central_Body_To_Target_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_To_Target_Position_Vector_Planetocentric" type="geom:Spacecraft_To_Target_Position_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Central_Body_Position_Vector_Cartesian" type="geom:SSB_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Spacecraft_Position_Vector_Cartesian" type="geom:SSB_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="SSB_To_Target_Position_Vector_Cartesian" type="geom:SSB_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Central_Body_Position_Vector_Cartesian" type="geom:Sun_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Spacecraft_Position_Vector_Cartesian" type="geom:Sun_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Sun_To_Target_Position_Vector_Cartesian" type="geom:Sun_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Central_Body_Position_Vector_Cartesian" type="geom:Earth_To_Central_Body_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Spacecraft_Position_Vector_Cartesian" type="geom:Earth_To_Spacecraft_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Earth_To_Target_Position_Vector_Cartesian" type="geom:Earth_To_Target_Position_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Specific_Velocity_Vectors">
    <xs:annotation>
      <xs:documentation>The Specific_Velocity_Vectors class is a
        container class for all velocity vectors with pre-identified
        endpoints.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Central_Body_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Target_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Earth_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_SSB_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian" type="geom:Spacecraft_Relative_To_Sun_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Central_Body_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Central_Body_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Earth_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Earth_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_SSB_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_SSB_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Sun_Velocity_Vector_Cartesian" type="geom:Target_Relative_To_Sun_Velocity_Vector_Cartesian" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric" type="geom:Spacecraft_Relative_To_Target_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric" type="geom:Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric" type="geom:Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Sun_To_Central_Body_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Sun_To_Central_Body_Position_Vector_Cartesian is a linear,
        rectangular coordinates vector from the Sun to the central body
        (e.g., planet). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Sun_To_Spacecraft_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The Sun_To_Spacecraft_Position_Vector_Cartesian
        is a linear, rectangular coordinates vector from the Sun to the
        spacecraft. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Sun_To_Target_Position_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The Sun_To_Target_Position_Vector_Cartesian is a
        linear, rectangular coordinates vector from the Sun to the
        target specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Position_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_position" type="geom:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="geom:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="geom:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Surface_Geometry">
    <xs:annotation>
      <xs:documentation>The Surface_Geometry class contains classes and
        attributes for various points of the surface of the target
        designated in the enclosing Geometry_Orbiter.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Pixel_Intercept" type="geom:Pixel_Intercept" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Footprint_Vertices" type="geom:Footprint_Vertices" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subsolar_azimuth" type="geom:subsolar_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subsolar_latitude" type="geom:subsolar_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subsolar_longitude" type="geom:subsolar_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subspacecraft_azimuth" type="geom:subspacecraft_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subspacecraft_latitude" type="geom:subspacecraft_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subspacecraft_longitude" type="geom:subspacecraft_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Target_Identification">
    <xs:annotation>
      <xs:documentation>Within the Geometry dictionary context, a
        "Target" is the body on the "to" end of a vector, quaternion, or
        other translation through space. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Geometry_Identification_Base">
        <xs:sequence>
          <xs:element name="body_spice_name" type="geom:body_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="body_spice_id" type="geom:body_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_name" type="geom:frame_spice_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="frame_spice_id" type="geom:frame_spice_id" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Internal_Reference" type="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Central_Body_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_Central_Body_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the designated target with respect to the central
        body (e.g., planet). </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_Central_Body_Velocity_Vector_Planetocentric
        is a spherical velocity vector in Planetocentric coordinates
        that gives the velocity of the target with respect to the
        central body. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radial_velocity" type="geom:radial_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_velocity" type="geom:longitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_velocity" type="geom:latitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Earth_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_Earth_Velocity_Vector_Cartesian is a velocity
        vector in rectangular coordinates that gives the velocity of the
        designated target with respect to Earth. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_SSB_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_SSB_Velocity_Vector_Cartesian is a velocity
        vector in rectangular coordinates that gives the velocity of the
        designated target with respect to the Solar System Barycenter.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_Spacecraft_Velocity_Vector_Cartesian is a
        velocity vector in rectangular coordinates that gives the
        velocity of the designated target with respect to the
        spacecraft. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric">
    <xs:annotation>
      <xs:documentation>The
        Target_Relative_To_Spacecraft_Velocity_Vector_Planetocentric is
        a spherical velocity vector in Planetocentric coordinates that
        gives the velocity of the target with respect to the spacecraft.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="radial_velocity" type="geom:radial_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="longitude_velocity" type="geom:longitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="latitude_velocity" type="geom:latitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target_Relative_To_Sun_Velocity_Vector_Cartesian">
    <xs:annotation>
      <xs:documentation>
        Target_Relative_To_Sun_Velocity_Vector_Cartesian is a velocity
        vector in rectangular coordinates that gives the velocity of the
        designated target with respect to the center of the sun.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_No_Units">
    <xs:annotation>
      <xs:documentation>This is a generic vector in Cartesian space. The
        "x", "y", and "z" component have no units. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_no_units" type="geom:x_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_no_units" type="geom:y_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_no_units" type="geom:z_no_units" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_Pixel">
    <xs:annotation>
      <xs:documentation>This a Cartesian pixel vector generally used in
        camera models. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_pixel" type="geom:x_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_pixel" type="geom:y_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_pixel" type="geom:z_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_Unit">
    <xs:annotation>
      <xs:documentation>This is a generic unit vector in Cartesian
        space. The "x", "y", and "z" component have no units and are
        restricted to values between -1.0 and 1.0 inclusive. Further the
        length of the vector square root of the (sum of the squares of
        the components) must be 1.0. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_unit" type="geom:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_unit" type="geom:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_unit" type="geom:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Cartesian_Base">
    <xs:annotation>
      <xs:documentation>The Velocity_Vector_Cartesian_Base is a three
        dimensional, rectangular coordinates vector. Uses units of
        linear velocity. The included attributes are not sufficient to
        identify the endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_velocity" type="geom:x_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_velocity" type="geom:y_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_velocity" type="geom:z_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Cartesian_Extended_Base">
    <xs:annotation>
      <xs:documentation>The Velocity_Vector_Cartesian_Extended_Base is a
        three dimensional, rectangular coordinates vector. Uses units of
        linear velocity. The included attributes are not sufficient to
        identify the endpoints of the vector. While the attribute
        Coordinate_System is optional, it must be used here if the
        coordinate system has not been specified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Velocity_Vector_Cartesian_Base">
        <xs:sequence>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Cartesian_Generic">
    <xs:annotation>
      <xs:documentation>Velocity_Vector_Cartesian_Generic is a three
        dimensional, rectangular coordinates vector. Uses units of
        linear velocity. Includes attributes to identify the endpoints
        of the vector. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Velocity_Vector_Cartesian_Extended_Base">
        <xs:sequence>
          <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Planetocentric_Base">
    <xs:annotation>
      <xs:documentation>The Velocity_Vector_Planetocentric_Base is a
        three dimensional spherical vector (radius, longitude, latitude)
        with the angular coordinates defined to be consistent with the
        Planetocentric coordinate system. Uses linear velocity units for
        the radius dimension, and angular velocity units for the other
        two dimensions. The included attributes are not sufficient to
        identify the endpoints of the vector. While the attribute
        Coordinate_System is optional, if it is appropriate for this
        vector, it must be used here if the coordinate system has not
        been specified in the Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="radial_velocity" type="geom:radial_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_velocity" type="geom:longitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_velocity" type="geom:latitude_velocity" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Planetocentric_Extended_Base">
    <xs:annotation>
      <xs:documentation>The Velocity_Vector_Planetocentric_Extended_Base
        is a three dimensional spherical vector (radius, longitude,
        latitude) with the angular coordinates defined to be consistent
        with the Planetocentric coordinate system. Uses linear velocity
        units for the radius dimension, and angular velocity units for
        the other two dimensions. The included attributes are not
        sufficient to identify the endpoints of the vector. While the
        attribute Coordinate_System is optional, it must be used here if
        the coordinate system has not been specified in the enclosing
        class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Velocity_Vector_Planetocentric_Base">
        <xs:sequence>
          <xs:element name="light_time_correction_applied" nillable="true" type="geom:light_time_correction_applied" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Coordinate_System" type="geom:Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Velocity_Vector_Planetocentric_Generic">
    <xs:annotation>
      <xs:documentation>The Velocity_Vector_Planetocentric_Generic is a
        three dimensional spherical vector (radius, longitude, latitude)
        with the angular coordinates defined to be consistent with the
        Planetocentric coordinate system. Uses linear velocity units for
        the radius dimension, and angular velocity units for the other
        two dimensions. Includes attributes to identify the endpoints of
        the vector. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="geom:Velocity_Vector_Planetocentric_Extended_Base">
        <xs:sequence>
          <xs:element name="Observer_Identification" type="geom:Observer_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Target_Identification" type="geom:Target_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <!-- Begin assert statements for schematron - Enumerated Values -->
        <!-- <xs:assert test="geom:light_time_correction_applied = ('None', 'Received_Light_Time', 'Received_Light_Time_Stellar_Abb', 'Transmitted_Light_Time', 'Transmitted_Light_Time_Stellar_Abb')"/> -->
        <!-- End assert statements for schematron - Enumerated Values -->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vertical_Vector">
    <xs:annotation>
      <xs:documentation>The Vertical_Vector encodes the vertical axis of
        the image plane (V' or Vp), the coordinate (Vc) of the image
        row(?) at the optical centre of the image plane, and the
        vertical focal length (Vs) of the camera, in pixels.
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="geom:Vector_Cartesian_Pixel">
        <xs:sequence>
          <xs:element name="x_pixel" type="geom:x_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_pixel" type="geom:y_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_pixel" type="geom:z_pixel" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

    <xs:annotation>
      <xs:documentation>This section contains the simpleTypes that provide more constraints
        than those at the base data type level. The simpleTypes defined here build on the base data
        types. This is another component of the common dictionary and therefore falls within the
        pds namespace.
      </xs:documentation>
    </xs:annotation>

  <xs:simpleType name="body_positive_pole_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="body_positive_pole_clock_angle">
    <xs:annotation>
      <xs:documentation>The body_positive_pole_clock_angle element
        specifies the direction of a body's rotation axis in an image.
        This attribute typically is used when specifying body center
        coorinates for dwarf planets, minor planets, their satellites,
        and for comets. It is measured from the 'upward' direction in
        the image, clockwise to the direction of the positive rotational
        pole as projected into the image plane, assuming the image is
        displayed as defined by the Display_Direction class. The
        positive pole is used to define the poles of dwarf planets,
        minor planets, their satellites, and comets according to the
        right-hand rule. "positive" is the pole toward which the thumb
        points when the fingers are curled in the body's direction of
        rotation. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:body_positive_pole_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="body_spice_id">
    <xs:annotation>
      <xs:documentation>The body_spice_id attribute is a NAIF-recognized
        numeric identifier for a physical object (spacecraft, planet,
        instrument transmitter, system barycenter, etc., associated with
        the data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="body_spice_name">
    <xs:annotation>
      <xs:documentation>The body_spice_name attribute is a
        NAIF-recognized string identifier for a physical object
        (spacecraft, planet, instrument transmitter, system barycenter,
        etc., associated with the data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="c0">
    <xs:annotation>
      <xs:documentation>The first coefficient of a polynomial.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="c1">
    <xs:annotation>
      <xs:documentation>The second coefficient of a polynomial.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="c2">
    <xs:annotation>
      <xs:documentation>The third coefficient of a polynomial.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="calibration_source_id">
    <xs:annotation>
      <xs:documentation>The calibration_source_id is used to identify
        the source used in calibrating the instrument.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="celestial_north_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="celestial_north_clock_angle">
    <xs:annotation>
      <xs:documentation>The celestial_north_clock_angle attribute
        specifies the direction of celestial north at the center of an
        image. It is measured from the 'upward' direction, clockwise to
        the direction toward celestial north, assuming the image is
        displayed as defined by the Display_Direction class..
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:celestial_north_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="central_body_north_pole_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="central_body_north_pole_clock_angle">
    <xs:annotation>
      <xs:documentation>The central_body_north_pole_clock_angle element
        specifies the direction of the central body's (e.g.,
        planet's)rotation axis in an image. It is measured from the
        'upward' direction in the image, clockwise to the direction of
        the northern rotational pole as projected into the image plane,
        assuming the image is displayed as defined by the
        Display_Direction class. The north pole of a planet or any of
        its satellites in the solar system is the pole of the rotation
        axis that is in the same celestial hemisphere relative to the
        invariable plane of the solar system as Earth's North pole.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:central_body_north_pole_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="coordinate_system_time">
    <xs:annotation>
      <xs:documentation>The coordinate_system_time provides the
        instantiation time for the coordinate system. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="coordinate_system_type">
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="declination_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="declination_angle">
    <xs:annotation>
      <xs:documentation>The declination_angle (Dec) attribute provides
        the value of an angle on the celestial sphere, measured north
        from the celestial equator to the point in question. (For points
        south of the celestial equator, negative values are used.)
        declination is used in conjunction with the right_ascension
        attribute to specify a point on the sky. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:declination_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="device_id">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="device_mode">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="device_name">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="distance">
    <xs:annotation>
      <xs:documentation>The distance attribute provides the scaler
        distance between to objects or points. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="east_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="east_azimuth">
    <xs:annotation>
      <xs:documentation>Assuming the image is displayed as defined by
        the Display_Direction class, the east_azimuth attribute provides
        the value of the angle between a line from the image center to
        the east and a reference line in the image plane. The reference
        line is a horizontal line from the image center to the middle
        right edge of the image. This angle increases in a clockwise
        direction. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:east_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ecliptic_north_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ecliptic_north_clock_angle">
    <xs:annotation>
      <xs:documentation>The ecliptic_north_clock_angle attribute
        specifies the direction of ecliptic north at the center of an
        image. It is measured from the 'upward' direction, clockwise to
        the direction toward ecliptic north, assuming the image is
        displayed as defined by the Display_Direction class..
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:ecliptic_north_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="emission_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="emission_angle">
    <xs:annotation>
      <xs:documentation>The emission_angle element provides the value of
        the angle between the surface normal vector at the intercept
        point and a vector from the intercept point to the spacecraft.
        The emission_angle varies from 0 degrees when the spacecraft is
        viewing the subspacecraft point (nadir viewing) to 90 degrees
        when the intercept is tangent to the surface of the target body.
        Thus, higher values of emission_angle indicate more oblique
        viewing of the target. Values in the range of 90 to 180 degrees
        are possible for ring data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:emission_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="frame_spice_id">
    <xs:annotation>
      <xs:documentation>The frame_spice_id attribute is a
        NAIF-recognized numeric identifier for a reference frame
        associated with the data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="frame_spice_name">
    <xs:annotation>
      <xs:documentation>The frame_spice_name attribute is a
        NAIF-recognized string identifier for a reference frame
        associated with the data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="geometry_reference_time">
    <xs:annotation>
      <xs:documentation>geometry_reference_time is the time at which
        each of the values in the containing class is correct.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="horizontal_coordinate_pixel_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="horizontal_coordinate_pixel">
    <xs:annotation>
      <xs:documentation>horizontal_coordinate_pixel (sample) is the
        horizontal coordinate of a specific pixel. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:horizontal_coordinate_pixel_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="horizontal_pixel_scale_factor">
    <xs:annotation>
      <xs:documentation>The horizontal_pixel_scale_factor provides a
        scaling factor which when multiplied by the distance to a point
        of the surface of the target identified in the parent
        Geometry_Orbiter class gives the horizontal size of a pixel
        projected on the target in units of length (e.g., kilometers).
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="horizontal_pixel_size_angular_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="horizontal_pixel_size_angular">
    <xs:annotation>
      <xs:documentation>The horizontal_pixel_size_angular provides the
        angular measure of the horizontal field of view of a single
        pixel. This is equivalent to the PDS3 element
        horizontal_pixel_field_of_view. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:horizontal_pixel_size_angular_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="horizontal_pixel_size_projected_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="horizontal_pixel_size_projected">
    <xs:annotation>
      <xs:documentation>The horizontal_pixel_size_projected provides the
        the size of the horizontal field of view of a single pixel
        projected onto the target specified in the parent
        Geometry_Orbiter class. Analogus to PDS3 keyword PIXEL_SCALE
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:horizontal_pixel_size_projected_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="illumination_range_designation">
    <xs:annotation>
      <xs:documentation>The illumination_range_designation indicates
        whether values given in the Illumination_Range_Values class
        apply to the entire field of view, or the portion within the
        field of view of the target specified in the parent
        Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="incidence_angle">
    <xs:annotation>
      <xs:documentation>The incidence_angle element provides a measure
        of the lighting condition at the intercept point. Incidence
        angle is the angle between the local vertical at the intercept
        point (surface) and a vector from the intercept point to the
        sun. The incidence_angle varies from 0 degrees when the
        intercept point coincides with the subsolar point to 90 degrees
        when the intercept point is at the terminator (i.e., in the
        shadowed or dark portion of the target body). Thus, higher
        values of incidence_angle indicate the existence of a greater
        number of surface shadows. Note: In PDS labels for Magellan's
        altimetry and radiometry products, and for Lunar Reconnaissance
        Orbiter Mini-RF products, incidence_angle is defined as the
        value of the angle between the local vertical and the spacecraft
        direction. For Magellan this is measured at the center of the
        radiometer footprint at rad_spacecraft_epoch_time.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="index_id">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="index_name">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="index_sequence_number">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="index_value_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="index_value_angle">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:index_value_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="index_value_length_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="index_value_length">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:index_value_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="index_value_no_units">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="index_value_string">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="index_value_temperature_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="index_value_temperature">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:index_value_temperature_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Temperature" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="latitude_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="latitude_position">
    <xs:annotation>
      <xs:documentation>The latitude component of a Planetocentric
        position vector. Planetocentric latitude is the angle between
        the equator plane and a vector connecting the point of interest
        and the origin of the coordinate system. Latitudes are defined
        to be positive in the northern (as defined by the IAU)
        hemisphere. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:latitude_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="latitude_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="latitude_velocity">
    <xs:annotation>
      <xs:documentation>The latitude component of a Planetocentric
        velocity vector. Planetocentric latitude is the angle between
        the equator plane and a vector connecting the point of interest
        and the origin of the coordinate system. Latitudes are defined
        to be positive in the northern (as defined by the IAU)
        hemisphere. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:latitude_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="light_time_correction_applied">
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="local_spice_kernel_name">
    <xs:annotation>
      <xs:documentation>The local_spice_kernel_name attribute is the
        mission designated file name for a SPICE kernel.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_File_Name">
  <!-- format="file_name.file_extension" -->
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="longitude_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="longitude_position">
    <xs:annotation>
      <xs:documentation>The longitudinal component of a Planetocentric
        position vector. Planetocentric longitude is measured from the
        IAU approved prime meridian for the body and increases toward
        the east. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:longitude_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="longitude_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="longitude_velocity">
    <xs:annotation>
      <xs:documentation>The longitudinal component of a Planetocentric
        velocity vector. Planetocentric longitude is measured from the
        IAU approved prime meridian for the body and increases toward
        the east. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:longitude_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_emission_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_emission_angle">
    <xs:annotation>
      <xs:documentation>The maximum_emission_angle element provides the
        largest value for the emission angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:maximum_emission_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_incidence_angle">
    <xs:annotation>
      <xs:documentation>The maximum_incidence_angle element provides the
        largest value for the incidence angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:maximum_incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_phase_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_phase_angle">
    <xs:annotation>
      <xs:documentation>The maximum_phase_angle element provides the
        largest value for the phase angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:maximum_phase_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_emission_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_emission_angle">
    <xs:annotation>
      <xs:documentation>The minimum_emission_angle element provides the
        smallest value for the emission angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:minimum_emission_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_incidence_angle">
    <xs:annotation>
      <xs:documentation>The minimum_incidence_angle element provides the
        smallest value for the incidence angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:minimum_incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_phase_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_phase_angle">
    <xs:annotation>
      <xs:documentation>The minimum_phase_angle element provides the
        smallest value for the phase angle in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:minimum_phase_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="model_desc_file_name">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_File_Name">
  <!-- format="file_name.file_extension" -->
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="model_type">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="north_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="north_azimuth">
    <xs:annotation>
      <xs:documentation>Assuming the image is displayed as defined by
        the Display_Direction class, the north_azimuth attribute
        provides the value of the angle between a line from the image
        center to the north pole and a reference line in the image
        plane. The reference line is a horizontal line from the image
        center to the middle right edge of the image. This angle
        increases in a clockwise direction. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:north_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="phase_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="phase_angle">
    <xs:annotation>
      <xs:documentation>The phase_angle element provides a measure of
        the relationship between the instrument viewing position and
        incident illumination (such as solar light). Phase_angle is
        measured at the target; it is the angle between a vector to the
        illumination source and a vector to the instrument. If not
        specfied, the target is assumed to be at the center of the
        instrument field of view. If illumination is from behind the
        instrument, phase_angle will be small. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:phase_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_latitude">
    <xs:annotation>
      <xs:documentation>The pixel_latitude attribute gives the value of
        the planetocentric latitude on the target of the projection of a
        specified pixel. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:pixel_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_longitude">
    <xs:annotation>
      <xs:documentation>The pixel_longitude attribute gives the value of
        the planetocentric longitude on the target of the projection of
        a specified pixel. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:pixel_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="qcos">
    <xs:annotation>
      <xs:documentation>One of the four components of a quaternion
        (Qcos, Qsin1, Qsin2, Qsin3). The order used in a quaternion
        depends on the 'style' of the quaternion. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="qsin1">
    <xs:annotation>
      <xs:documentation>One of the four components of a quaternion
        (Qcos, Qsin1, Qsin2, Qsin3). The order used in a quaternion
        depends on the 'style' of the quaternion. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="qsin2">
    <xs:annotation>
      <xs:documentation>One of the four components of a quaternion
        (Qcos, Qsin1, Qsin2, Qsin3). The order used in a quaternion
        depends on the 'style' of the quaternion. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="qsin3">
    <xs:annotation>
      <xs:documentation>One of the four components of a quaternion
        (Qcos, Qsin1, Qsin2, Qsin3). The order used in a quaternion
        depends on the 'style' of the quaternion. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="radial_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="radial_velocity">
    <xs:annotation>
      <xs:documentation>The radial component of a spherical or
        cylindrical velocity vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:radial_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="radius_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="radius_position">
    <xs:annotation>
      <xs:documentation>The radial component of a spherical or
        cylindrical position vector (e.g., the radius coordinate in
        Planetocentric coordinates). </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:radius_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reference_location">
    <xs:annotation>
      <xs:documentation>The reference_location indicates the position to
        which values in the containing class apply. If the reference
        location is on a target, the target is the one specified in the
        parent Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="reference_pixel_location">
    <xs:annotation>
      <xs:documentation>The reference_pixel_location indicates the
        position of the pixel to which values in the containing class
        apply. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="right_ascension_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="right_ascension_angle">
    <xs:annotation>
      <xs:documentation>The right_ascension_angle attribute provides the
        value of right ascension (RA) as an angle. Right ascension is
        measured from the vernal equinox or the first point of Aries,
        which is the place on the celestial sphere where the Sun crosses
        the celestial equator from south to north at the March equinox.
        Right ascension is measured continuously in a full circle from
        that equinox towards the east. Right ascension is used in
        conjunction with the declination attribute to specify a point on
        the sky.Note Right Ascension is normally given in hour angles in
        which case the appropriate attribute is
        right_ascension_hour_angle. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:right_ascension_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="right_ascension_hour_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="24"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="right_ascension_hour_angle">
    <xs:annotation>
      <xs:documentation>The right_ascension_hour_angle attribute
        provides the value of right ascension (RA) as in terms of hour
        angles (hh:mm:ss.sss...). Right ascension is measured from the
        vernal equinox or the first point of Aries, which is the place
        on the celestial sphere where the Sun crosses the celestial
        equator from south to north at the March equinox. Right
        ascension is measured continuously in a full circle from that
        equinox towards the east. Right ascension is used in conjunction
        with the declination attribute to specify a point on the sky.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:right_ascension_hour_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="solar_elongation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="solar_elongation">
    <xs:annotation>
      <xs:documentation> The solar_elongation element gives the angle
        between the line of sight of observation and the direction of
        the Sun. Note: For IRAS: The line of sight of observation is the
        boresight of the telescope as measured by the satellite sun
        sensor. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:solar_elongation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="solution_id">
    <xs:annotation>
<xs:documentation>TBD. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="spacecraft_geocentric_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_geocentric_distance">
    <xs:annotation>
      <xs:documentation>The spacecraft_geocentric_distance attribute
        provides the scaler distance between the spacecraft and the
        center of Earth. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_geocentric_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_heliocentric_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_heliocentric_distance">
    <xs:annotation>
      <xs:documentation>The spacecraft_heliocentric_distance attribute
        provides the scaler distance between the spacecraft and the
        center of the Sun. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_heliocentric_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_to_central_body_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_to_central_body_distance">
    <xs:annotation>
      <xs:documentation>The spacecraft_to_central_body_distance
        attribute provides the scaler distance between the spacecraft
        and the center of the central body (e.g., the center of Mars
        when opperating in the Mars system). </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_to_central_body_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_to_target_boresight_intercept_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_to_target_boresight_intercept_distance">
    <xs:annotation>
      <xs:documentation>The
        spacecraft_to_target_boresight_intercept_distance attribute
        provides the scaler distance between the spacecraft and the
        boresight vector intercept point on the surface of the target
        specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_to_target_boresight_intercept_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_to_target_center_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_to_target_center_distance">
    <xs:annotation>
      <xs:documentation>The spacecraft_to_target_center_distance
        attribute provides the scaler distance between the spacecraft
        and the center of the target specified in the parent
        Geometry_Orbiter class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_to_target_center_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_to_target_subspacecraft_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_to_target_subspacecraft_distance">
    <xs:annotation>
      <xs:documentation>The spacecraft_to_target_subspacecraft_distance
        attribute provides the scaler distance between the spacecraft
        and the subspacecraft point on the surface of the target
        specified in the parent Geometry_Orbiter class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:spacecraft_to_target_subspacecraft_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subsolar_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subsolar_azimuth">
    <xs:annotation>
      <xs:documentation>The subsolar_azimuth attribute provides the
        value of the angle between the line from the center of an image
        to the subsolar point on the target and a horizontal reference
        line (in the image plane) extending from the image center to the
        middle right edge of the image. The values of this angle
        increase in a clockwise direction. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subsolar_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subsolar_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subsolar_latitude">
    <xs:annotation>
      <xs:documentation>The subsolar_latitude attribute gives the value
        of the planetocentric latitude at the subsolar point on the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subsolar_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subsolar_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subsolar_longitude">
    <xs:annotation>
      <xs:documentation>The subsolar_longitude attribute gives the value
        of the planetocentric longitude at the subsolar point on the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subsolar_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subspacecraft_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subspacecraft_azimuth">
    <xs:annotation>
      <xs:documentation>The subspacecraft_azimuth attribute provides the
        value of the angle between the line from the center of an image
        to the subspacecraft point on the target and a horizontal
        reference line (in the image plane) extending from the image
        center to the middle right edge of the image. The values of this
        angle increase in a clockwise direction. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subspacecraft_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subspacecraft_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subspacecraft_latitude">
    <xs:annotation>
      <xs:documentation>The subspacecraft_latitude attribute gives the
        value of the planetocentric latitude at the subspacecraft point
        on the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subspacecraft_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="subspacecraft_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="subspacecraft_longitude">
    <xs:annotation>
      <xs:documentation>The subspacecraft_longitude attribute gives the
        value of the planetocentric longitude at the subspacecraft point
        on the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:subspacecraft_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sun_direction_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sun_direction_clock_angle">
    <xs:annotation>
      <xs:documentation>The sun_direction_clock_angle attribute
        specifies the direction of the sun as an angle measured from a
        line 'upward' from the center of the field of view, clockwise to
        the direction toward sun, assuming the image is displayed as
        defined by the Display_Direction class.. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:sun_direction_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="target_geocentric_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_geocentric_distance">
    <xs:annotation>
      <xs:documentation>The target_geocentric_distance attribute
        provides the scaler distance between the center of the target
        and the center of the Earth. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:target_geocentric_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="target_heliocentric_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_heliocentric_distance">
    <xs:annotation>
      <xs:documentation>The target_heliocentric_distance attribute
        provides the scaler distance between the center of the target
        and the center of the Sun. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:target_heliocentric_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="target_north_pole_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_north_pole_clock_angle">
    <xs:annotation>
      <xs:documentation>The target_north_pole_clock_angle element
        specifies the direction of the target body's rotation axis in an
        image. It is measured from the 'upward' direction in the image,
        clockwise to the direction of the northern rotational pole as
        projected into the image plane, assuming the image is displayed
        as defined by the Display_Direction class. The north pole of a
        planet or any of its satellites in the solar system is the pole
        of the rotation axis that is in the same celestial hemisphere
        relative to the invariable plane of the solar system as Earth's
        North pole. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:target_north_pole_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="target_positive_pole_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_positive_pole_clock_angle">
    <xs:annotation>
      <xs:documentation>The target_positive_pole_clock_angle element
        specifies the direction of the target body's rotation axis in an
        image. It is measured from the 'upward' direction in the image,
        clockwise to the direction of the positive rotational pole as
        projected into the image plane, assuming the image is displayed
        as defined by the Display_Direction class. The positive pole is
        used to define the poles of dwarf planets, minor planets, their
        satellites, and comets according to the right-hand rule.
        "positive" is the pole toward which the thumb points when the
        fingers are curled in the body's direction of rotation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:target_positive_pole_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="target_ssb_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_ssb_distance">
    <xs:annotation>
      <xs:documentation>The target_ssb_distance attribute provides the
        scaler distance between the center of the target and the Solar
        System Barycenter. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:target_ssb_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="vertical_coordinate_pixel_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="vertical_coordinate_pixel">
    <xs:annotation>
      <xs:documentation>vertical_coordinate_pixel (line) is the vertical
        coordinate of a specific pixel. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:vertical_coordinate_pixel_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="vertical_pixel_scale_factor">
    <xs:annotation>
      <xs:documentation>The vertical_pixel_scale_factor provides a
        scaling factor which when multiplied by the distance to a point
        of the surface of the target identified in the parent
        Geometry_Orbiter class gives the vertical sizes of a pixel
        projected on the target in units of length (e.g., kilometers).
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="vertical_pixel_size_angular_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="vertical_pixel_size_angular">
    <xs:annotation>
      <xs:documentation>The vertical_pixel_size_angular provides the
        angular measure of the vertical field of view of a single pixel.
        This is equivalent to the PDS3 element
        vertical_pixel_field_of_view. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:vertical_pixel_size_angular_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="vertical_pixel_size_projected_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="vertical_pixel_size_projected">
    <xs:annotation>
      <xs:documentation>The vertical_pixel_size_projected provides the
        size of the vertical field of view of a single pixel projected
        onto the target specified in the parent Geometry_Orbiter class.
        Analogus to PDS3 keyword PIXEL_SCALE </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:vertical_pixel_size_projected_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_acceleration_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_acceleration">
    <xs:annotation>
      <xs:documentation>The x component of a Cartisean acceleration
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:x_acceleration_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Acceleration" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_no_units">
    <xs:annotation>
      <xs:documentation>The x component of a Cartisean vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="x_pixel_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_pixel">
    <xs:annotation>
      <xs:documentation>The x component of a Cartisean pixel vector;
        typically used in cameral models.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:x_pixel_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_position">
    <xs:annotation>
      <xs:documentation>The x component of a Cartisean position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:x_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_unit">
    <xs:annotation>
      <xs:documentation>The x component of a unit Cartisean
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1"/>
     <xs:maxInclusive value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="x_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_velocity">
    <xs:annotation>
      <xs:documentation>The x component of a Cartisean velocity
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:x_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_acceleration_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_acceleration">
    <xs:annotation>
      <xs:documentation>The y component of a Cartisean acceleration
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:y_acceleration_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Acceleration" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_no_units">
    <xs:annotation>
      <xs:documentation>The y component of a Cartisean vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="y_pixel_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_pixel">
    <xs:annotation>
      <xs:documentation>The y component of a Cartisean pixel vector;
        typically used in cameral models.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:y_pixel_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_position">
    <xs:annotation>
      <xs:documentation>The y component of a Cartisean position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:y_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_unit">
    <xs:annotation>
      <xs:documentation>The y component of a unit Cartisean
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1"/>
     <xs:maxInclusive value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="y_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_velocity">
    <xs:annotation>
      <xs:documentation>The y component of a Cartisean velocity
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:y_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_acceleration_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_acceleration">
    <xs:annotation>
      <xs:documentation>The z component of a Cartisean acceleration
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:z_acceleration_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Acceleration" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_no_units">
    <xs:annotation>
      <xs:documentation>The z component of a Cartisean vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="z_pixel_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_pixel">
    <xs:annotation>
      <xs:documentation>The z component of a Cartisean pixel vector;
        typically used in cameral models.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:z_pixel_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_position">
    <xs:annotation>
      <xs:documentation>The z component of a Cartisean position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:z_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_unit">
    <xs:annotation>
      <xs:documentation>The z component of a unit Cartisean
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1"/>
     <xs:maxInclusive value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="z_velocity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_velocity">
    <xs:annotation>
      <xs:documentation>The z component of a Cartisean velocity
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="geom:z_velocity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
