<?xml version="1.0"?>
<!-- xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Class" >
        <xs:complexType>
            <xs:sequence maxOccurs="30" minOccurs="1">
                <xs:element name="Student" type="studentType"/>
            </xs:sequence>
            <xs:attribute name="class_number" type="xs:short" use="required"/>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="studentType">
        <xs:sequence>
            <xs:element name="Name" type="nameType"/>
            <xs:element name="Projects" type="projectsType"/>
            <xs:element name="Tests" type="testsType"/>
            <xs:element name="Final_grade" type="final_gradeType"/>
            <xs:element name="Total" type="totalType"/>
            <xs:element name="Final_letter_grade" type="final_letter_gradeType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="nameType">
        <xs:sequence>
            <xs:element name="First_name" type="xs:string"/>
            <xs:element name="Last_name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="projectsType">
        <xs:sequence>
            <xs:element name="Project1" type="xs:string"/>
            <xs:element name="Project2" type="xs:string"/>
            <xs:element name="Project3" type="xs:string"/>
            <xs:element name="Project4" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testsType">
        <xs:sequence>
            <xs:element name="Mid-Term" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="final_gradeType" >
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="100"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType  name="final_letter_gradeType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="A"/>
            <xs:enumeration value="B"/>
            <xs:enumeration value="C"/>
            <xs:enumeration value="D"/>
            <xs:enumeration value="F"/>
            <xs:enumeration value="EXC"/>
            <xs:enumeration value="DROP"/>
            <!-- xs:pattern value="[A-F]"/ -->
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="totalType" >
        <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0.0"/>
            <xs:maxInclusive value="100.0"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
<!-- /xsl:stylesheet -->