-
Tim Steiner authoredTim Steiner authored
courses.xsd 10.78 KiB
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:x="http://www.w3.org/1999/xhtml"
xmlns="http://courseapproval.unl.edu/courses"
targetNamespace="http://courseapproval.unl.edu/courses"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd" />
<xs:import namespace="http://www.w3.org/1999/xhtml"
schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" />
<xs:element name="courses" type="courses">
<xs:annotation>
<xs:documentation>This is the root node for a list of course descriptions.</xs:documentation>
</xs:annotation></xs:element>
<xs:complexType name="courses">
<xs:sequence>
<xs:element name="course" type="course" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="course">
<xs:annotation>
<xs:documentation>This is a description of a single course, containing data that one would find in the undergraduate bulletin.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" type="xs:string" >
<xs:annotation>
<xs:documentation>The title of the course</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="courseCodes" type="courseCodes" >
<xs:annotation>
<xs:documentation>A list of course codes for the course, broken up into the subject code, course number and possibly a course letter. Each course must have at least one course code of type "home listing."</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="gradingType" type="gradingType" >
<xs:annotation>
<xs:documentation>This specifies if the course is allowed to be taken pass/no pass, for a letter grade, or both. </xs:documentation>
</xs:annotation></xs:element>
<xs:element name="dfRemoval" type="xs:boolean" >
<xs:annotation>
<xs:documentation>If set to true, this course will remove a grade of D or F from previous versions of the course.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="effectiveSemester" type="xs:positiveInteger" >
<xs:annotation>
<xs:documentation>The semester that this version of the course became active. Format is a four digit year followed by a single digit for the term (1 = Fall, 2 = Spring, 3 = Summer).</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="prerequisite" type="x:Block" minOccurs="0" >
<xs:annotation>
<xs:documentation>An HTML block describing the prerequisites for this course.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="notes" type="x:Block" minOccurs="0" >
<xs:annotation>
<xs:documentation>An HTML block containing notes a student should know before registering for the course.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="description" type="x:Block" minOccurs="0" >
<xs:annotation>
<xs:documentation>An HTML block describing the course.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="campuses" type="campuses" >
<xs:annotation>
<xs:documentation>A list of campuses at which this course is offered.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="deliveryMethods" type="deliveryMethods" >
<xs:annotation>
<xs:documentation>A list of ways in which this course is delivered. (ie: Classroom, Web and/or Correspondence)</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="termsOffered" type="termsOffered" minOccurs="0" >
<xs:annotation>
<xs:documentation>A list of terms during which this course may be offered (ie: Fall, Spring, or Summer)</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="activities" type="activities" >
<xs:annotation>
<xs:documentation>A list of activities the student will participate in while taking this course, usually with an assosiated number of hours per week.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="credits" type="credits" minOccurs="0">
<xs:annotation>
<xs:documentation>A list of the credit hours a course is offered for. Usally just a single "Single Value" type. Other possibilites are a range of values (with a min and max value) or a maximum per semester or per career.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="aceOutcomes" type="aceOutcomes" minOccurs="0" >
<xs:annotation>
<xs:documentation>A list of ACE Outcomes. Each child element is a Stratigic Learning Objective (SLO) number. See http://ace.unl.edu/ for more information.</xs:documentation></xs:annotation></xs:element>
<xs:element name="gradCredits" type="xs:string" minOccurs="0" >
<xs:annotation>
<xs:documentation>If the number of credits offered by the grad version of the course is different, they will be listen as text here.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="gradNotes" type="x:Block" minOccurs="0" >
<xs:annotation>
<xs:documentation>Notes for the grad version of the course, if different.</xs:documentation>
</xs:annotation></xs:element>
<xs:element name="gradPrerequisite" type="x:Block" minOccurs="0" >
<xs:annotation>
<xs:documentation>Prerequisites for the grad version of the course, if different.</xs:documentation>
</xs:annotation></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="courseCodes">
<xs:sequence>
<xs:element name="courseCode" type="courseCode" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="courseCode">
<xs:sequence>
<xs:element name="subject" type="xs:string" />
<xs:element name="courseNumber" type="xs:positiveInteger" />
<xs:element name="courseLetter" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="type" type="courseCodeType" />
</xs:complexType>
<xs:simpleType name="courseCodeType">
<xs:restriction base="xs:string">
<xs:enumeration value="home listing" />
<xs:enumeration value="crosslisting" />
<xs:enumeration value="grad tie-in" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="gradingType">
<xs:restriction base="xs:string">
<xs:enumeration value="unrestricted" />
<xs:enumeration value="letter grade only" />
<xs:enumeration value="pass/no pass only" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="campuses">
<xs:sequence>
<xs:element name="campus" type="campus" maxOccurs="4" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="campus">
<xs:restriction base="xs:string">
<xs:enumeration value="UNL" />
<xs:enumeration value="UNO" />
<xs:enumeration value="UNMC" />
<xs:enumeration value="UNK" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="deliveryMethods">
<xs:sequence>
<xs:element name="deliveryMethod" type="deliveryMethod" maxOccurs="3" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="deliveryMethod">
<xs:restriction base="xs:string">
<xs:enumeration value="Classroom" />
<xs:enumeration value="Web" />
<xs:enumeration value="Correspondence" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="termsOffered">
<xs:sequence>
<xs:element name="term" type="term" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="term">
<xs:restriction base="xs:string">
<xs:enumeration value="Fall" />
<xs:enumeration value="Spring" />
<xs:enumeration value="Summer" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="activities">
<xs:sequence>
<xs:element name="activity" type="activity" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="activity">
<xs:sequence>
<xs:element name="type" type="activityType" />
<xs:element name="hours" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="activityType">
<xs:restriction base="xs:string">
<xs:enumeration value="lec" />
<xs:enumeration value="lab" />
<xs:enumeration value="quz" />
<xs:enumeration value="rct" />
<xs:enumeration value="stu" />
<xs:enumeration value="fld" />
<xs:enumeration value="ind" />
<xs:enumeration value="psi" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="credits">
<xs:sequence>
<xs:element name="credit" type="credit" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="credit">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="type" type="creditType" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="creditType">
<xs:restriction base="xs:string">
<xs:enumeration value="Single Value" />
<xs:enumeration value="Lower Range Limit" />
<xs:enumeration value="Upper Range Limit" />
<xs:enumeration value="Per Semester Limit" />
<xs:enumeration value="Per Career Limit" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="aceOutcomes">
<xs:sequence>
<xs:element name="slo" type="xs:positiveInteger" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>