1. Course list - The design represents courses in a university.
2. Module list - each course have a fixed list of the modules that make up the course. Also included is the Pre-requisite modules that must be taken before a particular module can be taken.
2. Module enrolment – list of students taking the module.
3. Module results - an optional results field, to distinguish between the current and completed runs of a module, divided into 2:
a. Final Marks, in the range 0 -100.
b. Other possible results, limited to: Medical resit, Resit – for other reasons, Fail – by absense
I'm a total newbie to all these, but here is my work so far
Thanks for your comments guys.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<!-- definition of simple elements -->
<xsd:element name="CourseID" type="xsd:string"/>
<xsd:element name="CourseTitle" type="xsd:string"/>
<xsd:element name="ModuleID" type="xsd:string"/>
<xsd:element name="ModuleTitle" type="xsd:string"/>
<xsd:element name="ModuleType" type="xsd:string"/>
<xsd:element name="StudentID" type="xsd:positiveInteger"/>
<xsd:element name="EntryYr" type="xsd:positiveInteger"/>
<!-- definition of complex elements -->
<xsd:element name="Result">
<xsd:complexType>
<xsd:choice>
<xsd:element name="FinalMark">
<xsd:simpleType>
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="OtherResult">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MedicalResit"/>
<xsd:enumeration value="Resit"/>
<xsd:enumeration value="Fail"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="Prerequisite">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ModuleID"/>
<xsd:element ref="ModuleTitle"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of the schema -->
<!-- composition of courses -->
<xsd:element name="Courses">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="unbounded">
<xsd:element name="Course">
<xsd:complexType>
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
<xsd:element ref="CourseID"/>
<xsd:element ref="CourseTitle"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<!-- composition of modules -->
<xsd:element name="Modules">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="unbounded">
<xsd:element name="Module">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ModuleID"/>
<xsd:element ref="ModuleTitle"/>
<xsd:element ref="ModuleType"/>
<xsd:element ref="Prerequisite" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:key name="PK_Module_ModuleID">
<xsd:selector xpath=".//Module"/>
<xsd:field xpath="ModuleID"/>
</xsd:key>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<!-- module enrolment information -->
<xsd:element name="ModuleEnrolment">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="Enrolment">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref="StudentID"/>
<xsd:element ref="EntryYr"/>
<xsd:element ref="Result" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

New Topic/Question
Reply



MultiQuote



|