<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:include schemaLocation="../common/doc.xsd" />
  <xs:include schemaLocation="../common/stm32/stm32_gpiov2_port.xsd" />
  <xs:include schemaLocation="abstract_board.xsd" />

  <xs:complexType name="STM32L1xxBoardType">
    <xs:complexContent>
      <xs:extension base="AbstractBoardType">
        <xs:sequence>
                    <xs:element name="subtype">
                       <xs:simpleType>
                       	<xs:restriction base="xs:string">
                       		<xs:whiteSpace value="collapse"></xs:whiteSpace>
                       		<xs:enumeration value="STM32L100xB"></xs:enumeration>
                       		<xs:enumeration value="STM32L100xBA"></xs:enumeration>
                       		<xs:enumeration value="STM32L100xC"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xB"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xBA"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xC"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xCA"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xD"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xDX"></xs:enumeration>
                       		<xs:enumeration value="STM32L151xE"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xB"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xBA"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xC"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xCA"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xD"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xDX"></xs:enumeration>
                       		<xs:enumeration value="STM32L152xE"></xs:enumeration>
                       		<xs:enumeration value="STM32L162xC"></xs:enumeration>
                       		<xs:enumeration value="STM32L162xCA"></xs:enumeration>
                       		<xs:enumeration value="STM32L162xD"></xs:enumeration>
                       		<xs:enumeration value="STM32L162xDX"></xs:enumeration>
                       		<xs:enumeration value="STM32L162xE"></xs:enumeration>
                       	</xs:restriction>
                       </xs:simpleType>
                    </xs:element>
                    <xs:element
              name="clocks"
              maxOccurs="1"
              minOccurs="1"
           >
              <xs:complexType>
                 <xs:attribute
                    name="HSEBypass"
                    use="required"
                 >
                    <xs:simpleType>
                       <xs:restriction base="xs:string">
                          <xs:whiteSpace value="collapse"></xs:whiteSpace>
                          <xs:enumeration value="false"></xs:enumeration>
                          <xs:enumeration value="true"></xs:enumeration>
                       </xs:restriction>
                    </xs:simpleType>
                 </xs:attribute>
                 <xs:attribute
                    name="HSEFrequency"
                    use="required"
                 >
                    <xs:simpleType>
                       <xs:restriction base="xs:int">
                          <xs:whiteSpace value="collapse"></xs:whiteSpace>
                          <xs:minInclusive value="0"></xs:minInclusive>
                       </xs:restriction>
                    </xs:simpleType>
                 </xs:attribute>
                 <xs:attribute
                    name="LSEBypass"
                    use="required"
                 >
                    <xs:simpleType>
                       <xs:restriction base="xs:string">
                          <xs:whiteSpace value="collapse">
                          </xs:whiteSpace>
                          <xs:enumeration value="false"></xs:enumeration>
                          <xs:enumeration value="true"></xs:enumeration>
                       </xs:restriction>
                    </xs:simpleType>
                 </xs:attribute>
                 <xs:attribute
                    name="LSEFrequency"
                    use="required"
                 >
                    <xs:simpleType>
                       <xs:restriction base="xs:int">
                          <xs:whiteSpace value="collapse"></xs:whiteSpace>
                          <xs:minInclusive value="0"></xs:minInclusive>
                       </xs:restriction>
                    </xs:simpleType>
                 </xs:attribute>
              </xs:complexType>
           </xs:element>
           <xs:element
              name="ports"
              type="portsType"
              maxOccurs="1"
              minOccurs="1"
           >
           </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="portsType">
  	<xs:sequence>
  		<xs:element name="GPIOA" type="STM32GPIOv2PortType"
  			minOccurs="1" maxOccurs="1">
  		</xs:element>
  		<xs:element name="GPIOB" type="STM32GPIOv2PortType"
  			minOccurs="1" maxOccurs="1">
  		</xs:element>
  		<xs:element name="GPIOC" type="STM32GPIOv2PortType"
  			minOccurs="1" maxOccurs="1">
  		</xs:element>
  		<xs:element name="GPIOD" type="STM32GPIOv2PortType"
  			maxOccurs="1" minOccurs="1">
  		</xs:element>
  		<xs:element name="GPIOE" type="STM32GPIOv2PortType"
  			maxOccurs="1" minOccurs="1">
  		</xs:element>
  		<xs:element name="GPIOF" type="STM32GPIOv2PortType"
  			maxOccurs="1" minOccurs="1">
  		</xs:element>
            <xs:element name="GPIOG" type="STM32GPIOv2PortType" maxOccurs="1" minOccurs="1"></xs:element>
            <xs:element name="GPIOH" type="STM32GPIOv2PortType"
  			maxOccurs="1" minOccurs="1">
  		</xs:element>

  	</xs:sequence>

  </xs:complexType>

  <xs:element name="board" type="STM32L1xxBoardType"></xs:element>

</xs:schema>
