<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- annotation:
header comments-->
<xs:annotation>
<xs:documentation xml:lang="en">
XML Schema 2
</xs:documentation>
</xs:annotation>
<!-- transcript
element with type of transcriptType-->
<xs:element name="transcript" type="transcriptType"
/>
<!-- transcriptType:
complextype -->
<xs:complexType name="transcriptType">
<xs:sequence>
<xs:element name="student" type="studentType"
maxOccurs="1" />
<xs:element name="unit" type="unitType"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- studentType:
complextype -->
<xs:complexType name="studentType">
<xs:sequence>
<xs:element name="name" type="xs:string"
maxOccurs="1" />
<xs:element name="degree" type="xs:string"
minOccurs="1" maxOccurs="5" />
</xs:sequence>
<xs:attribute name="id" type="studentID" use="required" />
</xs:complexType>
<!-- unitType:
complextype -->
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="unitName" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="grade" type="gradeType"
maxOccurs="1" />
</xs:sequence>
<xs:attribute name="code" type="codeType" />
</xs:complexType>
<!-- StudentID:
simpletype -->
<xs:simpleType name="studentID">
<xs:restriction base="xs:long">
<xs:minInclusive value="100000" />
<xs:maxInclusive value="999999" />
</xs:restriction>
</xs:simpleType>
<!-- codeType:
simpletype -->
<xs:simpleType name="codeType">
<xs:restriction base="xs:string">
<xs:length value="7" />
</xs:restriction>
</xs:simpleType>
<!-- gradeType:
simpletype -->
<xs:simpleType name="gradeType">
<xs:restriction base="xs:string">
<xs:enumeration value="High Distinction"
/>
<xs:enumeration value="Distinction" />
<xs:enumeration value="Credit" />
<xs:enumeration value="Pass" />
<xs:enumeration value="Fail" />
<xs:enumeration value="Incomplete" />
</xs:restriction>
</xs:simpleType>
</xs:schema>