<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:msn_surface  Version:1.10.1.0 - Mon Jul 30 16:09:00 PDT 2018 -->
  <!-- Generated from the PDS4 Information Model Version 1.10.1.0 - System Build 8b -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <!--                                                                           -->
  <!--               Dictionary Stack                                            -->
  <!-- 1.10.1.0 - pds: - Common Dictionary - N/A                                 -->
  <!-- 1.10.1.0 - msn_surface: - Surface Mission - PDS4_MSN_SURFACE_IngestLDD_1A -->
  <!--                                                                           -->
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/pds4/mission/msn_surface/v1"
    xmlns:msn_surface="http://pds.nasa.gov/pds4/mission/msn_surface/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.10.1.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1A10.xsd"/>
 
  <xs:annotation>
    <xs:documentation>
This XML schema file has been generated from the Information Model.
    </xs:documentation>
  </xs:annotation>
 
  <xs:element name="Surface_Mission_Parameters" type="msn_surface:Surface_Mission_Parameters"> </xs:element>

  <xs:complexType name="Command_Execution_Information">
    <xs:annotation>
      <xs:documentation>The Command_Execution_Information class contains
        information about how the command that acquired this data was
        executed, such as sequence or activity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sequence_id" type="msn_surface:sequence_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sequence_version_id" type="msn_surface:sequence_version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sequence_execution_count" type="msn_surface:sequence_execution_count" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="command_sequence_number" type="msn_surface:command_sequence_number" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="command_source_id" type="msn_surface:command_source_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="observation_id" nillable="true" type="msn_surface:observation_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="request_id" nillable="true" type="msn_surface:request_id" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Mission_Parameters">
    <xs:annotation>
      <xs:documentation>The Surface_Mission_Parameters class contains
        attributes specific to surface missions which apply across
        instrument types.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Command_Execution_Information" type="msn_surface:Command_Execution_Information" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Telemetry_Information" type="msn_surface:Telemetry_Information" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="surface_gravity" type="msn_surface:surface_gravity" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Telemetry_Information">
    <xs:annotation>
      <xs:documentation>The Telemetry_Information class contains
        downlink-related attributes used primarily during mission
        operations.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="application_id" type="msn_surface:application_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="application_subtype_id" type="msn_surface:application_subtype_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="application_name" type="msn_surface:application_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="provider_id" type="msn_surface:provider_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="flight_software_version_id" type="msn_surface:flight_software_version_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="telemetry_source_name" type="msn_surface:telemetry_source_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="transport_protocol" type="msn_surface:transport_protocol" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="communication_session_id" type="msn_surface:communication_session_id" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="telemetry_source_start_time" type="msn_surface:telemetry_source_start_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="telemetry_source_sclk_start" type="msn_surface:telemetry_source_sclk_start" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="product_completion_status" type="msn_surface:product_completion_status" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_start_date_time" type="msn_surface:earth_received_start_date_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="earth_received_stop_date_time" type="msn_surface:earth_received_stop_date_time" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="download_priority" type="msn_surface:download_priority" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="data_size" type="msn_surface:data_size" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="expected_packets" type="msn_surface:expected_packets" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="received_packets" type="msn_surface:received_packets" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="msn_surface:transport_protocol = ('Data Product', 'SFDU')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </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="application_id">
    <xs:annotation>
      <xs:documentation>The application_id (often abbreviated APID)
        attribute identifies the process, or source, which created the
        data. This can include information such as an identification of
        the instrument which generated the telemetry stream, its
        operating mode at the time of data acquisition, and any onboard
        compression of the data.</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="application_name">
    <xs:annotation>
      <xs:documentation>The application_name attribute provides the name
        associated with the source or process which created the
        data.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="application_subtype_id">
    <xs:annotation>
      <xs:documentation>The application_subtype_id attribute provides
        further distinction (i.e., greater specificity) among
        application_id types.</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="command_sequence_number">
    <xs:annotation>
      <xs:documentation>The command_sequence_number attribute provides a
        numeric identifier for a sequence of commands sent to a
        spacecraft or instrument.</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="command_source_id">
    <xs:annotation>
      <xs:documentation> The command_source_id attribute specifies the
        flight software element that was the source of a particular
        command. </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="communication_session_id">
    <xs:annotation>
      <xs:documentation>Identifies the communication session used to
        acquire this 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_size">
    <xs:annotation>
      <xs:documentation>The data_size specifies number of bytes in the
        compressed data stream, not including headers.</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="download_priority">
    <xs:annotation>
      <xs:documentation> The download_priority attribute specifies which
        data to downlink/transmit, based on order of importance. The
        lower numerical priority (higher-ranked number) data products
        are transmitted before higher numerical priority (lower-ranked
        number) data products. For example, an image with a downlink
        priority of 1 will be transmitted before an image with a
        downlink priority of 6. Value of 0 specifies use of on-board
        default.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="6"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="earth_received_start_date_time">
    <xs:annotation>
      <xs:documentation>The earth_received_start_date_time attribute
        provides the earliest time at which any component telemetry data
        for a particular product was received.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="earth_received_stop_date_time">
    <xs:annotation>
      <xs:documentation>The earth_received_stop_date_time attribute
        provides the latest time at which any component telemetry data
        for a particular product was received.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="expected_packets">
    <xs:annotation>
      <xs:documentation>The expected_packets attribute provides the
        total number of telemetry packets which constitute a complete
        data product, i.e., a data product without missing
        data.</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="flight_software_version_id">
    <xs:annotation>
      <xs:documentation>The flight_software_version_id attribute
        identifies the version of the instrument flight software used to
        acquire the image.</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="observation_id">
    <xs:annotation>
      <xs:documentation>The observation_id specifies a unique identifier
        for a scientific observation within a data
        set.</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="product_completion_status">
    <xs:annotation>
      <xs:documentation>The product_completion_status attribute
        indicates whether or not a product is complete or is in one of a
        number of incomplete states. Sample values might indicate that
        all portions of the product have been downlinked and received
        correctly, that all portions have not yet been received, or that
        the product contains transmission errors. The specific values
        are mission-dependent.</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="provider_id">
    <xs:annotation>
      <xs:documentation>The provider_id attribute identifies the
        organization or subsystem that supplied the telemetry data
        product to the producer of the raw (EDR) PDS data product. This
        is typically (but not always) the organization responsible for
        reassembling packetized data into a single product. These may
        vary by mission so the permissible values should be set by the
        mission 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="received_packets">
    <xs:annotation>
      <xs:documentation>The received_packets attribute provides the
        total number of telemetry packets actually used to construct
        this data product. cf. expected_packets.</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="request_id">
    <xs:annotation>
      <xs:documentation>The request_id is used to group related datasets
        together by science or engineering application or theme, such as
        frames in a mosaic.</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="sequence_execution_count">
    <xs:annotation>
      <xs:documentation>The sequence_execution_count specifies how many
        times this sequence has executed since the last reset of the
        flight computer.</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="sequence_id">
    <xs:annotation>
      <xs:documentation>The sequence_id identifies the command sequence
        used to acquire this 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="sequence_version_id">
    <xs:annotation>
      <xs:documentation>The sequence_version_id identifies which of
        potentially several versions of a sequence_id were used to
        acquire this 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="surface_gravity_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="surface_gravity">
    <xs:annotation>
      <xs:documentation>The surface_gravity attribute specifies the
        acceleration of gravity (magnitude, not
        direction).</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="msn_surface:surface_gravity_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Acceleration" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="telemetry_source_name">
    <xs:annotation>
      <xs:documentation>The telemetry_source_name specifies the name
        source of the telemetry data described in the parent
        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="telemetry_source_sclk_start">
    <xs:annotation>
      <xs:documentation>The telemetry_source_sclk_start attribute
        specifies the value of the spacecraft clock (in seconds) at the
        creation time of the source product from which this product was
        derived.</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="telemetry_source_start_time">
    <xs:annotation>
      <xs:documentation>The telemetry_source_start_time specifies the
        creation time of the source product from which this product was
        derived. It is the same as the telemetry_source_sclk_start
        converted to Spacecraft Event Time (SCET).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Date_Time_YMD_UTC">
  <!-- format="YYYY-MM-DDTHH:MM:SS.SSSZ" -->
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="transport_protocol">
    <xs:annotation>
      <xs:documentation>The transport_protocol attribute specifies the
        protocol used in the creation of the telemetry data products by
        the subsystem which generates the telemetry stream.
        </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:annotation>
    <xs:documentation>
[
  {
    "dataDictionary": {
      "Title": "PDS4 Data Dictionary" ,
      "Version": "1.10.1.0" ,
      "Date": "Mon Jul 30 16:09:00 PDT 2018" ,
      "Description": "This document is a dump of the contents of the PDS4 Data Dictionary" ,
      "PropertyMapDictionary": [
      ]
    }
  }
]
    </xs:documentation>
  </xs:annotation>
</xs:schema>
