<!-- 

     CHIRP XML Schema
     Copyright 2008 Dan Smith <dsmith@danplanet.com>

  -->

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

  <xsd:include schemaLocation="chirp_memory.xsd"/>
  <xsd:include schemaLocation="chirp_banks.xsd"/>

  <xsd:element name="radio" type="radioType"/>

  <xsd:complexType name="radioType">
    <xsd:sequence>
      <xsd:element name="comment" type="xsd:string"
		   minOccurs="0" maxOccurs="1"/>
      <xsd:element name="memories" type="memoryList"
		   minOccurs="1" maxOccurs="1"/>
      <xsd:element name="banks" type="bankList"
		   minOccurs="1" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="version" type="chirpSchemaVersionType"/>
  </xsd:complexType>

  <xsd:complexType name="memoryList">
    <xsd:sequence>
      <xsd:element name="memory" type="memoryType"
		   minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="bankList">
    <xsd:sequence>
      <xsd:element name="bank" type="bankType"
		   minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="chirpSchemaVersionType">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9][0-9]*.[0-9][0-9]*.[0-9]{1,4}"/>
    </xsd:restriction>
  </xsd:simpleType>
      
</xsd:schema>
