<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:pds  Version:1.14.0.0 - Mon Mar 23 15:35:40 PDT 2020 -->
  <!-- Generated from the PDS4 Information Model Version 1.14.0.0 - System Build 10b -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/pds4/pds/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.14.0.0">
 
  <xs:annotation>
    <xs:documentation>This XML schema file has been generated from the
      Information Model.</xs:documentation>
  </xs:annotation>
 
  <xs:element name="External_Reference" type="pds:External_Reference"> </xs:element>
  <xs:element name="Ingest_LDD" type="pds:Ingest_LDD"> </xs:element>
  <xs:element name="Internal_Reference" type="pds:Internal_Reference"> </xs:element>
  <xs:element name="Local_Internal_Reference" type="pds:Local_Internal_Reference"> </xs:element>
  <xs:element name="Product_AIP" type="pds:Product_AIP"> </xs:element>
  <xs:element name="Product_Ancillary" type="pds:Product_Ancillary"> </xs:element>
  <xs:element name="Product_Attribute_Definition" type="pds:Product_Attribute_Definition"> </xs:element>
  <xs:element name="Product_Browse" type="pds:Product_Browse"> </xs:element>
  <xs:element name="Product_Bundle" type="pds:Product_Bundle"> </xs:element>
  <xs:element name="Product_Class_Definition" type="pds:Product_Class_Definition"> </xs:element>
  <xs:element name="Product_Collection" type="pds:Product_Collection"> </xs:element>
  <xs:element name="Product_Context" type="pds:Product_Context"> </xs:element>
  <xs:element name="Product_DIP" type="pds:Product_DIP"> </xs:element>
  <xs:element name="Product_DIP_Deep_Archive" type="pds:Product_DIP_Deep_Archive"> </xs:element>
  <xs:element name="Product_Data_Set_PDS3" type="pds:Product_Data_Set_PDS3"> </xs:element>
  <xs:element name="Product_Document" type="pds:Product_Document"> </xs:element>
  <xs:element name="Product_File_Repository" type="pds:Product_File_Repository"> </xs:element>
  <xs:element name="Product_File_Text" type="pds:Product_File_Text"> </xs:element>
  <xs:element name="Product_Instrument_Host_PDS3" type="pds:Product_Instrument_Host_PDS3"> </xs:element>
  <xs:element name="Product_Instrument_PDS3" type="pds:Product_Instrument_PDS3"> </xs:element>
  <xs:element name="Product_Metadata_Supplemental" type="pds:Product_Metadata_Supplemental"> </xs:element>
  <xs:element name="Product_Mission_PDS3" type="pds:Product_Mission_PDS3"> </xs:element>
  <xs:element name="Product_Native" type="pds:Product_Native"> </xs:element>
  <xs:element name="Product_Observational" type="pds:Product_Observational"> </xs:element>
  <xs:element name="Product_Proxy_PDS3" type="pds:Product_Proxy_PDS3"> </xs:element>
  <xs:element name="Product_SIP" type="pds:Product_SIP"> </xs:element>
  <xs:element name="Product_SIP_Deep_Archive" type="pds:Product_SIP_Deep_Archive"> </xs:element>
  <xs:element name="Product_SPICE_Kernel" type="pds:Product_SPICE_Kernel"> </xs:element>
  <xs:element name="Product_Service" type="pds:Product_Service"> </xs:element>
  <xs:element name="Product_Software" type="pds:Product_Software"> </xs:element>
  <xs:element name="Product_Subscription_PDS3" type="pds:Product_Subscription_PDS3"> </xs:element>
  <xs:element name="Product_Target_PDS3" type="pds:Product_Target_PDS3"> </xs:element>
  <xs:element name="Product_Thumbnail" type="pds:Product_Thumbnail"> </xs:element>
  <xs:element name="Product_Update" type="pds:Product_Update"> </xs:element>
  <xs:element name="Product_Volume_PDS3" type="pds:Product_Volume_PDS3"> </xs:element>
  <xs:element name="Product_Volume_Set_PDS3" type="pds:Product_Volume_Set_PDS3"> </xs:element>
  <xs:element name="Product_XML_Schema" type="pds:Product_XML_Schema"> </xs:element>
  <xs:element name="Product_Zipped" type="pds:Product_Zipped"> </xs:element>
 
  <xs:element name="local_identifier" type="pds:local_identifier"> </xs:element>
  <xs:element name="logical_identifier" type="pds:logical_identifier"> </xs:element>

  <xs:complexType name="Agency">
    <xs:annotation>
      <xs:documentation>The Agency class provides a description of an
        entity that provides regional or national level governance over
        nodes within the federated Planetary Data
        System.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Airborne">
    <xs:annotation>
      <xs:documentation>The Airborne class provides a description of the
        physical object that transports a platform by or through
        air.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" 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="Alias">
    <xs:annotation>
      <xs:documentation>The Alias class provides a single alternate name
        and identification for this product in this or some other
        archive or data system.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alternate_id" type="pds:alternate_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="alternate_title" type="pds:alternate_title" 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="Alias_List">
    <xs:annotation>
      <xs:documentation>The Alias_List class provides a list of paired
        alternate names and identifications for this product in this or
        some other archive or data system.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Alias" type="pds:Alias" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Archival_Information_Package">
    <xs:annotation>
      <xs:documentation>The Archival Information Package (AIP) class
        defines an Information Package consisting of the Content
        Information and the associated Preservation Description
        Information (PDI), which is preserved within an archive that
        conforms to the Open Archive Information System (OAIS) Reference
        Model.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Information_Package">
        <xs:sequence>
          <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array">
    <xs:annotation>
      <xs:documentation>The Array class defines a homogeneous
        N-dimensional array of scalars. The Array class is the parent
        class for all n-dimensional arrays of scalars.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Byte_Stream">
        <xs:sequence>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_1D">
    <xs:annotation>
      <xs:documentation>The Array 1D class is the parent class for all
        one dimensional array based classes.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_2D">
    <xs:annotation>
      <xs:documentation>The Array 2D class is the parent class for all
        two dimensional array based classes.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="2" maxOccurs="2"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_2D_Image">
    <xs:annotation>
      <xs:documentation>The Array 2D Image class is an extension of the
        Array 2D class and defines a two dimensional
        image.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Array_2D">
        <xs:sequence>
          <xs:element name="Display_2D_Image" type="pds:Display_2D_Image" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_2D_Map">
    <xs:annotation>
      <xs:documentation>The Array 2D Map class is an extension of the
        Array 2D class and defines a  two dimensional
        map.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Array_2D">
        <xs:sequence>
          <xs:element name="Display_2D_Image" type="pds:Display_2D_Image" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_2D_Spectrum">
    <xs:annotation>
      <xs:documentation>The Array 2D Spectrum class is an extension of
        the Array 2D class and defines a  two dimensional
        spectrum.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Array_2D">
        <xs:sequence>
          <xs:element name="Display_2D_Image" type="pds:Display_2D_Image" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_3D">
    <xs:annotation>
      <xs:documentation>The Array 3D class is the parent class for all
        three dimensional array based classes.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="3" maxOccurs="3"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_3D_Image">
    <xs:annotation>
      <xs:documentation>The Array 3D Image class is an extension of the
        Array 3D class and defines a  three dimensional
        image.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array_3D">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="3" maxOccurs="3"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_3D_Movie">
    <xs:annotation>
      <xs:documentation>The Array 3D  Movie class is an extension of the
        Array 3D class and defines a  movie as a set of two dimensional
        images in a time series.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array_3D">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="3" maxOccurs="3"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Array_3D_Spectrum">
    <xs:annotation>
      <xs:documentation>The Array 3D Spectrum class is an extension of
        the Array 3D class and defines a  three dimensional
        spectrum.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Array_3D">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axes" type="pds:axes" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="axis_index_order" type="pds:axis_index_order" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Element_Array" type="pds:Element_Array" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Axis_Array" type="pds:Axis_Array" minOccurs="3" maxOccurs="3"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Object_Statistics" type="pds:Object_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element ref="pds:Local_Internal_Reference" minOccurs="0" maxOccurs="0"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Axis_Array">
    <xs:annotation>
      <xs:documentation>The Axis Array class is used as a component of
        the array class and defines an axis of the
        array.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="axis_name" type="pds:axis_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="elements" type="pds:elements" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sequence_number" type="pds:sequence_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Band_Bin_Set" type="pds:Band_Bin_Set" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Band_Bin">
    <xs:annotation>
      <xs:documentation>The Band_Bin class specifies the characteristics
        of an individual spectral band in a spectral
        qube.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="band_number" type="pds:band_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="band_width" type="pds:band_width" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="center_wavelength" type="pds:center_wavelength" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="detector_number" type="pds:detector_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="filter_number" type="pds:filter_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="grating_position" type="pds:grating_position" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="original_band" type="pds:original_band" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="standard_deviation" type="pds:standard_deviation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Band_Bin_Set">
    <xs:annotation>
      <xs:documentation>The Band_Bin_Set class contains the spectral
        characteristics for all the spectral bands in a
        qube.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Band_Bin" type="pds:Band_Bin" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Bundle">
    <xs:annotation>
      <xs:documentation>The Bundle class describes a collection of
        collections.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="bundle_type" type="pds:bundle_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Bundle_Member_Entry">
    <xs:annotation>
      <xs:documentation>The Bundle Member Entry class provides a member
        reference to a collection.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="lid_reference" type="pds:lid_reference"> </xs:element>
        <xs:element name="lidvid_reference" type="pds:lidvid_reference"> </xs:element>
      </xs:choice>
      <xs:element name="member_status" type="pds:member_status" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Byte_Stream">
    <xs:annotation>
      <xs:documentation>The Byte Stream class defines a stream of
        bytes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Checksum_Manifest">
    <xs:annotation>
      <xs:documentation>The Checksum_Manifest class defines a two column
        table for file references and checksums.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Citation_Information">
    <xs:annotation>
      <xs:documentation>The Citation_Information class provides specific
        fields often used in citing the product in journal articles,
        abstract services, and other reference
        contexts.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="author_list" type="pds:author_list" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="editor_list" type="pds:editor_list" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="publication_year" type="pds:publication_year" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="doi" type="pds:doi" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="keyword" type="pds:keyword" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Collection">
    <xs:annotation>
      <xs:documentation>The Collection class provides a description of a
        set of products.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="collection_type" type="pds:collection_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Composite_Structure">
    <xs:annotation>
      <xs:documentation>The Composite Structure class provides a general
        framework for defining a structure that consists of two or more
        simpler structures</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="title" type="pds:title" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type_description" type="pds:type_description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Local_ID_Reference" type="pds:Local_ID_Reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Local_ID_Relation" type="pds:Local_ID_Relation" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Context_Area">
    <xs:annotation>
      <xs:documentation>The Context Area provides context information
        for a product.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Time_Coordinates" type="pds:Time_Coordinates" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Primary_Result_Summary" type="pds:Primary_Result_Summary" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Investigation_Area" type="pds:Investigation_Area" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Observing_System" type="pds:Observing_System" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Target_Identification" type="pds:Target_Identification" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Mission_Area" type="pds:Mission_Area" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Discipline_Area" type="pds:Discipline_Area" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Associate_External_Class">
    <xs:annotation>
      <xs:documentation>The DD_Associate_External_Class class allows the
        definition of permissible values in Ingest_LDD for attributes
        defined in external namespaces.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="class_name" type="pds:class_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_occurrences" type="pds:minimum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_occurrences" type="pds:maximum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Context_Value_List" type="pds:DD_Context_Value_List" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Association">
    <xs:annotation>
      <xs:documentation>The DD_Association class defines the association
        between two classes or a class and an attribute in a data
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="identifier_reference" type="pds:identifier_reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_occurrences" type="pds:minimum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_occurrences" type="pds:maximum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="constant_value" type="pds:constant_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Attribute_Reference" type="pds:DD_Attribute_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Class_Reference" type="pds:DD_Class_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Association_External">
    <xs:annotation>
      <xs:documentation>The DD_Association_External class defines the
        association between classes and attributes within the local data
        dictionary and those external to the local data
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_occurrences" type="pds:minimum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_occurrences" type="pds:maximum_occurrences" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Attribute">
    <xs:annotation>
      <xs:documentation>The DD_Attribute class defines an attribute for
        a data dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="nillable_flag" type="pds:nillable_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="submitter_name" type="pds:submitter_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="definition" type="pds:definition" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="DD_Value_Domain" type="pds:DD_Value_Domain" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Attribute_Full">
    <xs:annotation>
      <xs:documentation>The DD_Attribute_Full class provides a more
        complete definition of an attribute in the data
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="class_name" type="pds:class_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="steward_id" type="pds:steward_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="nillable_flag" type="pds:nillable_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="submitter_name" type="pds:submitter_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="definition" type="pds:definition" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="registered_by" type="pds:registered_by" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="registration_authority_id" type="pds:registration_authority_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="attribute_concept" type="pds:attribute_concept" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="DD_Value_Domain_Full" type="pds:DD_Value_Domain_Full" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Attribute_Reference">
    <xs:annotation>
      <xs:documentation>The DD Attribute Reference class provides a
        reference to an attribute using a namespace identifier and the
        attribute name.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Class">
    <xs:annotation>
      <xs:documentation>The DD_Class class defines a class for a data
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="submitter_name" type="pds:submitter_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="definition" type="pds:definition" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="abstract_flag" type="pds:abstract_flag" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="element_flag" type="pds:element_flag" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="DD_Associate_External_Class" type="pds:DD_Associate_External_Class"> </xs:element>
        <xs:element name="DD_Association" type="pds:DD_Association"> </xs:element>
        <xs:element name="DD_Association_External" type="pds:DD_Association_External"> </xs:element>
      </xs:choice>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Class_Full">
    <xs:annotation>
      <xs:documentation>The DD_Class_Full class provides a more complete
        definition of a class for a data dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="steward_id" type="pds:steward_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="submitter_name" type="pds:submitter_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="definition" type="pds:definition" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="registered_by" type="pds:registered_by" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="registration_authority_id" type="pds:registration_authority_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="abstract_flag" type="pds:abstract_flag" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="element_flag" type="pds:element_flag" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Association" type="pds:DD_Association" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Class_Reference">
    <xs:annotation>
      <xs:documentation>The DD Class Reference class provides a
        reference to a class using a namespace identifier and the class
        name.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Context_Value_List">
    <xs:annotation>
      <xs:documentation>The DD_Context_Value_List class identifies an
        attribute and its relative xpath for the definition of
        permissible values and their meanings.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="attribute_name" type="pds:attribute_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="attribute_relative_xpath" type="pds:attribute_relative_xpath" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Permissible_Value" type="pds:DD_Permissible_Value" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Permissible_Value">
    <xs:annotation>
      <xs:documentation>The DD_Permissible_Value class lists permissible
        values and their meanings.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="value" type="pds:value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value_meaning" type="pds:value_meaning" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Permissible_Value_Full">
    <xs:annotation>
      <xs:documentation>The DD_Permissible_Value_Full class lists
        permissible values, their meanings, and the dates when
        active.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="value" type="pds:value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value_meaning" type="pds:value_meaning" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="value_begin_date" type="pds:value_begin_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value_end_date" type="pds:value_end_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Terminological_Entry" type="pds:Terminological_Entry" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Rule">
    <xs:annotation>
      <xs:documentation>The DD_Rule class defines a Schematron rule for
        a data dictionary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rule_context" type="pds:rule_context" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rule_assign" type="pds:rule_assign" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="DD_Attribute_Reference" type="pds:DD_Attribute_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Class_Reference" type="pds:DD_Class_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Rule_Statement" type="pds:DD_Rule_Statement" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Rule_Statement">
    <xs:annotation>
      <xs:documentation>The DD_Rule_Statement class defines a Schematron
        rule statement.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="rule_type" type="pds:rule_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rule_test" type="pds:rule_test" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rule_message" type="pds:rule_message" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rule_description" type="pds:rule_description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="rule_value" type="pds:rule_value" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Value_Domain">
    <xs:annotation>
      <xs:documentation>The DD_Value_Domain class defines an attribute's
        permissible values and their constraints.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="enumeration_flag" type="pds:enumeration_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value_data_type" type="pds:value_data_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="formation_rule" type="pds:formation_rule" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_characters" type="pds:minimum_characters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_characters" type="pds:maximum_characters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_value" type="pds:minimum_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_value" type="pds:maximum_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="pattern" type="pds:pattern" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="unit_of_measure_type" type="pds:unit_of_measure_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="specified_unit_id" type="pds:specified_unit_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Permissible_Value" type="pds:DD_Permissible_Value" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DD_Value_Domain_Full">
    <xs:annotation>
      <xs:documentation>The DD_Value_Domain_Full class provides a more
        complete definition of a attribute's value
        domain.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="enumeration_flag" type="pds:enumeration_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value_data_type" type="pds:value_data_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="formation_rule" type="pds:formation_rule" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_characters" type="pds:minimum_characters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_characters" type="pds:maximum_characters" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_value" type="pds:minimum_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_value" type="pds:maximum_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="pattern" type="pds:pattern" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="unit_of_measure_type" type="pds:unit_of_measure_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="conceptual_domain" type="pds:conceptual_domain" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="specified_unit_id" type="pds:specified_unit_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Permissible_Value_Full" type="pds:DD_Permissible_Value_Full" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The Dissemination Information Package Deep
        Archive class is an Information Package derived from one or more
        AIPs and is received by the National Space Science Data Center
        (NSSDC).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Information_Package">
        <xs:sequence>
          <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Data_Set_PDS3">
    <xs:annotation>
      <xs:documentation>The Data Set PDS3 class is used to capture the
        data set information from the PDS3 Data Set
        Catalog.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="data_set_id" type="pds:data_set_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_set_name" type="pds:data_set_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_set_release_date" type="pds:data_set_release_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="start_time" nillable="true" type="pds:start_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="start_date_time" nillable="true" type="pds:start_date_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="stop_time" nillable="true" type="pds:stop_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="stop_date_time" nillable="true" type="pds:stop_date_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="producer_full_name" type="pds:producer_full_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="citation_text" type="pds:citation_text" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_set_terse_desc" type="pds:data_set_terse_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="abstract_desc" type="pds:abstract_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_set_desc" type="pds:data_set_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="confidence_level_note" type="pds:confidence_level_note" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="archive_status" type="pds:archive_status" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="NSSDC" type="pds:NSSDC" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Discipline_Area">
    <xs:annotation>
      <xs:documentation>The Discipline area allows the insertion of
        discipline specific metadata.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- When creating a specific XML schema, remove the 'xs:any' element. You may insert any described nondigital object, one or more times. -->
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
      <!-- <xs:element name="Any_NonDigital_Object" type="pds:Any_NonDigital_Object" minOccurs="0" maxOccurs="unbounded"> </xs:element> -->
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Display_2D_Image">
    <xs:annotation>
      <xs:documentation>The Display_2D_Image class provides attributes
        to enable the display of a 2 dimensional
        image.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="line_display_direction" type="pds:line_display_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sample_display_direction" type="pds:sample_display_direction" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Dissemination_Information_Package">
    <xs:annotation>
      <xs:documentation>The Dissemination Information Package (DIP)
        class defines an Information Package, derived from one or more
        AIPs, that is received by a consumer.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Information_Package">
        <xs:sequence>
          <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Document">
    <xs:annotation>
      <xs:documentation>The Document class describes a
        document.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="revision_id" type="pds:revision_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="document_name" type="pds:document_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="doi" type="pds:doi" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="author_list" type="pds:author_list" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="editor_list" type="pds:editor_list" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="acknowledgement_text" type="pds:acknowledgement_text" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="copyright" type="pds:copyright" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="publication_date" nillable="true" type="pds:publication_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="document_editions" type="pds:document_editions" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Document_Edition" type="pds:Document_Edition" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Document_Edition">
    <xs:annotation>
      <xs:documentation>A Document Edition is one complete version of
        the document in a set of files that is distinguished by
        language, a unique assemblage of file formats, or some other
        criteria.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="edition_name" type="pds:edition_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="starting_point_identifier" type="pds:starting_point_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="language" type="pds:language" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="files" type="pds:files" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Document_File" type="pds:Document_File" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Document_File">
    <xs:annotation>
      <xs:documentation>The Document File class describes a file which
        is a part of a document.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File">
        <xs:sequence>
          <xs:element name="directory_path_name" type="pds:directory_path_name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="document_standard_id" type="pds:document_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Element_Array">
    <xs:annotation>
      <xs:documentation>The Element Array class is used as a component
        of the array class and defines an element of the
        array.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Encoded_Binary">
    <xs:annotation>
      <xs:documentation>The Encoded Binary class describes a binary
        encoded byte stream. This class is used to describe files in the
        repository that are being registered using 
        Product_File_Repository.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Encoded_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_standard_id" type="pds:encoding_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Encoded_Byte_Stream">
    <xs:annotation>
      <xs:documentation>The Encoded Byte Stream class defines byte
        streams that must be decoded by software before use. These byte
        streams must only use standard encodings. The Encoded Byte
        Stream class is the parent class for all encoded byte
        streams.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Byte_Stream">
        <xs:sequence>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_standard_id" type="pds:encoding_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Encoded_Header">
    <xs:annotation>
      <xs:documentation>The Encoded Header class describes a header that
        has been encoded using an encoding scheme that is compliant to
        an external standard.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Encoded_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_standard_id" type="pds:encoding_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Encoded_Image">
    <xs:annotation>
      <xs:documentation>The Encoded Image class is used for ancillary
        images in standard formats, such as JPEG.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Encoded_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_standard_id" type="pds:encoding_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Encoded_Native">
    <xs:annotation>
      <xs:documentation>The Encoded Native class describes a binary
        encoded byte stream. This class is used to describe data objects
        for Product_Native.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Encoded_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_standard_id" type="pds:encoding_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="External_Reference">
    <xs:annotation>
      <xs:documentation>The External_Reference class is used to
        reference a source outside the PDS registry
        system.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="doi" type="pds:doi" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_text" type="pds:reference_text" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="External_Reference_Extended">
    <xs:annotation>
      <xs:documentation>The External_Reference_Extended class is used to
        reference a source outside the PDS registry system. This
        extension is used in the local data
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:External_Reference">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="url" type="pds:url" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Facility">
    <xs:annotation>
      <xs:documentation>The Facility class provides a name and address
        for a  terrestrial observatory or laboratory.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="address" type="pds:address" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="country" type="pds:country" 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="Field">
    <xs:annotation>
      <xs:documentation>The Field class defines a field of a record and
        is the parent class of all specific field classes.The Field
        class defines a field of a record or a field of a group and is
        the parent class of all specific field
        classes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="field_number" type="pds:field_number" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Field_Binary">
    <xs:annotation>
      <xs:documentation>The Field_Binary class defines a field of a
        binary record or a field of a binary group.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Field">
        <xs:sequence>
          <xs:element name="field_location" type="pds:field_location" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_length" type="pds:field_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_format" type="pds:field_format" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Field_Statistics" type="pds:Field_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Packed_Data_Fields" type="pds:Packed_Data_Fields" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Field_Bit">
    <xs:annotation>
      <xs:documentation>The Field_Bit class provides parameters for
        extracting one field out of a string of bytes which contains
        packed data (that is, data values either smaller than a single
        byte, or crossing byte boundaries, or both.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Field">
        <xs:sequence>
          <xs:element name="start_bit_location" type="pds:start_bit_location" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="start_bit" type="pds:start_bit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="stop_bit_location" type="pds:stop_bit_location" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="stop_bit" type="pds:stop_bit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_format" type="pds:field_format" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Field_Character">
    <xs:annotation>
      <xs:documentation>The Field_Character class defines a field of a
        character record or a field of a character
        group.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Field">
        <xs:sequence>
          <xs:element name="field_location" type="pds:field_location" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_length" type="pds:field_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_format" type="pds:field_format" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="validation_format" type="pds:validation_format" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Field_Statistics" type="pds:Field_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Field_Delimited">
    <xs:annotation>
      <xs:documentation>The Field_Delimited class defines a field of a
        delimited record or a field of a delimited
        group.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Field">
        <xs:sequence>
          <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="maximum_field_length" type="pds:maximum_field_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="field_format" type="pds:field_format" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scaling_factor" type="pds:scaling_factor" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="value_offset" type="pds:value_offset" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Special_Constants" type="pds:Special_Constants" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Field_Statistics" type="pds:Field_Statistics" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Field_Statistics">
    <xs:annotation>
      <xs:documentation>The Field Statistics class provides a set of
        metrics for a column formed by a field in a repeating
        record.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum" type="pds:maximum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum" type="pds:minimum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean" type="pds:mean" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="standard_deviation" type="pds:standard_deviation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="median" type="pds:median" 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="File">
    <xs:annotation>
      <xs:documentation>The File class consists of attributes that
        describe a file in a data store.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="file_name" type="pds:file_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="creation_date_time" type="pds:creation_date_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="file_size" type="pds:file_size" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="records" type="pds:records" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="md5_checksum" type="pds:md5_checksum" 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="File_Area">
    <xs:annotation>
      <xs:documentation>The File_Area class defines a File and its
        component data objects.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="File_Area_Ancillary">
    <xs:annotation>
      <xs:documentation>The File Area Ancillary class describes a file
        and one or more tagged_data_objects contained within the
        file.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Array" type="pds:Array"> </xs:element>
            <xs:element name="Array_1D" type="pds:Array_1D"> </xs:element>
            <xs:element name="Array_2D" type="pds:Array_2D"> </xs:element>
            <xs:element name="Array_2D_Image" type="pds:Array_2D_Image"> </xs:element>
            <xs:element name="Array_2D_Map" type="pds:Array_2D_Map"> </xs:element>
            <xs:element name="Array_2D_Spectrum" type="pds:Array_2D_Spectrum"> </xs:element>
            <xs:element name="Array_3D" type="pds:Array_3D"> </xs:element>
            <xs:element name="Array_3D_Image" type="pds:Array_3D_Image"> </xs:element>
            <xs:element name="Array_3D_Movie" type="pds:Array_3D_Movie"> </xs:element>
            <xs:element name="Array_3D_Spectrum" type="pds:Array_3D_Spectrum"> </xs:element>
            <xs:element name="Checksum_Manifest" type="pds:Checksum_Manifest"> </xs:element>
            <xs:element name="Encoded_Header" type="pds:Encoded_Header"> </xs:element>
            <xs:element name="Encoded_Image" type="pds:Encoded_Image"> </xs:element>
            <xs:element name="Header" type="pds:Header"> </xs:element>
            <xs:element name="Stream_Text" type="pds:Stream_Text"> </xs:element>
            <xs:element name="Table_Binary" type="pds:Table_Binary"> </xs:element>
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Binary">
    <xs:annotation>
      <xs:documentation>The File Area Binary class describes a file that
        contains an encoded byte stream.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Encoded_Binary" type="pds:Encoded_Binary" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Browse">
    <xs:annotation>
      <xs:documentation>The File Area Browse class describes a file and
        one or more tagged_data_objects contained within the
        file.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Array" type="pds:Array"> </xs:element>
            <xs:element name="Array_1D" type="pds:Array_1D"> </xs:element>
            <xs:element name="Array_2D" type="pds:Array_2D"> </xs:element>
            <xs:element name="Array_2D_Image" type="pds:Array_2D_Image"> </xs:element>
            <xs:element name="Array_2D_Map" type="pds:Array_2D_Map"> </xs:element>
            <xs:element name="Array_2D_Spectrum" type="pds:Array_2D_Spectrum"> </xs:element>
            <xs:element name="Array_3D" type="pds:Array_3D"> </xs:element>
            <xs:element name="Array_3D_Image" type="pds:Array_3D_Image"> </xs:element>
            <xs:element name="Array_3D_Movie" type="pds:Array_3D_Movie"> </xs:element>
            <xs:element name="Array_3D_Spectrum" type="pds:Array_3D_Spectrum"> </xs:element>
            <xs:element name="Encoded_Header" type="pds:Encoded_Header"> </xs:element>
            <xs:element name="Encoded_Image" type="pds:Encoded_Image"> </xs:element>
            <xs:element name="Header" type="pds:Header"> </xs:element>
            <xs:element name="Stream_Text" type="pds:Stream_Text"> </xs:element>
            <xs:element name="Table_Binary" type="pds:Table_Binary"> </xs:element>
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Checksum_Manifest">
    <xs:annotation>
      <xs:documentation>The File Area Checksum Manifest class describes
        a file that contains a two column table for file references and
        checksums.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Checksum_Manifest" type="pds:Checksum_Manifest" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Encoded_Image">
    <xs:annotation>
      <xs:documentation>The File Area Encoded Image class describes a
        file that contains an Encoded Image object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Encoded_Image" type="pds:Encoded_Image" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Inventory">
    <xs:annotation>
      <xs:documentation>The File Area Inventory class describes a file
        and an inventory consisting of references to 
        members.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Inventory" type="pds:Inventory" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Metadata">
    <xs:annotation>
      <xs:documentation>The File Area Metadata class describes a table
        which provides new, and/or improved, metadata. All field names
        provided must be attributes defined in PDS4, either in the
        common dictionary, or in a PDS4 discipline or mission
        dictionary.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Header" type="pds:Header" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Native">
    <xs:annotation>
      <xs:documentation>The File Area Native describes
        tagged_data_objects collected from an
        instrument.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Encoded_Native" type="pds:Encoded_Native"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Observational">
    <xs:annotation>
      <xs:documentation>The File Area Observational class describes, for
        an observational product, a file and one or more
        tagged_data_objects contained within the file.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Composite_Structure" type="pds:Composite_Structure" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Array" type="pds:Array"> </xs:element>
            <xs:element name="Array_1D" type="pds:Array_1D"> </xs:element>
            <xs:element name="Array_2D" type="pds:Array_2D"> </xs:element>
            <xs:element name="Array_2D_Image" type="pds:Array_2D_Image"> </xs:element>
            <xs:element name="Array_2D_Map" type="pds:Array_2D_Map"> </xs:element>
            <xs:element name="Array_2D_Spectrum" type="pds:Array_2D_Spectrum"> </xs:element>
            <xs:element name="Array_3D" type="pds:Array_3D"> </xs:element>
            <xs:element name="Array_3D_Image" type="pds:Array_3D_Image"> </xs:element>
            <xs:element name="Array_3D_Movie" type="pds:Array_3D_Movie"> </xs:element>
            <xs:element name="Array_3D_Spectrum" type="pds:Array_3D_Spectrum"> </xs:element>
            <xs:element name="Encoded_Header" type="pds:Encoded_Header"> </xs:element>
            <xs:element name="Header" type="pds:Header"> </xs:element>
            <xs:element name="Stream_Text" type="pds:Stream_Text"> </xs:element>
            <xs:element name="Table_Binary" type="pds:Table_Binary"> </xs:element>
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Observational_Supplemental">
    <xs:annotation>
      <xs:documentation>The File Area Observational Supplemental class
        describes, for an observational product, additional files and
        tagged_data_objects contained within the file.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Composite_Structure" type="pds:Composite_Structure" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Array" type="pds:Array"> </xs:element>
            <xs:element name="Array_1D" type="pds:Array_1D"> </xs:element>
            <xs:element name="Array_2D" type="pds:Array_2D"> </xs:element>
            <xs:element name="Array_2D_Image" type="pds:Array_2D_Image"> </xs:element>
            <xs:element name="Array_2D_Map" type="pds:Array_2D_Map"> </xs:element>
            <xs:element name="Array_2D_Spectrum" type="pds:Array_2D_Spectrum"> </xs:element>
            <xs:element name="Array_3D" type="pds:Array_3D"> </xs:element>
            <xs:element name="Array_3D_Image" type="pds:Array_3D_Image"> </xs:element>
            <xs:element name="Array_3D_Movie" type="pds:Array_3D_Movie"> </xs:element>
            <xs:element name="Array_3D_Spectrum" type="pds:Array_3D_Spectrum"> </xs:element>
            <xs:element name="Encoded_Binary" type="pds:Encoded_Binary"> </xs:element>
            <xs:element name="Encoded_Byte_Stream" type="pds:Encoded_Byte_Stream"> </xs:element>
            <xs:element name="Encoded_Header" type="pds:Encoded_Header"> </xs:element>
            <xs:element name="Encoded_Image" type="pds:Encoded_Image"> </xs:element>
            <xs:element name="Header" type="pds:Header"> </xs:element>
            <xs:element name="Parsable_Byte_Stream" type="pds:Parsable_Byte_Stream"> </xs:element>
            <xs:element name="Stream_Text" type="pds:Stream_Text"> </xs:element>
            <xs:element name="Table_Binary" type="pds:Table_Binary"> </xs:element>
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
            <xs:element name="Table_Delimited_Source_Product_External" type="pds:Table_Delimited_Source_Product_External"> </xs:element>
            <xs:element name="Table_Delimited_Source_Product_Internal" type="pds:Table_Delimited_Source_Product_Internal"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_SIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The File Area SIP Deep Archive class describes
        the File Area for the Submission Information Package (SIP) for
        the NASA planetary science deep archive.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Manifest_SIP_Deep_Archive" type="pds:Manifest_SIP_Deep_Archive" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_SPICE_Kernel">
    <xs:annotation>
      <xs:documentation>The File Area SPICE Kernel class describes a
        file that contains a SPICE Kernel object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="SPICE_Kernel" type="pds:SPICE_Kernel" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Service_Description">
    <xs:annotation>
      <xs:documentation>The File Area Service Description class
        describes a file that contains a service
        description.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Service_Description" type="pds:Service_Description" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Text">
    <xs:annotation>
      <xs:documentation>The File Area Text class describes a file that
        contains a text stream object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Stream_Text" type="pds:Stream_Text" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Transfer_Manifest">
    <xs:annotation>
      <xs:documentation>The File Area Transfer Manifest class describes
        a file that contains a two column table that maps the logical
        identifiers and version ids of products to their file
        specification names.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Transfer_Manifest" type="pds:Transfer_Manifest" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_Update">
    <xs:annotation>
      <xs:documentation>The File Area Update class is a File Area that
        describes a file that contains one or  more digital objects used
        to provide additional metadata for registered
        products.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Header" type="pds:Header" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="Table_Character" type="pds:Table_Character"> </xs:element>
            <xs:element name="Table_Delimited" type="pds:Table_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="File_Area_XML_Schema">
    <xs:annotation>
      <xs:documentation>The File Area XML Schema class describes a file
        that contains a resource used for the PDS4 implementation into
        XML.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:File_Area">
        <xs:sequence>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="XML_Schema" type="pds:XML_Schema" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Group">
    <xs:annotation>
      <xs:documentation>The Group class defines a group of (repeating)
        fields and, possibly, (sub) groups; it is the parent class of
        all specific group classes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="group_number" type="pds:group_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="repetitions" type="pds:repetitions" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="fields" type="pds:fields" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="groups" type="pds:groups" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Group_Field_Binary">
    <xs:annotation>
      <xs:documentation>The Group_Field_Binary class allows a group of
        table fields.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Group">
        <xs:sequence>
          <xs:element name="group_location" type="pds:group_location" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="group_length" type="pds:group_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Binary" type="pds:Field_Binary"> </xs:element>
            <xs:element name="Group_Field_Binary" type="pds:Group_Field_Binary"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Group_Field_Character">
    <xs:annotation>
      <xs:documentation>The Group_Field_Character class allows a group
        of table fields.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Group">
        <xs:sequence>
          <xs:element name="group_location" type="pds:group_location" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="group_length" type="pds:group_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Character" type="pds:Field_Character"> </xs:element>
            <xs:element name="Group_Field_Character" type="pds:Group_Field_Character"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Group_Field_Delimited">
    <xs:annotation>
      <xs:documentation>The Field_Group_Delimited class allows a group
        of delimited fields.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Group">
        <xs:sequence>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Delimited" type="pds:Field_Delimited"> </xs:element>
            <xs:element name="Group_Field_Delimited" type="pds:Group_Field_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Header">
    <xs:annotation>
      <xs:documentation>The Header class describes a data object
        header.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="parsing_standard_id" type="pds:parsing_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Identification_Area">
    <xs:annotation>
      <xs:documentation>The identification area consists of attributes
        that identify and name an object.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="logical_identifier" type="pds:logical_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="title" type="pds:title" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="information_model_version" type="pds:information_model_version" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="product_class" type="pds:product_class" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Alias_List" type="pds:Alias_List" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Citation_Information" type="pds:Citation_Information" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Modification_History" type="pds:Modification_History" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Information_Package">
    <xs:annotation>
      <xs:documentation>The Information Package class defines the
        Information Package as described in the OAIS Reference Model and
        is the parent class of all specific IP
        classes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Information_Package_Component">
    <xs:annotation>
      <xs:documentation>The Information_Package_Component class
        associates a Bundle, Collections or Basic Products with Checksum
        and Storage Manifests.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="checksum_manifest_checksum" type="pds:checksum_manifest_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="checksum_type" type="pds:checksum_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="transfer_manifest_checksum" type="pds:transfer_manifest_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="File_Area_Checksum_Manifest" type="pds:File_Area_Checksum_Manifest" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="File_Area_Transfer_Manifest" type="pds:File_Area_Transfer_Manifest" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Information_Package_Component_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The Information Package Component Deep Archive
        class is an Information Package Component for the NASA planetary
        science deep archive.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="manifest_checksum" type="pds:manifest_checksum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="checksum_type" type="pds:checksum_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="manifest_url" type="pds:manifest_url" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="aip_lidvid" type="pds:aip_lidvid" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="aip_label_checksum" type="pds:aip_label_checksum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="File_Area_SIP_Deep_Archive" type="pds:File_Area_SIP_Deep_Archive" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ingest_LDD">
    <xs:annotation>
      <xs:documentation>The Ingest_LDD class provides a form for
        collecting class and attribute definitions.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="ldd_version_id" type="pds:ldd_version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="dictionary_type" type="pds:dictionary_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="full_name" type="pds:full_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="steward_id" type="pds:steward_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="external_property_maps_id" type="pds:external_property_maps_id" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="last_modification_date_time" type="pds:last_modification_date_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="DD_Attribute" type="pds:DD_Attribute" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="DD_Class" type="pds:DD_Class" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="DD_Rule" type="pds:DD_Rule" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Property_Maps" type="pds:Property_Maps" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Instrument">
    <xs:annotation>
      <xs:documentation>The Instrument class provides a description of a
        physical object that collects data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Type_List_Area" type="pds:Type_List_Area" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="subtype" type="pds:subtype" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="model_id" type="pds:model_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="naif_instrument_id" type="pds:naif_instrument_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="serial_number" type="pds:serial_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Instrument_Host">
    <xs:annotation>
      <xs:documentation>The Instrument Host class provides a description
        of the physical object upon which an instrument is
        mounted.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_host_version_id" type="pds:instrument_host_version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="naif_host_id" type="pds:naif_host_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="serial_number" type="pds:serial_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Instrument_Host_PDS3">
    <xs:annotation>
      <xs:documentation>The Instrument Host class provides a description
        of the phyiscal object upon which an instrument is mounted. This
        class captures the PDS3 catalog Instrument Host
        information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="instrument_host_name" type="pds:instrument_host_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_host_desc" type="pds:instrument_host_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_host_id" type="pds:instrument_host_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_host_type" type="pds:instrument_host_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Instrument_PDS3">
    <xs:annotation>
      <xs:documentation>The Instrument class provides a description of a
        phyiscal object that collects data. This class captures the PDS3
        catalog Instrument information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="instrument_name" type="pds:instrument_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_desc" type="pds:instrument_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_id" type="pds:instrument_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_serial_number" type="pds:instrument_serial_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_type" type="pds:instrument_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instrument_version_id" type="pds:instrument_version_id" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Internal_Reference">
    <xs:annotation>
      <xs:documentation>The Internal_Reference class is used to
        cross-reference other products in PDS4-compliant registries of
        PDS and its recognized international partners.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="lid_reference" type="pds:lid_reference"> </xs:element>
        <xs:element name="lidvid_reference" type="pds:lidvid_reference"> </xs:element>
      </xs:choice>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Inventory">
    <xs:annotation>
      <xs:documentation>The Inventory class defines the inventory for
        members of a collection.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Table_Delimited">
        <xs:sequence>
          <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Investigation">
    <xs:annotation>
      <xs:documentation>A set of experiments and/or observations with a
        clearly defined purpose.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="start_date" type="pds:start_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="stop_date" nillable="true" type="pds:stop_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Investigation_Area">
    <xs:annotation>
      <xs:documentation>The Investigation_Area class provides
        information about an investigation (mission, observing campaign
        or other coordinated, large-scale data collection
        effort).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Local_ID_Reference">
    <xs:annotation>
      <xs:documentation>The Local_ID_Reference class defines a one
        directional relationship by referencing another description
        object in the label.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="id_reference_to" type="pds:id_reference_to" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="id_reference_type" type="pds:id_reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Local_ID_Relation">
    <xs:annotation>
      <xs:documentation>The Local_ID_Relation class defines a one
        directional relationship between two description objects in the
        label.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="id_reference_from" type="pds:id_reference_from" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="id_reference_to" type="pds:id_reference_to" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="id_reference_type" type="pds:id_reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Local_Internal_Reference">
    <xs:annotation>
      <xs:documentation>The Local Internal_Reference class is used to
        cross-reference other Description Objects in a PDS4
        label.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier_reference" type="pds:local_identifier_reference" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_reference_type" type="pds:local_reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Manifest_SIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The Manifest SIP Deep Archive class is a Table
        Delimited for the NASA planetary science deep archive's
        Submission Information Package (SIP).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Table_Delimited">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="parsing_standard_id" type="pds:parsing_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="records" type="pds:records" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_delimiter" type="pds:field_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Uniformly_Sampled" type="pds:Uniformly_Sampled" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Record_Delimited" type="pds:Record_Delimited" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Mission_Area">
    <xs:annotation>
      <xs:documentation>The mission area allows the insertion of mission
        specific metadata.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- When creating a specific XML schema, remove the 'xs:any' element. You may insert any described nondigital object, one or more times. -->
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
      <!-- <xs:element name="Any_NonDigital_Object" type="pds:Any_NonDigital_Object" minOccurs="0" maxOccurs="unbounded"> </xs:element> -->
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Mission_PDS3">
    <xs:annotation>
      <xs:documentation>The Mission PDS3 class describes an activity
        involved in the collection of data. This class captures the PDS3
        catalog Mission information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="mission_name" type="pds:mission_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="mission_desc" type="pds:mission_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="mission_objectives_summary" type="pds:mission_objectives_summary" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="mission_start_date" type="pds:mission_start_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="mission_stop_date" type="pds:mission_stop_date" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Modification_Detail">
    <xs:annotation>
      <xs:documentation>The Modification_Detail class provides the
        details of one round of modification for the product.  The
        first, required, instance of this class documents the date the
        product was first registered.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="modification_date" type="pds:modification_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Modification_History">
    <xs:annotation>
      <xs:documentation>The Modification_History class tracks the
        history of changes made to the product once it enters the
        registry system.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Modification_Detail" type="pds:Modification_Detail" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="NSSDC">
    <xs:annotation>
      <xs:documentation>The NSSDC Information class provides
        identification information for data submitted to the
        NSSDC.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="medium_type" type="pds:medium_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="nssdc_collection_id" type="pds:nssdc_collection_id" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Node">
    <xs:annotation>
      <xs:documentation>The Node class provides a description of an
        entity that provides local governance within the federated
        Planetary Data System.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="institution_name" type="pds:institution_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Object_Statistics">
    <xs:annotation>
      <xs:documentation>The Object Statistics class provides a set of
        values that provide metrics about the object.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum" type="pds:maximum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum" type="pds:minimum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="mean" type="pds:mean" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="standard_deviation" type="pds:standard_deviation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="bit_mask" type="pds:bit_mask" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="median" type="pds:median" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_scaled_value" type="pds:maximum_scaled_value" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_scaled_value" type="pds:minimum_scaled_value" 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="Observation_Area">
    <xs:annotation>
      <xs:documentation>The observation area consists of attributes that
        provide information about the circumstances under which the data
        were collected.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Context_Area">
        <xs:sequence>
          <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Time_Coordinates" type="pds:Time_Coordinates" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Primary_Result_Summary" type="pds:Primary_Result_Summary" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Investigation_Area" type="pds:Investigation_Area" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Observing_System" type="pds:Observing_System" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Target_Identification" type="pds:Target_Identification" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Mission_Area" type="pds:Mission_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Discipline_Area" type="pds:Discipline_Area" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Observing_System">
    <xs:annotation>
      <xs:documentation>The Observing System class describes the entire
        suite used to collect the data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Observing_System_Component" type="pds:Observing_System_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Observing_System_Component">
    <xs:annotation>
      <xs:documentation>The Observing System Component class describes
        one or more subsystems used to collect data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:External_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Other">
    <xs:annotation>
      <xs:documentation>The Other class provides a description of
        activities involved in the collection of data which are not
        otherwise modeled.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PDS_Affiliate">
    <xs:annotation>
      <xs:documentation>The PDS Affiliate class provides a description
        of a person who has an association with the planetary science
        community and has access to PDS resources not normally allowed
        to the general public.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="registration_date" type="pds:registration_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="electronic_mail_address" type="pds:electronic_mail_address" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="sort_name" type="pds:sort_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="affiliation_type" type="pds:affiliation_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="alternate_telephone_number" type="pds:alternate_telephone_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="institution_name" type="pds:institution_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="phone_book_flag" type="pds:phone_book_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="postal_address_text" type="pds:postal_address_text" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="team_name" type="pds:team_name" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="telephone_number" type="pds:telephone_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PDS_Guest">
    <xs:annotation>
      <xs:documentation>The PDS_Guest class is the default description
        of a person who has an association with the planetary science
        community and who has the most limited access to PDS
        resources.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="registration_date" type="pds:registration_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="electronic_mail_address" type="pds:electronic_mail_address" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="sort_name" type="pds:sort_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Packed_Data_Fields">
    <xs:annotation>
      <xs:documentation>The Packed_Data_Fields class contains field
        definitions for extracting packed data from the associated byte
        string field.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="bit_fields" type="pds:bit_fields" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Field_Bit" type="pds:Field_Bit" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Parsable_Byte_Stream">
    <xs:annotation>
      <xs:documentation>The Parsable Byte Stream class defines byte
        streams that have standard parsing rules. The Parsable Byte
        Stream class is the parent class for all parsable byte
        streams.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Byte_Stream">
        <xs:sequence>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="parsing_standard_id" type="pds:parsing_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Primary_Result_Summary">
    <xs:annotation>
      <xs:documentation>The Primary_Result_Summary class provides a
        high-level description of the types of products included in the
        collection or bundle</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="type" type="pds:type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="purpose" type="pds:purpose" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="data_regime" type="pds:data_regime" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="processing_level" type="pds:processing_level" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="processing_level_id" type="pds:processing_level_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Science_Facets" type="pds:Science_Facets" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Product">
    <xs:annotation>
      <xs:documentation>A Product is a uniquely identified object that
        is managed by a registry/repository. It consists of one or more
        tagged data objects.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Identification_Area" type="pds:Identification_Area" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Product_AIP">
    <xs:annotation>
      <xs:documentation>The Product AIP class defines a product for the
        Archival Information Package.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Information_Package_Component" type="pds:Information_Package_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Archival_Information_Package" type="pds:Archival_Information_Package" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Ancillary">
    <xs:annotation>
      <xs:documentation>The Product_Ancillary class defines a product
        that contains data that are supplementary to observational data
        and cannot reasonably be associated with any other
        non-observational data class. Use of Product_Ancillary must be
        approved by the curating node.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Ancillary" type="pds:File_Area_Ancillary" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Attribute_Definition">
    <xs:annotation>
      <xs:documentation>The Product Attribute Definition provides an
        attribute definition in XML encoding.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="DD_Attribute_Full" type="pds:DD_Attribute_Full" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Browse">
    <xs:annotation>
      <xs:documentation>The Product Browse class defines a product
        consisting of one  encoded byte stream digital
        object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Browse" type="pds:File_Area_Browse" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Bundle">
    <xs:annotation>
      <xs:documentation>A Product_Bundle is an aggregate product and has
        a table of references to one or more
        collections.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Bundle" type="pds:Bundle" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Text" type="pds:File_Area_Text" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Bundle_Member_Entry" type="pds:Bundle_Member_Entry" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Class_Definition">
    <xs:annotation>
      <xs:documentation>The Product Class Definition provides a class
        definition in XML encoding.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="DD_Class_Full" type="pds:DD_Class_Full" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Collection">
    <xs:annotation>
      <xs:documentation>A Product_Collection has a table of references
        to one or more basic products. The references are stored in a
        table called the inventory.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Collection" type="pds:Collection" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Inventory" type="pds:File_Area_Inventory" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Context">
    <xs:annotation>
      <xs:documentation>The Product Context class describes something
        that provides context and provenance for an observational
        product.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Discipline_Area" type="pds:Discipline_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="Agency" type="pds:Agency"> </xs:element>
            <xs:element name="Airborne" type="pds:Airborne"> </xs:element>
            <xs:element name="Facility" type="pds:Facility"> </xs:element>
            <xs:element name="Instrument" type="pds:Instrument"> </xs:element>
            <xs:element name="Instrument_Host" type="pds:Instrument_Host"> </xs:element>
            <xs:element name="Investigation" type="pds:Investigation"> </xs:element>
            <xs:element name="Node" type="pds:Node"> </xs:element>
            <xs:element name="Other" type="pds:Other"> </xs:element>
            <xs:element name="PDS_Affiliate" type="pds:PDS_Affiliate"> </xs:element>
            <xs:element name="PDS_Guest" type="pds:PDS_Guest"> </xs:element>
            <xs:element name="Resource" type="pds:Resource"> </xs:element>
            <xs:element name="Target" type="pds:Target"> </xs:element>
            <xs:element name="Telescope" type="pds:Telescope"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_DIP">
    <xs:annotation>
      <xs:documentation>The Product DIP class defines a product for the
        Dissemination Information Package.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Information_Package_Component" type="pds:Information_Package_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Dissemination_Information_Package" type="pds:Dissemination_Information_Package" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_DIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The Product DIP_Deep_Archive class defines a
        product for the Dissemination Information Package for the deep
        archive.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Information_Package_Component" type="pds:Information_Package_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="DIP_Deep_Archive" type="pds:DIP_Deep_Archive" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Data_Set_PDS3">
    <xs:annotation>
      <xs:documentation>The Data Set PDS3 product  is used to create
        proxy labels for the data sets in the PDS3 Data Set
        catalog.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Data_Set_PDS3" type="pds:Data_Set_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Document">
    <xs:annotation>
      <xs:documentation>A Product Document is a product consisting of a
        single logical document that may comprise one or more document
        editions.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Document" type="pds:Document" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_File_Repository">
    <xs:annotation>
      <xs:documentation>The Product File Repository class consists of a
        single text file. This product is used to register a file in a
        repository.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Binary" type="pds:File_Area_Binary" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_File_Text">
    <xs:annotation>
      <xs:documentation>The Product File Text consists of a single text
        file with ASCII character encoding.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Text" type="pds:File_Area_Text" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Instrument_Host_PDS3">
    <xs:annotation>
      <xs:documentation>An Instrument Host product describes an
        instrument host. This product captures the PDS3 catalog
        instrument host information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Instrument_Host_PDS3" type="pds:Instrument_Host_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Instrument_PDS3">
    <xs:annotation>
      <xs:documentation>An Instrument product describes an instrument.
        This product captures the PDS3 catalog instrument
        information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Instrument_PDS3" type="pds:Instrument_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Metadata_Supplemental">
    <xs:annotation>
      <xs:documentation>The Product_Metadata_Supplemental class is used
        to provide new, and/or improved, metadata for some or all of the
        basic products in a single collection. More than one
        Product_Metadata_Supplemental may apply to any given collection,
        but a Product_Metadata_Supplemental may only be associated with
        a single collection. Each Product_Metadata_Supplemental will be
        a primary member of the collection to which it
        applies.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Metadata" type="pds:File_Area_Metadata" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Mission_PDS3">
    <xs:annotation>
      <xs:documentation>An Mission product describes a mission. This
        product captures the PDS3 catalog mission
        information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Mission_PDS3" type="pds:Mission_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Native">
    <xs:annotation>
      <xs:documentation>Product_Native is used to describe digital
        objects in the original format returned by the spacecraft or
        experimental system when that format  cannot be described using
        one of the PDS4 formats specified for observational data (tables
        or arrays,  excluding Array_1D).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Native" type="pds:File_Area_Native" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Observational">
    <xs:annotation>
      <xs:documentation>A Product_Observational is a set of one or more
        information objects produced by an observing
        system.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Observation_Area" type="pds:Observation_Area" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Observational" type="pds:File_Area_Observational" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="File_Area_Observational_Supplemental" type="pds:File_Area_Observational_Supplemental" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Proxy_PDS3">
    <xs:annotation>
      <xs:documentation>The Product Proxy PDS3 class defines a product
        with enough information to register a PDS3 data
        product.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Binary" type="pds:File_Area_Binary" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_SIP">
    <xs:annotation>
      <xs:documentation>The Product SIP class defines a product for the
        Submission Information Package.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Information_Package_Component" type="pds:Information_Package_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Submission_Information_Package" type="pds:Submission_Information_Package" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_SIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The Product SIP Deep Archive class defines a
        Submission Information Package (SIP) for the NASA planetary
        science deep archive.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Information_Package_Component_Deep_Archive" type="pds:Information_Package_Component_Deep_Archive" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="SIP_Deep_Archive" type="pds:SIP_Deep_Archive" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_SPICE_Kernel">
    <xs:annotation>
      <xs:documentation>The Product SPICE Kernel class defines a SPICE
        kernel product.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_SPICE_Kernel" type="pds:File_Area_SPICE_Kernel" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Service">
    <xs:annotation>
      <xs:documentation>The Product Service class defines a product for
        registering services. Service descriptions from this product are
        used to register services as intrinsic registry
        objects.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Service" type="pds:Service" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Service_Description" type="pds:File_Area_Service_Description" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Software">
    <xs:annotation>
      <xs:documentation>Product Software is a product consisting of a
        set of one or more software formats.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Software" type="pds:Software" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Software_Binary" type="pds:Software_Binary" minOccurs="0" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Software_Script" type="pds:Software_Script" minOccurs="0" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Software_Source" type="pds:Software_Source" minOccurs="0" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Subscription_PDS3">
    <xs:annotation>
      <xs:documentation>The Product_Subscription_PDS3 class provides the
        list of subscriptions for a PDS3 subscriber.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Subscriber_PDS3" type="pds:Subscriber_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Target_PDS3">
    <xs:annotation>
      <xs:documentation>A target product describes a target. This
        product captures a reduced set of the PDS3 catalog target
        information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Target_PDS3" type="pds:Target_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Thumbnail">
    <xs:annotation>
      <xs:documentation>The Product Thumbnail class defines a product
        consisting of one encoded byte stream digital
        object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Encoded_Image" type="pds:File_Area_Encoded_Image" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Update">
    <xs:annotation>
      <xs:documentation>The Product Update class defines a product
        consisting of update information and optional references to
        other products.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Update" type="pds:Update" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_Update" type="pds:File_Area_Update" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Volume_PDS3">
    <xs:annotation>
      <xs:documentation>A Product Volume PDS3 product captures the PDS3
        volume information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Volume_PDS3" type="pds:Volume_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Volume_Set_PDS3">
    <xs:annotation>
      <xs:documentation>A Product Volume Set PDS3 product captures the
        PDS3 volume set information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Volume_Set_PDS3" type="pds:Volume_Set_PDS3" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_XML_Schema">
    <xs:annotation>
      <xs:documentation>The Product_XML_Schema  describes a resource
        used for the PDS4 implementation into XML.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element name="Context_Area" type="pds:Context_Area" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Reference_List" type="pds:Reference_List" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="File_Area_XML_Schema" type="pds:File_Area_XML_Schema" minOccurs="1" maxOccurs="unbounded"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Product_Zipped">
    <xs:annotation>
      <xs:documentation>The Product_Zipped  is a product with references
        to other products. The referenced products and all associated
        products and files are packaged into a single ZIP
        file.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Product">
        <xs:sequence>
          <xs:element ref="pds:Internal_Reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
          <xs:element name="Zip" type="pds:Zip" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="File" type="pds:File" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Property_Map">
    <xs:annotation>
      <xs:documentation>The Property Map class defines a table
        consisting of a set of data elements and their values. The data
        elements in this table are considered to be locally defined and
        not subject to standards except for nomenclature
        rules.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="identifier" type="pds:identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="title" type="pds:title" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="model_object_id" type="pds:model_object_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="model_object_type" type="pds:model_object_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instance_id" type="pds:instance_id" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="external_namespace_id" type="pds:external_namespace_id" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Property_Map_Entry" type="pds:Property_Map_Entry" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Property_Map_Entry">
    <xs:annotation>
      <xs:documentation>The property map entry consists of a property
        name and one or more values.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="property_map_type" type="pds:property_map_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="property_map_subtype" type="pds:property_map_subtype" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="property_name" type="pds:property_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="property_value" type="pds:property_value" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Property_Maps">
    <xs:annotation>
      <xs:documentation>The Property Maps class defines a collection of
        one or more related Property Maps.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="identifier" type="pds:identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="title" type="pds:title" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="external_property_map_id" type="pds:external_property_map_id" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Property_Map" type="pds:Property_Map" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Quaternion">
    <xs:annotation>
      <xs:documentation>The Quaternion class models a mathematical
        construct that consists of four individual numeric components. 
        Quaternions are a convenient mechanism for encapsulating
        orientation information since they require only four units of
        numeric storage, as opposed to the nine needed for a rotation
        matrix.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Quaternion_Component" type="pds:Quaternion_Component" minOccurs="4" maxOccurs="4"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Quaternion_Component">
    <xs:annotation>
      <xs:documentation>The Quaternion_Component class provides a
        component of a quaternion.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="value" type="pds:value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sequence_number" type="pds:sequence_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Record">
    <xs:annotation>
      <xs:documentation>The Record class defines a record of a file and
        is the parent class of all specific record
        classes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="fields" type="pds:fields" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="groups" type="pds:groups" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Record_Binary">
    <xs:annotation>
      <xs:documentation>The Record_Binary class is a component of the
        table class and defines a record of the table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Record">
        <xs:sequence>
          <xs:element name="record_length" type="pds:record_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Binary" type="pds:Field_Binary"> </xs:element>
            <xs:element name="Group_Field_Binary" type="pds:Group_Field_Binary"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Record_Character">
    <xs:annotation>
      <xs:documentation>The Record_Character class is a component of the
        table class and defines a record of the table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Record">
        <xs:sequence>
          <xs:element name="record_length" type="pds:record_length" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Character" type="pds:Field_Character"> </xs:element>
            <xs:element name="Group_Field_Character" type="pds:Group_Field_Character"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Record_Delimited">
    <xs:annotation>
      <xs:documentation>The Record_Delimited class is a component of the
        delimited table (spreadsheet) class and defines a record of the
        delimited table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Record">
        <xs:sequence>
          <xs:element name="maximum_record_length" type="pds:maximum_record_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="Field_Delimited" type="pds:Field_Delimited"> </xs:element>
            <xs:element name="Group_Field_Delimited" type="pds:Group_Field_Delimited"> </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Reference_List">
    <xs:annotation>
      <xs:documentation>The Reference_List class provides general
        references, cross-references, and source products for the
        product. References cited elsewhere in the label need not be
        repeated here.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element ref="pds:External_Reference" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Source_Product_Internal" type="pds:Source_Product_Internal" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Source_Product_External" type="pds:Source_Product_External" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Resource">
    <xs:annotation>
      <xs:documentation>The Resource class provides a description of a
        web resource.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="url" type="pds:url" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SIP_Deep_Archive">
    <xs:annotation>
      <xs:documentation>The SIP Deep Archive class is a Submission
        Information Package (SIP)  for the NASA planetary science deep
        archive.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Information_Package">
        <xs:sequence>
          <xs:element name="provider_site_id" type="pds:provider_site_id" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SPICE_Kernel">
    <xs:annotation>
      <xs:documentation>The SPICE Kernel class describes a SPICE
        object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="kernel_type" type="pds:kernel_type" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="encoding_type" type="pds:encoding_type" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Science_Facets">
    <xs:annotation>
      <xs:documentation>The Science_Facets class contains the
        science-related search facets.  It is optional and may be
        repeated if an product has facets related to, for example, two
        different disciplines (as defined by the discipline_name facet).
        Note that Science_Facets was modeled with Discipline_Facets as a
        component and Discipline_Facets was modeled with Group_Facet1
        and Group_Facet2 as components. This dependency hierarchy was
        flattened and only Science_Facets exists in the
        schema.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="wavelength_range" nillable="true" type="pds:wavelength_range" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="domain" type="pds:domain" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="discipline_name" type="pds:ASCII_Short_String_Collapsed" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="facet1" type="pds:ASCII_Short_String_Collapsed" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subfacet1" type="pds:ASCII_Short_String_Collapsed" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="facet2" type="pds:ASCII_Short_String_Collapsed" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subfacet2" type="pds:ASCII_Short_String_Collapsed" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Service">
    <xs:annotation>
      <xs:documentation>The Service class provides a description of a
        web service or tool.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="abstract_desc" type="pds:abstract_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="url" type="pds:url" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="release_date" type="pds:release_date" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="service_type" type="pds:service_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="interface_type" type="pds:interface_type" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="category" type="pds:category" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="software_language" type="pds:software_language" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="supported_operating_system_note" type="pds:supported_operating_system_note" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="system_requirements_note" type="pds:system_requirements_note" 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="Service_Description">
    <xs:annotation>
      <xs:documentation>The Service Description class defines a file
        that contains a standardized service
        specification.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="object_length" type="pds:object_length" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="parsing_standard_id" type="pds:parsing_standard_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Software">
    <xs:annotation>
      <xs:documentation>The Software class describes a software
        product</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_version_id" type="pds:software_version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="version_id" type="pds:version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="author_list" type="pds:author_list" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="programmers_manual_id" type="pds:programmers_manual_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_id" type="pds:software_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_type" type="pds:software_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="users_manual_id" type="pds:users_manual_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Software_Binary">
    <xs:annotation>
      <xs:documentation>The Software Binary class provides a description
        of a software code that is stored as a compiled binary
        file.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="files" type="pds:files" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="os_version" type="pds:os_version" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="program_notes_id" type="pds:program_notes_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_format_type" type="pds:software_format_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="supported_architecture_note" type="pds:supported_architecture_note" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="supported_operating_system_note" type="pds:supported_operating_system_note" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="system_requirements_note" type="pds:system_requirements_note" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Software_Script">
    <xs:annotation>
      <xs:documentation>The Software Script class provides a description
        of a software code that is stored as a script.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="files" type="pds:files" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="install_note" type="pds:install_note" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="supported_environment_note" type="pds:supported_environment_note" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="system_requirements_note" type="pds:system_requirements_note" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Software_Source">
    <xs:annotation>
      <xs:documentation>The Software Source class provides a description
        of a software code that is stored as source
        code.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="compile_note" type="pds:compile_note" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="files" type="pds:files" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="os_version" type="pds:os_version" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="program_notes_id" type="pds:program_notes_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_dialect" type="pds:software_dialect" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_format_type" type="pds:software_format_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="software_language" type="pds:software_language" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="supported_architecture_note" type="pds:supported_architecture_note" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="supported_operating_system_note" type="pds:supported_operating_system_note" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="system_requirements_note" type="pds:system_requirements_note" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Source_Product_External">
    <xs:annotation>
      <xs:documentation>The Source_Product_External class is used to
        reference one or more source products (a product containing
        input data for the creation of this product) outside the PDS4
        Registry that have a common reference_type, doi, curating
        facility, and/or description. At least one of doi or curating
        facility must be provided. All source products listed within a
        single Source_Product_External class must correspond to the same
        doi and/or curating facility.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="external_source_product_identifier" type="pds:external_source_product_identifier" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="doi" type="pds:doi" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="curating_facility" type="pds:curating_facility" 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="Source_Product_Internal">
    <xs:annotation>
      <xs:documentation>The Source_Product _Internal class is used to
        reference one or more source products in the PDS4 registry
        system. A source product contains input data for the creation of
        this product.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lidvid_reference" type="pds:lidvid_reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="comment" type="pds:comment" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Special_Constants">
    <xs:annotation>
      <xs:documentation>The Special Constants class provides a set of
        values used to indicate special cases that occur in the
        data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="saturated_constant" type="pds:saturated_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="missing_constant" type="pds:missing_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="error_constant" type="pds:error_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="invalid_constant" type="pds:invalid_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="unknown_constant" type="pds:unknown_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="not_applicable_constant" type="pds:not_applicable_constant" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="valid_maximum" type="pds:valid_maximum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="high_instrument_saturation" type="pds:high_instrument_saturation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="high_representation_saturation" type="pds:high_representation_saturation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="valid_minimum" type="pds:valid_minimum" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="low_instrument_saturation" type="pds:low_instrument_saturation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="low_representation_saturation" type="pds:low_representation_saturation" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Stream_Text">
    <xs:annotation>
      <xs:documentation>The Stream text class defines a text
        object.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Submission_Information_Package">
    <xs:annotation>
      <xs:documentation>The Submission Information Package (SIP) class
        is an Information Package that is delivered by a Data Provider
        to an archive that conforms to the Open Archive Information
        System (OAIS) Reference Model for use in the construction of one
        or more AIPs.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Information_Package">
        <xs:sequence>
          <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Subscriber_PDS3">
    <xs:annotation>
      <xs:documentation>The Subscriber PDS3 class provides the name of
        the subscriber and their subscription list.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="full_name" type="pds:full_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="subscription_id" type="pds:subscription_id" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Table_Base">
    <xs:annotation>
      <xs:documentation>The Table Base class defines a heterogeneous
        repeating record of scalars. The Table Base class is the parent
        class for all heterogeneous repeating record of
        scalars.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Byte_Stream">
        <xs:sequence>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="records" type="pds:records" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Table_Binary">
    <xs:annotation>
      <xs:documentation>The Table Binary class is an extension of table
        base and defines a simple binary table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Table_Base">
        <xs:sequence>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Uniformly_Sampled" type="pds:Uniformly_Sampled" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Record_Binary" type="pds:Record_Binary" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Table_Character">
    <xs:annotation>
      <xs:documentation>The Table Character class is an extension of
        table base and defines a simple character
        table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Table_Base">
        <xs:sequence>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Uniformly_Sampled" type="pds:Uniformly_Sampled" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Record_Character" type="pds:Record_Character" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Table_Delimited">
    <xs:annotation>
      <xs:documentation>The Table_Delimited class defines a simple table
        (spreadsheet) with delimited fields and
        records.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="records" type="pds:records" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="field_delimiter" type="pds:field_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Uniformly_Sampled" type="pds:Uniformly_Sampled" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Record_Delimited" type="pds:Record_Delimited" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Table_Delimited_Source_Product_External">
    <xs:annotation>
      <xs:documentation>The Table_Delimited_Source_Product_External
        class defines a table that references many source products
        (products containing input data for the creation of this
        product) outside the PDS4 Registry that have a common
        reference_type, doi, curating facility, and/or description. At
        least one of doi or curating facility must be provided for each
        source product.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Table_Delimited">
        <xs:sequence>
          <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Table_Delimited_Source_Product_Internal">
    <xs:annotation>
      <xs:documentation>The Table_Delimited_Source_Product_Internal
        class defines a table that references many source products
        (products containing input data for the creation of this
        product) in the PDS4 registry system. A source product contains
        input data for the creation of this product.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Table_Delimited">
        <xs:sequence>
          <xs:element name="reference_type" type="pds:reference_type" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Target">
    <xs:annotation>
      <xs:documentation>The Target class provides a description of a
        physical object that is the object of data
        collection.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Target_Identification">
    <xs:annotation>
      <xs:documentation>The Target_Identification class provides
        detailed target identification information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="alternate_designation" type="pds:alternate_designation" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Target_PDS3">
    <xs:annotation>
      <xs:documentation>The Target class provides a description of a
        phyiscal object that is the object of data collection. This
        class captures the PDS3 catalog Target
        information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="target_name" type="pds:target_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="orbit_direction" type="pds:orbit_direction" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="primary_body_name" type="pds:primary_body_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="rotation_direction" type="pds:rotation_direction" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="target_desc" type="pds:target_desc" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="target_type" type="pds:target_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Telescope">
    <xs:annotation>
      <xs:documentation>The Telescope class provides coordinates and
        parameters for terrestrial, ground-based
        telescopes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="aperture" type="pds:aperture" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="telescope_longitude" type="pds:telescope_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="telescope_latitude" type="pds:telescope_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="telescope_altitude" type="pds:telescope_altitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="altitude" type="pds:altitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="coordinate_source" type="pds:coordinate_source" 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="Term_Map_SKOS">
    <xs:annotation>
      <xs:documentation>TheTerm_Map_SKOS class is used to collect a set
        of terms and definitions for a SKOS ontology.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Terminological_Entry_SKOS" type="pds:Terminological_Entry_SKOS" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Terminological_Entry">
    <xs:annotation>
      <xs:documentation>The terminological_entry class provides the name
        (designation) and definition of the attribute in a specified
        natural language.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="definition" type="pds:definition" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="language" type="pds:language" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="preferred_flag" type="pds:preferred_flag" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="skos_relation_name" type="pds:skos_relation_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="instance_id" type="pds:instance_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="External_Reference_Extended" type="pds:External_Reference_Extended" minOccurs="0" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Terminological_Entry_SKOS">
    <xs:annotation>
      <xs:documentation>The terminological_entry_SKOS class provides
        terms and definitions for a SKOS ontology.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="identifier" type="pds:identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="registration_authority" type="pds:registration_authority" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="namespace_id" type="pds:namespace_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="steward_id" type="pds:steward_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="title" type="pds:title" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="referenced_identifier" type="pds:referenced_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="skos_relation_name" type="pds:skos_relation_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="model_object_id" type="pds:model_object_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="model_object_type" type="pds:model_object_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="instance_id" type="pds:instance_id" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Time_Coordinates">
    <xs:annotation>
      <xs:documentation>The Time_Coordinates class provides a list of
        time coordinates.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="start_date_time" nillable="true" type="pds:start_date_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="stop_date_time" nillable="true" type="pds:stop_date_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_mean_solar_time" type="pds:local_mean_solar_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_true_solar_time" type="pds:local_true_solar_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="solar_longitude" type="pds:solar_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Transfer_Manifest">
    <xs:annotation>
      <xs:documentation>The Transfer_Manifest class defines a table that
        maps product LIDVIDs to the file_specificaition_names of the
        products' XML label files.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Table_Character">
        <xs:sequence>
          <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="md5_checksum" type="pds:md5_checksum" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="offset" type="pds:offset" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="records" type="pds:records" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="record_delimiter" type="pds:record_delimiter" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="Uniformly_Sampled" type="pds:Uniformly_Sampled" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="Record_Character" type="pds:Record_Character" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Type_List_Area">
    <xs:annotation>
      <xs:documentation>The Type_List_Area allows the insertion of a
        Type List.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- When creating a context product you must insert a type list. -->
      <xs:any namespace="##other" processContents="strict" minOccurs="1" maxOccurs="1" />
      <!-- <xs:element name="Type_List" type="ctli:Type_List" minOccurs="1" maxOccurs="1"> </xs:element> -->
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Uniformly_Sampled">
    <xs:annotation>
      <xs:documentation>The Uniformly_Sampled class provides parameters
        for a uniformly sampled table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sampling_parameter_name" type="pds:sampling_parameter_name" 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="sampling_parameter_unit" type="pds:sampling_parameter_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="first_sampling_parameter_value" type="pds:first_sampling_parameter_value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="last_sampling_parameter_value" type="pds:last_sampling_parameter_value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameter_scale" type="pds:sampling_parameter_scale" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameter_base" type="pds:sampling_parameter_base" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sampling_parameters" type="pds:sampling_parameters" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Update">
    <xs:annotation>
      <xs:documentation>The Update class consists of update
        information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="update_purpose" type="pds:update_purpose" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Update_Entry" type="pds:Update_Entry" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Update_Entry">
    <xs:annotation>
      <xs:documentation>The Update Entry class provides the date and
        description of an update.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="date_time" type="pds:date_time" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="full_name" type="pds:full_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element ref="pds:Internal_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector">
    <xs:annotation>
      <xs:documentation>The Vector class provides the components of
        either a velocity or position vector.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_identifier" type="pds:local_identifier" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="type" type="pds:type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="data_type" type="pds:data_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reference_frame_id" nillable="true" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="vector_components" type="pds:vector_components" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Component" type="pds:Vector_Component" minOccurs="1" maxOccurs="unbounded"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_3">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_3_Base class is the parent
        class of 3 element Cartesian vectors.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="reference_frame_id" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="x" type="pds:x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y" type="pds:y" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z" type="pds:z" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <xs:attribute name="unit" type="pds:ASCII_Short_String_Collapsed" use="required" />
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_3_Acceleration">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_3_Acceleration class is a 3
        element Cartesian vector for acceleration
        coordinates.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Vector_Cartesian_3">
        <xs:sequence>
          <xs:element name="reference_frame_id" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="x" type="pds:x" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y" type="pds:y" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z" type="pds:z" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <xs:attribute name="unit" type="pds:ASCII_Short_String_Collapsed" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_3_Pointing">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_3_Pointing class is a 3
        element normalized Cartesian vector for
        pointing.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Vector_Cartesian_3">
        <xs:sequence>
          <xs:element name="reference_frame_id" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="x" type="pds:x" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y" type="pds:y" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z" type="pds:z" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_3_Position">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_3_Position class is a 3
        element Cartesian vector for position
        coordinates.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Vector_Cartesian_3">
        <xs:sequence>
          <xs:element name="reference_frame_id" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="x" type="pds:x" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y" type="pds:y" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z" type="pds:z" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <xs:attribute name="unit" type="pds:ASCII_Short_String_Collapsed" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_3_Velocity">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_3_Velocity class is a 3
        element Cartesian vector for velocity
        coordinates.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="pds:Vector_Cartesian_3">
        <xs:sequence>
          <xs:element name="reference_frame_id" type="pds:reference_frame_id" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="x" type="pds:x" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y" type="pds:y" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z" type="pds:z" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
        <xs:attribute name="unit" type="pds:ASCII_Short_String_Collapsed" use="required" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Component">
    <xs:annotation>
      <xs:documentation>The Vector_Component class provides a component
        of a vector.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="pds:name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="unit" type="pds:unit" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="value" type="pds:value" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sequence_number" type="pds:sequence_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Volume_PDS3">
    <xs:annotation>
      <xs:documentation>The Volume_PDS3 class is used to capture the
        volume information from the PDS3 Data Set
        Catalog.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="archive_status" type="pds:archive_status" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="archive_status_note" type="pds:archive_status_note" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="curating_node_id" type="pds:curating_node_id" minOccurs="0" maxOccurs="unbounded"> </xs:element>
      <xs:element name="medium_type" type="pds:medium_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="publication_date" nillable="true" type="pds:publication_date" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_de_fullname" type="pds:volume_de_fullname" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_format" type="pds:volume_format" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_id" type="pds:volume_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_name" type="pds:volume_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_set_id" type="pds:volume_set_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_size" type="pds:volume_size" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_version_id" type="pds:volume_version_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Volume_Set_PDS3">
    <xs:annotation>
      <xs:documentation>The Volume_Set_PDS3 class is used to capture the
        volume set information from the PDS3 Data Set
        Catalog.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="volume_series_name" type="pds:volume_series_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_set_id" type="pds:volume_set_id" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volume_set_name" type="pds:volume_set_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="volumes" type="pds:volumes" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="XML_Schema">
    <xs:annotation>
      <xs:documentation>The XML Schema class defines a resource used for
        the PDS4 implementation into XML.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="pds:Parsable_Byte_Stream">
        <xs:sequence>
          <xs:element name="ldd_version_id" type="pds:ldd_version_id" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Zip">
    <xs:annotation>
      <xs:documentation>The Zip class describes a zip
        file.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="container_type" type="pds:container_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="description" type="pds:description" minOccurs="1" 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="abstract_desc">
    <xs:annotation>
      <xs:documentation>The abstract desc attribute provides a summary
        of a text, scientific article, or document.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="abstract_flag">
    <xs:annotation>
      <xs:documentation>The abstract flag attribute indicates whether or
        not the class can be instantiated. Abstract flag is only
        included if a value of 'true' is desired and indicates that the
        class is abstract and cannot be used in a
        label.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="acknowledgement_text">
    <xs:annotation>
      <xs:documentation>The acknowledgement_text attribute is a
        character string which recognizes another's contribution,
        authority, or right.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="address">
    <xs:annotation>
      <xs:documentation>The address attribute provides a mailing
        address.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="affiliation_type">
    <xs:annotation>
      <xs:documentation>The affiliation type attribute describes the
        type of relationship an individual has with the PDS. 
        Individuals with PDS affiliations are generally listed in the
        PDS Phone Book.</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="aip_label_checksum">
    <xs:annotation>
      <xs:documentation>The aip_label_checksum attribute provides the
        checksum for the Archival Information Package
        label.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_MD5_Checksum">
  <!-- format="0123456789abcdef" -->
    	<xs:pattern value='[0-9a-fA-F]{32}'/>
     <xs:minLength value="32"/>
     <xs:maxLength value="32"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="aip_lidvid">
    <xs:annotation>
      <xs:documentation>The aip_lidvid attribute provides the
        logical_identifier plus version_id, which uniquely identifies a
        Archival Information Package.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_LIDVID">
  <!-- format="urn:xxx:yyy:zzzz::M.n" -->
    	<xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}::\p{Nd}+\.\p{Nd}+'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="alternate_designation">
    <xs:annotation>
      <xs:documentation>The alternate_designation attribute provides
        aliases.</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="alternate_id">
    <xs:annotation>
      <xs:documentation>The alternate_id attribute provides an
        additional identifier supplied by the data
        provider.</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="alternate_telephone_number">
    <xs:annotation>
      <xs:documentation>The telephone_number attribute provides a
        telephone number in  international notation in compliance with
        the E.164 telephone number format
        recommendation.</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="alternate_title">
    <xs:annotation>
      <xs:documentation>The alternate _title attribute provides an
        alternate title for the product.</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="altitude_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="altitude">
    <xs:annotation>
      <xs:documentation>The altitude attribute provides the height of
        anything above a given reference plane.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:altitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

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

  <xs:complexType name="aperture">
    <xs:annotation>
      <xs:documentation>The aperture attribute provides the diameter of
        an opening, usually circular, that limits the quantity of light
        that can enter an optical instrument.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:aperture_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="archive_status">
    <xs:annotation>
      <xs:documentation>The ARCHIVE_STATUS attribute indicates the stage
        to which a data set has progressed in the archiving process,
        from IN QUEUE through ARCHIVED. It can also take on the values
        SUPERSEDED or SAFED, which indicate that the data set is not
        part of the active archive. ACCUMULATING can be appended to some
        values to indicate that the data set is incomplete and/or that
        not all components have reached the stage given by the root
        value; ACCUMULATING would be used, for example, when the archive
        is being delivered incrementally, as from a mission that lasts
        many months or years.</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="archive_status_note">
    <xs:annotation>
      <xs:documentation>The archive status note attribute provides a
        comment about the archive status.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="attribute_concept">
    <xs:annotation>
      <xs:documentation>The attribute_concept attribute provides the
        type of information (classification) conveyed by the attribute
        -- e.g., stop_date_time has  attribute_concept =
        date_time.</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="attribute_name">
    <xs:annotation>
      <xs:documentation>The attribute_name attribute provides the common
        name by which an attribute is known.</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="attribute_relative_xpath">
    <xs:annotation>
      <xs:documentation>The attribute_relative_xpath attribute provides
        a location path for an attribute within a tree representation of
        an XML document. The location path includes the attribute
        name.</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="author_list">
    <xs:annotation>
      <xs:documentation>The author_list attribute contains a
        semi-colon-separated list of names of people to be cited as
        authors of the associated product. The general format for
        individual names is: SURNAME, GIVEN NAME(s). Initials may be
        used in lieu of given name(s). If the name contains a suffix
        ("Jr.", "Sr.", "III", etc.) it should be placed before the comma
        (,). Do not include the word "and" before the final author. All
        authors should be listed explicitly - do not elide the list
        using "et al.".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="axes">
    <xs:annotation>
      <xs:documentation>The axes attribute provides a count of the
        axes.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="16"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="axis_index_order">
    <xs:annotation>
      <xs:documentation>The axis_index_order attribute provides the axis
        index that varies fastest with respect to storage
        order.</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="axis_name">
    <xs:annotation>
      <xs:documentation>The axis_name attribute provides a word or
        combination of words by which the axis is
        known.</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="band_number">
    <xs:annotation>
      <xs:documentation>The band_number attribute provides a number
        corresponding to the band in the spectral qube. The band number
        is equivalent to the instrument band number.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="512"/>
	   </xs:restriction>
  </xs:simpleType>

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

  <xs:complexType name="band_width">
    <xs:annotation>
      <xs:documentation>The band_width attributes provides the width, at
        half height, of the band.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:band_width_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="bit_fields">
    <xs:annotation>
      <xs:documentation>The bit_fields attribute provides the number of
        defined bit fields (Field_Bit definitions) within the
        Packed_Data_Field.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="bit_mask">
    <xs:annotation>
      <xs:documentation>The bit mask attribute is a series of ASCII
        binary digits identifying the active bits in a value; it has
        exactly the same number of bits as the array element to which it
        is applied. The bit mask must be specified from most significant
        to least significant bit (left to right).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Numeric_Base2">
    	<xs:pattern value='[0-1]{1,255}'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="bundle_type">
    <xs:annotation>
      <xs:documentation>The bundle_type attribute provides a
        classification for the bundle.</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="category">
    <xs:annotation>
      <xs:documentation>The category attribute identifies the type of
        function that the tool or service performs.</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="center_wavelength_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="center_wavelength">
    <xs:annotation>
      <xs:documentation>The center_wavelength attribute provides the
        wavelength or frequency describing the center of a bin along the
        band axis of a spectral qube. When describing data from a
        spectrometer, the value corresponds to the peak of the response
        function for a particular detector and/or grating
        position.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:center_wavelength_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="checksum_manifest_checksum">
    <xs:annotation>
      <xs:documentation>The checksum manifest checksum provides the
        checksum for the checksum manifest file.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_MD5_Checksum">
  <!-- format="0123456789abcdef" -->
    	<xs:pattern value='[0-9a-fA-F]{32}'/>
     <xs:minLength value="32"/>
     <xs:maxLength value="32"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="checksum_type">
    <xs:annotation>
      <xs:documentation>The checksum type attribute provides the name of
        the checksum algorithm used to calculate the checksum
        value.</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="citation_text">
    <xs:annotation>
      <xs:documentation>The citation_text attribute provides a character
        string containing a literature or other citation in sufficient
        detail that the material  could be located in PDS or
        elsewhere.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="class_name">
    <xs:annotation>
      <xs:documentation>The class_name attribute provides the common
        name by which the class is identified, as well as the class
        within which the attribute 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="collection_type">
    <xs:annotation>
      <xs:documentation>The collection_type attribute provides a
        classification for the collection.</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="comment">
    <xs:annotation>
      <xs:documentation>The comment attribute is a character string
        expressing one or more remarks or thoughts relevant to the
        object.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="compile_note">
    <xs:annotation>
      <xs:documentation>The compile note attribute provides a brief
        statement giving particulars about the compilation of the
        software source.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="conceptual_domain">
    <xs:annotation>
      <xs:documentation>The conceptual_domain attribute provides the
        domain to which the value has been assigned.</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="confidence_level_note">
    <xs:annotation>
      <xs:documentation>The confidence_level_note attribute is a text
        field which characterizes the reliability of data within a data
        set or the reliability of a particular programming algorithm or
        software component. Essentially, this note discusses the level
        of confidence in the accuracy of the data or in the ability of
        the software to produce accurate results.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="constant_value">
    <xs:annotation>
      <xs:documentation>The constant value attribute provides the value
        to be used if an attribute is static.</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="container_type">
    <xs:annotation>
      <xs:documentation>The container type attribute indicates the
        method used to package the components.</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="coordinate_source">
    <xs:annotation>
      <xs:documentation>The coordinate_source attribute provides the
        reference figure or datum.</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="copyright">
    <xs:annotation>
      <xs:documentation>The copyright attribute is a character string
        giving  information about the exclusive right to make copies,
        license, and otherwise exploit an object, whether physical or
        digital.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="country">
    <xs:annotation>
<xs:documentation>country</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="creation_date_time">
    <xs:annotation>
      <xs:documentation>The creation_date_time attribute provides a date
        and time when the object was created.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="curating_facility">
    <xs:annotation>
      <xs:documentation>The curating_facility attribute provides a
        unique name or identifier for the curating facility maintaining
        the source product.</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="curating_node_id">
    <xs:annotation>
      <xs:documentation>The curating_node_id attribute provides the id
        of the node currently maintaining the data set or volume and is
        responsible for maintaining catalog
        information.</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_regime">
    <xs:annotation>
      <xs:documentation>The data_regime attribute provides the
        wavelength (or an analogous concept for things like particle
        detectors) of the observations, stated as a
        category.</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_set_desc">
    <xs:annotation>
      <xs:documentation>The data_set_desc attribute describes the
        content and type of a data set and provides information required
        to use the data (such as binning information).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="data_set_id">
    <xs:annotation>
      <xs:documentation>The data set id provides a formal name used to
        refer to a data set.</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_set_name">
    <xs:annotation>
      <xs:documentation>The data_set_name attribute provides the full
        name given to a data set or a data product. The data_set_name
        typically identifies the instrument that acquired the data of
        that instrument Example value data_set_id. Note This attribute
        is defined in the AMMOS Magellan catalog as an alias for
        file_name to provide backward compatibility</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_set_release_date">
    <xs:annotation>
      <xs:documentation>The data_set_release_date attribute provides the
        date when a data set is released by the data producer for
        archive or publication. In many systems this represents the end
        of a proprietary or validation period. Formation rule In AMMOS
        identify the date at which a product may be released to the
        general public from proprietary access. AMMOS-related systems
        should apply this attribute only to proprietary
        data.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="data_set_terse_desc">
    <xs:annotation>
      <xs:documentation>A one line description of the data
        set</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="data_type">
    <xs:annotation>
      <xs:documentation>The data_type attribute provides the hardware
        representation used to store a value in
        Element_Array.</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="date_time">
    <xs:annotation>
      <xs:documentation>The date_time attribute provides the date and
        time of an event.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="definition">
    <xs:annotation>
      <xs:documentation>The definition attribute provides a statement,
        picture in words, or account that defines the
        term.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="description">
    <xs:annotation>
      <xs:documentation>The description attribute provides a statement,
        picture in words, or account that describes or is otherwise
        relevant to the object.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="detector_number">
    <xs:annotation>
      <xs:documentation>The detector_number attribute provides the
        spectrometer detector number corresponding to a band of a
        spectral qube. Detector numbers are usually assigned
        consecutively from 1, in order of increasing
        wavelength.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="dictionary_type">
    <xs:annotation>
      <xs:documentation>The dictionary_type attribute provides the name
        of a dictionary category.</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="directory_path_name">
    <xs:annotation>
      <xs:documentation>The directory_path_name attribute provides a
        sequence of names that locates a directory in a hierarchy of
        directories.</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="document_editions">
    <xs:annotation>
      <xs:documentation>The document_editions attribute provides a count
        of the total number of complete, distinct editions of the
        document.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="document_name">
    <xs:annotation>
      <xs:documentation>The document_title attribute provides the full
        name of the published document. This optional attribute is used
        only if the title in the identification area of the document
        product is not sufficient.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="document_standard_id">
    <xs:annotation>
      <xs:documentation>The document_standard_id attribute provides the
        formal name of a standard used for the structure of a document
        file.</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="doi">
    <xs:annotation>
      <xs:documentation>The doi attribute provides the Digital Object
        Identifier for an object, assigned by the appropriate DOI System
        Registration Agency.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_DOI">
  <!-- format="10.ssss/sss" -->
    	<xs:pattern value='10\.\S+/\S+'/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="domain">
    <xs:annotation>
      <xs:documentation>The radial "zone" or "shell" of the target for
        which the observations were collected or which are represented
        in the product(s).  The value may depend on wavelength_range and
        size of the target.</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="edition_name">
    <xs:annotation>
      <xs:documentation>The edition name attribute provides a name by
        which the edition is known.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="editor_list">
    <xs:annotation>
      <xs:documentation>The editor_list attribute contains a
        semi-colon-separated list of names of people to be cited as
        editors of the associated product. The general format for
        individual names is: SURNAME, GIVEN NAME(s). Initials may be
        used in lieu of given name(s). If the name contains a suffix
        ("Jr.", "Sr.", "III", etc.) it should be placed before the comma
        (,). Do not include the word "and" before the final editor. All
        editors should be listed explicitly - do not elide the list
        using "et al.".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="electronic_mail_address">
    <xs:annotation>
      <xs:documentation>The electronic mail address attribute provides a
        multi-part email address: the first part (the user name), which
        identifies a unique user, is separated by an "at sign"  from the
        host name, which uniquely identifies the mail
        server.</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="element_flag">
    <xs:annotation>
      <xs:documentation>The element flag attribute indicates whether or
        not the class is defined as a xs:element in XML
        Schema.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="elements">
    <xs:annotation>
      <xs:documentation>The elements attribute provides the count of the
        number of elements along an array axis.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="encoding_standard_id">
    <xs:annotation>
      <xs:documentation>The encoding_standard_id attribute provides the
        formal name of a standard used for the structure of an Encoded
        Byte Stream digital 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="encoding_type">
    <xs:annotation>
      <xs:documentation>The encoding_type attribute provides the storage
        format (binary or character).</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="enumeration_flag">
    <xs:annotation>
      <xs:documentation>The enumeration_flag attribute indicates whether
        there is an enumerated set of permissible
        values.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="error_constant">
    <xs:annotation>
      <xs:documentation>The error_constant attribute provides a value
        that indicates the original value was in
        error.</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="external_namespace_id">
    <xs:annotation>
      <xs:documentation>The external_namespace_id attribute provides a
        namespace_id external to this context.</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="external_property_map_id">
    <xs:annotation>
      <xs:documentation>The external_property_map_id attribute provides
        the identifier of a property_map instance external to this
        context.</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="external_property_maps_id">
    <xs:annotation>
      <xs:documentation>The external_property_maps_id attribute provides
        the identifier of a property_maps instance external to this
        context.</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="external_source_product_identifier">
    <xs:annotation>
      <xs:documentation>The external_source_product_identifier provides
        unique identifiers for one or more source products that are not
        in the PDS4 Registry. For guidelines on the construction of this
        identifier, refer to section 2.6.1.2 of the Data Provider's
        Handbook.</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="field_delimiter">
    <xs:annotation>
      <xs:documentation>The field_delimiter attribute provides the
        character that marks the boundary between two fields in a
        delimited table.</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="field_format">
    <xs:annotation>
      <xs:documentation>The field_format attribute gives the magnitude
        and precision of the data value. This may specify the output
        format for a binary value, or give a general indication of the
        precision of a field, but is not used for validation. A subset
        of the standard POSIX string formats is allowed. See the PDS
        Standards Reference section “Field Formats” for
        details.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
    	<xs:pattern value='%[\+,-]?[0-9]+(\.([0-9]+))?[doxfeEs]'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="field_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="field_length">
    <xs:annotation>
      <xs:documentation>The field_length attribute provides the number
        of bytes in the field.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:field_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="field_location_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="field_location">
    <xs:annotation>
      <xs:documentation>The field_location attribute provides the
        starting byte for a field within a record or group, counting
        from '1'.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:field_location_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="field_number">
    <xs:annotation>
      <xs:documentation>The field_number attribute provides the position
        of a field, within a series of fields, counting from 1. If two
        fields within a record are physically separated by one or more
        groups, they have consecutive field numbers; the fields within
        the intervening group(s) are numbered separately.  Fields within
        a group separated by one or more (sub)groups, will also have
        consecutive field numbers.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="fields">
    <xs:annotation>
      <xs:documentation>The fields attribute provides a count of the
        total number of scalar fields directly associated with a group. 
        Fields within (sub) groups of the group are not included in this
        count.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="file_name">
    <xs:annotation>
      <xs:documentation>The file_name attribute provides the name of a
        file.</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="file_size_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="file_size">
    <xs:annotation>
      <xs:documentation>The file_size attribute provides the size of the
        file.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:file_size_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="files">
    <xs:annotation>
      <xs:documentation>The files attribute provides the number of files
        in the edition.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="filter_number">
    <xs:annotation>
      <xs:documentation>The filter_number attribute of a spectral qube
        describes the physical location of a band (identified by the
        band_number) in a detector array. Filter 1 is on the leading
        edge of the array.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="first_sampling_parameter_value">
    <xs:annotation>
      <xs:documentation>The first_sampling_parameter_value element
        provides the first value in an ascending series and is therefore
        the minimum value at which a given data item was
        sampled.</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="formation_rule">
    <xs:annotation>
      <xs:documentation>The formation_rule attribute provides a 'user
        friendly' instruction for forming values.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Collapsed">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="full_name">
    <xs:annotation>
      <xs:documentation>The full_name attribute provides the complete
        name for a person and includes titles and
        suffixes.</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="grating_position">
    <xs:annotation>
      <xs:documentation>The grating_position attribute of a spectral
        qube describes the grating position which corresponds to the
        band. Grating positions are usually assigned consecutively from
        0, and increasing position causes increasing wavelength for each
        detector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="group_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="group_length">
    <xs:annotation>
      <xs:documentation>The group_length attribute provides the total
        length, in bytes, of a repeating field and/or group structure.
        It is the number of bytes in the repeating fields/groups plus
        any embedded unused bytes that are also repeated multiplied by
        the number of repetitions.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:group_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="group_location_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="group_location">
    <xs:annotation>
      <xs:documentation>The group_location attribute provides the
        starting position for a Group_Field_Binary within the containing
        Record_Binary or Group_Field_Binary class, in bytes. Location
        '1' denotes the first byte of the containing
        class.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:group_location_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="group_number">
    <xs:annotation>
      <xs:documentation>The group_number attribute provides the position
        of a group, within a series of groups, counting from 1.  If two
        groups within a record are physically separated by one or more
        fields, they have consecutive group numbers; the intervening
        fields are numbered separately.  Groups within a parent group,
        but separated by one or more fields, will also have consecutive
        group numbers.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="groups">
    <xs:annotation>
      <xs:documentation>The groups attribute provides a count of the
        number of (sub)groups within the repeating structure of a group.
        (Subsub)groups within (sub)groups within the group are not
        included in this count.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="high_instrument_saturation">
    <xs:annotation>
      <xs:documentation>The high_instrument_saturation attribute
        specifies a special value whose presence indicates the measuring
        instrument was saturated at the high end. The value must be less
        than the value of the valid_minimum attribute or more than the
        value of the valid_maximum attribute. Values of this attribute
        should be represented in the same data_type as the elements in
        the object with which the Special_Constants class is
        associated.</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="high_representation_saturation">
    <xs:annotation>
      <xs:documentation>The high_representative_saturation attribute
        specifies a special value whose presence indicates the true
        value cannot be represented in the chosen data type and length
        -- in this case being above the allowable range -- which may
        happen during conversion from another data type. The value must
        be less than the value of the valid_minimum attribute or more
        than the value of the valid_maximum attribute. Values of this
        attribute should be represented in the same data_type as the
        elements in the object with which the Special_Constants class is
        associated.</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="id_reference_from">
    <xs:annotation>
      <xs:documentation>The id_reference_from provides the identifier of
        the starting object in a  one directional
        relationship.</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="id_reference_to">
    <xs:annotation>
      <xs:documentation>The id_reference_to provides the identifier of
        the ending object in a one  directional
        relationship.</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="id_reference_type">
    <xs:annotation>
      <xs:documentation>The id_reference_type attribute provides the
        name of an association between two objects.</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="identifier">
    <xs:annotation>
      <xs:documentation>The identifier attribute provides the formal
        name used to refer to an 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="identifier_reference">
    <xs:annotation>
      <xs:documentation>The identifier_reference attribute provides the
        value of an identifier.</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="information_model_version">
    <xs:annotation>
      <xs:documentation>The information_model_version attribute provides
        the  version identification of the PDS Information Model on
        which the label and schema are based.</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="install_note">
    <xs:annotation>
      <xs:documentation>The install note attribute provides a brief
        statement giving particulars about the installation of the
        software.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instance_id">
    <xs:annotation>
      <xs:documentation>The instance_id attribute provides an identifier
        for the single occurrence of an object, for example an
        XPath.</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="institution_name">
    <xs:annotation>
      <xs:documentation>The institution_name attribute provides the name
        of the associated institution.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
    	<xs:pattern value='[a-zA-Z]{1}([-/, ._a-zA-Z0-9]*)'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instrument_desc">
    <xs:annotation>
      <xs:documentation>The instrument_desc attribute describes a given
        instrument.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instrument_host_desc">
    <xs:annotation>
      <xs:documentation>The instrument_host_desc provides a description
        of an instrument host</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instrument_host_id">
    <xs:annotation>
      <xs:documentation>The instrument_host_id attribute provides a
        unique identifier for the host on which an instrument is
        located. This host can be either a spacecraft or an earth base
        (e.g. earth).</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="instrument_host_name">
    <xs:annotation>
      <xs:documentation>The instrument_host_name attribute provides the
        full name of the platform or facility upon which an instrument
        or other device is mounted. For example, the host can be a
        spacecraft, a ground-based telescope, or a
        laboratory.</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="instrument_host_type">
    <xs:annotation>
      <xs:documentation>The instrument_host_type attribute provides the
        type of host on which an instrument is based. For example
        instrument is located on a spacecraft instrument_host_type
        attribute would have the value SPACECRAFT.</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="instrument_host_version_id">
    <xs:annotation>
      <xs:documentation>The instrument_host_version_id attribute
        provides the version of the instrument host.</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="instrument_id">
    <xs:annotation>
      <xs:documentation>The instrument id provides a formal name used to
        refer to an instrument.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instrument_name">
    <xs:annotation>
      <xs:documentation>The instrument_name attribute provides a unique
        name for an instrument.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="instrument_serial_number">
    <xs:annotation>
      <xs:documentation>The instrument serial number element provides
        the manufacturer's serial number assigned to an instrument. This
        number may be used to uniquely identify a particular instrument
        for tracing its components or determining its calibration
        history, for example.</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="instrument_type">
    <xs:annotation>
      <xs:documentation>The instrument_type attribute identifies the
        type of an instrument. Example values: POLARIMETER
        SPECTROMETER</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="instrument_version_id">
    <xs:annotation>
      <xs:documentation>The Instrument_Version_Id element identifies the
        specific model of an instrument used to obtain data. For
        example, this keyword could be used to distinguish between an
        engineering model of a camera used to acquire test data, and a
        flight model of a camera used to acquire science data during a
        mission.</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="interface_type">
    <xs:annotation>
      <xs:documentation>The interface type attribute identifies the
        class of interconnection provided.</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="invalid_constant">
    <xs:annotation>
      <xs:documentation>The invalid_constant attribute provides a value
        that indicates the original value was outside the valid range
        for the parameter.</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="kernel_type">
    <xs:annotation>
      <xs:documentation>The kernel_type attribute identifies the type of
        SPICE kernel.</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="keyword">
    <xs:annotation>
      <xs:documentation>The keyword attribute provides one or more words
        to be used for  keyword search.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="language">
    <xs:annotation>
      <xs:documentation>The language attribute provides the language
        used for definition and designation of the
        term.</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="last_modification_date_time">
    <xs:annotation>
      <xs:documentation>The last_modification_date_time attribute gives
        the most recent date and time that a change was
        made.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="last_sampling_parameter_value">
    <xs:annotation>
      <xs:documentation>The last_sampling_parameter_value element
        provides the last value in an ascending series and is therefore
        the maximum value at which a given data item was
        sampled.</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="ldd_version_id">
    <xs:annotation>
      <xs:documentation>The ldd_version_id attribute provides the
        version of the Local Data Dictionary.</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="lid_reference">
    <xs:annotation>
      <xs:documentation>The lid_reference attribute provides the
        logical_identifier for a  product.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_LID">
  <!-- format="urn:xxx:yyy:zzzz" -->
    	<xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="lidvid_reference">
    <xs:annotation>
      <xs:documentation>The lidvid_reference attribute provides the
        logical_identifier plus version_id, which uniquely identifies a
        product.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_LIDVID">
  <!-- format="urn:xxx:yyy:zzzz::M.n" -->
    	<xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}::\p{Nd}+\.\p{Nd}+'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="line_display_direction">
    <xs:annotation>
      <xs:documentation>The line_display_direction element is the
        preferred orientation of lines within an image for viewing on a
        display device. Note that if this keyword is present in a label,
        the sample_display_direction keyword must also be present and
        must contain a value orthogonal to the value selected for this
        keyword.</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="local_identifier">
    <xs:annotation>
      <xs:documentation>The local_identifier attribute provides a
        character string which uniquely identifies the containing object
        within the label.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Local_Identifier">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_identifier_reference">
    <xs:annotation>
      <xs:documentation>The local_identifier_reference attribute
        provides the value of the local_identifier of the entity
        described by the referencing class. Note that a local_identifier
        attribute, with the same value as this
        local_identifier_reference, must be present within the
        label.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Local_Identifier_Reference">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_mean_solar_time">
    <xs:annotation>
      <xs:documentation>The local_mean_solar_time attribute provides the
        hour angle of the fictitious mean Sun at a fixed point on a
        rotating solar system body.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="8"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_reference_type">
    <xs:annotation>
      <xs:documentation>The local_reference_type attribute provides the
        name of an association between an entity identified by a
        local_identifier_reference and another corresponding entity
        identified by a local_identifier. The values for the
        local_reference_type are expected to be enumerated for
        appropriate contexts in the Schematron files of local (i.e.,
        discipline and mission) data dictionaries.</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="local_true_solar_time">
    <xs:annotation>
      <xs:documentation>The local_true_solar_time (LTST) attribute
        provides the local time on a rotating solar system body where
        LTST is 12 h at the sub-solar point (SSP) and increases 1 h for
        each 15 degree increase in east longitude away from the SSP for
        prograde rotation.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="8"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="logical_identifier">
    <xs:annotation>
      <xs:documentation>A logical identifier identifies the set of all
        versions of an object. It is an object identifier without a
        version.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_LID">
  <!-- format="urn:xxx:yyy:zzzz" -->
    	<xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="low_instrument_saturation">
    <xs:annotation>
      <xs:documentation>The low_instrument_saturation attribute
        specifies a special value whose presence indicates the measuring
        instrument was saturated at the low end. The value must be less
        than the value of the valid_minimum attribute. Values of this
        attribute should be represented in the same data_type as the
        elements in the object with which the Special_Constants class is
        associated.</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="low_representation_saturation">
    <xs:annotation>
      <xs:documentation>The low_representative_saturation attribute
        specifies a special value whose presence indicates the true
        value cannot be represented in the chosen data type and length
        -- in this case being below the allowable range -- which may
        happen during conversion from another data type. The value must
        be less than the value of the valid_minimum attribute. Values of
        this attribute should be represented in the same data_type as
        the elements in the object with which the Special_Constants
        class is associated.</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="manifest_checksum">
    <xs:annotation>
      <xs:documentation>The manifest checksum provides the checksum for
        the manifest file.</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="manifest_url">
    <xs:annotation>
      <xs:documentation>The manifest url provides the URL to the
        manifest file.</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="maximum">
    <xs:annotation>
      <xs:documentation>The maximum attribute provides the largest
        stored value which appears in the field over all records (empty
        fields and Special_Constants values are
        excluded).</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_characters">
    <xs:annotation>
      <xs:documentation>The maximum_characters attribute provides the
        upper, inclusive bound on the number of
        characters.</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="maximum_field_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_field_length">
    <xs:annotation>
      <xs:documentation>The maximum_field_length attribute sets an
        upper, inclusive bound on the number of bytes in the
        field.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:maximum_field_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_occurrences">
    <xs:annotation>
      <xs:documentation>The maximum occurrences attribute indicates the
        number of times something may occur. It is also called the
        maximum cardinality. The asterisk character is used as a value
        to indicate that no upper bound exists.</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="maximum_record_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_record_length">
    <xs:annotation>
      <xs:documentation>The maximum_record_length attribute provides the
        maximum length of a record, including the record
        delimiter.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:maximum_record_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="maximum_scaled_value">
    <xs:annotation>
      <xs:documentation>The maximum_scaled_value attribute provides the
        maximum value after application of scaling_factor and
        value_offset (see their definitions; maximum_scaled_value is the
        maximum of Ov).</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_value">
    <xs:annotation>
      <xs:documentation>The maximum_value attribute provides the upper,
        inclusive bound on the value.</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="md5_checksum">
    <xs:annotation>
      <xs:documentation>The md5_checksum attribute is the 32-character
        hexadecimal number computed using the MD5 algorithm for the
        contiguous bytes of single digital object (as stored) or for an
        entire file.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_MD5_Checksum">
  <!-- format="0123456789abcdef" -->
    	<xs:pattern value='[0-9a-fA-F]{32}'/>
     <xs:minLength value="32"/>
     <xs:maxLength value="32"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="mean">
    <xs:annotation>
      <xs:documentation>The mean attribute provides the sum of the
        stored field values divided by the number of values in all
        records (empty fields and Special_Constants values are excluded
        from both the sum and the count).</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="median">
    <xs:annotation>
      <xs:documentation>The median attribute provides the number
        separating the larger half of stored field values from the
        algebraically smaller half over all records (empty fields and
        Special_Constants values are excluded from the
        sort).</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="medium_type">
    <xs:annotation>
      <xs:documentation>The medium_type attribute identifies the
        physical storage medium for a data volume. Examples: CD-ROM,
        CARTRIDGE TAPE.</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="member_status">
    <xs:annotation>
      <xs:documentation>The member_status attribute indicates whether
        the collection is primary and whether the
        file_specification_name has been provided for the
        product_collection 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="minimum">
    <xs:annotation>
      <xs:documentation>The minimum attribute provides the algebraically
        smallest stored value which appears in the field over all
        records (empty fields and Special_Constants values are
        excluded).</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_characters">
    <xs:annotation>
      <xs:documentation>The minimum_characters attribute provides the
        lower, inclusive bound on the number of
        characters.</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="minimum_occurrences">
    <xs:annotation>
      <xs:documentation>The minimum occurrences attribute indicates the
        number of times something may occur. It is also called the
        minimum cardinality.</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="minimum_scaled_value">
    <xs:annotation>
      <xs:documentation>The minimum_scaled_value attribute provides the
        minimum value after application of scaling_factor and
        value_offset (see their definitions; minimum_scaled_value is the
        minimum of Ov).</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_value">
    <xs:annotation>
      <xs:documentation>The minimum_value attribute provides the lower
        inclusive bound on the value.</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="missing_constant">
    <xs:annotation>
      <xs:documentation>The missing_constant attribute provides a value
        that indicates the original value was missing, such as due to a
        gap in coverage.</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="mission_desc">
    <xs:annotation>
      <xs:documentation>The mission_desc attribute summarizes major
        aspects of a planetary mission or project, including the number
        and type of spacecraft, the target body or bodies and major
        accomplishments.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="mission_name">
    <xs:annotation>
      <xs:documentation>The mission_name attribute identifies a major
        planetary mission or project. A given planetary mission may be
        associated with one or more spacecraft.</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="mission_objectives_summary">
    <xs:annotation>
      <xs:documentation>The mission_objectives_summary attribute
        describes the major scientific objectives of a planetary mission
        or project.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="mission_start_date">
    <xs:annotation>
      <xs:documentation>The mission_start_date attribute provides the
        date of the beginning of a mission in UTC system
        format.</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="mission_stop_date">
    <xs:annotation>
      <xs:documentation>The mission_stop_date attribute provides the
        date of the end of a mission in UTC system
        format.</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="model_id">
    <xs:annotation>
      <xs:documentation>The model_id attribute helps discriminate
        instrument hardware. For example "flight", "engineering", or
        "proto" have been 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="model_object_id">
    <xs:annotation>
      <xs:documentation>The model_object_id attribute provides the
        unique identifier of a class, attribute, or value that is
        defined in the information model.</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="model_object_type">
    <xs:annotation>
      <xs:documentation>The model_object_type attribute provides a
        classification for a modeled 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="modification_date">
    <xs:annotation>
      <xs:documentation>The modification_date attribute provides date
        the modifications were completed</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_YMD">
  <!-- format="YYYY-MM-DD" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="naif_host_id">
    <xs:annotation>
      <xs:documentation>The naif_host_id element provides the numeric ID
        used within the SPICE system to identify the spacecraft,
        spacecraft structure or science instrument.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="naif_instrument_id">
    <xs:annotation>
      <xs:documentation>The naif_instrument_id element provides the
        numeric ID used within the SPICE system to identify the
        spacecraft, spacecraft structure or science
        instrument.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="name">
    <xs:annotation>
      <xs:documentation>The name attribute provides a word or
        combination of words by which the Agency is
        known.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="namespace_id">
    <xs:annotation>
      <xs:documentation>The namespace_id attribute provides the
        abbreviation of the XML schema namespace container for this 
        logical grouping of classes and attributes.  It is assigned by
        the steward.</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="nillable_flag">
    <xs:annotation>
      <xs:documentation>The nillable_flag attribute indicates whether an
        attribute is allowed to take on nil as a
        value.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="not_applicable_constant">
    <xs:annotation>
      <xs:documentation>The not_applicable_constant attribute provides a
        value that indicates the parameter is not
        applicable.</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="nssdc_collection_id">
    <xs:annotation>
      <xs:documentation>An NSSDC Collection ID is an NSSDC assigned
        identifier for a collection of PDS datasets.</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="object_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="object_length">
    <xs:annotation>
      <xs:documentation>The object_length attribute provides the length
        of the digital object in bytes.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:object_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="offset_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="offset">
    <xs:annotation>
      <xs:documentation>The offset attribute provides the displacement
        of the object starting position from the beginning of the parent
        structure (file, record, etc.).  If there is no displacement,
        offset=0.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:offset_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="orbit_direction">
    <xs:annotation>
      <xs:documentation>The orbit_direction element provides the
        direction of movement along the orbit about the primary as seen
        from the north pole of the 'invariable plane of the solar
        system', which is the plane passing through the center of mass
        of the solar system and perpendicular to the angular momentum
        vector of the solar system orbit motion. PROGRADE for positive
        rotation according to the right-hand rule, RETROGRADE for
        negative rotation.</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="original_band">
    <xs:annotation>
      <xs:documentation>The original_band attribute of a spectral qube
        provides the sequence of band numbers in the qube relative to
        some original qube. In the original qube, the values are just
        consecutive integers beginning with 1. In a qube which contains
        a subset of the bands in the original qube, the values are the
        original sequence numbers from that qube.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="512"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="os_version">
    <xs:annotation>
      <xs:documentation>The OS version attribute indicates the version
        of an operating system.</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="parsing_standard_id">
    <xs:annotation>
      <xs:documentation>The parsing_standard_id attribute provides the
        formal name of a standard used for the structure of a Parsable
        Byte Stream digital 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="pattern">
    <xs:annotation>
      <xs:documentation>The pattern attribute provides a symbolic
        instruction for forming values.</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="phone_book_flag">
    <xs:annotation>
      <xs:documentation>The phone_book_flag attribute indicates whether
        or not this person should be included in the phone
        book.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="postal_address_text">
    <xs:annotation>
      <xs:documentation>The postal address text attribute provides a
        mailing address.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="preferred_flag">
    <xs:annotation>
      <xs:documentation>The preferred_flag indicates whether this entry
        is  preferred over all other entries.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Boolean">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="primary_body_name">
    <xs:annotation>
      <xs:documentation>The primary_body_name attribute identifies the
        primary body with which a given target body is associated as a
        secondary body.</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="processing_level">
    <xs:annotation>
      <xs:documentation>The processing_level attribute provides a broad
        classification of data processing level.</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="processing_level_id">
    <xs:annotation>
      <xs:documentation>The processing_level_id attribute provides a
        broad indication of data processing level.</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="producer_full_name">
    <xs:annotation>
      <xs:documentation>The producer_full_name attribute provides the
        full_name of the individual mainly responsible for the
        production of the data set. This individual does not have to be
        registered with the PDS.</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="product_class">
    <xs:annotation>
      <xs:documentation>The product_class attribute provides the name of
        the product class.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="program_notes_id">
    <xs:annotation>
      <xs:documentation>The program notes id attribute provides an
        identifier to a brief statement giving particulars about a
        software program.</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="programmers_manual_id">
    <xs:annotation>
      <xs:documentation>The programmers manual id attribute provides an
        identifier to a document giving instruction about the
        programming of the software.</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="property_map_subtype">
    <xs:annotation>
      <xs:documentation>The property_map_subtype attribute indicates the
        subcategory of the property map.</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="property_map_type">
    <xs:annotation>
      <xs:documentation>The property_map_type attribute indicates the
        category of the property map.</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="property_name">
    <xs:annotation>
      <xs:documentation>The property name attribute provides a word or a
        combination of words by which a property is
        known.</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="property_value">
    <xs:annotation>
      <xs:documentation>The property value attribute provides the value
        assigned to a property.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="provider_site_id">
    <xs:annotation>
      <xs:documentation>The provider site id attribute provides an
        identifier for the provider.</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="publication_date">
    <xs:annotation>
      <xs:documentation>The publication_date attribute provides the date
        on which an item was published.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_YMD">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="publication_year">
    <xs:annotation>
      <xs:documentation>The publication_year attribute provides the year
        in which the product should be considered as published.
        Generally, this will be the year the data were declared
        "Certified" or "Archived".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_YMD">
  <!-- format="YYYY-MM-DD" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="purpose">
    <xs:annotation>
      <xs:documentation>The purpose attribute provides an indication of
        the primary purpose of the observations
        included.</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="record_delimiter">
    <xs:annotation>
      <xs:documentation>The record_delimiter attribute provides the
        character or characters used to indicate the end of a
        record.</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="record_length_WO_Units">
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="record_length">
    <xs:annotation>
      <xs:documentation>The record_length attribute provides the length
        of a record, including a record delimiter, if
        present.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:record_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Storage" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="records">
    <xs:annotation>
      <xs:documentation>The records attribute provides a count of
        records.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reference_frame_id">
    <xs:annotation>
      <xs:documentation>The reference frame id attribute identifies a
        reference frame, an origin and set of axes, the physical
        realization of a reference system, i.e., the reference frame
        orientation and axes are established by the reported coordinates
        of datum points in the reference system.</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="reference_text">
    <xs:annotation>
      <xs:documentation>The reference_text attribute provides a complete
        bibliographic citation for a published work.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Text_Collapsed">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="reference_type">
    <xs:annotation>
      <xs:documentation>The reference_type attribute provides the name
        of the association.</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="referenced_identifier">
    <xs:annotation>
      <xs:documentation>The referenced identifier attribute provides the
        identifier of the entify being referenced.</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="registered_by">
    <xs:annotation>
      <xs:documentation>The registered_by attribute provides the name of
        the person or organization that registered the
        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="registration_authority">
    <xs:annotation>
      <xs:documentation>The registration_authority attribute provides
        the name of the group  responsible for the terminological
        entry.</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="registration_authority_id">
    <xs:annotation>
      <xs:documentation>The registration_authority_id attribute provides
        the name of the organization that registered the
        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="registration_date">
    <xs:annotation>
      <xs:documentation>The registration_date attribute provides the
        date of registration within the PDS system.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_YMD">
  <!-- format="YYYY-MM-DD" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="release_date">
    <xs:annotation>
      <xs:documentation>The release_date attribute provides the date
        that the product was released.</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="repetitions">
    <xs:annotation>
      <xs:documentation>The repetitions attribute provides the number of
        times a set of repeating fields and, possibly, (sub)groups is
        replicated within a group.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="revision_id">
    <xs:annotation>
      <xs:documentation>The revision_id attribute provides the revision
        level of a document, which may be set outside PDS and may be
        different from its version_id.</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="rotation_direction">
    <xs:annotation>
      <xs:documentation>The rotation_direction element provides the
        direction of rotation as viewed from the north pole of the
        'invariable plane of the solar system', which is the plane
        passing through the center of mass of the solar system and
        perpendicular to the angular momentum vector of the solar
        system. The value for this element is PROGRADE for counter
        -clockwise rotation, RETROGRADE for clockwise rotation and
        SYNCHRONOUS for satellites which are tidally locked with the
        primary. Sidereal_rotation_period and rotation_direction_type
        are unknown for a number of satellites, and are not applicable
        (N/A) for satellites which are tumbling.</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="rule_assign">
    <xs:annotation>
      <xs:documentation>The rule_assign attribute provides an assignment
        statement for a schematron rule.</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="rule_context">
    <xs:annotation>
      <xs:documentation>The rule_context attribute provides the xpath
        for the rule.</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="rule_description">
    <xs:annotation>
      <xs:documentation>The rule_description attribute provides a
        description of the rule statement suitable for  user
        documentation.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Collapsed">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="rule_message">
    <xs:annotation>
      <xs:documentation>The rule_message attribute provides a message to
        be displayed by the schematron processor when the test condition
        is  met.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Collapsed">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="rule_test">
    <xs:annotation>
      <xs:documentation>The rule_test attribute provides the body of the
        statement to be executed by the schematron
        processor.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Collapsed">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="rule_type">
    <xs:annotation>
      <xs:documentation>The rule_type attribute indicates the type of
        statement to be executed.</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="rule_value">
    <xs:annotation>
      <xs:documentation>The rule_value attribute provides values to be
        used to complete certain schematon statements.</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="sample_display_direction">
    <xs:annotation>
      <xs:documentation>The sample_display_direction attribute provides
        the preferred orientation of samples within a line for viewing
        on a display device. The attribute sample_display_direction must
        be used with line_display_direction.</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="sampling_parameter_base">
    <xs:annotation>
      <xs:documentation>The sampling_parameter_base attribute provides
        the base b by which exponentials are calculated in the
        definition of the attribute
        sampling_parameter_interval.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sampling_parameter_interval">
    <xs:annotation>
      <xs:documentation>The sampling_parameter_interval attribute
        provides the spacing of points at which data are sampled and at
        which values for an instrument or other parameter are available.
        If x1 and xn are the first and last sampling parameter values,
        respectively, xn is larger than x1, n is the number of sampling
        parameters, the caret symbol (^) denotes exponentiation, and b,
        a positive real number, is the base for exponentiation, then the
        value of sampling_parameter_interval is: (xn-x1)/(n-1) (for
        sampling_parameter_scale = Linear), (xn/x1)^(1/(n-1)) (for
        sampling_parameter_scale = Logarithmic), (b^xn-b^x1)/(n-1) (for
        sampling_parameter_scale = Exponential).</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_parameter_name">
    <xs:annotation>
      <xs:documentation>The sampling_parameter_name element provides the
        name of the parameter which determines the sampling interval of
        a particular instrument or dataset parameter. For example,
        magnetic field intensity is sampled in time increments, and a
        spectrum is sampled in wavelength or
        frequency.</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="sampling_parameter_scale">
    <xs:annotation>
      <xs:documentation>The sampling_parameter_scale element specifies
        whether the sampling interval is linear or something other such
        as logarithmic.</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="sampling_parameter_unit">
    <xs:annotation>
      <xs:documentation>The sampling_parameter_unit element specifies
        the unit of measure of associated data sampling
        parameters.</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="sampling_parameters">
    <xs:annotation>
      <xs:documentation>The sampling_parameters attribute provides the
        total number of sampling parameter values between
        first_sampling_parameter_value and last_sampling_parameter_value
        (inclusive).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="2"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="saturated_constant">
    <xs:annotation>
      <xs:documentation>The saturated_constant attribute provides a
        value that indicates the original value was invalid because of
        sensor saturation.</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="scaling_factor">
    <xs:annotation>
      <xs:documentation>The scaling_factor attribute is the scaling
        factor to be applied to each stored value in order to recover an
        original  value. The observed value (Ov) is calculated from the
        stored value (Sv) thus: Ov = (Sv * scaling_factor) +
        value_offset. The default value is 1.</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="sequence_number">
    <xs:annotation>
      <xs:documentation>The sequence_number attribute provides a number
        that is used to order axes in an array.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="16"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="serial_number">
    <xs:annotation>
      <xs:documentation>The serial number element provides the assigned
        manufacturer's serial number.</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="service_type">
    <xs:annotation>
      <xs:documentation>The service type attribute identifies the class
        of system function provided.</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="skos_relation_name">
    <xs:annotation>
      <xs:documentation>The attribute skos_relation_name provides a
        meaning of the relationship between two associated
        terms.</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="software_dialect">
    <xs:annotation>
      <xs:documentation>The software dialect attribute indicates the
        variety of a language used to write the
        software.</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="software_format_type">
    <xs:annotation>
      <xs:documentation>The software format type attribute classifies
        the format of the software.</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="software_id">
    <xs:annotation>
      <xs:documentation>The software id attribute provides a formal name
        used to refer to the software.</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="software_language">
    <xs:annotation>
      <xs:documentation>The software language attribute identifies the
        language used to write the software.</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="software_type">
    <xs:annotation>
      <xs:documentation>The software type attribute identifies the class
        of which the software is a member.</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="software_version_id">
    <xs:annotation>
      <xs:documentation>The software_version_id attribute provides the
        version of the software.</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="solar_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="solar_longitude">
    <xs:annotation>
      <xs:documentation>The solar_longitude attribute provides the angle
        between the body-Sun line at the time of interest and the
        body-Sun line at its vernal equinox.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:solar_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="sort_name">
    <xs:annotation>
      <xs:documentation>The sort name attribute provides a string to be
        used in ordering. For people, the last name (surname) is
        typically first, followed by a comma and then other
        names.</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="specified_unit_id">
    <xs:annotation>
      <xs:documentation>The specified_unit_id attribute provides the
        unit chosen for maximum_value, minimum_value, and
        permissible_value.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="standard_deviation">
    <xs:annotation>
      <xs:documentation>The standard_deviation attribute provides the
        standard deviation of values in the associated object; empty and
        Special_Constants values are excluded.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="start_bit">
    <xs:annotation>
      <xs:documentation>The start_bit attribute provides the position of
        the first bit within an ordered sequence of
        bits.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="start_bit_location">
    <xs:annotation>
      <xs:documentation>The start_bit_location attribute provides the
        position of the first bit in a bit field relative to the first
        bit in the parent packed data field. Bytes are sequential and
        bits are numbered continuously across byte boundaries within a
        single bit field. The first bit position in the packed data
        field is "1".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="start_date">
    <xs:annotation>
      <xs:documentation>The start_date attribute provides the date when
        an activity began.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_YMD">
  <!-- format="YYYY-MM-DD" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="start_date_time">
    <xs:annotation>
      <xs:documentation>The start_date_time attribute provides the date
        and time at the beginning of the data set.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_Time_YMD_UTC">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="start_time">
    <xs:annotation>
      <xs:documentation>The start_time attribute provides the date and
        time of the beginning of an event or observation (whether it be
        a spacecraft, ground-based, or system event) in
        UTC.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_Time">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="starting_point_identifier">
    <xs:annotation>
      <xs:documentation>The starting_point attribute provides the
        local_identifier of the object to be accessed
        first.</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="steward_id">
    <xs:annotation>
      <xs:documentation>The steward attribute indicates the person or
        organization that manages a set of registered attributes and
        classes.</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="stop_bit">
    <xs:annotation>
      <xs:documentation>The stop-bit attribute provides the location of
        the last bit in this bit field relative to the first bit in the
        packed_data field.  Bits are numbered continuously across byte
        boundaries.  The first bit location in the packed data field is
        "1".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="stop_bit_location">
    <xs:annotation>
      <xs:documentation>The stop_bit_location attribute provides the
        position of the last bit in a bit field relative to the first
        bit in the parent packed data field. Bytes are sequential and
        bits are numbered continuously across byte boundaries within a
        single bit field. The first bit position in the packed data
        field is "1".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="stop_date">
    <xs:annotation>
      <xs:documentation>The stop_date attribute provides the date when
        an activity ended.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_YMD">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="stop_date_time">
    <xs:annotation>
      <xs:documentation>The stop_date_time attribute provides the date
        and time at the end of the data set.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_Time_YMD_UTC">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="stop_time">
    <xs:annotation>
      <xs:documentation>The stop_time element provides the date and time
        of the end of an observation or event (whether it be a
        spacecraft, ground-based, or system event) in
        UTC.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:ASCII_Date_Time">
        <xs:attribute name="nilReason" type="pds:nil_reason" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="submitter_name">
    <xs:annotation>
      <xs:documentation>The submitter_name attribute provides the name
        of the author, who submits the item to the
        steward.</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="subscription_id">
    <xs:annotation>
      <xs:documentation>The subscriber_id provides the identification of
        a PDS subscription.</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="subtype">
    <xs:annotation>
      <xs:documentation>The subtype attribute is a special type included
        within the general type. It provides more specific clarifying
        and/or supplemental information as to the nature of the
        type.</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="supported_architecture_note">
    <xs:annotation>
      <xs:documentation>The supported architecture note attribute
        identifies  the hardware architecture that can process the
        software.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="supported_environment_note">
    <xs:annotation>
      <xs:documentation>The supported environment note attribute
        identifies  the environment  that can process the
        software.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="supported_operating_system_note">
    <xs:annotation>
      <xs:documentation>The supported operating system note attribute
        identifies the Operating System that supports the
        software.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="system_requirements_note">
    <xs:annotation>
      <xs:documentation>The system requirements note attribute
        identifies what is necessary to process the
        software.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="target_desc">
    <xs:annotation>
      <xs:documentation>The target_desc attribute describes the
        characteristics of a particular target.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="target_name">
    <xs:annotation>
      <xs:documentation>The target_name attribute provides a name by
        which the target is formally known.</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="target_type">
    <xs:annotation>
      <xs:documentation>The target_type attribute identifies the type of
        a named target.</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="team_name">
    <xs:annotation>
      <xs:documentation>The team_name attribute provides the name of a
        group of individuals working together.</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="telephone_number">
    <xs:annotation>
      <xs:documentation>The telephone_number attribute provides a
        telephone number in  international notation in compliance with
        the E.164 telephone number format
        recommendation.</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="telescope_altitude_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="telescope_altitude">
    <xs:annotation>
      <xs:documentation>The telescope_altitude attribute provides the
        height of the telescope above a plane tangent to the reference
        figure (or datum) at the telescope location.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:telescope_altitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

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

  <xs:complexType name="telescope_latitude">
    <xs:annotation>
      <xs:documentation>The telescope_latitude attribute provides the
        angular distance of the telescope north (positive) from the
        equator, measured on the meridian of the
        telescope.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:telescope_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

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

  <xs:complexType name="telescope_longitude">
    <xs:annotation>
      <xs:documentation>The telescope_longitude attribute provides the
        angular distance of the telescope east (positive), measured by
        the angle contained between the meridian of the telescope and
        the reference figure (or datum) prime
        meridian.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="pds:telescope_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="title">
    <xs:annotation>
      <xs:documentation>The title attribute provides a short,
        descriptive text string suitable for use as a title or brief
        description in a display or listing of
        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="transfer_manifest_checksum">
    <xs:annotation>
      <xs:documentation>The transfer manifest checksum provides the
        checksum for the transfer manifest file.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_MD5_Checksum">
  <!-- format="0123456789abcdef" -->
    	<xs:pattern value='[0-9a-fA-F]{32}'/>
     <xs:minLength value="32"/>
     <xs:maxLength value="32"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="type">
    <xs:annotation>
      <xs:documentation>The type attribute provides a classification for
        the resource.</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="type_description">
    <xs:annotation>
      <xs:documentation>The type_description attribute provides a
        description of the object's type.</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="unit">
    <xs:annotation>
      <xs:documentation>The unit attribute provides the unit of
        measurement.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:UTF8_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="unit_of_measure_type">
    <xs:annotation>
      <xs:documentation>The unit_of_measure_type attribute identifies
        the class from which the attribute being defined in this data
        dictionary draws its possible expressions for
        units.</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="unknown_constant">
    <xs:annotation>
      <xs:documentation>The unknown_constant attribute provides a value
        that indicates the original value was unknown.</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="update_purpose">
    <xs:annotation>
      <xs:documentation>The update purpose attribute indicates the
        intended objective of this update.</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="url">
    <xs:annotation>
      <xs:documentation>The url attribute provides a Uniform Resource
        Identifier (URI) that specifies where a resource is available
        and the mechanism for retrieving it.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_AnyURI">
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="users_manual_id">
    <xs:annotation>
      <xs:documentation>The users manual id attribute provides a formal
        name used to refer to a manual that describes how to use the
        software.</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="valid_maximum">
    <xs:annotation>
      <xs:documentation>The valid_maximum attribute specifies the
        maximum valid value in the field or digital object with which
        the Special_Constants class is associated. Values above the
        valid_maximum have a special meaning. Values of this attribute
        should be represented in the same data_type as the elements in
        the object or field described. (Note that PDS3 had no
        qube-related valid_maximum values because all special constants
        were set below the valid_minimum.)</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="valid_minimum">
    <xs:annotation>
      <xs:documentation>The valid_minimum attribute specifies the
        minimum valid value in the field or digital object with which
        the Special_Constants class is associated. Values below the
        valid_minimum have a special meaning. Values of this attribute
        should be represented in the same data_type as the elements in
        the object or field described.</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="validation_format">
    <xs:annotation>
      <xs:documentation>The validation_format attribute gives the
        magnitude and precision of the data value with the expectation
        that both will be validated exactly. A subset of the standard
        POSIX string formats is allowed. See the PDS Standards Reference
        section "Field Formats" for details.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
    	<xs:pattern value='%[\+,-]?[0-9]+(\.([0-9]+))?[doxfeEs]'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="value">
    <xs:annotation>
      <xs:documentation>The value attribute provides a single, allowed
        numerical or character string value.</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="value_begin_date">
    <xs:annotation>
      <xs:documentation>The value_begin_date attribute provides the
        first date on which the permissible value is in
        effect.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="value_data_type">
    <xs:annotation>
      <xs:documentation>The value_data_type attribute is used in a data
        dictionary to specify the data type of an attribute's
        value.</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="value_end_date">
    <xs:annotation>
      <xs:documentation>The value_end_date attribute provides the last
        date on which the permissible value is in
        effect.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSSSS(Z)" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="value_meaning">
    <xs:annotation>
      <xs:documentation>The value_meaning attribute provides the
        meaning, or semantic content, of the associated permissible
        value.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="value_offset">
    <xs:annotation>
      <xs:documentation>The value_offset attribute is the offset to be
        applied to each stored value in order to recover an original 
        value. The observed value (Ov) is calculated from the stored
        value (Sv) thus: Ov = (Sv * scaling_factor) + value_offset. The
        default value is 0.</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="vector_components">
    <xs:annotation>
      <xs:documentation>The vector_components attribute provides a count
        of vector components.</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="version_id">
    <xs:annotation>
      <xs:documentation>The version_id attribute provides the version of
        the product, expressed in the PDS [m.n]
        notation.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
    	<xs:pattern value='([0-9]+)(\.){1}([0-9]+)'/>
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="volume_de_fullname">
    <xs:annotation>
      <xs:documentation>The volume_de_fullname attribute provide the
        full name of the data engineer.</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="volume_format">
    <xs:annotation>
      <xs:documentation>The volume_format attribute identifies the
        logical format used in writing a data volume.</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="volume_id">
    <xs:annotation>
      <xs:documentation>The volume_id attribute provides a unique
        identifier for a data volume. Example:
        MG_1001.</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="volume_name">
    <xs:annotation>
      <xs:documentation>The volume_name attribute contains the name of a
        data volume.</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="volume_series_name">
    <xs:annotation>
      <xs:documentation>The volume_series_name element provides a full,
        formal name that describes a broad categorization of data
        products or data sets related to a planetary body or a research
        campaign (e.g. International Halley Watch). A volume series
        consists of one or more volume sets that represent data from one
        or more missions or campaigns.</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="volume_set_id">
    <xs:annotation>
      <xs:documentation>The volume_set_id attribute identifies a data
        volume or a set of volumes. Volume sets are normally considered
        as a single orderable entity. Examples: USA_NASA_PDS_MG_1001,
        USA_NASA_PDS_GR_0001_TO_GR_0009</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="volume_set_name">
    <xs:annotation>
      <xs:documentation>The volume_set_name element provides the full,
        formal name of one or more data volumes containing a single data
        set or a collection of related data sets. Volume sets are
        normally considered as a single orderable
        entity.</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="volume_size">
    <xs:annotation>
      <xs:documentation>The volume size attribute provide the number of
        bytes in the volume.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="volume_version_id">
    <xs:annotation>
      <xs:documentation>The volume_version_id attribute identifies the
        version of a data volume. All original volumes should use a
        volume_version_id of 'Version 1'.</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="volumes">
    <xs:annotation>
      <xs:documentation>The volumes element provides the number of
        physical data volumes contained in a volume
        set.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="wavelength_range">
    <xs:annotation>
      <xs:documentation>The wavelength range attribute specifies the
        wavelength range over which the data were collected or which
        otherwise characterizes the observation(s). Boundaries are
        vague, and there is overlap.</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="x">
    <xs:annotation>
      <xs:documentation>The x attribute provides the value of the x
        coordinate in a position vector.</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="y">
    <xs:annotation>
      <xs:documentation>The y attribute provides the value of the y
        coordinate in a position vector.</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="z">
    <xs:annotation>
      <xs:documentation>The z attribute provides the value of the z
        coordinate in a position vector.</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:annotation>
      <xs:documentation>This section contains the base data types and any constraints those types
        may have. These types should be reused across schemas to promote compatibility. This is one
        component of the common dictionary and thus falls into the common namespace.
      </xs:documentation>
    </xs:annotation>

    <xs:simpleType name="ASCII_AnyURI">
      <xs:restriction base="xs:anyURI">
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_BibCode">
      <xs:restriction base="xs:string">
        <xs:pattern value='[0-9]{4}[A-Za-z0-9&amp;\.]{5}[A-Za-z0-9\.]{9}[A-Z\.]'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Boolean">
      <xs:restriction base="xs:boolean">
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_DOI">
      <xs:restriction base="xs:string">
        <xs:pattern value='10\.\S+/\S+'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_DOY">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(Z?)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,4}))?(Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-4]))(Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24:00((:00((\.0+)?))?)(Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,4}))?(Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-4]))(Z)?'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24:00((:00((\.0+)?))?)(Z)?'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time_DOY">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,6}))?(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-4]))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24((:00)|(:00:00))?(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24:00:00(\.([0]{1,6}))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(Z?)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time_DOY_UTC">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,6}))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-4]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24((:00)|(:00:00))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24:00:00(\.([0]{1,6}))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(Z)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time_UTC">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,4}))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)(([0-1][0-9])|(2[0-4]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(T)24:00((:00((\.0+)?))?)(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3(([0-5][0-9])|(6[0-6]))))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,4}))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-4]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24:00((:00((\.0+)?))?)(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(Z)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time_YMD">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3]))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,6}))?(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24((:00)|(:00:00))?(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24:00:00(\.([0]{1,6}))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(Z?)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_Time_YMD_UTC">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3]))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)(\.([0-9]{1,6}))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24((:00)|(:00:00))?(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(T)24:00:00(\.([0]{1,6}))(Z)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(Z)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Date_YMD">
      <xs:restriction base="xs:string">
        <xs:pattern value='(-)?[0-9]{4}(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))(Z?)'/>
        <xs:pattern value='(-)?[0-9]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))(Z?)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Directory_Path_Name">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_File_Name">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_File_Specification_Name">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Integer">
      <xs:restriction base="xs:long">
        <xs:minInclusive value="-9223372036854775808"/>
        <xs:maxInclusive value="9223372036854775807"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_LID">
      <xs:restriction base="pds:ASCII_String_Base_255">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_LIDVID">
      <xs:restriction base="pds:ASCII_String_Base_255">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}::\p{Nd}+\.\p{Nd}+'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_LIDVID_LID">
      <xs:restriction base="pds:ASCII_String_Base_255">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='urn(:[\p{Ll}\p{Nd}\-._]+){3,5}(::\p{Nd}+\.\p{Nd}+)?'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Local_Identifier">
      <xs:restriction base="xs:ID">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Local_Identifier_Reference">
      <xs:restriction base="xs:IDREF">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_MD5_Checksum">
      <xs:restriction base="xs:string">
        <xs:minLength value="32"/>
        <xs:maxLength value="32"/>
        <xs:pattern value='[0-9a-fA-F]{32}'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_NonNegative_Integer">
      <xs:restriction base="xs:unsignedLong">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="18446744073709551615"/>
        <xs:pattern value='[0-9]+'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Numeric_Base16">
      <xs:restriction base="xs:hexBinary">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Numeric_Base2">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='[0-1]{1,255}'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Numeric_Base8">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='[0-7]{1,255}'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Real">
      <xs:restriction base="xs:double">
        <xs:minInclusive value="-1.7976931348623157e308"/>
        <xs:maxInclusive value="1.7976931348623157e308"/>
        <xs:pattern value='(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?'/>
        <xs:pattern value='[^aFIN,]* '/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Short_String_Collapsed">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Short_String_Preserved">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_String">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_String_Base_255">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Text_Collapsed">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Text_Preserved">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:pattern value='\p{IsBasicLatin}*'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_Time">
      <xs:restriction base="xs:string">
        <xs:pattern value='(([0-1][0-9])|(2[0-3])):[0-5][0-9](Z?)'/>
        <xs:pattern value='(([0-1][0-9])|(2[0-3])):[0-5][0-9]:(([0-5][0-9])|60)((\.[0-9]+)|)(Z?)'/>
        <xs:pattern value='(([0-1][0-9])|(2[0-4]))(Z?)'/>
        <xs:pattern value='24:00((:00((\.0+)|))|)(Z?)'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ASCII_VID">
      <xs:restriction base="xs:string">
        <xs:minLength value="3"/>
        <xs:maxLength value="100"/>
        <xs:pattern value='0\.([1-9]|([0-9][0-9]+))'/>
        <xs:pattern value='[1-9][0-9]*'/>
        <xs:pattern value='[1-9][0-9]*\.[0-9]+'/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UTF8_Short_String_Collapsed">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UTF8_Short_String_Preserved">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="255"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UTF8_String">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UTF8_Text_Collapsed">
      <xs:restriction base="xs:token">
        <xs:minLength value="1"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UTF8_Text_Preserved">
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
      </xs:restriction>
    </xs:simpleType>

    <xs:annotation>
      <xs:documentation>This section contains the base Units of Measure.
        These Units of Measure should be reused across schemas to promote compatibility. This is one
        component of the common dictionary and thus falls into the common namespace.
      </xs:documentation>
    </xs:annotation>

    <xs:simpleType name="Units_of_Acceleration">
      <xs:restriction base="xs:string">
        <xs:enumeration value="cm/s**2"></xs:enumeration>
        <xs:enumeration value="km/s**2"></xs:enumeration>
        <xs:enumeration value="m/s**2"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Amount_Of_Substance">
      <xs:restriction base="xs:string">
        <xs:enumeration value="mol"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Angle">
      <xs:restriction base="xs:string">
        <xs:enumeration value="arcmin"></xs:enumeration>
        <xs:enumeration value="arcsec"></xs:enumeration>
        <xs:enumeration value="deg"></xs:enumeration>
        <xs:enumeration value="hr"></xs:enumeration>
        <xs:enumeration value="mrad"></xs:enumeration>
        <xs:enumeration value="rad"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Angular_Velocity">
      <xs:restriction base="xs:string">
        <xs:enumeration value="deg/day"></xs:enumeration>
        <xs:enumeration value="deg/s"></xs:enumeration>
        <xs:enumeration value="rad/s"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Area">
      <xs:restriction base="xs:string">
        <xs:enumeration value="m**2"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Current">
      <xs:restriction base="xs:string">
        <xs:enumeration value="A"></xs:enumeration>
        <xs:enumeration value="mA"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Energy">
      <xs:restriction base="xs:string">
        <xs:enumeration value="J"></xs:enumeration>
        <xs:enumeration value="MeV"></xs:enumeration>
        <xs:enumeration value="eV"></xs:enumeration>
        <xs:enumeration value="keV"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Force">
      <xs:restriction base="xs:string">
        <xs:enumeration value="N"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Frame_Rate">
      <xs:restriction base="xs:string">
        <xs:enumeration value="frames/s"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Frequency">
      <xs:restriction base="xs:string">
        <xs:enumeration value="Hz"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Gmass">
      <xs:restriction base="xs:string">
        <xs:enumeration value="km**3s**-2"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Length">
      <xs:restriction base="xs:string">
        <xs:enumeration value="AU"></xs:enumeration>
        <xs:enumeration value="Angstrom"></xs:enumeration>
        <xs:enumeration value="cm"></xs:enumeration>
        <xs:enumeration value="km"></xs:enumeration>
        <xs:enumeration value="m"></xs:enumeration>
        <xs:enumeration value="micrometer"></xs:enumeration>
        <xs:enumeration value="mm"></xs:enumeration>
        <xs:enumeration value="nm"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Map_Scale">
      <xs:restriction base="xs:string">
        <xs:enumeration value="km/pixel"></xs:enumeration>
        <xs:enumeration value="m/pixel"></xs:enumeration>
        <xs:enumeration value="mm/pixel"></xs:enumeration>
        <xs:enumeration value="pixel/deg"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Mass">
      <xs:restriction base="xs:string">
        <xs:enumeration value="g"></xs:enumeration>
        <xs:enumeration value="kg"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Misc">
      <xs:restriction base="xs:string">
        <xs:enumeration value="DN"></xs:enumeration>
        <xs:enumeration value="electron/DN"></xs:enumeration>
        <xs:enumeration value="pixel"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_None">
      <xs:restriction base="xs:string">
        <xs:enumeration value="none"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Optical_Path_Length">
      <xs:restriction base="xs:string">
        <xs:enumeration value="airmass"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Resolution_Angular">
      <xs:restriction base="xs:string">
        <xs:enumeration value="arcsec/pixel"></xs:enumeration>
        <xs:enumeration value="deg/pixel"></xs:enumeration>
        <xs:enumeration value="radian/pixel"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Resolution_Linear">
      <xs:restriction base="xs:string">
        <xs:enumeration value="km/pixel"></xs:enumeration>
        <xs:enumeration value="m/pixel"></xs:enumeration>
        <xs:enumeration value="mm/pixel"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Resolution_Map">
      <xs:restriction base="xs:string">
        <xs:enumeration value="deg/pixel"></xs:enumeration>
        <xs:enumeration value="km/pixel"></xs:enumeration>
        <xs:enumeration value="m/pixel"></xs:enumeration>
        <xs:enumeration value="mm/pixel"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Scale_Angular">
      <xs:restriction base="xs:string">
        <xs:enumeration value="pixel/arcsec"></xs:enumeration>
        <xs:enumeration value="pixel/deg"></xs:enumeration>
        <xs:enumeration value="pixel/radian"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Scale_Linear">
      <xs:restriction base="xs:string">
        <xs:enumeration value="pixel/km"></xs:enumeration>
        <xs:enumeration value="pixel/m"></xs:enumeration>
        <xs:enumeration value="pixel/mm"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pixel_Scale_Map">
      <xs:restriction base="xs:string">
        <xs:enumeration value="pixel/deg"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Pressure">
      <xs:restriction base="xs:string">
        <xs:enumeration value="Pa"></xs:enumeration>
        <xs:enumeration value="bar"></xs:enumeration>
        <xs:enumeration value="hPa"></xs:enumeration>
        <xs:enumeration value="mbar"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Radiance">
      <xs:restriction base="xs:string">
        <xs:enumeration value="W*m**-2*sr**-1"></xs:enumeration>
        <xs:enumeration value="W/(m**2*sr)"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Rates">
      <xs:restriction base="xs:string">
        <xs:enumeration value="counts/bin"></xs:enumeration>
        <xs:enumeration value="kilobits/s"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Solid_Angle">
      <xs:restriction base="xs:string">
        <xs:enumeration value="sr"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Spectral_Irradiance">
      <xs:restriction base="xs:string">
        <xs:enumeration value="SFU"></xs:enumeration>
        <xs:enumeration value="W*m**-2*Hz**-1"></xs:enumeration>
        <xs:enumeration value="W*m**-2*nm**-1"></xs:enumeration>
        <xs:enumeration value="W*m**-3"></xs:enumeration>
        <xs:enumeration value="W/m**2/Hz"></xs:enumeration>
        <xs:enumeration value="W/m**2/nm"></xs:enumeration>
        <xs:enumeration value="W/m**3"></xs:enumeration>
        <xs:enumeration value="uW*cm**-2*um**-1"></xs:enumeration>
        <xs:enumeration value="μW/cm**2/μm"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Spectral_Radiance">
      <xs:restriction base="xs:string">
        <xs:enumeration value="W*m**-2*sr**-1*Hz**-1"></xs:enumeration>
        <xs:enumeration value="W*m**-2*sr**-1*nm**-1"></xs:enumeration>
        <xs:enumeration value="W*m**-2*sr**-1*um**-1"></xs:enumeration>
        <xs:enumeration value="W*m**-3*sr**-1"></xs:enumeration>
        <xs:enumeration value="W/m**2/sr/Hz"></xs:enumeration>
        <xs:enumeration value="W/m**2/sr/nm"></xs:enumeration>
        <xs:enumeration value="W/m**2/sr/μm"></xs:enumeration>
        <xs:enumeration value="W/m**3/sr"></xs:enumeration>
        <xs:enumeration value="uW*cm**-2*sr**-1*um**-1"></xs:enumeration>
        <xs:enumeration value="μW/cm**2/sr/μm"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Storage">
      <xs:restriction base="xs:string">
        <xs:enumeration value="byte"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Temperature">
      <xs:restriction base="xs:string">
        <xs:enumeration value="K"></xs:enumeration>
        <xs:enumeration value="degC"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Time">
      <xs:restriction base="xs:string">
        <xs:enumeration value="day"></xs:enumeration>
        <xs:enumeration value="hr"></xs:enumeration>
        <xs:enumeration value="julian day"></xs:enumeration>
        <xs:enumeration value="microseconds"></xs:enumeration>
        <xs:enumeration value="min"></xs:enumeration>
        <xs:enumeration value="ms"></xs:enumeration>
        <xs:enumeration value="s"></xs:enumeration>
        <xs:enumeration value="yr"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Velocity">
      <xs:restriction base="xs:string">
        <xs:enumeration value="cm/s"></xs:enumeration>
        <xs:enumeration value="km/s"></xs:enumeration>
        <xs:enumeration value="m/s"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Voltage">
      <xs:restriction base="xs:string">
        <xs:enumeration value="V"></xs:enumeration>
        <xs:enumeration value="mV"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Volume">
      <xs:restriction base="xs:string">
        <xs:enumeration value="L"></xs:enumeration>
        <xs:enumeration value="m**3"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Units_of_Wavenumber">
      <xs:restriction base="xs:string">
        <xs:enumeration value="1/cm"></xs:enumeration>
        <xs:enumeration value="1/m"></xs:enumeration>
        <xs:enumeration value="1/nm"></xs:enumeration>
        <xs:enumeration value="cm**-1"></xs:enumeration>
        <xs:enumeration value="m**-1"></xs:enumeration>
        <xs:enumeration value="nm**-1"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="nil_reason" >
      <xs:list itemType='pds:nil_reason_list'>
      </xs:list>
    </xs:simpleType>
    <xs:simpleType name="nil_reason_list">
      <xs:restriction base="xs:string">
        <xs:enumeration value="inapplicable"></xs:enumeration>
        <xs:enumeration value="anticipated"></xs:enumeration>
        <xs:enumeration value="missing"></xs:enumeration>
        <xs:enumeration value="unknown"></xs:enumeration>
      </xs:restriction>
    </xs:simpleType>
 
<!-- Deprecated Items - Begin 
 
     - Classes -
     pds:Product_Update
     pds:Update
     pds:File_Area_Update
     pds:Airborne
     pds:Display_2D_Image
     pds:Band_Bin_Set
     pds:Band_Bin
     pds:DD_Association_External
     pds:Units_of_Map_Scale
     pds:ASCII_Date
     pds:ASCII_Date_Time
     pds:ASCII_Date_Time_UTC
 
     - Attributes -
     pds:Update/pds:update_purpose
     pds:Axis_Array/pds:unit
     pds:Array/pds:Local_Internal_Reference
     pds:Instrument/pds:type
     pds:Instrument/pds:subtype
     pds:Primary_Result_Summary/pds:data_regime
     pds:Primary_Result_Summary/pds:type
     pds:Primary_Result_Summary/pds:processing_level_id
     pds:DD_Association/pds:local_identifier
     pds:Table_Binary/pds:record_delimiter
     pds:Field_Bit/pds:start_bit
     pds:Field_Bit/pds:stop_bit
     pds:Uniformly_Sampled/pds:sampling_parameters
     pds:Object_Statistics/pds:bit_mask
     pds:Object_Statistics/pds:md5_checksum
     pds:Telescope/pds:altitude
     pds:Software/pds:version_id
     pds:Instrument_Host/pds:version_id
     pds:Instrument_Host/pds:instrument_host_version_id
     pds:Data_Set_PDS3/pds:start_date_time
     pds:Data_Set_PDS3/pds:stop_date_time
 
     - Permissible Values -
     pds:Information_Package_Component_Deep_Archive/pds:checksum_type - MD5Deep 4.n
     pds:Observing_System_Component/pds:type - Airborne
     pds:Observing_System_Component/pds:type - Aircraft
     pds:Observing_System_Component/pds:type - Balloon
     pds:Observing_System_Component/pds:type - Suborbital Rocket
     pds:Observing_System_Component/pds:type - Computer
     pds:Observing_System_Component/pds:type - Facility
     pds:Observing_System_Component/pds:type - Laboratory
     pds:Observing_System_Component/pds:type - Naked Eye
     pds:Observing_System_Component/pds:type - Observatory
     pds:Observing_System_Component/pds:type - Spacecraft
     pds:Observing_System_Component/pds:type - Artificial Illumination
     pds:Internal_Reference/pds:reference_type - is_airborne
     pds:Bundle_Member_Entry/pds:reference_type - bundle_has_member_collection
     pds:Instrument_Host/pds:type - Earth Based
     pds:Instrument_Host/pds:type - Earth-based
     pds:Target_Identification/pds:type - Calibration
     pds:Target_Identification/pds:type - Open Cluster
     pds:Target_Identification/pds:type - Globular Cluster
     pds:Target_Identification/pds:type - Terrestrial Sample
     pds:Target_Identification/pds:type - Lunar Sample
     pds:Target_Identification/pds:type - Synthetic Sample
     pds:Target_Identification/pds:type - Meteorite
     pds:Target/pds:type - Calibration
     pds:Target/pds:type - Open Cluster
     pds:Target/pds:type - Globular Cluster
     pds:Target/pds:type - Terrestrial Sample
     pds:Target/pds:type - Lunar Sample
     pds:Target/pds:type - Synthetic Sample
     pds:Target/pds:type - Meteorite
     pds:Node/pds:name - Imaging
     pds:Node/pds:name - Planetary Rings
     pds:PDS_Affiliate/pds:team_name - Imaging
     pds:PDS_Affiliate/pds:team_name - Planetary Rings
     pds:DD_Association/pds:reference_type - subclass_of
     pds:DD_Association/pds:reference_type - restriction_of
     pds:DD_Association/pds:reference_type - extension_of
     pds:Table_Delimited/pds:record_delimiter - carriage-return line-feed
     pds:Table_Delimited_Source_Product_External/pds:record_delimiter - carriage-return line-feed
     pds:Table_Delimited_Source_Product_Internal/pds:record_delimiter - carriage-return line-feed
     pds:Table_Character/pds:record_delimiter - carriage-return line-feed
     pds:Stream_Text/pds:record_delimiter - carriage-return line-feed
     pds:Checksum_Manifest/pds:record_delimiter - carriage-return line-feed
     pds:Inventory/pds:record_delimiter - carriage-return line-feed
     pds:Transfer_Manifest/pds:record_delimiter - carriage-return line-feed
     pds:Table_Delimited/pds:field_delimiter - comma
     pds:Table_Delimited/pds:field_delimiter - horizontal tab
     pds:Table_Delimited/pds:field_delimiter - semicolon
     pds:Table_Delimited/pds:field_delimiter - vertical bar
     pds:Table_Delimited_Source_Product_External/pds:field_delimiter - comma
     pds:Table_Delimited_Source_Product_External/pds:field_delimiter - horizontal tab
     pds:Table_Delimited_Source_Product_External/pds:field_delimiter - semicolon
     pds:Table_Delimited_Source_Product_External/pds:field_delimiter - vertical bar
     pds:Table_Delimited_Source_Product_Internal/pds:field_delimiter - comma
     pds:Table_Delimited_Source_Product_Internal/pds:field_delimiter - horizontal tab
     pds:Table_Delimited_Source_Product_Internal/pds:field_delimiter - semicolon
     pds:Table_Delimited_Source_Product_Internal/pds:field_delimiter - vertical bar
     pds:Inventory/pds:field_delimiter - comma
     pds:Inventory/pds:field_delimiter - horizontal tab
     pds:Inventory/pds:field_delimiter - semicolon
     pds:Inventory/pds:field_delimiter - vertical bar
     pds:Document_Format/pds:format_type - single file
     pds:Document_Format/pds:format_type - multiple file
     name:Node/name:name - Navigation Ancillary Information Facility
     pds:PDS_Affiliate/pds:team_name - Navigation Ancillary Information Facility
     pds:Encoded_Binary/pds:encoding_standard_id - CCSDS Space Communications Protocols
     pds:Document_File/pds:document_standard_id - HTML 2.0
     pds:Document_File/pds:document_standard_id - HTML 3.2
     pds:Document_File/pds:document_standard_id - HTML 4.0
     pds:Document_File/pds:document_standard_id - HTML 4.01
     pds:Units_of_Radiance/pds:unit_id - W*m**-2*sr**-1
     pds:Units_of_Spectral_Irradiance/pds:unit_id - SFU
     pds:Units_of_Spectral_Irradiance/pds:unit_id - W*m**-2*Hz**-1
     pds:Units_of_Spectral_Irradiance/pds:unit_id - W*m**-2*nm**-1
     pds:Units_of_Spectral_Irradiance/pds:unit_id - W*m**-3
     pds:Units_of_Spectral_Irradiance/pds:unit_id - uW*cm**-2*um**-1
     pds:Units_of_Spectral_Radiance/pds:unit_id - W*m**-2*sr**-1*Hz**-1
     pds:Units_of_Spectral_Radiance/pds:unit_id - W*m**-2*sr**-1*nm**-1
     pds:Units_of_Spectral_Radiance/pds:unit_id - W*m**-2*sr**-1*um**-1
     pds:Units_of_Spectral_Radiance/pds:unit_id - W*m**-3*sr**-1
     pds:Units_of_Spectral_Radiance/pds:unit_id - uW*cm**-2*sr**-1*um**-1
     pds:Units_of_Wavenumber/pds:unit_id - cm**-1
     pds:Units_of_Wavenumber/pds:unit_id - m**-1
     pds:Units_of_Wavenumber/pds:unit_id - nm**-1
 
     Deprecated Items - End -->
 
</xs:schema>
