<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:rings  Version:1.15.0.0 - Fri Apr 24 16:55:42 UTC 2026 -->
  <!-- Generated from the PDS4 Information Model Version 1.26.0.0 - System Build 16.1	 -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <!--                                                                           -->
  <!--               Dictionary Stack                                            -->
  <!-- 1.26.0.0 - pds: - Common Dictionary                                       -->
  <!-- 1.9.11.0 - geom: - Geometry Dictionary Full                               -->
  <!-- 1.5.1.0 - disp: - Display                                                 -->
  <!-- 1.15.0.0 - rings: - Rings Dictionary                                      -->
  <!--                                                                           -->
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/pds4/rings/v1"
    xmlns:rings="http://pds.nasa.gov/pds4/rings/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    xmlns:geom="http://pds.nasa.gov/pds4/geom/v1"
    xmlns:disp="http://pds.nasa.gov/pds4/disp/v1"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.15.0.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="https://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1Q00.xsd"/>
    <xs:import namespace="http://pds.nasa.gov/pds4/geom/v1" schemaLocation="https://pds.nasa.gov/pds4/geom/v1/PDS4_GEOM_1Q00_19B0.xsd"/>
    <xs:import namespace="http://pds.nasa.gov/pds4/disp/v1" schemaLocation="https://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1Q00_1510.xsd"/>
 
  <xs:annotation>
    <xs:documentation>
 

      Changes are tracked in the file ChangeLog.md in the ldd-rings directory.
      
    
    </xs:documentation>
  </xs:annotation>
 
  <xs:element name="Ring_Moon_Systems" type="rings:Ring_Moon_Systems"> </xs:element>

  <xs:complexType name="Body_Ident_Base">
    <xs:annotation>
      <xs:documentation>The Body_Ident_Base class provides multiple
        attributes that can be used to identify a physical object
        (spacecraft, planet instrument, transmitter, system barycenter,
        etc.). At least one must be used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Central_Body_Ident">
    <xs:annotation>
      <xs:documentation>The Central_Body_Ident class uniquely identifies
        the body that is the central body associated with an observation
        (e.g., Saturn for Saturn system observations).
        </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="rings:Body_Ident_Base">
        <xs:sequence>
          <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Central_Body_Parameters">
    <xs:annotation>
      <xs:documentation>This class provides the parameters used to
        generate a ring model which are specific to the central
        body.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rings:Central_Body_Ident">
        <xs:sequence>
          <xs:element name="gmass" type="rings:gmass" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="grav_ref_radius" type="rings:grav_ref_radius" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="j2" type="rings:j2" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="j4" type="rings:j4" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="j6" type="rings:j6" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="j8" type="rings:j8" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="pole_right_ascension_angle" type="rings:pole_right_ascension_angle" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="pole_right_ascension_angle_uncert" type="rings:pole_right_ascension_angle_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="pole_declination_angle" type="rings:pole_declination_angle" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="pole_declination_angle_uncert" type="rings:pole_declination_angle_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Column_Headers">
    <xs:annotation>
      <xs:documentation>This class is meant to collect attributes that
        are intended for use as column headers within data products.
        These attributes have been defined in this dictionary in order
        to promote clarity and uniformity, and in turn this class is
        defined in order to give these attributes a logical home.
        Because it is not intended for this class to ever be used in a
        label, its maximum occurrences is set to zero.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="emission_angle" type="rings:emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_time" type="rings:observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_tdb" type="rings:observed_event_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_time_utc" type="rings:observed_event_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_event_time" type="rings:spacecraft_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_time" type="rings:earth_received_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_time" type="rings:ring_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_tdb" type="rings:ring_event_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_optical_depth" type="rings:observed_optical_depth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_optical_depth" type="rings:normal_optical_depth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="stellar_signal_level" type="rings:stellar_signal_level" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_radius" type="rings:ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="phase_angle" type="rings:phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_ring_azimuth" type="rings:observed_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_sub_stellar_ring_azimuth" type="rings:minimum_sub_stellar_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_sub_stellar_ring_azimuth" type="rings:maximum_sub_stellar_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_sub_stellar_clock_angle" type="rings:minimum_sub_stellar_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_sub_stellar_clock_angle" type="rings:maximum_sub_stellar_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="projected_sun_diameter" type="rings:projected_sun_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Frame_Ident_Base">
    <xs:annotation>
      <xs:documentation>The Frame_Ident_Base class provides multiple
        attributes that can be used to identify a reference frame. At
        least one must be used. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Global_Model_Parameters">
    <xs:annotation>
      <xs:documentation>This class provides the general parameters used
        to generate a ring model.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Reference_Frame_Ident" type="rings:Reference_Frame_Ident" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="epoch_ring_fit_utc" type="rings:epoch_ring_fit_utc" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Normal_Mode_Parameters">
    <xs:annotation>
      <xs:documentation>This class provides the normal mode parameters
        if one is present in the described ring.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_amplitude" type="rings:normal_mode_amplitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_amplitude_uncert" type="rings:normal_mode_amplitude_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_phase" type="rings:normal_mode_phase" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_phase_uncert" type="rings:normal_mode_phase_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_pattern_speed" type="rings:normal_mode_pattern_speed" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_pattern_speed_uncert" type="rings:normal_mode_pattern_speed_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="normal_mode_wavenumber" type="rings:normal_mode_wavenumber" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Occultation_Ring_Profile">
    <xs:annotation>
      <xs:documentation>This class replaces the Radio_Occultation and
        Stellar_Occultation classes. It is used for all ring occultation
        profiles regardless of the occultation type. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="orbit_number" type="rings:orbit_number" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="sclk_start_time" type="rings:sclk_start_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sclk_stop_time" type="rings:sclk_stop_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="occultation_type" type="rings:occultation_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="occultation_direction" type="rings:occultation_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="ring_profile_direction" type="rings:ring_profile_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="planetary_occultation_flag" type="rings:planetary_occultation_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_quality_score" type="rings:data_quality_score" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_quality_index" type="rings:data_quality_index" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="ring_detected" type="rings:ring_detected" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_plane" type="rings:ring_plane" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="star_name" type="rings:star_name" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="fresnel_scale" type="rings:fresnel_scale" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="projected_star_diameter" type="rings:projected_star_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sigma_projected_star_diameter" type="rings:sigma_projected_star_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="fractional_error_star_counts" type="rings:fractional_error_star_counts" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="time_constant_type" type="rings:time_constant_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="time_constant" type="rings:time_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sigma_time_constant" type="rings:sigma_time_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="dsn_station_number" nillable="true" type="rings:dsn_station_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frequency_band" type="rings:frequency_band" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="radial_resolution" type="rings:radial_resolution" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="radial_sampling_interval" type="rings:radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_radial_sampling_interval" type="rings:minimum_radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_radial_sampling_interval" type="rings:maximum_radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_time_utc" type="rings:reference_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_event_time" type="rings:minimum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_event_time" type="rings:maximum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_start_time_utc" type="rings:observed_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_stop_time_utc" type="rings:observed_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_start_tdb" type="rings:observed_event_start_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_stop_tdb" type="rings:observed_event_stop_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_event_start_time_utc" type="rings:spacecraft_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_event_stop_time_utc" type="rings:spacecraft_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_start_time_utc" type="rings:ring_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_stop_time_utc" type="rings:ring_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_start_tdb" type="rings:ring_event_start_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_stop_tdb" type="rings:ring_event_stop_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_start_time_utc" type="rings:earth_received_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_stop_time_utc" type="rings:earth_received_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_radius" type="rings:minimum_ring_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_radius" type="rings:maximum_ring_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_inertial_ring_longitude" type="rings:minimum_inertial_ring_longitude" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_inertial_ring_longitude" type="rings:maximum_inertial_ring_longitude" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_corotating_ring_longitude" type="rings:minimum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_corotating_ring_longitude" type="rings:maximum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_azimuth" type="rings:minimum_observed_ring_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_azimuth" type="rings:maximum_observed_ring_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sub_stellar_ring_azimuth" type="rings:sub_stellar_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sub_stellar_clock_angle" type="rings:sub_stellar_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_ring_elevation" type="rings:observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_elevation" type="rings:minimum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_elevation" type="rings:maximum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="light_source_incidence_angle" type="rings:light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_light_source_incidence_angle" type="rings:minimum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_light_source_incidence_angle" type="rings:maximum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="lowest_detectable_opacity" type="rings:lowest_detectable_opacity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="highest_detectable_opacity" type="rings:highest_detectable_opacity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="along_track_timing_offset" type="rings:along_track_timing_offset" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Wavelength_Parameters" type="rings:Wavelength_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:occultation_type = ('Radio', 'Solar', 'Stellar')"/> -->
    <!-- <xs:assert test="rings:occultation_direction = ('Both', 'Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:ring_profile_direction = ('Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:planetary_occultation_flag = ('N', 'Y')"/> -->
    <!-- <xs:assert test="rings:data_quality_score = ('Fair', 'Good', 'Poor')"/> -->
    <!-- <xs:assert test="rings:data_quality_index = ('0', '1', '2', '3', '4', '5', '6', 'B', 'F', 'R', 'U', 'X')"/> -->
    <!-- <xs:assert test="rings:ring_detected = ('N', 'Y')"/> -->
    <!-- <xs:assert test="rings:ring_plane = ('A', 'B', 'C', 'D', 'E', 'Equator', 'F', 'G', 'Phoebe', 'alpha', 'beta', 'delta', 'epsilon', 'eta', 'five', 'four', 'gamma', 'individual', 'lambda', 'mu', 'nu', 'six')"/> -->
    <!-- <xs:assert test="rings:time_constant_type = ('Double Pole', 'None', 'Single Pole')"/> -->
    <!-- <xs:assert test="rings:frequency_band = ('C', 'D', 'E', 'F', 'G', 'H', 'K', 'Ka', 'Ku', 'Q', 'R', 'S', 'U', 'V', 'W', 'X', 'Y')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Occultation_Supplement">
    <xs:annotation>
      <xs:documentation>This class is required for all radio ring
        occultation calibration and geometry supplemental
        files.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="orbit_number" type="rings:orbit_number" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="occultation_type" type="rings:occultation_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="occultation_direction" type="rings:occultation_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="ring_profile_direction" type="rings:ring_profile_direction" minOccurs="0" maxOccurs="2"> </xs:element>
      <xs:element name="planetary_occultation_flag" type="rings:planetary_occultation_flag" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="dsn_station_number" nillable="true" type="rings:dsn_station_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="frequency_band" type="rings:frequency_band" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameter_name" type="pds:sampling_parameter_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameter_unit" type="pds:sampling_parameter_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameter_interval" type="pds:sampling_parameter_interval" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reference_time_utc" type="rings:reference_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_event_time" type="rings:minimum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_event_time" type="rings:maximum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:occultation_type = ('Radio', 'Solar', 'Stellar')"/> -->
    <!-- <xs:assert test="rings:occultation_direction = ('Both', 'Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:ring_profile_direction = ('Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:planetary_occultation_flag = ('N', 'Y')"/> -->
    <!-- <xs:assert test="rings:frequency_band = ('C', 'D', 'E', 'F', 'G', 'H', 'K', 'Ka', 'Ku', 'Q', 'R', 'S', 'U', 'V', 'W', 'X', 'Y')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Occultation_Time_Series">
    <xs:annotation>
      <xs:documentation>This class supports occultation data organized
        as a time series.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="orbit_number" type="rings:orbit_number" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="sclk_start_time" type="rings:sclk_start_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sclk_stop_time" type="rings:sclk_stop_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="occultation_type" type="rings:occultation_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="occultation_direction" type="rings:occultation_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="time_series_direction" type="rings:time_series_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="planetary_occultation_flag" type="rings:planetary_occultation_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_quality_score" type="rings:data_quality_score" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="data_quality_index" type="rings:data_quality_index" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="ring_plane" type="rings:ring_plane" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="minimum_projected_sun_diameter" type="rings:minimum_projected_sun_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_projected_sun_diameter" type="rings:maximum_projected_sun_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sigma_projected_sun_diameter" type="rings:sigma_projected_sun_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="star_name" type="rings:star_name" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="fresnel_scale" type="rings:fresnel_scale" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="projected_star_diameter" type="rings:projected_star_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sigma_projected_star_diameter" type="rings:sigma_projected_star_diameter" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="fractional_error_star_counts" type="rings:fractional_error_star_counts" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="time_constant_type" type="rings:time_constant_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="time_constant" type="rings:time_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sigma_time_constant" type="rings:sigma_time_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="dsn_station_number" nillable="true" type="rings:dsn_station_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="frequency_band" type="rings:frequency_band" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_time_utc" type="rings:reference_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_event_time" type="rings:minimum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_event_time" type="rings:maximum_observed_event_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_start_time_utc" type="rings:observed_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_stop_time_utc" type="rings:observed_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_start_tdb" type="rings:observed_event_start_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_event_stop_tdb" type="rings:observed_event_stop_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_event_start_time_utc" type="rings:spacecraft_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="spacecraft_event_stop_time_utc" type="rings:spacecraft_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_start_time_utc" type="rings:ring_event_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_stop_time_utc" type="rings:ring_event_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_start_tdb" type="rings:ring_event_start_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_event_stop_tdb" type="rings:ring_event_stop_tdb" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_start_time_utc" type="rings:earth_received_start_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_stop_time_utc" type="rings:earth_received_stop_time_utc" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_radius" type="rings:minimum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_radius" type="rings:maximum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_inertial_ring_longitude" type="rings:minimum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_inertial_ring_longitude" type="rings:maximum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_corotating_ring_longitude" type="rings:minimum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_corotating_ring_longitude" type="rings:maximum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_azimuth" type="rings:minimum_observed_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_azimuth" type="rings:maximum_observed_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sub_stellar_ring_azimuth" type="rings:sub_stellar_ring_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sub_stellar_clock_angle" type="rings:sub_stellar_clock_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observed_ring_elevation" type="rings:observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_elevation" type="rings:minimum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_elevation" type="rings:maximum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="light_source_incidence_angle" type="rings:light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_light_source_incidence_angle" type="rings:minimum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_light_source_incidence_angle" type="rings:maximum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="lowest_detectable_opacity" type="rings:lowest_detectable_opacity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="highest_detectable_opacity" type="rings:highest_detectable_opacity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="lowest_detectable_normal_optical_depth" type="rings:lowest_detectable_normal_optical_depth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="highest_detectable_normal_optical_depth" type="rings:highest_detectable_normal_optical_depth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="along_track_timing_offset" type="rings:along_track_timing_offset" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="background_signal" type="rings:background_signal" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="average_unocculted_signal" type="rings:average_unocculted_signal" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Wavelength_Parameters" type="rings:Wavelength_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:occultation_type = ('Radio', 'Solar', 'Stellar')"/> -->
    <!-- <xs:assert test="rings:occultation_direction = ('Both', 'Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:time_series_direction = ('Both', 'Egress', 'Ingress', 'Multiple')"/> -->
    <!-- <xs:assert test="rings:planetary_occultation_flag = ('N', 'Y')"/> -->
    <!-- <xs:assert test="rings:data_quality_score = ('Fair', 'Good', 'Poor')"/> -->
    <!-- <xs:assert test="rings:data_quality_index = ('0', '1', '2', '3', '4', '5', '6', 'B', 'F', 'R', 'U', 'X')"/> -->
    <!-- <xs:assert test="rings:ring_plane = ('A', 'B', 'C', 'D', 'E', 'Equator', 'F', 'G', 'Phoebe', 'alpha', 'beta', 'delta', 'epsilon', 'eta', 'five', 'four', 'gamma', 'individual', 'lambda', 'mu', 'nu', 'six')"/> -->
    <!-- <xs:assert test="rings:time_constant_type = ('Double Pole', 'None', 'Single Pole')"/> -->
    <!-- <xs:assert test="rings:frequency_band = ('C', 'D', 'E', 'F', 'G', 'H', 'K', 'Ka', 'Ku', 'Q', 'R', 'S', 'U', 'V', 'W', 'X', 'Y')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Reference_Frame_Ident">
    <xs:annotation>
      <xs:documentation>The Reference_Frame_Ident 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="rings:Frame_Ident_Base">
        <xs:sequence>
          <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Reprojection_Geometry">
    <xs:annotation>
      <xs:documentation>This class provides the parameters describing
        reprojection geometry when the ring(s) is reprojected based on a
        fixed grid of coordinates (e.g., radius vs.
        longitude).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="epoch_reprojection_basis_utc" type="rings:epoch_reprojection_basis_utc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reprojection_plane" type="rings:reprojection_plane" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="corotating_flag" type="rings:corotating_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="corotation_rate" type="rings:corotation_rate" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_phase_angle" type="rings:mean_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_phase_angle" type="rings:minimum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_phase_angle" type="rings:maximum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_incidence_angle" type="rings:mean_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_incidence_angle" type="rings:minimum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_incidence_angle" type="rings:maximum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_emission_angle" type="rings:mean_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_emission_angle" type="rings:minimum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_emission_angle" type="rings:maximum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_observed_ring_elevation" type="rings:mean_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_elevation" type="rings:minimum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_elevation" type="rings:maximum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_inertial_ring_longitude" type="rings:minimum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_inertial_ring_longitude" type="rings:maximum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_corotating_ring_longitude" type="rings:minimum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_corotating_ring_longitude" type="rings:maximum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_radius" type="rings:minimum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_radius" type="rings:maximum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Reprojection_Grid_Parameters" type="rings:Reprojection_Grid_Parameters" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:reprojection_plane = ('A', 'B', 'C', 'D', 'E', 'Equator', 'F', 'G', 'Laplace', 'Phoebe', 'alpha', 'beta', 'delta', 'epsilon', 'eta', 'five', 'four', 'gamma', 'lambda', 'mu', 'nu', 'six')"/> -->
    <!-- <xs:assert test="rings:corotating_flag = ('N', 'Y')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Reprojection_Grid_Parameters">
    <xs:annotation>
      <xs:documentation>This class contains reprojection grid resolution
        parameters </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reprojection_grid_radial_sampling_interval" type="rings:reprojection_grid_radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reprojection_grid_longitudinal_sampling_interval" type="rings:reprojection_grid_longitudinal_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="radial_resolution" type="rings:radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_radial_resolution" type="rings:mean_radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_radial_resolution" type="rings:minimum_radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_radial_resolution" type="rings:maximum_radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitudinal_resolution" type="rings:longitudinal_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_longitudinal_resolution" type="rings:mean_longitudinal_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_longitudinal_resolution" type="rings:minimum_longitudinal_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_longitudinal_resolution" type="rings:maximum_longitudinal_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ring_Identification">
    <xs:annotation>
      <xs:documentation>This class identifies the specific ring to which
        the parameters given in the enclosing class
        apply.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="rings:Body_Ident_Base">
        <xs:sequence>
          <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Ring_Model">
    <xs:annotation>
      <xs:documentation>This class provides the parameters used to
        generate a ring model.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Global_Model_Parameters" type="rings:Global_Model_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Central_Body_Parameters" type="rings:Central_Body_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Satellite_Parameters" type="rings:Satellite_Parameters" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Ring_Orbital_Elements" type="rings:Ring_Orbital_Elements" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ring_Moon_Systems">
    <xs:annotation>
      <xs:documentation>This is an umbrella class for all of the classes
        and attributes in this dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Occultation_Ring_Profile" type="rings:Occultation_Ring_Profile" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Occultation_Time_Series" type="rings:Occultation_Time_Series" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Occultation_Supplement" type="rings:Occultation_Supplement" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Ring_Model" type="rings:Ring_Model" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Ring_Reprojection" type="rings:Ring_Reprojection" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Ring_Spectrum" type="rings:Ring_Spectrum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Column_Headers" type="rings:Column_Headers" minOccurs="0" maxOccurs="0"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ring_Orbital_Elements">
    <xs:annotation>
      <xs:documentation>This class provides the orbital element values
        for a specific ring which were generated in a ring
        model.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Ring_Identification" type="rings:Ring_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Normal_Mode_Parameters" type="rings:Normal_Mode_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="semimajor_axis" type="rings:semimajor_axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="semimajor_axis_uncert" type="rings:semimajor_axis_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="eccentricity" type="rings:eccentricity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="eccentricity_uncert" type="rings:eccentricity_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="periapse_longitude" type="rings:periapse_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="periapse_longitude_uncert" type="rings:periapse_longitude_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="periapse_precession_rate" type="rings:periapse_precession_rate" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="periapse_precession_rate_uncert" type="rings:periapse_precession_rate_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="periapse_precession_rate_method" type="rings:periapse_precession_rate_method" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="inclination" type="rings:inclination" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="inclination_uncert" type="rings:inclination_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="node_longitude" type="rings:node_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="node_longitude_uncert" type="rings:node_longitude_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="nodal_regression_rate" type="rings:nodal_regression_rate" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="nodal_regression_rate_uncert" type="rings:nodal_regression_rate_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="nodal_regression_rate_method" type="rings:nodal_regression_rate_method" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="number_points" type="rings:number_points" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="fit_rms_semimajor" type="rings:fit_rms_semimajor" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:periapse_precession_rate_method = ('0', '1', '2')"/> -->
    <!-- <xs:assert test="rings:nodal_regression_rate_method = ('0', '1', '2')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Ring_Reprojection">
    <xs:annotation>
      <xs:documentation>This class provides the parameters used to
        describe ring reprojection geometry.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Central_Body_Parameters" type="rings:Central_Body_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Ring_Orbital_Elements" type="rings:Ring_Orbital_Elements" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Reprojection_Geometry" type="rings:Reprojection_Geometry" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ring_Spectrum">
    <xs:annotation>
      <xs:documentation>This class provides the parameters used to
        describe ring spectra or spectrograms.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_radius" type="rings:minimum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_radius" type="rings:maximum_ring_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="radial_sampling_interval" type="rings:radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_radial_sampling_interval" type="rings:minimum_radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_radial_sampling_interval" type="rings:maximum_radial_sampling_interval" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="inertial_ring_longitude" type="rings:inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_inertial_ring_longitude" type="rings:minimum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_inertial_ring_longitude" type="rings:maximum_inertial_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="corotating_ring_longitude" type="rings:corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_corotating_ring_longitude" type="rings:minimum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_corotating_ring_longitude" type="rings:maximum_corotating_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_longitude_observed_minus_subsolar" type="rings:ring_longitude_observed_minus_subsolar" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_longitude_observed_minus_subsolar" type="rings:minimum_ring_longitude_observed_minus_subsolar" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_longitude_observed_minus_subsolar" type="rings:maximum_ring_longitude_observed_minus_subsolar" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="radial_resolution" type="rings:radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_radial_resolution" type="rings:minimum_radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_radial_resolution" type="rings:maximum_radial_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="ring_intercept_resolution" type="rings:ring_intercept_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_ring_intercept_resolution" type="rings:minimum_ring_intercept_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_intercept_resolution" type="rings:maximum_ring_intercept_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reflectivity" type="rings:reflectivity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_reflectivity" type="rings:minimum_reflectivity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_reflectivity" type="rings:maximum_reflectivity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_observed_ring_elevation" type="rings:mean_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_observed_ring_elevation" type="rings:minimum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_observed_ring_elevation" type="rings:maximum_observed_ring_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean_phase_angle" type="rings:mean_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_phase_angle" type="rings:minimum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_phase_angle" type="rings:maximum_phase_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="light_source_incidence_angle" type="rings:light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_light_source_incidence_angle" type="rings:minimum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_light_source_incidence_angle" type="rings:maximum_light_source_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="incidence_angle" type="rings:incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_incidence_angle" type="rings:minimum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_incidence_angle" type="rings:maximum_incidence_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="emission_angle" type="rings:emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_emission_angle" type="rings:minimum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_emission_angle" type="rings:maximum_emission_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Wavelength_Parameters" type="rings:Wavelength_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Satellite_Identification">
    <xs:annotation>
      <xs:documentation>This class identifies the specific satellite to
        which the parameters given in the enclosing class
        apply.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="rings:Body_Ident_Base">
        <xs:sequence>
          <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Satellite_Parameters">
    <xs:annotation>
      <xs:documentation>This class provides the parameters used to
        generate a ring model which are specific to a single
        satellite.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Satellite_Identification" type="rings:Satellite_Identification" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="gmass" type="rings:gmass" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="semimajor_axis" type="rings:semimajor_axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="semimajor_axis_uncert" type="rings:semimajor_axis_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="eccentricity" type="rings:eccentricity" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="eccentricity_uncert" type="rings:eccentricity_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="inclination" type="rings:inclination" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="inclination_uncert" type="rings:inclination_uncert" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Uniformly_Sampled_Radius">
    <xs:annotation>
      <xs:documentation> The Uniformly_Sampled_Radius class provides
        attributes describing the spectral characteristics of an axis of
        an Array object or the rows of a Table object, in cases where
        the spectral sampling interval is regular and the sampling
        parameters are in wavelength units. The axis is identified
        either by using Local_Internal_Reference, or by using axis name.
        The latter may be simpler to use if this class applies to
        multiple Array objects. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="axis_name" type="rings:axis_name" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="sampling_interval_length" type="rings:sampling_interval_length" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_scale" type="rings:sampling_scale" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_base" type="rings:sampling_base" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="first_ring_radius" type="rings:first_ring_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="last_ring_radius" type="rings:last_ring_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="rings:sampling_scale = ('Exponential', 'Linear', 'Logarithmic')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Wavelength_Parameters">
    <xs:annotation>
      <xs:documentation>This class contains the three wavelength
        attributes </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="wavelength" type="rings:wavelength" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_wavelength" type="rings:minimum_wavelength" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_wavelength" type="rings:maximum_wavelength" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </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
        common namespace.
      </xs:documentation>
    </xs:annotation>

  <xs:simpleType name="along_track_timing_offset_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="along_track_timing_offset">
    <xs:annotation>
      <xs:documentation>along_track_timing_offset is a timing offset to
        the along track spacecraft position. It is the value that
        minimizes differences in radii of matching circular ring
        features observed on the ingress and egress sides of the
        occultation track. Optional in labels for radio occultation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:along_track_timing_offset_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="average_unocculted_signal">
    <xs:annotation>
      <xs:documentation>average_unocculted_signal indicates the average
        of the signal in counts/second received from outside the rings
        or from nominally transparent regions of the rings after
        subtraction of background signal. Strongly recommended in labels
        of ring solar occultation observations if the value is constant.
        For solar occultations, if the value is not constant, strongly
        recommended to be used as a field in the data table. Not used
        for radio occultations. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="axis_name">
    <xs:annotation>
      <xs:documentation> The axis_name attribute contains a string that
        matches the axis_name attribute in an axis_array class of an
        associated array object. </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="background_signal">
    <xs:annotation>
      <xs:documentation>background_signal indicates the anticipated
        signal (in counts, counts per second, or other specified units)
        received when no occulted source signal reaches the detector.
        This is the signal level that indicates an opaque ring. Strongly
        recommended in labels of ring occultation observations if the
        value is constant, or strongly recommended to be used as a field
        in the data table if the value is not constant. Normally not
        used for radio occultations. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="corotating_flag">
    <xs:annotation>
      <xs:documentation>The corotating_flag is a yes-or-no flag that
        indicates whether or not a corotating frame is used.
        </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="corotating_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="corotating_ring_longitude">
    <xs:annotation>
      <xs:documentation>The ring longitude in the corotating frame. The
        zero longitude is defined as the prime meridian at the epoch
        specified by epoch_reprojection_basis_utc. Therefore, zero
        corotating longitude in the corotating frame at time t
        corresponds to an inertial longitude of
        (t-epoch)*corotation_rate. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:corotating_ring_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="corotation_rate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="corotation_rate">
    <xs:annotation>
      <xs:documentation>The corotation rate associated with the data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:corotation_rate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="data_quality_index">
    <xs:annotation>
      <xs:documentation>data_quality_index provides a more precise
        subjective assessment by the data provider of the quality of the
        observed/predicted ring occultation. </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="data_quality_score">
    <xs:annotation>
      <xs:documentation>data_quality_score indicates the overall quality
        of the data, based on a subjective evaluation by the data
        provider. Required in labels of ring occultation radial
        profiles. Normally not intended as a value for a table field.
        </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:complexType name="dsn_station_number">
    <xs:annotation>
      <xs:documentation>dsn_station_number identifies the receiving DSN
        station. Required in labels for radio occultations; not used for
        stellar occultations. Nillable in which case the nil_reason
        should be 'inapplicable'. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Integer">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="earth_received_start_time_utc">
    <xs:annotation>
      <xs:documentation>earth_received_start_time_utc gives the UTC time
        corresponding to the earliest time for the data product at which
        telemetry or other photons were received on Earth. Optional for
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="earth_received_stop_time_utc">
    <xs:annotation>
      <xs:documentation>earth_received_stop_time_utc gives the UTC time
        corresponding to the latest time for the data product at which
        telemetry or other photons were received on Earth. Optional for
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="earth_received_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="earth_received_time">
    <xs:annotation>
      <xs:documentation>earth_received_time provides the time at which
        telemetry or other photons were received on Earth. Intended to
        be used as a table field which is optional for stellar
        occultations, and is not used for radio occultation data (one of
        either observed_event_time or observed_event_tdb is used
        instead). earth_received_time is given in numeric seconds as an
        offset from the specified UTC reference time. The reference time
        is preferably the start of a day, and is required to be given in
        the label using the attribute reference_time_utc. This is
        equivalent to OBSERVED_EVENT_TIME for radio occultations. It is
        an optional table field for stellar occultations and is not used
        for radio occultations. When earth_received_time is used, the
        attribute reference_time_utc is required in the label.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:earth_received_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="eccentricity">
    <xs:annotation>
      <xs:documentation>The eccentricity of the orbit of the body or
        ring identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="eccentricity_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the
        eccentricity of the orbit of the body or ring identified in the
        enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <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 a measure of
        the relationship between the instrument viewing position and the
        surface normal vector at the intercept point. Specifically, it
        is the angle, measured at the intercept point, between the local
        surface normal vector and a vector in the direction of the
        outgoing photon to the observing instrument. In the context of
        planetary rings, the local surface normal vector is always on
        the side of the ring plane illuminated by the light source.
        Thus, the emission_angle varies from 0 degrees when the
        spacecraft is viewing the illuminated side of the rings face-on,
        to 90 degrees when viewing the rings edge-on (that is, the
        spacecraft is in the ring plane), to 180 degrees when the
        spacecraft is viewing the unlit side of the rings face-on.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:emission_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="epoch_reprojection_basis_utc">
    <xs:annotation>
      <xs:documentation>The basis epoch for the corotating frame. Format
        is YYYY-MM-DDTHH:MM:SS.SSSZ and may be truncated. The corotating
        frame is defined so that zero corotating longitude is equal to
        zero inertial longitude defined at the epoch specified by
        epoch_reprojection_basis_utc. Thus, zero corotating longitude in
        the corotating frame at time t corresponds to an inertial
        longitude of (t-epoch)*corotation_rate. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="epoch_ring_fit_utc">
    <xs:annotation>
      <xs:documentation>The epoch for the ring orbital elements given in
        this product. Format is YYYY-MM-DDTHH:MM:SS.SSSZ and may be
        truncated. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="first_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="first_ring_radius">
    <xs:annotation>
      <xs:documentation> The first_ring_radius attribute provides the
        value of the first increment along the radius axis of an array
        given in units of length. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:first_ring_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="fit_rms_semimajor_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="fit_rms_semimajor">
    <xs:annotation>
      <xs:documentation>The root mean square residuals for the semimajor
        axis of the body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:fit_rms_semimajor_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="fractional_error_star_counts">
    <xs:annotation>
      <xs:documentation>fractional_error_star_counts indicates the
        fractional error (1-sigma) in star counts used for square-well
        model fit. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="frequency_band">
    <xs:annotation>
      <xs:documentation> The frequency_band attribute provides the one
        or two letter identifier for the frequency band associated with
        radio occultation data. Required in labels for radio
        occultations; not used for stellar occultations.
        </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="fresnel_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="fresnel_scale">
    <xs:annotation>
      <xs:documentation>fresnel_scale is sqrt(lambda * D/2), where
        lambda is the central wavelength of the observation and D is the
        average distance between the observer and the occulting ring.
        This is an average value for the entire occultation and is a
        measure of the limit on the radial resolution of ring structure
        due to diffraction. Note that the actual overall resolution is
        affected as well by the projected diameter of the occulted star
        and the instrumental time constant, if any. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:fresnel_scale_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="gmass_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="gmass">
    <xs:annotation>
      <xs:documentation>The product of the Gravitational constant and
        the mass of the identified body. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:gmass_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Gmass" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="grav_ref_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="grav_ref_radius">
    <xs:annotation>
      <xs:documentation>The reference radius for the gravitational
        harmonic coefficients of the body identified in the enclosing
        class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:grav_ref_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="highest_detectable_normal_optical_depth">
    <xs:annotation>
      <xs:documentation>highest_detectable_normal_optical_depth gives
        the theoretical highest possible normal optical depth that can
        be detected in the observation based on the background signal
        and unocculted signal measurements. Optical depth is equal to
        -ln(T), where the transparency T is the ratio between received
        signal and transmitted signal. Normal optical depth is defined
        as the observed_optical_depth times the sine of
        observed_ring_elevation. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="highest_detectable_opacity">
    <xs:annotation>
      <xs:documentation>highest_detectable_opacity indicates the rough
        value for the largest normal ring opacity that can be detected
        in the data at the resolution provided, incorporating both
        statistical effects and calibration uncertainties. Opacity is
        equal to 1-T, where the transparency T is the ratio between
        received signal and transmitted signal. -1.0 indicates the
        signal was too poor to allow the calculation of the value.
        Strongly recommended in labels of ring occultation observations.
        Not intended as a value for a table field. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="90"/>
	   </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. Specifically,
        it is the angle, measured at the intercept point, between a
        vector in the direction of an incoming photon from the
        illumination source and the local surface normal vector. In the
        context of planetary rings, the local surface normal vector is
        always on the side of the ring plane illuminated by the light
        source. Thus, the incidence_angle varies from 0 degrees if the
        light source illuminates the rings face-on, to 90 degrees if the
        light source illuminates the rings edge-on. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="inclination_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="180"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="inclination">
    <xs:annotation>
      <xs:documentation>The inclination of the orbit of the body or ring
        identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:inclination_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="inclination_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="inclination_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the inclination
        of the orbit of the body or ring identified in the enclosing
        class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:inclination_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="inertial_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="inertial_ring_longitude">
    <xs:annotation>
      <xs:documentation>inertial_ring_longitude specifies the inertial
        longitude of a ring feature relative to the prime meridian. In
        planetary ring systems, the prime meridian is the ascending node
        of the planet's invariable plane on the Earth's mean equator of
        J2000. Longitudes are measured in the direction of orbital
        motion along the planet's invariable plane to the ring's
        ascending node, and thence along the ring plane. Values range
        from 0 to 360 in units of degrees. Note: The invariable plane of
        a planet is equivalent to its equatorial plane for every ringed
        planet except Neptune. Required to be the second field in ring
        occultation profiles. In labels, the min and max attributes are
        required. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:inertial_ring_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="j2">
    <xs:annotation>
      <xs:documentation>The J2 gravitational harmonic coefficient of the
        body identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="j4">
    <xs:annotation>
      <xs:documentation>The J4 gravitational harmonic coefficient of the
        body identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="j6">
    <xs:annotation>
      <xs:documentation>The J6 gravitational harmonic coefficient of the
        body identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="j8">
    <xs:annotation>
      <xs:documentation>The J8 gravitational harmonic coefficient of the
        body identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="last_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="last_ring_radius">
    <xs:annotation>
      <xs:documentation> The last_ring_radius attribute provides the
        value of the last increment along the radius axis of an array
        given in units of length. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:last_ring_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="light_source_incidence_angle">
    <xs:annotation>
      <xs:documentation>light_source_incidence_angle is an angle
        measured from the local surface normal vector to the direction
        of a photon arriving from the light source. For rings, the
        normal vector is that on the same side of the rings as the light
        source, so values always range between 0 and 90 in units of
        degrees. For ring occultations, this value is always equal to 90
        - | observed_ring_elevation | This will enable users to perform
        database searches based on the effective ring opening angle when
        they are not concerned about the distinction between northside
        and southside viewpoints. We have included the 'light source'
        prefix to the term so that this quantity is not confused with
        'incidence angle', a term that is generally associated with
        sunlight rather than stars or radio transmitters. Required in
        the label if the value is constant for the observation. If the
        angle varies for the observation, the min and max attributes are
        required in the label. Optional as a field in the data table.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:light_source_incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="longitudinal_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="longitudinal_resolution">
    <xs:annotation>
      <xs:documentation>longitudinal_resolution indicates the nominal
        longitudinal size of a single pixel. Note: this value may be
        either smaller or larger than that of radial_sampling_interval
        because a derived product can be over-sampled or under-sampled.
        Required in labels if the value is fixed. If the value varies,
        the corresponding mean and minimum and maximum attributes must
        be used in labels and longitudinal_resolution should be a table
        field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:longitudinal_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="lowest_detectable_normal_optical_depth">
    <xs:annotation>
      <xs:documentation>lowest_detectable_normal_optical_depth gives the
        theoretical lowest possible normal optical depth that can be
        detected in the observation based on the background signal and
        unocculted signal measurements. Optical depth is equal to
        -ln(T), where the transparency T is the ratio between received
        signal and transmitted signal. Normal optical depth is defined
        as the observed_optical_depth times the sine of
        observed_ring_elevation. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="lowest_detectable_opacity">
    <xs:annotation>
      <xs:documentation>lowest_detectable_opacity indicates the rough
        value for the smallest normal ring opacity that can be detected
        in the data at the resolution provided, incorporating both
        statistical effects and calibration uncertainties. Opacity is
        equal to 1-T, where the transparency T is the ratio between
        received signal and transmitted signal. -1.0 indicates the
        signal was too poor to allow the calculation of the value.
        Strongly recommended in labels of ring occultation observations.
        Not intended as a value for a table field. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="maximum_corotating_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_corotating_ring_longitude">
    <xs:annotation>
      <xs:documentation>The maximum value in this product for ring
        longitude in the corotating frame. The zero longitude is defined
        as the prime meridian at the epoch specified by
        epoch_reprojection_basis_utc. Therefore, zero corotating
        longitude in the corotating frame at time t corresponds to an
        inertial longitude of (t-epoch)*corotation_rate.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_corotating_ring_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" 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 during the observation for the emission angle at
        the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_incidence_angle">
    <xs:annotation>
      <xs:documentation>The maximum_incidence_angle element provides the
        largest value during the observation for the incidence angle at
        the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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_inertial_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_inertial_ring_longitude">
    <xs:annotation>
      <xs:documentation>maximum_inertial_ring_longitude specifies one
        boundary for the ring longitude range in the data; normally the
        largest value. However, for ranges that cross the prime
        meridian, the maximum ring longitude will have a value less than
        the minimum ring longitude. Values range from 0 to 360 in units
        of degrees. Required in label files for ring occultation data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_inertial_ring_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_light_source_incidence_angle">
    <xs:annotation>
      <xs:documentation>maximum_light_source_incidence_angle specifies
        the largest value for light_source_incidence_angle in the
        observation. Only used if the value is not constant over the
        observation. Values range from 0 to +90 in units of degrees. Not
        intended for use in the data file. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_light_source_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_longitudinal_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_longitudinal_resolution">
    <xs:annotation>
      <xs:documentation>maximum_longitudinal_resolution indicates the
        largest longitudinal size of a single pixel. Note: this value
        may be either smaller or larger than that of
        radial_sampling_interval because a derived product can be
        over-sampled or under-sampled. Required in labels if the value
        of longitudinal_resolution varies. Not intended to be used as a
        table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_longitudinal_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_observed_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_observed_event_time">
    <xs:annotation>
      <xs:documentation>maximum_observed_event_time gives the largest
        value for observed_event_time in the associated data file. It is
        given in numeric seconds as an offset from the specified UTC
        reference time. maximum_observed_event_time is optional in
        labels since the data file time interval end point values are
        given by the required start_date_time_utc and stop_date_time_utc
        attributes in the Time_Coordinates class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_observed_event_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_observed_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_observed_ring_azimuth">
    <xs:annotation>
      <xs:documentation>maximum_observed_ring_azimuth specifies the
        largest value for observed_ring_azimuth in the data file. Values
        range from 0 to 360 in units of degrees. Required in label files
        for ring occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_observed_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_observed_ring_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_observed_ring_elevation">
    <xs:annotation>
      <xs:documentation>maximum_observed_ring_elevation specifies the
        largest value for observed_ring_elevation in the data file. Only
        used if the value is not constant over the observation. Values
        range from -90 to +90 in units of degrees. Not intended for use
        in the data file. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_observed_ring_elevation_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 during the observation for the phase angle at the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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="maximum_projected_sun_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_projected_sun_diameter">
    <xs:annotation>
      <xs:documentation>maximum_projected_sun_diameter provides the
        largest value of projected_sun_diameter in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_projected_sun_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_radial_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_radial_resolution">
    <xs:annotation>
      <xs:documentation>maximum_radial_resolution indicates the largest
        radial size of a single pixel. Note: this value may be either
        smaller or larger than that of radial_sampling_interval because
        a derived product can be over-sampled or under-sampled. Required
        in labels if the value of radial_resolution varies. Not intended
        to be used as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_radial_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_radial_sampling_interval">
    <xs:annotation>
      <xs:documentation>maximum_radial_sampling_interval indicates the
        largest radial spacing between consecutive points in a ring
        profile. In practice, this may be somewhat smaller than the
        radial_resolution because a profile may be over-sampled. If the
        value of radial_sampling_interval varies, the minimum and
        maximum attributes are required in labels. Not intended to be
        used as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_radial_sampling_interval_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_reflectivity">
    <xs:annotation>
      <xs:documentation>maximum_reflectivity indicates the largest value
        of I/F within the data object. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="maximum_ring_intercept_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_ring_intercept_resolution">
    <xs:annotation>
      <xs:documentation>maximum_ring_intercept_resolution indicates the
        largest value for ring_intercept_resolution in the data product.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_ring_intercept_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_ring_longitude_observed_minus_subsolar_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_ring_longitude_observed_minus_subsolar">
    <xs:annotation>
      <xs:documentation>maximum_ring_longitude_observed_minus_sub-solar
        specifies largest separation in ring longitude between the
        observation and the subsolar point. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_ring_longitude_observed_minus_subsolar_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_ring_radius">
    <xs:annotation>
      <xs:documentation>maximum_ring_radius indicates the largest ring
        radius value in the data table. Values are always positive.
        Required in label files for ring occultation data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_ring_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_sub_stellar_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="maximum_sub_stellar_clock_angle">
    <xs:annotation>
      <xs:documentation>maximum_sub_stellar_clock_angle specifies the
        largest value for sub_stellar_clock_angle in the data file.
        Values range from 0 to 360 in units of degrees. Optional label
        attribute for Cassini VIMS occultation data; not used for other
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_sub_stellar_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_sub_stellar_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_sub_stellar_ring_azimuth">
    <xs:annotation>
      <xs:documentation>maximum_sub_stellar_ring_azimuth specifies the
        largest value for sub_stellar_ring_azimuth in the data file.
        Values range from 0 to 360 in units of degrees. Optional label
        attribute for Cassini UVIS occultation data; not used for other
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_sub_stellar_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_wavelength">
    <xs:annotation>
      <xs:documentation>maximum_wavelength is the largest wavelength
        used in the observation. Optional in labels. Used with
        minimum_wavelength when the observation is over a wavelength
        range. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:maximum_wavelength_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_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="mean_emission_angle">
    <xs:annotation>
      <xs:documentation>The mean_emission_angle element provides the
        mean value during the observation for the emission angle at the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_emission_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="mean_incidence_angle">
    <xs:annotation>
      <xs:documentation>The mean_incidence_angle element provides the
        mean value during the observation for the incidence angle at the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_incidence_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_longitudinal_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="mean_longitudinal_resolution">
    <xs:annotation>
      <xs:documentation>mean_longitudinal_resolution indicates the mean
        longitudinal size of a single pixel. Note: this value may be
        either smaller or larger than that of radial_sampling_interval
        because a derived product can be over-sampled or under-sampled.
        Required in labels if the value of longitudinal_resolution
        varies. Not intended to be used as a table field.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_longitudinal_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_observed_ring_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="mean_observed_ring_elevation">
    <xs:annotation>
      <xs:documentation>mean_observed_ring_elevation specifies the mean
        value for observed_ring_elevation in the data file.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_observed_ring_elevation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_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="mean_phase_angle">
    <xs:annotation>
      <xs:documentation>The mean_phase_angle element provides the mean
        value during the observation for the phase angle at the target.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_phase_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="mean_radial_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="mean_radial_resolution">
    <xs:annotation>
      <xs:documentation>mean_radial_resolution indicates the mean radial
        size of a single pixel. Note: this value may be either smaller
        or larger than that of radial_sampling_interval because a
        derived product can be over-sampled or under-sampled. Required
        in labels if the value of radial_resolution varies. Not intended
        to be used as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:mean_radial_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_corotating_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_corotating_ring_longitude">
    <xs:annotation>
      <xs:documentation>The minimum value in this product for ring
        longitude in the corotating frame. The zero longitude is defined
        as the prime meridian at the epoch specified by
        epoch_reprojection_basis_utc. Therefore, zero corotating
        longitude in the corotating frame at time t corresponds to an
        inertial longitude of (t-epoch)*corotation_rate.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_corotating_ring_longitude_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 attribute provides
        the smallest value during the observation for the emission angle
        at the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_incidence_angle">
    <xs:annotation>
      <xs:documentation>The minimum_incidence_angle attribute provides
        the smallest value during the observation for the incidence
        angle at the target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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_inertial_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_inertial_ring_longitude">
    <xs:annotation>
      <xs:documentation>minimum_inertial_ring_longitude specifies one
        boundary for the ring longitude range in the data; normally the
        smallest value. However, for ranges that cross the prime
        meridian, the minimum ring longitude will have a value greater
        than the maximum ring longitude. Values range from 0 to 360 in
        units of degrees. Required in label files for ring occultation
        data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_inertial_ring_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_light_source_incidence_angle">
    <xs:annotation>
      <xs:documentation>minimum_light_source_incidence_angle specifies
        the smallest value for light_source_incidence_angle in the
        observation. Only used if the value is not constant over the
        observation. Values range from 0 to +90 in units of degrees. Not
        intended for use in the data file. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_light_source_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_longitudinal_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_longitudinal_resolution">
    <xs:annotation>
      <xs:documentation>minimum_longitudinal_resolution indicates the
        smallest longitudinal size of a single pixel. Note: this value
        may be either smaller or larger than that of
        radial_sampling_interval because a derived product can be
        over-sampled or under-sampled. Required in labels if the value
        of longitudinal_resolution varies. Not intended to be used as a
        table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_longitudinal_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_observed_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_observed_event_time">
    <xs:annotation>
      <xs:documentation>minimum_observed_event_time gives the smallest
        value for observed_event_time in the associated data file. It is
        given in numeric seconds as an offset from the specified UTC
        reference time. minimum_observed_event_time is optional in
        labels since the data file time interval end point values are
        given by the required start_date_time_utc and stop_date_time_utc
        attributes in the Time_Coordinates class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_observed_event_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_observed_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_observed_ring_azimuth">
    <xs:annotation>
      <xs:documentation>minimum_observed_ring_azimuth specifies the
        smallest value for observed_ring_azimuth in the data file.
        Values range from 0 to 360 in units of degrees. Required in
        label files for ring occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_observed_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_observed_ring_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_observed_ring_elevation">
    <xs:annotation>
      <xs:documentation>minimum_observed_ring_elevation specifies the
        smallest value for observed_ring_elevation in the data file.
        Only used if the value is not constant over the observation.
        Values range from -90 to +90 in units of degrees. Not intended
        for use in the data file. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_observed_ring_elevation_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 attribute provides the
        smallest value during the observation for the phase angle at the
        target. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings: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="minimum_projected_sun_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_projected_sun_diameter">
    <xs:annotation>
      <xs:documentation>minimum_projected_sun_diameter provides the
        smallest value of projected_sun_diameter in the observation.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_projected_sun_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_radial_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_radial_resolution">
    <xs:annotation>
      <xs:documentation>minimum_radial_resolution indicates the smallest
        radial size of a single pixel. Note: this value may be either
        smaller or larger than that of radial_sampling_interva because a
        derived product can be over-sampled or under-sampled. Required
        in labels if the value of radial_resolution varies. Not intended
        to be used as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_radial_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_radial_sampling_interval">
    <xs:annotation>
      <xs:documentation>minimum_radial_sampling_interval indicates the
        smallest radial spacing between consecutive points in a ring
        profile. In practice, this may be somewhat smaller than the
        radial_resolution because a profile may be over-sampled. If the
        value of radial_sampling_interval varies, the minimum and
        maximum attributes are required in labels. Not intended to be
        used as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_radial_sampling_interval_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_reflectivity">
    <xs:annotation>
      <xs:documentation>minimum_reflectivity indicates the smallest
        value of I/F within the data object. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="minimum_ring_intercept_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_ring_intercept_resolution">
    <xs:annotation>
      <xs:documentation>minimum_ring_intercept_resolution indicates the
        smallest value for ring_intercept_resolution in the data
        product. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_ring_intercept_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_ring_longitude_observed_minus_subsolar_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_ring_longitude_observed_minus_subsolar">
    <xs:annotation>
      <xs:documentation>minimum_ring_longitude_observed_minus_subsolar
        specifies smallest separation in ring longitude between the
        observation and the sub-solar point. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_ring_longitude_observed_minus_subsolar_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_ring_radius">
    <xs:annotation>
      <xs:documentation>minimum_ring_radius indicates the smallest ring
        radius value in the data table. Values are always positive.
        Required in label files for ring occultation data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_ring_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_sub_stellar_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="minimum_sub_stellar_clock_angle">
    <xs:annotation>
      <xs:documentation>minimum_sub_stellar_clock_angle specifies the
        smallest value for sub_stellar_clock_angle in the data file.
        Values range from 0 to 360 in units of degrees. Optional label
        attribute for Cassini VIMS occultation data; not used for other
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_sub_stellar_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_sub_stellar_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_sub_stellar_ring_azimuth">
    <xs:annotation>
      <xs:documentation>minimum_sub_stellar_ring_azimuth specifies the
        smallest value for sub_stellar_ring_azimuth in the data file.
        Values range from 0 to 360 in units of degrees. Optional label
        attribute for Cassini UVIS occultation data; not used for other
        occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_sub_stellar_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="minimum_wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_wavelength">
    <xs:annotation>
      <xs:documentation>minimum_wavelength is the smallest wavelength
        used in the observation. Optional in labels. Used with
        maximum_wavelength when the observation is over a wavelength
        range. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:minimum_wavelength_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="nodal_regression_rate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="nodal_regression_rate">
    <xs:annotation>
      <xs:documentation>The regression rate of the node of the orbit of
        the body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:nodal_regression_rate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="nodal_regression_rate_method">
    <xs:annotation>
      <xs:documentation>A flag indicating the constraints used to
        determine the node regression rate of the orbit of the body or
        ring identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="-9223372036854775808"/>
     <xs:maxInclusive value="9223372036854775807"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="nodal_regression_rate_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="nodal_regression_rate_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the periapse
        precession rate of the orbit of the body or ring identified in
        the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:nodal_regression_rate_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="node_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="node_longitude">
    <xs:annotation>
      <xs:documentation>The longitude of the ascending node of the orbit
        of the body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:node_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="node_longitude_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="node_longitude_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the longitude
        of the ascending node of the orbit of the body or ring
        identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:node_longitude_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_amplitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_amplitude">
    <xs:annotation>
      <xs:documentation>The amplitude of the normal mode for the ring
        identified in the enclosing class. A value of -9.99X10^99
        indicates there is no normal mode for the ring.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_amplitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_amplitude_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_amplitude_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the normal mode
        of the ring identified in the enclosing class. A value of
        -9.99X10^99 indicates there is no normal mode for the ring.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_amplitude_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_pattern_speed_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_pattern_speed">
    <xs:annotation>
      <xs:documentation>The pattern speed of the normal mode in the ring
        identified in the enclosing class. A value of -9.99X10^99
        indicates there is no normal mode for the ring.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_pattern_speed_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_pattern_speed_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_pattern_speed_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the pattern speed of the
        normal mode in the ring identified in the enclosing class. A
        value of -9.99X10^99 indicates there is no normal mode for the
        ring. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_pattern_speed_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_phase_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_phase">
    <xs:annotation>
      <xs:documentation>The phase of the normal mode at epoch specified
        by epoch_ring_fit_utc for the ring identified in the enclosing
        class. A value of -9.99X10^99 indicates there is no normal mode
        for the ring. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_phase_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_phase_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="normal_mode_phase_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the
        normal_mode_phase of the ring identified in the enclosing class.
        A value of -9.99X10^99 indicates there is no normal mode for the
        ring. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:normal_mode_phase_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="normal_mode_wavenumber">
    <xs:annotation>
      <xs:documentation>The wave number of the normal mode in the ring
        identified in the enclosing class. A value of -999 indicates
        there is no normal mode for the ring. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="-9223372036854775808"/>
     <xs:maxInclusive value="9223372036854775807"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="normal_optical_depth">
    <xs:annotation>
      <xs:documentation>Normal optical depth is defined as the
        observed_optical_depth times the sine of
        observed_ring_elevation. Optical depth is equal to -ln(T), where
        the transparency T is the ratio of incident to transmitted
        radiant power, corrected for background_signal. Typically
        negative values are used to indicate the signal was too poor to
        allow the calculation of the value. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-2000"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="number_points">
    <xs:annotation>
      <xs:documentation>Number of fitted data points for the orbit of
        the body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="-9223372036854775808"/>
     <xs:maxInclusive value="9223372036854775807"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="observed_event_start_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_event_start_tdb">
    <xs:annotation>
      <xs:documentation>observed_event_start_tdb indicates the value for
        earliest time in the described data, and is given in elapsed
        seconds since the J2000 epoch. Optional in labels; not intended
        for use as a table field.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_event_start_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_event_start_time_utc">
    <xs:annotation>
      <xs:documentation>observed_event_start_time_utc indicates the UTC
        value for earliest time in the described data. It is part of a
        start/stop pair. If one of observed_event_start_time_utc and
        observed_event_stop_time_utc is used, both must be used.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="observed_event_stop_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_event_stop_tdb">
    <xs:annotation>
      <xs:documentation>observed_event_stop_tdb indicates the value for
        latest time in the described data, and is given in elapsed
        seconds since the J2000 epoch. Optional in labels; not intended
        for use as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_event_stop_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_event_stop_time_utc">
    <xs:annotation>
      <xs:documentation>observed_event_stop_time_utc indicates the UTC
        value for latest time in the described data. It is part of a
        start/stop pair. If one of observed_event_start_time_utc and
        observed_event_stop_time_utc is used, both must be used.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="observed_event_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_event_tdb">
    <xs:annotation>
      <xs:documentation>observed_event_tdb indicates the instant at
        which photons were received at the instrument. It is represented
        in the 'Barycentric Dynamical Time' system, as a number of
        elapsed seconds since the J2000 epoch. This is consistent with
        the definition of 'ephemeris time' as used in the SPICE toolkit.
        In a label the corresponding values are given by the optional
        start_observed_event_tdb and stop_observed_event_tdb attributes.
        At least one of either observed_event_time or
        observed_event_tdb, must be a table field for occultation data.
        Both may be used. observed_event_time is equivalent to
        spacecraft_event_time for spacecraft data and to
        earth_received_time for Earth-based data. It is always the
        photon arrival time, so in this regard we treat typical
        spacecraft radio occultation data as Earth-based, referring to
        the time at the DSN receiving station. For an uplink radio
        occultation, this is the spacecraft event time.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_event_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_event_time">
    <xs:annotation>
      <xs:documentation>observed_event_time indicates the instant at
        which photons were received at the instrument. As a field in an
        occultation profile table, it is given in numeric seconds as an
        offset from the specified UTC reference time. The reference time
        is preferably the start of a day. In a label the corresponding
        time interval end point values are given by the required
        start_date_time_utc and stop_date_time_utc attributes in the
        Time_Coordinates class. At least one of either
        observed_event_time or observed_event_tdb, must be a table field
        for occultation data. Both may be used. observed_event_time is
        equivalent to spacecraft_event_time for spacecraft data and to
        earth_received_time for Earth-based data. It is always the
        photon arrival time, so in this regard we treat typical
        spacecraft radio occultation data as Earth-based, referring to
        the time at the DSN receiving station. For an uplink radio
        occultation, this is the spacecraft event time. Note: For
        occultation data, PDS prefers year-month-day format for dates
        rather than year plus day-of-year format. However, either format
        is permitted. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_event_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_event_time_utc">
    <xs:annotation>
      <xs:documentation>This attribute is intended to be used as a
        column in a table. observed_event_time_utc indicates the UTC
        time corresponding to the instant at which photons were received
        at the instrument. In a label the corresponding values may be
        given by the optional start_observed_event_utc and
        stop_observed_event_utc attributes (or the corresponding values
        using Barycentric Dynamical Time, _tdb). At least one of either
        observed_event_time_utc or observed_event_tdb, must be a table
        field for occultation data. Both may be used.
        observed_event_time is equivalent to spacecraft_event_time for
        spacecraft data and to earth_received_time for Earth-based data.
        It is always the photon arrival time, so in this regard we treat
        typical spacecraft radio occultation data as Earth-based,
        referring to the time at the DSN receiving station. For an
        uplink radio occultation, this is the spacecraft event time.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="observed_optical_depth">
    <xs:annotation>
      <xs:documentation>Optical depth is equal to -ln(T), where the
        transparency T is the ratio of incident to transmitted radiant
        power, corrected for background_signal. Typically negative
        values are used to indicate the signal was too poor to allow the
        calculation of the value. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-2000"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="observed_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_ring_azimuth">
    <xs:annotation>
      <xs:documentation>observed_ring_azimuth is an angle measured at a
        point in the ring plane, starting from the direction of a photon
        heading to the observer, and ending at the direction of a local
        radial vector. This angle is projected into the ring plane and
        measured in the prograde direction. Note that, as seen from the
        observer, it equals 90 degrees along the right ansa and 270
        degrees along the left ansa. Values range from 0 to 360 in units
        of degrees. Required to be the third field in ring occultation
        profiles. In labels, the min and max attributes are required.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_ring_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90"/>
     <xs:maxInclusive value="90"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="observed_ring_elevation">
    <xs:annotation>
      <xs:documentation>observed_ring_elevation is an angle measured at
        a point in the ring plane, starting from the ring plane to the
        direction of a photon heading to the observer. This angle is
        positive on the side of the ring plane defined by positive
        angular momentum, and negative on the opposite side. Values
        range from -90 to +90 in units of degrees. This angle is
        constant for stellar occultations, but may vary significantly
        during radio occultations. Note: The direction of positive
        angular momentum points toward the IAU-defined north side of the
        ring plane for Jupiter, Saturn and Neptune, but IAU-defined
        south side of the ring plane for Uranus. Required in the label
        if the value is constant for the observation. If the angle
        varies for the observation, the min and max attributes are
        required in the label, and observed_ring_elevation is strongly
        recommended as a field in the data table. The above definition
        of observed_ring_elevation is equivalent to the most common
        usage of the term 'ring open angle', B. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:observed_ring_elevation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="occultation_direction">
    <xs:annotation>
      <xs:documentation>occultation_direction indicates the direction of
        an occultation track as observed. Permitted values are
        'ingress', 'egress', 'both', and 'multiple'. This attribute
        refers to the observed occultation track overall, not to the
        subset that might appear in a product such as a derived ring
        profile. For example, if an observed occultation includes both
        ingress and egress portions, each of those two portions will
        usually be represented by its own derived ring profile which
        will have occultation_direction set to Both and
        ring_profile_direction set to Ingress or Egress as the case may
        be. Required in labels of ring occultation observations. Not
        intended as a value for a table field. </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="occultation_type">
    <xs:annotation>
      <xs:documentation>occultation_type distinguishes between three
        types of occultation experiments: Stellar, Solar, or Radio.
        Stellar occultations involve observing a star as a targeted ring
        or body passes in front, as seen from either a spacecraft or
        Earth-based observatory. Solar occultations are similar to
        stellar occultations except that the Sun is used in place of a
        star. Radio occultations typically involve observing the
        continuous-wave radio transmissions from a spacecraft as it
        passes behind the target as seen from a radio telescope on Earth
        or another spacecraft. Required in labels of occultation
        observations. Normally not intended as a value for a table
        field. </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="orbit_number">
    <xs:annotation>
      <xs:documentation>orbit_number if present is the value assigned by
        the mission for the orbit number associated with the
        observation. Optional in labels of occultation observations and
        may be used multiple times. </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="periapse_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="periapse_longitude">
    <xs:annotation>
      <xs:documentation>The longitude of periapse for the orbit of the
        body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:periapse_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="periapse_longitude_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="periapse_longitude_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the longitude
        of periapse for the orbit of the body or ring identified in the
        enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:periapse_longitude_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="periapse_precession_rate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="periapse_precession_rate">
    <xs:annotation>
      <xs:documentation>The precession rate of the periapse of the orbit
        of the body or ring identified in the enclosing class.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:periapse_precession_rate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="periapse_precession_rate_method">
    <xs:annotation>
      <xs:documentation>A flag indicating the constraints used to
        determine the periapse precession rate of the orbit of the body
        or ring identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="-9223372036854775808"/>
     <xs:maxInclusive value="9223372036854775807"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="periapse_precession_rate_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="periapse_precession_rate_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the periapse
        precession rate of the orbit of the body or ring identified in
        the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:periapse_precession_rate_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angular_Velocity" 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). Specifically, it is
        the angle, measured at the intercept point, between a vector in
        the direction of an incoming photon from the illumination source
        and a vector in the direction of an outgoing photon to the
        observing instrument. If illumination is from behind the
        instrument, phase_angle will be small. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:phase_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="planetary_occultation_flag">
    <xs:annotation>
      <xs:documentation>The planetary_occultation_flag is a yes-or-no
        flag that indicates whether a occultation track also intersects
        the planet. Required in labels of ring occultation observations.
        Normally not intended as a value for a table field.
        </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="pole_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="pole_declination_angle">
    <xs:annotation>
      <xs:documentation>The declination (Dec) of the pole of the body
        identified in the enclosing class, given in angular
        measurements. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:pole_declination_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pole_declination_angle_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pole_declination_angle_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty of the declination (Dec) of the
        pole of the body identified in the enclosing class, given in
        angular measurements. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:pole_declination_angle_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pole_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="pole_right_ascension_angle">
    <xs:annotation>
      <xs:documentation>The right ascension (RA) of the pole of the body
        identified in the enclosing class, given in angular
        measurements. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:pole_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="pole_right_ascension_angle_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pole_right_ascension_angle_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty of the right ascension (RA) of
        the pole of the body identified in the enclosing class, given in
        angular measurements. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:pole_right_ascension_angle_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projected_star_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="projected_star_diameter">
    <xs:annotation>
      <xs:documentation>projected_star_diameter provides the projected
        angular diameter of the occulted star, from observer to
        occulting object. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:projected_star_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projected_sun_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="projected_sun_diameter">
    <xs:annotation>
      <xs:documentation>projected_sun_diameter provides the diameter of
        the sun projected onto the ring plane radius based on the line
        of sight from the observer to the ring plane at the start of the
        integration assuming the sun subtends a circular disk with an
        angular size based on the distance of the central body from the
        sun. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:projected_sun_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="radial_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="radial_resolution">
    <xs:annotation>
      <xs:documentation>radial_resolution indicates the nominal radial
        size of a single pixel. Note: this value may be either smaller
        or larger than that of radial_sampling_interval because a
        derived product can be over-sampled or under-sampled. Required
        in labels if the value is fixed. If the value varies, the
        corresponding mean and minimum and maximum attributes must be
        used in labels and radial_resolution should be a table field.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:radial_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="radial_sampling_interval">
    <xs:annotation>
      <xs:documentation>radial_sampling_interval indicates the radial
        spacing between consecutive points in a ring profile. In
        practice, this may be somewhat smaller than the
        radial_resolution because a profile may be over-sampled.
        Required in labels if the value is fixed. If the value varies,
        the corresponding minimum and and maximum attributes must be
        used instead. Not intended to be used as a table field.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:radial_sampling_interval_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reference_time_utc">
    <xs:annotation>
      <xs:documentation>reference_time_utc provides a date and time in
        UTC format. Given in a label when time values in a table are
        given as elapsed seconds offset from a reference time. Unless
        there are compelling reasons to do otherwise, reference_time_utc
        should correspond to the start of a day. Required anytime a
        table field is given relative to a specific date and time other
        than when Barycentric Dynamical Time is used (e.g.,
        observed_event_tdb). </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="reflectivity">
    <xs:annotation>
      <xs:documentation>reflectivity indicates I/F, a dimensionless
        standardized measure of reflectivity that is unity for a
        Lambertian surface viewed at normal incidence.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="reprojection_grid_longitudinal_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reprojection_grid_longitudinal_sampling_interval">
    <xs:annotation>
      <xs:documentation>reprojection_grid_longitudinal_sampling_interval
        indicates the longitudinal size of a single pixel in a
        reprojected image (a derived product). In practice, this may be
        either larger or smaller than the longitudinal_resolution
        because a profile or reprojection may be over-sampled or
        under-sampled. Required in labels for reprojected images, which
        are expected to have a fixed grid and thus a constant value for
        this attribute. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:reprojection_grid_longitudinal_sampling_interval_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reprojection_grid_radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reprojection_grid_radial_sampling_interval">
    <xs:annotation>
      <xs:documentation>reprojection_grid_radial_sampling_interval
        indicates the radial size of a single pixel in a reprojected
        image (a derived product). In practice, this may be either
        larger or smaller than the radial_resolution because a profile
        or reprojection may be over-sampled or under-sampled. Required
        in labels for reprojected images, which are expected to have a
        fixed grid and thus a constant value for this attribute.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:reprojection_grid_radial_sampling_interval_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reprojection_plane">
    <xs:annotation>
      <xs:documentation>reprojection_plane identifies the plane onto
        which the reprojection is based. Possible values for the Saturn
        ring system are 'Equator', 'Laplace', 'A', 'B', 'C', 'D', 'E',
        'F', 'G', 'Phoebe'. For the Uranus ring system values are
        'Equator', 'Laplace', 'Six', 'Five', 'Four', 'Alpha', 'Beta',
        'Eta', 'Gamma', 'Delta', 'Lambda','Epsilon',Nu, Mu. Required in
        labels of ring reprojection products. </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="ring_detected">
    <xs:annotation>
      <xs:documentation>The ring_detected attribute is a yes-or-no flag
        that indicates whether a specific ring has been detected.
        Typically used in radial profiles of a single ring.
        </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="ring_event_start_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_event_start_tdb">
    <xs:annotation>
      <xs:documentation>ring_event_start_tdb indicates the value for
        earliest time in the described data, and is given in
        ring_event_tdb format. Optional in labels; not intended for use
        as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_start_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_event_start_time_utc">
    <xs:annotation>
      <xs:documentation>ring_event_start_time_utc gives the UTC time
        corresponding to the earliest time given by ring_event_time or
        ring_event_tdb in the data table. ring_event_start_time_utc is
        required for all ring occultation data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ring_event_stop_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_event_stop_tdb">
    <xs:annotation>
      <xs:documentation>ring_event_stop_tdb indicates the value for
        latest time in the described data, and is given in
        ring_event_tdb format. Optional in labels; not intended for use
        as a table field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_stop_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_event_stop_time_utc">
    <xs:annotation>
      <xs:documentation>ring_event_stop_time_utc gives the UTC time
        corresponding to the latest time given by ring_event_time or
        ring_event_tdb in the data table. ring_event_stop_time_utc is
        required for all ring occultation data. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ring_event_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_event_tdb">
    <xs:annotation>
      <xs:documentation>ring_event_tdb indicates the instant at which
        photons associated with a particular ring observation left the
        ring plane. This time is earlier than the associated
        observed_event_tbd by an amount equal to the light travel time.
        ring_event_tdb is represented in the 'Barycentric Dynamical
        Time' system, as a number of elapsed seconds since the J2000
        epoch. This is consistent with the definition of 'ephemeris
        time' as used in the SPICE toolkit. One of ring_event_time or
        ring_event_tdb is a required table field for all ring
        occultations. Both may be used. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_tdb_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_event_time">
    <xs:annotation>
      <xs:documentation>ring_event_time indicates the instant at which
        photons associated with a particular ring observation
        intercepted the ring plane. This time is earlier than the
        associated observed_event_time by an amount equal to the light
        travel time. ring_event_time is a required table field for ring
        occultation data. The time is given in numeric seconds as an
        offset from the specified UTC reference time. The reference time
        is preferably the start of a day, and is required to be given in
        the label using the attribute reference_time_utc. One of
        ring_event_time or ring_event_tdb is a required table field for
        all ring occultations. One of ring_event_time or ring_event_tdb
        is a required table field for all ring occultations. Both may be
        used. If ring_event_time is used, the attribute
        reference_time_utc is required in the label. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_intercept_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_intercept_resolution">
    <xs:annotation>
      <xs:documentation>ring_intercept_resolution is the size of edge of
        a pixel at the distance of the ring intercept point. If the
        pixel shape is not square, it is defined by the smaller of the
        two edges. Unlike the quantity ‘radial resolution’, these values
        are not projected into the ring plane. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_intercept_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_longitude_observed_minus_subsolar_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_longitude_observed_minus_subsolar">
    <xs:annotation>
      <xs:documentation>ring_longitude_observed_minus_subsolar provides
        the difference between the inertial ring longitude of the
        observation and inertial ring longitude of the sub-solar point.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_longitude_observed_minus_subsolar_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ring_plane">
    <xs:annotation>
      <xs:documentation>ring_plane indicates the plane upon which
        parameters such as ring_radius are based. Possible values for
        the Saturn ring system are 'Equator', 'A', 'B', 'C', 'D', 'E',
        'F', 'G', 'Phoebe'. For the Uranus ring system values are
        'Equator', 'six', 'five', 'four', 'alpha', 'beta', 'eta',
        'gamma', 'delta', 'lambda','epsilon',nu, mu. An additional
        value, 'individual' is also defined. Note that the named rings
        of Saturn are in title case while those of Uranus are lower
        case, consistent with normal usage by the community. Required in
        labels of ring occultation observations. </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="ring_profile_direction">
    <xs:annotation>
      <xs:documentation>ring_profile_direction indicates the radial
        direction of a ring occultation within a particular data
        product. Possible values are 'Ingress', 'Egress', or 'Multiple'.
        This attribute refers to the subset of an occultation that might
        appear in a product such as a derived ring profile, not to the
        observed occultation track overall. For example, if an observed
        occultation includes both ingress and egress portions, each of
        those two portions will usually be represented by its own
        derived ring profile which will have occultation_direction set
        to Both and ring_profile_direction set to Ingress or Egress as
        the case may be. Required in labels of ring occultation
        observations. Not intended as a value for a table field.
        </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="ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ring_radius">
    <xs:annotation>
      <xs:documentation>ring_radius indicates a radial location within a
        planetary ring system. Radii are measured from the center of
        mass of the planet along the nominal ring plane. Values are
        always positive. Required to be the first field in ring
        occultation profiles. Data are always organized with ring radius
        increasing. In labels, the min and max attributes are required.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sampling_base">
    <xs:annotation>
      <xs:documentation> The sampling_base attribute indicates the
        numeric base of the associated logarithmic or exponential
        sampling interval. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sampling_interval_length_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sampling_interval_length">
    <xs:annotation>
      <xs:documentation> The sampling_interval_length attribute provides
        the spacing of points, in units of length, at which data are
        sampled and at which a value for an instrument or data parameter
        is available. This sampling interval can be either the original
        (raw) sampling or the result of some resampling process.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sampling_interval_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sampling_scale">
    <xs:annotation>
      <xs:documentation> The sampling_scale attribute indicates the type
        of scale that applies to the sample interval increments. It must
        have a value of either Linear, Logarithmic or Exponential.
        </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="sclk_start_time">
    <xs:annotation>
      <xs:documentation>sclk_start_time is the value of the spacecraft
        clock corresponding to the start_date_time given in the label.
        </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="sclk_stop_time">
    <xs:annotation>
      <xs:documentation>sclk_stop_time is the value of the spacecraft
        clock corresponding to the stop_date_time given in the label.
        </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="semimajor_axis_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="semimajor_axis">
    <xs:annotation>
      <xs:documentation>The semimajor axis of the orbit of the body or
        ring identified in the enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:semimajor_axis_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="semimajor_axis_uncert_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="semimajor_axis_uncert">
    <xs:annotation>
      <xs:documentation>The uncertainty in the value for the semimajor
        axis of the orbit of the body or ring identified in the
        enclosing class. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:semimajor_axis_uncert_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sigma_projected_star_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sigma_projected_star_diameter">
    <xs:annotation>
      <xs:documentation>sigma_projected_star_diameter indicates the
        uncertainty (1-sigma) in the projected_star_diameter.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sigma_projected_star_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sigma_projected_sun_diameter_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sigma_projected_sun_diameter">
    <xs:annotation>
      <xs:documentation>sigma_projected_sun_diameter indicates the
        Standard deviation (1-sigma) of projected_sun_diameter in the
        observation. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sigma_projected_sun_diameter_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sigma_time_constant_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sigma_time_constant">
    <xs:annotation>
      <xs:documentation>sigma_time_constant indicates the uncertainty in
        the time_constant. See Eq. 9 Elliot et al. (1984) Astron. J.
        1587-1603. If this attribute is used then the attribute
        time_constant also must be present. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sigma_time_constant_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_event_start_time_utc">
    <xs:annotation>
      <xs:documentation>spacecraft_event_start_time_utc gives the UTC
        time corresponding to the earliest time given by
        spacecraft_event_time in the data table. However, while
        spacecraft_event_time is given as seconds offset from a
        reference time, spacecraft_event_start_time_utc is given as a
        UTC date time. Required in the label for radio occultation data.
        Not used for stellar occultations. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="spacecraft_event_stop_time_utc">
    <xs:annotation>
      <xs:documentation>spacecraft_event_stop_time_utc gives the UTC
        time corresponding to the latest time given by
        spacecraft_event_time in the data table. However, while
        spacecraft_event_time is given as seconds offset from a
        reference time, spacecraft_event_stop_time_utc is given as a UTC
        date time. Required in the label for radio occultation data. Not
        used for stellar occultations. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="spacecraft_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="spacecraft_event_time">
    <xs:annotation>
      <xs:documentation>spacecraft_event_time indicates the instant at
        which an event occurred at the spacecraft, e.g., the arrival or
        departure of a photon. Required table field for radio
        occultation data, but not used in stellar occultation data. The
        time is given in numeric seconds as an offset from the specified
        UTC reference time. The reference time is preferably the start
        of a day, and is required to be given in the label using the
        attribute reference_time_utc. Additionally, in radio occultation
        labels the corresponding time interval end point values are
        given by the required start_spacecraft_event_time_utc and
        stop_spacecraft_event_time_utc attributes. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:spacecraft_event_time_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="star_name">
    <xs:annotation>
      <xs:documentation>star_name provides the identifying name of star,
        including the catalog name if necessary. Examples include 'sigma
        Sgr' and 'SAO 123456' (for star number 123456 in the Smithsonian
        Astrophysical Observatory catalog). Use 'Sun' for solar
        occultations. Required in labels for stellar and solar
        occultations. Not used for radio occultations.
        </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="stellar_signal_level">
    <xs:annotation>
      <xs:documentation>stellar_signal_level indicates the anticipated
        signal from an un-occulted star, in the absence of any
        background signal. This is the signal level that defines the
        difference between a transparent ring and an opaque ring.
        Strongly recommended in labels of ring stellar occultation
        observations if the value is constant. For stellar occultations,
        if the value is not constant, strongly recommended to be used as
        a field in the data table. Not used for radio occultations.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sub_stellar_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="sub_stellar_clock_angle">
    <xs:annotation>
      <xs:documentation>sub_stellar_clock_angle is an angle measured at
        a point in the ring plane, from the direction toward a star to
        the local radial direction. This angle is projected into the
        ring plane and measured in the clockwise (retrograde) direction.
        Equivalently, this is the prograde angle from the local radial
        direction to the direction toward the star. For stellar
        occultation data, this angle is equal to (180 -
        OBSERVED_RING_AZIMUTH) mod 360. It is available only for
        backward compatibility with previously published Cassini VIMS
        occultation data analysis; observed_ring_azimuth is the
        preferred quantity for archiving. sub_stellar_clock_angle is an
        optional data table field for Cassini VIMS occultation data; not
        recommended for other occultation data. In a label, the min and
        max variation attributes are optional for Cassini VIMS
        occultation data; not recommended for other occultation data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sub_stellar_clock_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sub_stellar_ring_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sub_stellar_ring_azimuth">
    <xs:annotation>
      <xs:documentation>sub_stellar_ring_azimuth is an angle measured at
        a point in the ring plane, starting from the direction of a
        photon arriving from a star, and ending at the direction of a
        local radial vector. This angle is projected into the ring plane
        and measured in the prograde direction. Values range from 0 to
        360 in units of degrees. For stellar occultation data, this
        angle is equal to (observed_ring_azimuth + 180) mod 360. It is
        available only for backward compatibility with previously
        published Cassini UVIS occultation data analysis;
        observed_ring_azimuth is the preferred quantity for archiving.
        sub_stellar_ring_azimuth is an optional data table field for
        Cassini UVIS occultation data; not recommended for other
        occultation data. In a label, the min and max variation
        attributes are optional for Cassini UVIS occultation data; not
        recommended for other occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:sub_stellar_ring_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="time_constant_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="time_constant">
    <xs:annotation>
      <xs:documentation>time_constant indicates the instrumental time
        constant of the detector. See Eq. 9 Elliot et al. (1984) Astron.
        J. 1587-1603. If this attribute is used then the attribute
        time_constant_type also must be present. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:time_constant_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="time_constant_type">
    <xs:annotation>
      <xs:documentation>time_constant_type distinguishes between three
        types of instrumental time constant assumed in a square-well
        model. This attribute is required if the time_constant attribute
        is present. </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="time_series_direction">
    <xs:annotation>
      <xs:documentation>time_series_direction indicates the direction
        the occultation proceeds through the target within a particular
        data product. Possible values are 'Ingress', 'Egress', 'Both' or
        'Multiple'. The value 'Multiple' is used where the occultation
        track is not monotonic over relatively short time scales.
        Generally only used for some Hubble-based occultations. May be
        appropriate for extremely long duration occultations of a high
        proper motion star (e.g., u36). Not intended as a value for a
        table field. </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="wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="wavelength">
    <xs:annotation>
      <xs:documentation>wavelength of the observation. Optional in
        labels. If the observation is over a wavelength range, use the
        corresponding minimum and maximum attributes instead.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:wavelength_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
