<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <!-- XML-SEED Version 1.1 -->

  <!-- Root node -->

  <xsd:element name="xseed" type="XSEED_type"/>

  <!-- Root element type -->

  <xsd:complexType name="XSEED_type">
    <xsd:sequence>
      <xsd:element name="volume_index_control_header"
        type="volumeindexheader_type"/>
      <xsd:element name="abbreviation_dictionary_control_header"
        type="abbreviationdictionarycontrolheader_type"/>
      <xsd:group ref="station_control_headers_model_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="version" type="version_type"/>
  </xsd:complexType>

  <!-- SimpleTypes -->

  <xsd:simpleType name="version_type">
    <xsd:restriction base="xsd:token">
      <xsd:enumeration value="1.1"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="dateUnionType">
    <xsd:union memberTypes="xsd:dateTime xsd:date">
      <xsd:simpleType>
        <xsd:restriction base="xsd:token">
          <xsd:enumeration value=""/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>

  <xsd:simpleType name="sequence_number">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{8}"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="array_of_double">
    <xsd:list itemType="xsd:double"/>
  </xsd:simpleType>

  <xsd:simpleType name="reference_id_type">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>

  <xsd:simpleType name="xpathreference_type">
    <xsd:restriction base="xsd:string">
      <xsd:pattern
        value="/xseed/abbreviation_dictionary_control_header/[a-zA-Z_0-9*]{1,30}/\D{5,50}\d{1,4}\D{5,30}"
      />
    </xsd:restriction>
  </xsd:simpleType>


  <!-- Shared Types -->


  <!-- Shared by blockette 43 and blockette 53 -->

  <xsd:complexType name="Zero_type">
    <xsd:group ref="Zero_model_type" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:complexType>

  <xsd:group name="Zero_model_type">
    <xsd:sequence>
      <xsd:element name="real_zero" type="xsd:double"/>
      <xsd:element name="imaginary_zero" type="xsd:double"/>
      <xsd:element name="real_zero_error" type="xsd:double"/>
      <xsd:element name="imaginary_zero_error" type="xsd:double"/>
    </xsd:sequence>
  </xsd:group>


  <xsd:complexType name="Pole_type">
    <xsd:group ref="Pole_model_type" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:complexType>

  <xsd:group name="Pole_model_type">
    <xsd:sequence>
      <xsd:element name="real_pole" type="xsd:double"/>
      <xsd:element name="imaginary_pole" type="xsd:double"/>
      <xsd:element name="real_pole_error" type="xsd:double"/>
      <xsd:element name="imaginary_pole_error" type="xsd:double"/>
    </xsd:sequence>
  </xsd:group>


  <!-- Shared by blockette 45 and blockette 55 -->

  <xsd:complexType name="response_type">
    <xsd:sequence>
      <xsd:element name="frequency" type="xsd:double"/>
      <xsd:element name="amplitude" type="xsd:double"/>
      <xsd:element name="amplitude_error" type="xsd:double"/>
      <xsd:element name="phase_angle" type="xsd:double"/>
      <xsd:element name="phase_error" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="corner_type">
    <xsd:sequence>
      <xsd:element name="corner_frequency" type="xsd:double"/>
      <xsd:element name="corner_slope" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>



  <!-- Shared by blockette 48 and blockette 58 -->

  <xsd:complexType name="history_type">
    <xsd:group ref="history_model_type" minOccurs="0" maxOccurs="unbounded"/>
  </xsd:complexType>

  <xsd:group name="history_model_type">
    <xsd:sequence>
      <xsd:element name="sensitivity_for_calibration" type="xsd:double"/>
      <xsd:element name="frequency_of_calibration_sensitivity"
        type="xsd:double"/>
      <xsd:element name="time_of_above_calibration" type="dateUnionType"/>
    </xsd:sequence>
  </xsd:group>

  <!-- For blockette 62 -->

  <xsd:complexType name="polynomial_coefficients">
    <xsd:group ref="polynomial_coefficients_type" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:complexType>

  <xsd:group name="polynomial_coefficients_type">
    <xsd:sequence>
      <xsd:element name="polynomial_coefficient" type="xsd:double"/>
      <xsd:element name="polynomial_coefficient_error" type="xsd:double"/>
    </xsd:sequence>
  </xsd:group>

  <!-- Blockette 10 -->

  <xsd:complexType name="blockette10_type">
    <xsd:sequence>
      <xsd:element name="beginning_time" type="dateUnionType"/>
      <xsd:element name="end_time" type="dateUnionType"/>
      <xsd:element name="volume_time" type="dateUnionType"/>
      <xsd:element name="originating_organization" type="xsd:string"/>
      <xsd:element name="label" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="010"/>
  </xsd:complexType>


  <!-- volume_index_header type-->

  <xsd:complexType name="volumeindexheader_type">
    <xsd:sequence>
      <xsd:element name="volume_identifier" type="blockette10_type"/>
    </xsd:sequence>
  </xsd:complexType>



  <!-- Abbreviation dictionary control header -->
  <!-- Blockette 30 -->

  <xsd:simpleType name="decoder_keys_type">
    <xsd:list itemType="xsd:string"/>
  </xsd:simpleType>

  <xsd:complexType name="blockette30_type">
    <xsd:sequence>
      <xsd:element name="short_descriptive_name" type="xsd:string"/>
      <xsd:element name="data_format_identifier_code" type="reference_id_type"/>
      <xsd:element name="data_family_type" type="xsd:string"/>
      <xsd:element name="number_of_decoder_keys" type="xsd:long"/>
      <xsd:element name="decoder_keys" type="decoder_keys_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="030"/>
  </xsd:complexType>


  <!-- Blockette 31 -->

  <xsd:complexType name="blockette31_type">
    <xsd:sequence>
      <xsd:element name="comment_code_key" type="reference_id_type"/>
      <xsd:element name="comment_class_code" type="xsd:string"/>
      <xsd:element name="description_of_comment" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="031"/>
  </xsd:complexType>

  <!-- Blockette 32 -->

  <xsd:complexType name="blockette32_type">
    <xsd:sequence>
      <xsd:element name="source_lookup_code" type="reference_id_type"/>
      <xsd:element name="name_of_publication_author" type="xsd:string"/>
      <xsd:element name="date_published_catalog" type="xsd:string"/>
      <xsd:element name="publisher_name" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="032"/>
  </xsd:complexType>


  <!-- Blockette 33 -->

  <xsd:complexType name="blockette33_type">
    <xsd:sequence>
      <xsd:element name="abbreviation_lookup_code" type="reference_id_type"/>
      <xsd:element name="abbreviation_description" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="033"/>
  </xsd:complexType>


  <!-- Blockette 34 -->

  <xsd:complexType name="blockette34_type">
    <xsd:sequence>
      <xsd:element name="unit_lookup_code" type="reference_id_type"/>
      <xsd:element name="unit_name" type="xsd:string"/>
      <xsd:element name="unit_description" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="034"/>
  </xsd:complexType>


  <!-- Blockette 35 -->

  <xsd:complexType name="blockette35sub_type">
    <xsd:sequence>
      <xsd:element name="station_identifier" type="xsd:string"/>
      <xsd:element name="location_identifier" type="xsd:string"/>
      <xsd:element name="channel_identifier" type="xsd:string"/>
      <xsd:element name="subchannel_identifier" type="xsd:long"/>
      <xsd:element name="component_weight" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="blockette35_type">
    <xsd:sequence>
      <xsd:element name="beam_lookup_code" type="reference_id_type"/>
      <xsd:element name="number_of_components" type="xsd:long"/>
      <xsd:element name="component" type="blockette35sub_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="035"/>
  </xsd:complexType>



  <!-- Blockette 41 -->

  <xsd:complexType name="blockette41_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="symmetry_code" type="xsd:string"/>
      <xsd:element name="signal_in_units" type="xpathreference_type"/>
      <xsd:element name="signal_out_units" type="xpathreference_type"/>
      <xsd:element name="number_of_factors" type="xsd:long"/>
      <xsd:element name="FIR_coefficient" type="array_of_double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="041"/>
  </xsd:complexType>

  <!-- Blockette 43 -->

  <xsd:complexType name="blockette43_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="response_type" type="xsd:string"/>
      <xsd:element name="stage_signal_input_units" type="xpathreference_type"/>
      <xsd:element name="stage_signal_output_units" type="xpathreference_type"/>
      <xsd:element name="A0_normalization_factor" type="xsd:double"/>
      <xsd:element name="normalization_frequency" type="xsd:double"/>
      <xsd:element name="number_of_complex_zeros" type="xsd:long"/>
      <xsd:element name="complex_zero" type="Zero_type" minOccurs="0"
        maxOccurs="unbounded"/>
      <xsd:element name="number_of_complex_poles" type="xsd:long"/>
      <xsd:element name="complex_pole" type="Pole_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="043"/>
  </xsd:complexType>



  <!-- Blockette 44 -->

  <xsd:complexType name="blockette44_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="response_type" type="xsd:string"/>
      <xsd:element name="signal_input_units" type="xpathreference_type"/>
      <xsd:element name="signal_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_numerators" type="xsd:long"/>
      <xsd:element name="numerators" type="array_of_double"/>
      <xsd:element name="number_of_denominators" type="xsd:long"/>
      <xsd:element name="denominators" type="array_of_double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="044"/>
  </xsd:complexType>


  <!-- Blockette 45 -->

  <xsd:complexType name="blockette45_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="signal_input_units" type="xpathreference_type"/>
      <xsd:element name="signal_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_responses_listed" type="xsd:long"/>
      <xsd:element name="response" type="response_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="045"/>
  </xsd:complexType>


  <!-- Blockette 46 -->

  <xsd:complexType name="blockette46_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="reponse_name" type="xsd:string"/>
      <xsd:element name="signal_input_units" type="xpathreference_type"/>
      <xsd:element name="signal_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_corners_listed" type="xsd:long"/>
      <xsd:element name="corner" type="corner_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="046"/>
  </xsd:complexType>


  <!-- Blockette 47 -->

  <xsd:complexType name="blockette47_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="input_sample_rate" type="xsd:double"/>
      <xsd:element name="decimation_factor" type="xsd:long"/>
      <xsd:element name="decimation_offset" type="xsd:long"/>
      <xsd:element name="estimated_delay" type="xsd:double"/>
      <xsd:element name="correction_applied" type="xsd:double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="047"/>
  </xsd:complexType>



  <!-- Blockette 48 -->

  <xsd:complexType name="blockette48_type">
    <xsd:sequence>
      <xsd:element name="response_lookup_key" type="reference_id_type"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="sensitivity_gain" type="xsd:double"/>
      <xsd:element name="frequency" type="xsd:double"/>
      <xsd:element name="number_of_history_values" type="xsd:long"/>
      <xsd:element name="history" type="history_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="048"/>
  </xsd:complexType>


  <!-- Particle for abbreviationdictionarycontrolheader -->

  <xsd:complexType name="abbreviationdictionarycontrolheader_type">
    <xsd:sequence>
      <xsd:element name="data_format_dictionary" type="blockette30_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="comment_description" type="blockette31_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="cited_source_dictionary" type="blockette32_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="generic_abbreviation" type="blockette33_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="units_abbreviations" type="blockette34_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="beam_configuration" type="blockette35_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="FIR_dictionary" type="blockette41_type" minOccurs="0"
        maxOccurs="unbounded"/>
      <xsd:element name="response_poles_and_zeros_dictionary" type="blockette43_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="response_coefficients_dictionary" type="blockette44_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="response_list_dictionary" type="blockette45_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="generic_response_dictionary" type="blockette46_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="decimation_dictionary" type="blockette47_type"
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="channel_sensivitity_gain_dictionary"
        type="blockette48_type" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>


  <!-- Blockette 50 -->

  <xsd:complexType name="blockette50_type">
    <xsd:sequence>
      <xsd:element name="station_call_letters" type="xsd:string"/>
      <xsd:element name="latitude" type="xsd:double"/>
      <xsd:element name="longitude" type="xsd:double"/>
      <xsd:element name="elevation" type="xsd:double"/>
      <xsd:element name="number_of_channels" type="xsd:long"/>
      <xsd:element name="number_of_station_comments" type="xsd:long"/>
      <xsd:element name="site_name" type="xsd:string"/>
      <xsd:element name="network_identifier_code" type="xpathreference_type"/>
      <xsd:element name="word_order_32bit" type="xsd:string"/>
      <xsd:element name="word_order_16bit" type="xsd:string"/>
      <xsd:element name="start_effective_date" type="dateUnionType"/>
      <xsd:element name="end_effective_date" type="dateUnionType"/>
      <xsd:element name="update_flag" type="xsd:string"/>
      <xsd:element name="network_code" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="050"/>
  </xsd:complexType>


  <!-- Blockette 51 -->

  <xsd:complexType name="blockette51_type">
    <xsd:sequence>
      <xsd:element name="beginning_effective_time" type="dateUnionType"/>
      <xsd:element name="end_effective_time" type="dateUnionType" minOccurs="0"
        maxOccurs="1"/>
      <xsd:element name="comment_code_key" type="xpathreference_type"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="051"/>
  </xsd:complexType>



  <!-- Blockette 52 -->

  <xsd:complexType name="blockette52_type">
    <xsd:sequence>
      <xsd:element name="location_identifier" type="xsd:string"/>
      <xsd:element name="channel_identifier" type="xsd:string"/>
      <xsd:element name="subchannel_identifier" type="xsd:long"/>
      <xsd:element name="instrument_identifier" type="xpathreference_type"/>
      <xsd:element name="optional_comment" type="xsd:string"/>
      <xsd:element name="units_of_signal_response" type="xpathreference_type"/>
      <xsd:element name="units_of_calibration_input" type="xpathreference_type"/>
      <xsd:element name="latitude" type="xsd:double"/>
      <xsd:element name="longitude" type="xsd:double"/>
      <xsd:element name="elevation" type="xsd:double"/>
      <xsd:element name="local_depth" type="xsd:double"/>
      <xsd:element name="azimuth" type="xsd:double"/>
      <xsd:element name="dip" type="xsd:double"/>
      <xsd:element name="data_format_identifier_code"
        type="xpathreference_type"/>
      <xsd:element name="data_record_length" type="xsd:long"/>
      <xsd:element name="sample_rate" type="xsd:double"/>
      <xsd:element name="max_clock_drift" type="xsd:double"/>
      <xsd:element name="number_of_comments" type="xsd:long"/>
      <xsd:element name="channel_flags" type="xsd:string"/>
      <xsd:element name="start_date" type="dateUnionType"/>
      <xsd:element name="end_date" type="dateUnionType"/>
      <xsd:element name="update_flag" type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="052"/>
  </xsd:complexType>


  <!-- Blockette 53 -->

  <xsd:complexType name="blockette53_type">
    <xsd:sequence>
      <xsd:element name="transfer_function_types" type="xsd:string"/>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="stage_signal_input_units" type="xpathreference_type"/>
      <xsd:element name="stage_signal_output_units" type="xpathreference_type"/>
      <xsd:element name="A0_normalization_factor" type="xsd:double"/>
      <xsd:element name="normalization_frequency" type="xsd:double"/>
      <xsd:element name="number_of_complex_zeros" type="xsd:long"/>
      <xsd:element name="complex_zero" type="Zero_type" minOccurs="0"
        maxOccurs="unbounded"/>
      <xsd:element name="number_of_complex_poles" type="xsd:long"/>
      <xsd:element name="complex_pole" type="Pole_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="053"/>
  </xsd:complexType>


  <!-- Blockette 54 -->

  <xsd:complexType name="blockette54_type">
    <xsd:sequence>
      <xsd:element name="response_type" type="xsd:string"/>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="signal_input_units" type="xpathreference_type"/>
      <xsd:element name="signal_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_numerators" type="xsd:long"/>
      <xsd:element name="numerators" type="array_of_double"/>
      <xsd:element name="number_of_denominators" type="xsd:long"/>
      <xsd:element name="denominators" type="array_of_double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="054"/>
  </xsd:complexType>


  <!-- Blockette 55 -->

  <xsd:complexType name="blockette55_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="stage_input_units" type="xpathreference_type"/>
      <xsd:element name="stage_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_responses_listed" type="xsd:long"/>
      <xsd:element name="response" type="response_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="055"/>
  </xsd:complexType>


  <!-- Blockette 56 -->

  <xsd:complexType name="blockette56_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="signal_input_units" type="xpathreference_type"/>
      <xsd:element name="singal_output_units" type="xpathreference_type"/>
      <xsd:element name="number_of_corners_listed" type="xsd:long"/>
      <xsd:element name="corner" type="corner_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="056"/>
  </xsd:complexType>


  <!-- Blockette 57 -->

  <xsd:complexType name="blockette57_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="input_sample_rate" type="xsd:double"/>
      <xsd:element name="decimation_factor" type="xsd:long"/>
      <xsd:element name="decimation_offset" type="xsd:long"/>
      <xsd:element name="estimated_delay" type="xsd:double"/>
      <xsd:element name="correction_applied" type="xsd:double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="057"/>
  </xsd:complexType>


  <!-- Blockette 58 -->

  <xsd:complexType name="blockette58_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="sensitivity_gain" type="xsd:double"/>
      <xsd:element name="frequency" type="xsd:double"/>
      <xsd:element name="number_of_history_values" type="xsd:long"/>
      <xsd:element name="history" type="history_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="058"/>
  </xsd:complexType>



  <!-- Blockette 59 -->

  <xsd:complexType name="blockette59_type">
    <xsd:sequence>
      <xsd:element name="beginning_of_effective_time" type="dateUnionType"/>
      <xsd:element name="end_effective_time" type="dateUnionType" minOccurs="0"
        maxOccurs="1"/>
      <xsd:element name="comment_code_key" type="xpathreference_type"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="059"/>
  </xsd:complexType>


  <!-- Blockette 60 -->

  <xsd:complexType name="stage_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="number_of_responses" type="xsd:long"/>
      <xsd:element name="response_lookup_key" type="xpathreference_type"
        minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="blockette60_type">
    <xsd:sequence>
      <xsd:element name="number_of_stages" type="xsd:long"/>
      <xsd:element name="stage" type="stage_type" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="060"/>
  </xsd:complexType>

  <!-- Blockette 61 -->

  <xsd:complexType name="blockette61_type">
    <xsd:sequence>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="response_name" type="xsd:string"/>
      <xsd:element name="symmetry_code" type="xsd:string"/>
      <xsd:element name="signal_in_units" type="xpathreference_type"/>
      <xsd:element name="signal_out_units" type="xpathreference_type"/>
      <xsd:element name="number_of_coefficients" type="xsd:long"/>
      <xsd:element name="FIR_coefficient" type="array_of_double"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="061"/>
  </xsd:complexType>

  <!-- Blockette 62 -->

  <xsd:complexType name="blockette62_type">
    <xsd:sequence>
      <xsd:element name="transfer_function_type" type="xsd:string"/>
      <xsd:element name="stage_sequence_number" type="xsd:long"/>
      <xsd:element name="stage_signal_in_units" type="xpathreference_type"/>
      <xsd:element name="stage_signal_out_units" type="xpathreference_type"/>
      <xsd:element name="polynomial_approximation_type" type="xsd:string"/>
      <xsd:element name="valid_frequency_units" type="xsd:string"/>
      <xsd:element name="lower_valid_frequency_bound" type="xsd:double"/>
      <xsd:element name="upper_valid_frequency_bound" type="xsd:double"/>
      <xsd:element name="lower_bound_of_approximation" type="xsd:double"/>
      <xsd:element name="upper_bound_of_approximation" type="xsd:double"/>
      <xsd:element name="maximum_absolute_error" type="xsd:double"/>
      <xsd:element name="number_of_polynomial_coefficients" type="xsd:long"/>
      <xsd:element name="polynomial_coefficients"
        type="polynomial_coefficients" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="blockette" type="xsd:string" fixed="062"/>
  </xsd:complexType>


  <!-- Particles for station control headers -->

  <xsd:complexType name="station_control_header_type">
    <xsd:sequence>
      <xsd:element name="station_identifier" type="blockette50_type"/>
      <xsd:element name="station_comment" type="blockette51_type" minOccurs="0"
        maxOccurs="unbounded"/>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="channel_identifier" type="blockette52_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="response_poles_and_zeros" type="blockette53_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="response_coefficients" type="blockette54_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="response_list" type="blockette55_type" minOccurs="0"
          maxOccurs="unbounded"/>
        <xsd:element name="generic_response" type="blockette56_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="decimation" type="blockette57_type" minOccurs="0"
          maxOccurs="unbounded"/>
        <xsd:element name="channel_sensitivity_gain" type="blockette58_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="channel_comment" type="blockette59_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="response_reference" type="blockette60_type"
          minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="FIR_response" type="blockette61_type" minOccurs="0"
          maxOccurs="unbounded"/>
        <xsd:element name="response_polynomial" type="blockette62_type"
          minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:group name="station_control_headers_model_type">
    <xsd:sequence>
      <xsd:element name="station_control_header"
        type="station_control_header_type" minOccurs="0" maxOccurs="unbounded"
      />
    </xsd:sequence>
  </xsd:group>




</xsd:schema>
