<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:rings  Version:1.5.0.0 - Wed Apr 12 08:53:07 EDT 2017 -->
  <!-- Generated from the PDS4 Information Model Version 1.8.0.0 - System Build 7b -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <!--                                                                           -->
  <!--               Dictionary Stack                                            -->
  <!-- 1.8.0.0 - pds: - Common Dictionary - N/A                                  -->
  <!-- 1.5.0.0 - rings: - Rings Dictionary - ldd-rings_1800_1500                 -->
  <!--                                                                           -->
  <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"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.5.0.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.xsd"/>
 
  <xs:annotation>
    <xs:documentation>
 
      v1.2  2014-03-29
        -  Moved information from comments into definitions for all attributes. 
        -  Added source product, orbit number and sclk start/stop times. 
        -  Revised some enumerated value options, and corrected some nillable inconsistencies.
      v1.3.0  2015-01-23
        -  Updated to version 1.3.0.1 of IM.
        -  Added min/max_observed_event_time.
        -  Included reference_time_UTC as optional attribute for all profile labels.
        -  Revised some definitions.
      v1.4.0.0  2016-04-25
        -  Updated to version 1.6.0.0 of IM.
        -  Corrected case errors in class and attribute names and enumerated values
        -  Changed several time attribute types from ASCII_Date_Time_UTC to ASCII_Date_Time_YMD_UTC
        -  revised several definitions
        -  Changed ring_occultation_direction to occultation_direction, and modified the definitions 
           for the values ingress and egress.
        -  Added the class Occultation_Time_Series.
        -  Combined Radio_Occultation and Stellar_Occultation into Occultation_Ring_Profile
        -  Renamed Radio_Occultation_Support to Occultation_Supplement
        -  Removed ring_observation_id and source_pds3_id from all classes except Occultation_Supplement.
        -  Added Schematron rules to make some optional attributes required based on the value of 
           occultation type (e.g., dsn_station_number if occultation_type = radio, sub_stellar_ring_azimuth
           if occultation_type = stellar).
        -  Reordered some attributes in Occultation_Time_Series.
        -  Reordered some attributes in Occultation_Supplement.
      v1.5.0.0  2017-03-29
        -  Changed schema location URLs to https
        -  Updated to version 1.8.0.0 of IM.
        -  Revised definition of pds3_source_id
        -  Corrected the definition of sub_stellar_ring_azimuth
        -  Changed the name of the umbrella class from Occultation to Ring_Moon_Systems
        -  Added Time_Series_Direction 
        
     
    </xs:documentation>
  </xs:annotation>
 
  <xs:element name="Ring_Moon_Systems" type="rings:Ring_Moon_Systems"> </xs:element>

  <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 name="orbit_number" nillable="true" 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="star_name" type="rings:star_name" minOccurs="0" maxOccurs="unbounded"> </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="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: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_ring_longitude" type="rings:minimum_ring_longitude" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_longitude" type="rings:maximum_ring_longitude" minOccurs="1" 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" nillable="true" type="rings:along_track_timing_offset" 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_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 name="orbit_number" nillable="true" type="rings:orbit_number" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="spice_filename" nillable="true" type="rings:spice_filename" 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 name="orbit_number" nillable="true" 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="star_name" type="rings:star_name" minOccurs="0" maxOccurs="unbounded"> </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="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: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_ring_longitude" type="rings:minimum_ring_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_ring_longitude" type="rings:maximum_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="along_track_timing_offset" nillable="true" type="rings:along_track_timing_offset" 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: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="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="Rings_Supplement" type="rings:Rings_Supplement" minOccurs="0" maxOccurs="1"> </xs:element>
      <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:sequence>
  </xs:complexType>

  <xs:complexType name="Rings_Supplement">
    <xs:annotation>
      <xs:documentation>This class is required for all Rings Node
        currated data products</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ring_observation_id" nillable="true" type="rings:ring_observation_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="source_pds3_id" nillable="true" type="rings:source_pds3_id" minOccurs="0" maxOccurs="unbounded"> </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
        pds namespace.
      </xs:documentation>
    </xs:annotation>

  <xs:simpleType name="along_track_timing_offset_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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.
        Nillable in which case the nil_reason should be 'inapplicable'.
        </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:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <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_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:earth_received_start_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="earth_received_stop_time_utc_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:earth_received_stop_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <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="highest_detectable_opacity">
    <xs:annotation>
      <xs:documentation>highest_detectable_opacity indicates the
        sensitivity of a ring occultation data set to nearly opaque
        rings. It specifies 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. 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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. The 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 the distinction between
        north-side 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="lowest_detectable_opacity">
    <xs:annotation>
      <xs:documentation>lowest_detectable_opacity indicates the
        sensitivity of a ring occultation data set to nearly opaque
        rings. It specifies 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. 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="maximum_light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes
        the largest value for observed_ring_elevation 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_observed_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes 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_radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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
        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: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_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_ring_longitude">
    <xs:annotation>
      <xs:documentation>maximum_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_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_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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. Units are km and 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_wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="minimum_light_source_incidence_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes
        the smallest value for observed_ring_elevation 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_observed_event_time_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 specifes 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_radial_sampling_interval_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_ring_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_ring_longitude">
    <xs:annotation>
      <xs:documentation>minimum_ring_longitude specifes 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_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_ring_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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. Units are km and 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_wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="observed_event_start_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:observed_event_start_time_utc_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_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:observed_event_stop_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="observed_ring_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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. This refers to the observed occultation
        track overall, not to the subset that might appear in a
        particular file (e.g., if an occultation includes both ingress
        and egress tracks, the value for occultation_direction will be
        both in the data products for each occultation profile.
        Permitted values are 'ingress', 'egress', 'both', and
        'multiple'. The value 'multiple' is only used for some
        Hubble-based occultations where the occultation track is not
        monotonic over relatively short time scales. 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:complexType 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. Nillable, the nil_reason should be
        'inapplicable'. Normally not intended as a value for a table
        field. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="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="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="radial_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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
        distance over which changes in ring properties can be detected
        within a data product. Note: this value may be larger than the
        radial_sampling_interval value, because a data product can be
        over-sampled. Required in labels if the value is fixed, as it is
        for stellar occultations. If the value varies, the corresponding
        minimum 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_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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:reference_time_utc_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_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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.
        ring_event_start_time_utc is required label attribute for all
        ring occultation data. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_start_time_utc_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_tdb_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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. ring_event_stop_time_utc
        is required label attribute for all ring occultation data.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rings:ring_event_stop_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ring_observation_id">
    <xs:annotation>
      <xs:documentation>The ring_observation_id uniquely identifies a
        single experiment or observation (image, occultation profile,
        spectrum, etc.) within a rings-related data set. This is the
        common id by which data are identified within the Rings Node
        catalog. It describes the smallest quantity of data that can be
        usefully cataloged or analyzed by itself. Note that a single
        observation may be associated with multiple data products (e.g.
        raw and calibrated versions of an image). Note also that a
        single data product may be associated with multiple observations
        (e.g. a single WFPC2 image file containing four different
        images). A ring observation id is constructed using numbers,
        upper case letters, forward slash, colon, period, dash, and
        underscore as follows: p/type/host/inst/time/... where p is a
        single-letter planet id (one of J, S, U, or N); type is IMG for
        images, OCC for occultation profile, etc.; host is the
        instrument host id, inst is the instrument id; time is the
        observation time as a date or instrument clock count; further
        information identifying the observation can then be appended as
        appropriate. Optional in labels. Nillable, in which case the
        nil_reason should be 'inapplicable'. Examples:
        J/IMG/VG2/ISS/20693.01/N J/IMG/VG2/ISS/20693.02/W
        S/IMG/HST/WFPC2/1995-08-10/U2TF020B/PC1
        U/OCC/VG2/RSS/1986-01-24/S U/OCC/VG2/RSS/1986-01-24/X
        N/OCC/VG2/PPS/1989-08-25/SIGMA_SGR </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="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'.
        The value 'multiple' is only used for some Hubble-based
        occultations where the occultation track is not monotonic over
        relatively short time scales. 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="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:complexType name="source_pds3_id">
    <xs:annotation>
      <xs:documentation>source_pds3_id is the PDS3 product identifier
        for the source product. If the source product has been archived
        under PDS4, use the Internal_Reference class in the
        Investigation_Area. source_pds3_id is constructed as PDS3
        dataset_id, a colon, then the PDS3 product_id. The acceptable
        nil_reasons are 'inapplicable' and 'unknown'. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_event_start_time_utc_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:spacecraft_event_start_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spacecraft_event_stop_time_utc_WO_Units">
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType 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:simpleContent>
      <xs:extension base="rings:spacecraft_event_stop_time_utc_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Time" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="spice_filename">
    <xs:annotation>
      <xs:documentation>spice_filename gives the file name(s) of SPICE
        files used in the analysis. Only used if the SPICE files cannot
        be identified using a LID or LIDVID. Otherwise the association
        is made in the Reference_Class using the Internal_Reference
        class. Optional in labels for radio occultation. Nillable in
        which case the nil_reason should be 'inapplicable'.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Short_String_Collapsed">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="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="sub_stellar_clock_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_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 only used for some
        Hubble-based occultations where the occultation track is not
        monotonic over relatively short time scales. 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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>
