<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Software_Set_2009-06-09m  Wed Oct 28 17:01:35 PDT 2009 -->
  <!-- Generated from the PDS4 ontology model V0.090609m -->
  <!-- *** This PDS4 product schema is a preliminary deliverable. *** -->
  <!-- *** It is being made available for review and testing. *** -->
  <xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/schema/pds4/common"
    xmlns:tns="http://pds.nasa.gov/schema/pds4/common"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="0.1.1">

  <xsd:complexType name="Software_Set_Type">
    <xsd:sequence>
      <xsd:element name="Identification_Area" type="tns:Identification_Area_Type" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="Cross_Reference_Area" type="tns:Cross_Reference_Area_Type" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="Software_Format_Set" type="tns:Software_Format_Set_Type" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Software_Set_Desc" type="tns:Software_Set_Desc_Type" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Identification_Area_Type">
    <xsd:sequence>
      <xsd:element name="guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="title" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="version" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="dd_version_id" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="pds_version_id" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="label_revision_note" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="product_id" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="product_creation_time" type="tns:ASCII_TIME" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="alternative" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="status" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="Property_Map" type="tns:Property_Map_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Property_Map_Type">
    <xsd:sequence>
      <xsd:element name="local_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="comment" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="1"> </xsd:element>
      <xsd:element name="namespace_id" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="1"> </xsd:element>
      <xsd:element name="Property_Map_Entry" type="tns:Property_Map_Entry_Type" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Property_Map_Entry_Type">
    <xsd:sequence>
      <xsd:element name="property_name" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="property_value" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Cross_Reference_Area_Type">
    <xsd:sequence>
      <xsd:element name="Data_Set_Reference" type="tns:Data_Set_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Document_Reference" type="tns:Document_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Instrument_Host_Reference" type="tns:Instrument_Host_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Instrument_Reference" type="tns:Instrument_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Mission_Reference" type="tns:Mission_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Node_Reference" type="tns:Node_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Target_Reference" type="tns:Target_Reference_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Data_Set_Reference_Type">
    <xsd:sequence>
      <xsd:element name="data_set_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="data_set_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Document_Reference_Type">
    <xsd:sequence>
      <xsd:element name="document_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="document_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Instrument_Host_Reference_Type">
    <xsd:sequence>
      <xsd:element name="instrument_host_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="instrument_host_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Instrument_Reference_Type">
    <xsd:sequence>
      <xsd:element name="instrument_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="instrument_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Mission_Reference_Type">
    <xsd:sequence>
      <xsd:element name="mission_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="mission_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Node_Reference_Type">
    <xsd:sequence>
      <xsd:element name="node_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="node_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Target_Reference_Type">
    <xsd:sequence>
      <xsd:element name="target_guid" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="target_logical_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Software_Format_Set_Type">
    <xsd:sequence>
      <xsd:element name="associated_object_local_id" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="description" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="1"> </xsd:element>
      <xsd:element name="Encoded_Stream_Base_File" type="tns:Encoded_Stream_Base_File_Type" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Software_Binary" type="tns:Software_Binary_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Software_Script" type="tns:Software_Script_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Software_Source" type="tns:Software_Source_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="Property_Map" type="tns:Property_Map_Type" minOccurs="0" maxOccurs="unbounded"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Encoded_Stream_Base_File_Type">
    <xsd:sequence>
      <xsd:element name="local_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="comment" type="tns:ASCII_CHARACTER" minOccurs="0" maxOccurs="1"> </xsd:element>
      <xsd:element name="checksum" type="tns:ASCII_INTEGER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="file_size" type="tns:ASCII_INTEGER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="file_specification_name" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="file_type" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Software_Binary_Type">
    <xsd:sequence>
      <xsd:element name="OS_version" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="files" type="tns:ASCII_INTEGER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="program_notes_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="supported_OS" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="supported_architecture" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="sw_format_type" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="system_requirements" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Software_Script_Type">
    <xsd:sequence>
      <xsd:element name="files" type="tns:ASCII_INTEGER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="install_notes" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="supported_environment" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="system_requirements" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Software_Source_Type">
    <xsd:sequence>
      <xsd:element name="OS_version" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="compile_notes" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="files" type="tns:ASCII_INTEGER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="program_notes_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="software_dialect" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="software_language" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="supported_OS" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="supported_architecture" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="unbounded"> </xsd:element>
      <xsd:element name="sw_format_type" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="system_requirements" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Software_Set_Desc_Type">
    <xsd:sequence>
      <xsd:element name="version" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="author_list" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="description" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="name" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="programmers_manual_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="software_id" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="software_type" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
      <xsd:element name="users_manual_identifier" type="tns:ASCII_CHARACTER" minOccurs="1" maxOccurs="1"> </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="Identification_Area_pds_version_id_Type">
  <!-- Subclass of ASCII_CHARACTER (Enumerated) -->
    <xsd:restriction base="xsd:string">
	     <xsd:enumeration value="PDS4.0"></xsd:enumeration>
	   </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="ASCII_CHARACTER">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="ASCII_TIME">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="ASCII_INTEGER">
    <xsd:simpleContent>
      <xsd:extension base="xsd:integer">
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:element name="Software_Set" type="tns:Software_Set_Type">
    <xsd:annotation>
      <xsd:documentation>
        The Software_Set XML Schema
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
</xsd:schema>
