<!--

    Copyright 2012, Board of Regents of the University of
    Wisconsin System. See the NOTICE file distributed with
    this work for additional information regarding copyright
    ownership. Board of Regents of the University of Wisconsin
    System licenses this file to you under the Apache License,
    Version 2.0 (the "License"); you may not use this file
    except in compliance with the License. You may obtain a
    copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on
    an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied. See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<xs:schema xmlns="http://services.wisc.edu/caos" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" targetNamespace="http://services.wisc.edu/caos" elementFormDefault="qualified" version="2.1.10" jaxb:version="2.1">
	<xs:annotation>
		<xs:documentation><![CDATA[
    version 2.1.10
    This schema defines the elements that make up the CAOS Enterprise Business Objects (EBO).
    See the <a href="https://wiki.doit.wisc.edu/confluence/x/L6QkAw">EBO Repository</a> for more information.
        ]]></xs:documentation>
	</xs:annotation>
	<xs:element name="name" type="nameType"/>
	<xs:complexType name="nameType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	This type is made up of the 5 components of a person's name. The only required field is "last";
    	if a person has only 1 name component, the University treats it as a last name.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="first" type="xs:string" minOccurs="0"/>
			<xs:element name="middle" type="xs:string" minOccurs="0"/>
			<xs:element name="last" type="xs:string" minOccurs="1"/>
			<xs:element name="legalFirst" type="xs:string" minOccurs="0"/>
			<xs:element name="legalMiddle" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="gender">
		<xs:annotation>
			<xs:documentation><![CDATA[
    Enumerated type for gender.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Male"/>
			<xs:enumeration value="Female"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Other"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="personAttributes" type="personAttributesType"/>
	<xs:complexType name="personAttributesType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Basic type to represent a number of commonly used attributes that
    	identify a person.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="emplid" type="xs:string"/>
			<xs:element name="pvi" type="xs:string"/>
			<xs:element name="name" type="nameType"/>
			<xs:element name="email" type="xs:string" minOccurs="0"/>
			<xs:element name="netid" type="xs:string" minOccurs="0"/>
			<xs:element name="campusid" type="xs:string" minOccurs="0"/>
			<xs:element name="office365PrimaryEmail" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ferpaAttributes">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	This type is included in student objects and contains 2 boolean values. If the
    	name element is true, the student has request FERPA privacy for their name. If the
    	email element is true, the student has requested FERPA privacy for their email address.

    	CHUB Clients are expected to respect these values and not display student information as
    	prescribed by this element. Non-compliance is a violation of U.S. Federal law
    	(see http://registrar.wisc.edu/student_privacy_rights).
        ]]></xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="name" type="xs:boolean"/>
			<xs:element name="email" type="xs:boolean"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="personType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   Representation of a basic person.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="personAttributes"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="instructor">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    		Basic type to represent an instructor.
    	    ]]></xs:documentation>
			</xs:annotation>
			<xs:complexContent>
				<xs:extension base="personType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="student">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    Basic type to represent an student.
    The programPlan element may be defined 0 to N times for a student.

    CHUB clients are expected to respect the values in the ferpaAttributes element
    and not display student information as prescribed. Non-compliance is a violation of
    U.S. Federal law (see http://registrar.wisc.edu/student_privacy_rights).
        ]]></xs:documentation>
			</xs:annotation>
			<xs:complexContent>
				<xs:extension base="baseStudent">
					<xs:sequence>
						<xs:element ref="studentAdvisorRelationships" minOccurs="0"/>
						<xs:element ref="affiliations" minOccurs="0"/>
						<xs:element ref="credits" minOccurs="0"/>
						<xs:element ref="directory" minOccurs="0"/>
						<xs:element ref="enrollmentImpacts" minOccurs="0"/>
						<xs:element ref="enrollmentSummary" minOccurs="0"/>
						<xs:element ref="entryInformation" minOccurs="0"/>
						<xs:element ref="photoInfo" minOccurs="0"/>
						<xs:element ref="academicSummary" minOccurs="0"/>
						<xs:element ref="academicObjective" minOccurs="0"/>
						<xs:element ref="testScores" minOccurs="0"/>
						<xs:element ref="secondarySchools" minOccurs="0"/>
						<xs:element ref="residency" minOccurs="0"/>
						<xs:element ref="previousInstitutions" minOccurs="0"/>
						<xs:element ref="studyAbroadExperiences" minOccurs="0"/>
						<xs:element ref="athleticParticipation" minOccurs="0"/>
						<xs:element ref="memoranda" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="baseStudent">
		<xs:annotation>
			<xs:appinfo>
				<jaxb:class>
					<jaxb:javadoc><![CDATA[<p>Contains core student attributes.</p>
					<p>As of version 1.8.0, <code>campusId</code> will be <code>null</code>. Instead, use
					{@link edu.wisc.services.caos.PersonAttributes#campusid} which has been available since version 1.7.1.</p>]]></jaxb:javadoc>
				</jaxb:class>
			</xs:appinfo>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="personType">
				<xs:sequence>
					<xs:element name="ferpaAttributes" type="ferpaAttributes"/>
					<xs:element ref="primaryCareer" minOccurs="0"/>
					<xs:element name="campusId" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:appinfo>
								<jaxb:property>
									<jaxb:javadoc><![CDATA[As of version 1.8.0, this call will return <code>null</code>. Instead, use
									{@link edu.wisc.services.caos.PersonAttributes#campusid} which has been available since version 1.7.1.]]></jaxb:javadoc>
								</jaxb:property>
							</xs:appinfo>
						</xs:annotation>
					</xs:element>
					<xs:element name="gender" type="gender" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The student's gender.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="formerStudent" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Whether this student appears in the "former student" population within Manifest.
							Note that students with this flag set may also be currently enrolled.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="baseAdvisor">
		<xs:complexContent>
			<xs:extension base="personType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="advisor" type="advisorType"/>
	<xs:complexType name="advisorType">
		<xs:complexContent>
			<xs:extension base="baseAdvisor">
				<xs:sequence>
					<xs:element ref="studentAdvisorRelationships" minOccurs="0"/>
					<xs:element ref="advisorCommitteeRelationships" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="advisors" type="advisorsType"/>
	<xs:complexType name="advisorsType">
		<xs:sequence>
			<xs:element ref="advisor" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studentAdvisorRelationships" type="studentAdvisorRelationshipsType"/>
	<xs:complexType name="studentAdvisorRelationshipsType">
		<xs:sequence>
			<xs:element ref="studentAdvisorRelationship" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studentAdvisorRelationship" type="studentAdvisorRelationshipType"/>
	<xs:complexType name="studentAdvisorRelationshipType">
		<xs:annotation>
			<xs:documentation><![CDATA[
				Represents the relationship of a student to an advisor or committee. <a href="https://wiki.doit.wisc.edu/confluence/x/i35XAw">Student Advisor Relationship EBO</a>
			]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:element ref="student"/>
				<xs:element ref="advisor"/>
				<xs:element ref="advisorCommittee"/>
			</xs:choice>
			<xs:element name="studentCareerCode" type="xs:string"/>
			<xs:element name="role" type="codeDescriptionPairType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="advisorCommittee" type="advisorCommitteeType"/>
	<xs:complexType name="advisorCommitteeType">
		<xs:complexContent>
			<xs:extension base="baseAdvisorCommittee">
				<xs:sequence>
					<xs:element ref="studentAdvisorRelationships" minOccurs="0"/>
					<xs:element ref="advisorCommitteeRelationships" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="advisorCommitteeRelationships" type="advisorCommitteeRelationshipsType"/>
	<xs:complexType name="advisorCommitteeRelationshipsType">
		<xs:sequence>
			<xs:element ref="advisorCommitteeRelationship" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="advisorCommitteeRelationship" type="advisorCommitteeRelationshipType"/>
	<xs:complexType name="advisorCommitteeRelationshipType">
		<xs:sequence>
			<xs:choice>
				<xs:element ref="advisor"/>
				<xs:element ref="advisorCommittee"/>
			</xs:choice>
			<xs:element name="role" type="codeDescriptionPairType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="advisorCommittees" type="advisorCommitteesType"/>
	<xs:complexType name="advisorCommitteesType">
		<xs:sequence>
			<xs:element ref="advisorCommittee" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="crossListedType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    This defines the 4 possible cross listed types.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="CrossListed"/>
			<xs:enumeration value="MeetsWith"/>
			<xs:enumeration value="CrossListedAndMeetsWith"/>
			<xs:enumeration value="SectionLevelMeetsWith"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="honorsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    This defines the 3 possible honors types.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="HonorsOnly"/>
			<xs:enumeration value="HonorsLevel"/>
			<xs:enumeration value="InstructorApproved"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="classType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    This defines the possible class types.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="LEC"/>
			<xs:enumeration value="DIS"/>
			<xs:enumeration value="LAB"/>
			<xs:enumeration value="SEM"/>
			<xs:enumeration value="IND"/>
			<xs:enumeration value="FLD"/>
			<xs:enumeration value="CON"/>
			<xs:enumeration value="RG1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="studentClassMembership">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
            Complex type to represent an student's membership within a Class (identified by the
            classUniqueId element).

            It is very important that the addTimestamp and dropTimestamp are inspected each time this element is used.

            The addTimestamp field denotes the date and time the student last enrolled in the class.

            If the dropTimestamp field is empty, the student has not dropped the class and is considered
            enrolled.

            If the dropTimestamp field is set and is a date/time later the addTimestamp, the student has dropped the class.

            If the dropTimestamp field is set and is a date/time before the addTimestamp, the student added, dropped, and
            re-added and should be considered enrolled.

            CHUB Clients are expected to respect the values in the ferpaAttributes element
            and not display student information as prescribed. Non-compliance is a violation of
            U.S. Federal law (see http://registrar.wisc.edu/student_privacy_rights).
            ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="student"/>
				<xs:element ref="classUniqueId"/>
				<xs:element name="isAuditing" type="xs:boolean"/>
				<xs:element name="enrollAddDate" type="xs:date"/>
				<xs:element name="addTimestamp" type="xs:dateTime"/>
				<xs:element name="enrollDropDate" type="xs:date" minOccurs="0"/>
				<xs:element name="dropTimestamp" type="xs:dateTime" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="session">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    		Basic type to represent session.
    		The session code "A1" is the "Regular" session.

    		drwDate: Deadline for students to drop courses without DR, or withdraw for the term without W, on transcript

			addDate: Deadline for students to add, swap, or change sections in a course (after: need department permission)

			dropDate: Deadline for students to add or drop a course (after: need academic dean approval)
    	    ]]></xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element name="sessionCode" type="xs:string"/>
				<xs:element name="sessionDescription" type="xs:string"/>
				<xs:element name="beginDate" type="xs:dateTime"/>
				<xs:element name="endDate" type="xs:dateTime"/>
				<xs:element name="drwDate" type="xs:dateTime" minOccurs="0"/>
				<xs:element name="addDate" type="xs:dateTime" minOccurs="0"/>
				<xs:element name="dropDate" type="xs:dateTime" minOccurs="0"/>
				<xs:element name="editCourseDeadlineDate" type="xs:dateTime" minOccurs="0"/>
				<xs:element name="editCourseDeadlineGradDate" type="xs:dateTime" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="term" type="termType"/>
	<xs:complexType name="termType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    		Complete representation of a Term. Terms are associated with careerCodes,
    		and may have differing begin and end dates.
    		The instructionBeginDate and instructionEndDate
    		are the begin/end dates for the A1 (Regular) session and equate to the official
    		Academic Calendar Instruction begin date and Last Class Date.
    	    ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="shortDescription" type="xs:string"/>
			<xs:element name="longDescription" type="xs:string"/>
			<xs:element name="beginDate" type="xs:dateTime"/>
			<xs:element name="endDate" type="xs:dateTime"/>
			<xs:element name="instructionBeginDate" type="xs:dateTime"/>
			<xs:element name="instructionEndDate" type="xs:dateTime"/>
			<xs:element name="academicYear" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="classUniqueId">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    		A "class" is uniquely identified by it's termCode and classNumber.
    	    ]]></xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element ref="termCode"/>
				<xs:element name="classNumber" type="xs:int"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="subjectType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    		Complete representation of a subject. subjectCode is generally understood to
    		be the unique identifier; however subjects can differ from term to term, so
    		in practice the combination of term and subjectCode uniquely identify a subject.
    	   ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="subjectCode" type="xs:string"/>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="shortDescription" type="xs:string"/>
			<xs:element name="formalDescription" type="xs:string"/>
			<xs:element name="undergraduateCatalogURI" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="graduateCatalogURI" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="departmentURI" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="uddsFundingSource" type="xs:string" minOccurs="0"/>
			<xs:element ref="schoolCollege"/>
			<xs:element name="footnote" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="departmentOwnerAcademicOrgCode" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="subject" type="subjectType"/>
	<xs:element name="instructorAffiliation">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    		This type is used to describe how an instructor is affiliated (e.g. role code
    		and description) for a given class (identified by classUniqueId).

    		Values for role code:
				1 = Faculty
				2 = Emerita/Emeritus
				3 = Clinical/CHS Faculty
				4 = Visiting/Adjunct Faculty
				5 = Lecturer/Faculty Associate
				6 = Other Academic Staff
				7 = Graduate Assistant
        	]]></xs:documentation>
			</xs:annotation>
			<xs:all minOccurs="0">
				<xs:element ref="classUniqueId"/>
				<xs:element ref="instructor"/>
				<xs:element name="roleCode" type="xs:string" minOccurs="0"/>
				<xs:element name="roleDescription" type="xs:string" minOccurs="0"/>
				<xs:element name="displayInstructor" type="xs:boolean"/>
				<xs:element name="courseAdministrator" type="xs:boolean"/>
				<xs:element name="jobTitleDetails" type="jobTitleDetailsType"/>
				<xs:element name="gradeRosterAccess" type="xs:string"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="instructorAffiliationClass">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	    This type is used to describe how an instructor is affiliated (e.g. role code
    	    and description) for a given class. It is similar to the 'instructorAffiliation' type,
    	    however it contains a complete 'class' in the place of a 'classUniqueId.'
    	    ]]></xs:documentation>
			</xs:annotation>
			<xs:all minOccurs="0">
				<xs:element ref="class"/>
				<xs:element ref="instructor"/>
				<xs:element name="roleCode" type="xs:string" minOccurs="0"/>
				<xs:element name="roleDescription" type="xs:string" minOccurs="0"/>
				<xs:element name="displayInstructor" type="xs:boolean"/>
				<xs:element name="courseAdministrator" type="xs:boolean"/>
				<xs:element name="jobTitleDetails" type="jobTitleDetailsType"/>
				<xs:element name="gradeRosterAccess" type="xs:string"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="jobTitleDetailsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	    This type is used to describe job and title information. Primarily used for instructors.
    	    ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="titleCode" type="xs:string"/>
			<xs:element name="titleDescription" type="xs:string"/>
			<xs:element name="appointmentTypeCode" type="xs:string"/>
			<xs:element name="appointmentTypeDescription" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="topic">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Complete representation of a "topic."
        ]]></xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="shortDescription" type="xs:string"/>
			<xs:element name="longDescription" type="xs:string"/>
			<xs:element name="id" type="xs:int"/>
			<xs:element name="topicLastTaught" type="xs:string" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="gradingBasisType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Representation of a grading basis for a course.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="code" type="xs:string"/>
			<xs:element name="description" type="xs:string"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="course" type="courseType"/>
	<xs:complexType name="courseType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Complete representation of a "course."

    	A course can be identified by termCode, subjectCode, and either courseId
    	or catalogNumber.

    	A courseId is most often a zero-padded numeric value, however it is not required
    	to be numeric (hence the xs:string type).

    	The following elements are "human readable:"
    	creditRange
    	typicallyOffered
    	advisoryPrerequisites
    	enrollmentPrerequisites

    	The advisoryPrerequisites element contains a description defined by divisional committee as strong recommendations, but are
    	not necessarily enforced for enrollment. advisoryPrerequisites may not contain references to other classes; for example
    	it may contain "Instructor Approval.".
    	The enrollmentPrerequisites are enforced for enrollment.

    	The firstTaught field will contain the 4 digit termCode of the first term this course was originally taught.
    	The lastTaught field will contain the 4 digit termCode of the term this course was last previously taught.

    	If catalogPrintFlag is set to false, this course is not to be published publicly (it means the course
    	is not completely defined and may not be enrollable.

	The crossListedSubjects element indicates that the course is listed in other subject codes. In this situation,
    	termCode and courseId are identical across the different subjects. The value of the subject element for a course that has
    	cross listed subject will match the subjectCode supplied to retrieve the course.

    	The approvedForTopics field is a boolean that when true signals that this course is approved to have "Topics."
    	The approvedForTopics field may be true for some courses that do not have any Topic child elements;
    	it's possible for a course to be a "Topics Course" but not have any assigned or published Topics Classes for the Term you requested.

    	The topic element within a course is a list of 0 to N topics. This list contains values for topics for this course's classes with a
    	value of true for their 'published' field. If you are interested in topics for classes with values of false for their
    	'published' field, you will only be able to find that data in web service methods that return Classes.

    	The honors element can vary between a course and it's enclosed classes. If the honors
    	element for a class differs from the honors element of the enclosing course, the honors
    	element defined for the class takes precedence.

    	The currentlyTaught field tells you if the course is being taught in a recent term; customers should be discouraged
    	from providing technology services for courses with currentlyTaught set to false.

    	The gradCourseWork element appears on courses that count toward the 50% graduate coursework requirement of graduate degrees.
    	The element should appear on all 700+ catalogNumber courses and may appear on 300-699 catalogNumbered courses.

    	The sustainability element appears on courses that include a focus on learning about sustainability. See https://kb.wisc.edu/vesta/91418.

        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="courseId" type="xs:string"/>
			<xs:element ref="subject"/>
			<xs:element name="catalogNumber" type="xs:string"/>
			<xs:element name="approvedForTopics" type="xs:boolean"/>
			<xs:element name="topic" type="topic" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="minimumCredits" type="xs:int"/>
			<xs:element name="maximumCredits" type="xs:int"/>
			<xs:element name="creditRange" type="xs:string" minOccurs="0"/>
			<xs:element name="firstTaught" type="xs:string" minOccurs="0"/>
			<xs:element name="lastTaught" type="xs:string" minOccurs="0"/>
			<xs:element name="typicallyOffered" type="xs:string" minOccurs="0"/>
			<xs:element name="generalEd" type="codeDescriptionPairType" minOccurs="0"/>
			<xs:element name="ethnicStudies" type="codeDescriptionPairType" minOccurs="0"/>
			<xs:element name="breadths" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="breadth" type="codeDescriptionPairType" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="lettersAndScienceCredits" type="codeDescriptionPairType" minOccurs="0"/>
			<xs:element name="workplaceExperience" type="codeDescriptionPairType" minOccurs="0"/>
			<xs:element name="foreignLanguage" type="codeDescriptionPairType" minOccurs="0"/>
			<xs:element name="honors" type="honorsType" minOccurs="0"/>
			<xs:element name="levels" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="level" type="codeDescriptionPairType" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="openToFirstYear" type="xs:boolean" minOccurs="0"/>
			<xs:element name="advisoryPrerequisites" type="xs:string" minOccurs="0"/>
			<xs:element name="enrollmentPrerequisites" type="xs:string" minOccurs="0"/>
			<xs:element name="allCrossListedSubjects" type="crossListedSubjectsType" minOccurs="0"/>
			<xs:element name="title" type="xs:string"/>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="catalogPrintFlag" type="xs:boolean" minOccurs="0"/>
			<xs:element name="academicGroupCode" type="xs:string" minOccurs="0"/>
			<xs:element name="currentlyTaught" type="xs:boolean"/>
			<xs:element name="gradingBasis" type="gradingBasisType"/>
			<xs:element name="repeatable" type="xs:string"/>
			<xs:element name="gradCourseWork" type="xs:boolean" minOccurs="0"/>
			<xs:element name="sustainability" type="codeDescriptionPairType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="crossListedSubjectsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   The list of subjects a course is listed in.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="subject" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="courseAttribute">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="code" type="xs:string"/>
				<xs:element name="codeShortName" type="xs:string"/>
				<xs:element name="codeLongName" type="xs:string"/>
				<xs:element name="valueCode" type="xs:string"/>
				<xs:element name="valueName" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="enrollmentStatus">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
		enrollmentStatus encapsulates all of the enrollment numbers for a 'class.'
		All numbers in this element - including capacities - are volatile and may change
		at any time.

		capacity is the limit of enrolled students for the class in context.
		currentlyEnrolled is the number of students currently enrolled in the class.
		waitlistCapacity defines the maximum number of students allowed on the waitlist.
		waitlistCurrentSize is the number of students currently on the waitlist for the class.

		The fields prefixed with "aggregate" are only defined for cross listed classes (any CrossListedType).
		Aggregate fields represent combined capacities and enrollment numbers for the set of cross listed
		classes; they do not always equal the sum of the capacities of the individual classes. Aggregate
		fields are defined separately by the person publishing the class.

		In the case where the class is not cross-listed, openSeats is simply derived from the formula:

			capacity - currentlyEnrolled.

		When a class is cross-listed, openSeats is derived from the formula:

		    min(capacity - currentlyEnrolled, aggregateCapacity - aggregateCurrentlyEnrolled).

		If the result of the applicable openSeats calculation is less than zero (which is possible), we use a value of 0.

		openWaitlistSpots is calculated similarly, using the waitlist-related fields.
		]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="classUniqueId"/>
				<xs:element name="capacity" type="xs:int"/>
				<xs:element name="currentlyEnrolled" type="xs:int"/>
				<xs:element name="waitlistCapacity" type="xs:int"/>
				<xs:element name="waitlistCurrentSize" type="xs:int"/>
				<xs:element name="openSeats" type="xs:int"/>
				<xs:element name="openWaitlistSpots" type="xs:int"/>
				<xs:element name="aggregateCapacity" type="xs:int" minOccurs="0"/>
				<xs:element name="aggregateCurrentlyEnrolled" type="xs:int" minOccurs="0"/>
				<xs:element name="aggregateWaitlistCapacity" type="xs:int" minOccurs="0"/>
				<xs:element name="aggregateWaitlistCurrentSize" type="xs:int" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="classAttribute">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Complex type to represent a single classAttribute.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="attributeCode" type="xs:string"/>
				<xs:element name="attributeDisplayName" type="xs:string"/>
				<xs:element name="valueCode" type="xs:string"/>
				<xs:element name="valueShortName" type="xs:string"/>
				<xs:element name="valueDescription" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="class">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Complete representation of a "class."

    	A class is uniquely identified by termCode and classNumber. It can be thought
    	of as a "section" within a course.

    	The published field is of critical importance; it's value expresses the desire of the department
    	on whether to publish the existince of this class publicly or not. If your application presents
    	classes publicly, you are required to refrain from displaying details about classes that have
    	a value of false for this field.

    	The crossListing field is optional and contains the type, primary classNumber and primary subject.

    	If the topic element is set, it will match one of the topics in the topics element
    	of the enclosing course.

    	The honors element can vary between a class and it's enclosing course. If the honors
    	element for a class differs from the honors element of the enclosing course, the honors
    	element defined for the class takes precedence.

   		The enrollmentStatus element contains all of the current numbers regarding capacity, enrollment
   		and waitlist.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="classUniqueId"/>
				<xs:element name="published" type="xs:boolean"/>
				<xs:element name="topic" type="topic" minOccurs="0" maxOccurs="1"/>
				<xs:element name="startDate" type="xs:date"/>
				<xs:element name="endDate" type="xs:date"/>
				<xs:element name="active" type="xs:boolean"/>
				<xs:element name="sessionCode" type="xs:string"/>
				<xs:element ref="subject"/>
				<xs:element name="catalogNumber" type="xs:string"/>
				<xs:element name="courseId" type="xs:string"/>
				<xs:element name="type" type="classType"/>
				<xs:element name="sectionNumber" type="xs:string"/>
				<xs:element name="honors" type="honorsType" minOccurs="0"/>
				<xs:element name="comB" type="xs:boolean"/>
				<xs:element name="gradedComponent" type="xs:boolean"/>
				<xs:element name="instructionMode" type="xs:string" minOccurs="0"/>
				<xs:element name="addConsent" type="codeDescriptionPairType"/>
				<xs:element name="dropConsent" type="codeDescriptionPairType"/>
				<xs:element ref="crossListing" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="classMeeting" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="classAttribute" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="enrollmentStatus"/>
				<xs:element name="footnote" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="crossListing">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Type that contains the crossListing information. Please note that the primarySubject field is optional; this
    	is due to the fact that the source for the data depends on human entry that is prone to error.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element name="crossListedType" type="crossListedType"/>
				<xs:element name="primaryClassNumber" type="xs:int"/>
				<xs:element name="primarySubject" type="subjectType" minOccurs="0"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="classRoster">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Complete representation of a "class roster."

    	CHUB Clients are expected to respect the values in the ferpaAttributes element
    	and not display student information as prescribed. Non-compliance is a violation of
    	U.S. Federal law (see http://registrar.wisc.edu/student_privacy_rights).
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="instructorAffiliation" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="studentClassMembership" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="latitudeType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Restricted simple type to define a latitude value.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:double">
			<xs:minInclusive value="-90"/>
			<xs:maxInclusive value="90.0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="longitudeType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Restricted simple type to define a longitude value.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:double">
			<xs:minInclusive value="-180.0"/>
			<xs:maxInclusive value="180.0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="building">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	This type defines the attributes of a University building relevant to curricular data.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="buildingCode" type="xs:string"/>
			<xs:element name="buildingName" type="xs:string"/>
			<xs:element name="streetAddress" type="xs:string" minOccurs="0"/>
			<xs:element name="latitude" type="latitudeType" minOccurs="0"/>
			<xs:element name="longitude" type="longitudeType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="classMeetingType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Defines the 2 known class meeting types.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Exam"/>
			<xs:enumeration value="Class"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="classMeeting">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Complete representation of a class meeting. Class meetings could be
    	regular classes or final exams.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="meetingOrExamNumber" type="xs:string"/>
				<xs:element name="meetingType" type="classMeetingType"/>
				<xs:element name="meetingTimeStart" type="xs:time" minOccurs="0"/>
				<xs:element name="meetingTimeEnd" type="xs:time" minOccurs="0"/>
				<xs:element name="meetingDays" type="xs:string" minOccurs="0"/>
				<xs:element name="meetingDaysList" type="meetingDaysListType" minOccurs="0"/>
				<xs:element name="building" type="building" minOccurs="0"/>
				<xs:element name="room" type="xs:string" minOccurs="0"/>
				<xs:element name="examDate" type="xs:date" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="meetingDaysListType">
		<xs:sequence>
			<xs:element name="dayOfWeek" type="dayOfWeekType" maxOccurs="7"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="dayOfWeekType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="MONDAY"/>
			<xs:enumeration value="TUESDAY"/>
			<xs:enumeration value="WEDNESDAY"/>
			<xs:enumeration value="THURSDAY"/>
			<xs:enumeration value="FRIDAY"/>
			<xs:enumeration value="SATURDAY"/>
			<xs:enumeration value="SUNDAY"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="materialRequirement">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	This type defines whether a material is required by the instructor or only recommended.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="REQUIRED"/>
			<xs:enumeration value="RECOMMENDED"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="textbook">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Representation of a textbook, constructed from what data an instructor provides.
    	If an isbn is available (Instructors do not always provide), this type guarantees it's value
    	will be a valid ISBN-13 number.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="isbn" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="publisher" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="year" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="edition" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="materialRequirement" type="materialRequirement" minOccurs="1" maxOccurs="1"/>
			<xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="otherMaterial">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Representation of some other class material (e.g. Safety Goggles, Bunsen Burner, etc).
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="materialRequirement" type="materialRequirement" minOccurs="1" maxOccurs="1"/>
			<xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="classMaterials" type="classMaterialsType"/>
	<xs:complexType name="classMaterialsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	This type is a composite object containing all known materials (textbooks, otherMaterial, website URLs)
    	for a class.

    	If the materialsDefined element is false, no known materials have been specified (either the instructor
    	has not started the definition, or has not yet completed the definition).
    	Otherwise if materialsDefined is true AND the "noMaterialsInstructorMessage" field is set, the instructor
    	has specified that there are no materials for this class. The "noMaterialsInstructorMessage" field will contain
    	a human readable message that should be displayed to consumers.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="classUniqueId" minOccurs="1" maxOccurs="1"/>
			<xs:element name="materialsDefined" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
			<xs:element name="noMaterialsInstructorMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="sectionNotes" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="lastUpdate" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
			<xs:element name="relatedUrl" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="textbook" type="textbook" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="otherMaterial" type="otherMaterial" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="classMaterialsURI">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	ClassMaterialsURI is a simple type to bundle a classUniqueId and the "presentation URI"
    	that will display the University of Wisconsin-Madison sanctioned view of the class' materials.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="classUniqueId" minOccurs="1" maxOccurs="1"/>
				<xs:element name="presentationURI" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="enrollmentPackageUniqueId">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
        An enrollment package is uniquely identified by the combination of fields described in this element.
        Do not treat any individual or subset of these fields as sufficient for unique identity. packageId
        in particular is not unique as the same term/subject/catalogNumber may have multiple enrollmentpackages
        with the same packageId in different sessions.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="termCode"/>
				<xs:element name="subjectCode" type="xs:string"/>
				<xs:element name="catalogNumber" type="xs:string"/>
				<xs:element name="sessionCode" type="xs:string"/>
				<xs:element name="packageId" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="enrollmentPackage">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	An enrollment package is a collection of classes that are tied together for enrollment purposes.
    	An enrollment package defines a main class and a list of 0 to N dependent classes. If a student
    	enrolls for one of the classes within this collection, they will be automatically enrolled
    	in ALL classes within the collection.

    	A common example of this collection consists of a main lecture and a set of suggested dependent
    	class pairings. A class may define LEC 001 as the main class, and suggested dependent classes of
    	DIS 301 and LAB 301.

    	The main class in an enrollment is often a lecture, but can be of any classType.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="enrollmentPackageUniqueId"/>
				<xs:element name="enrollmentClassNumber" type="xs:int"/>
				<xs:element name="creditRange" type="xs:string"/>
				<xs:element ref="enrollmentRequirementGroups" minOccurs="0"/>
				<xs:element name="classPermissionNumberEnabled" type="xs:boolean"/>
				<xs:element ref="autoEnrollClasses" minOccurs="0"/>
				<xs:element ref="packageEnrollmentStatus" minOccurs="0"/>
				<xs:element name="enrollmentPackageClass" type="enrollmentPackageClass" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="packageEnrollmentStatus">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="availableSeats" type="xs:nonNegativeInteger"/>
				<xs:element name="waitlistTotal" type="xs:nonNegativeInteger"/>
				<xs:element name="status" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="enrollmentPackageClass">
		<xs:annotation>
			<xs:documentation><![CDATA[
			An enrollmentPackageClass is simply composed of a class and a boolean field that
			marks whether or not this class is optional within it's contained enrollmentPackage.
			]]></xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element ref="class"/>
			<xs:element name="optional" type="xs:boolean"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="enrollmentRequirementGroups">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[Enrollment requirements.]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="catalogRequirementGroups" minOccurs="0">
					<xs:annotation>
						<xs:documentation><![CDATA[Catalog level requirements applying to all underlying class associations unless specifically overridden.]]></xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="catalogRequirementGroup" type="codeDescriptionPairType" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="classAssociationRequirementGroups" minOccurs="0">
					<xs:complexType>
						<xs:annotation>
							<xs:documentation><![CDATA[Requirements particular to a class association]]></xs:documentation>
						</xs:annotation>
						<xs:sequence>
							<xs:element name="classAssociationRequirementGroup" maxOccurs="unbounded">
								<xs:complexType>
									<xs:complexContent>
										<xs:extension base="codeDescriptionPairType">
											<xs:sequence>
												<xs:element name="alsoUseCatalogRequisite" type="xs:boolean"/>
											</xs:sequence>
										</xs:extension>
									</xs:complexContent>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="autoEnrollClasses">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[Classes which are automatically enrolled in when a student enrolls in the enrollment package.]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="autoEnrollClass" type="xs:string" minOccurs="1" maxOccurs="2"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="labeledURI">
		<xs:annotation>
			<xs:documentation><![CDATA[
			Basic complexType to bundle a URI (often a web site address) with a descriptive text label.
			]]></xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="label" type="xs:string"/>
			<xs:element name="uri" type="xs:anyURI"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="instructorProvidedClassDetails">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
        Complex type to represent a details provided by the Instructor about a class.
        The fields in this type are generally free form text that the Instructor has entered
        and may or may not line up exactly with class and course descriptions.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element ref="classUniqueId"/>
				<xs:element name="instructorDescription" type="xs:string" minOccurs="0"/>
				<xs:element name="typicalTopicsAndOrSchedule" type="xs:string" minOccurs="0"/>
				<xs:element name="format" type="xs:string" minOccurs="0"/>
				<xs:element name="learningOutcome" type="xs:string" minOccurs="0"/>
				<xs:element name="keyword" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="labeledURI" type="labeledURI" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="lastUpdated" type="xs:dateTime"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="courseGuideRoadmap">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
        A Course Guide Roadmap is an element constructed by Course Guide to retain a plan of courses for a student.
        A student may have multiple Roadmaps, but only one will be the "primary."
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="roadmapOwnerPvi" type="xs:string" minOccurs="1" maxOccurs="1"/>
				<xs:element name="roadmapName" type="xs:string" minOccurs="1" maxOccurs="1"/>
				<xs:element name="primary" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="codeDescriptionPairType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   Combines a code and its description as one type.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="code" type="xs:string"/>
			<xs:element name="description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="termCode" type="termCodeType"/>
	<xs:simpleType name="termCodeType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	A termCode is a 4 digit identifier for a Term. Each digit has a different meaning:
    	The first digit describes the century; "0" corresponds with the century starting
	 	in 1900, "1" corresponds with the century starting in 2000.

	 	The 2nd and 3rd digits are the school year. For example
		"09" represents the 2008-2009 Fall/Spring/Summer school year.

	 	The 4th digit is the semester:
	 		2 = Fall
	 		3 = Winter (not regularly used)
	 		4 = Spring
	 		6 = Summer
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{4}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="phoneType">
		<xs:sequence>
			<xs:element name="number" type="xs:string"/>
			<xs:element name="extension" type="xs:string" minOccurs="0"/>
			<xs:element name="privacyFlag" type="xs:boolean" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="addressType">
		<xs:sequence>
			<xs:element name="streetAddress1" type="xs:string" minOccurs="0"/>
			<xs:element name="streetAddress2" type="xs:string" minOccurs="0"/>
			<xs:element name="city" type="xs:string" minOccurs="0"/>
			<xs:element name="state" type="xs:string" minOccurs="0"/>
			<xs:element name="postalCode" type="xs:string" minOccurs="0"/>
			<xs:element name="country" type="xs:string" minOccurs="0"/>
			<xs:element name="privacyFlag" type="xs:boolean" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="schoolCollege">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation><![CDATA[
    	Complete representation of a school or college.
        ]]></xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="academicOrgCode" type="xs:string"/>
				<xs:element name="academicGroupCode" type="xs:string" minOccurs="0"/>
				<xs:element name="shortDescription" type="xs:string"/>
				<xs:element name="formalDescription" type="xs:string"/>
				<xs:element name="uddsCode" type="xs:string" minOccurs="0"/>
				<xs:element name="schoolCollegeURI" type="xs:string" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="schoolColleges" type="schoolCollegesType"/>
	<xs:complexType name="schoolCollegesType">
		<xs:sequence>
			<xs:element ref="schoolCollege" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="schoolCollegesTerms" type="schoolCollegesTermsType"/>
	<xs:complexType name="schoolCollegesTermsType">
		<xs:sequence>
			<xs:element ref="schoolCollegesTerm" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="schoolCollegesTerm" type="schoolCollegesTermType"/>
	<xs:complexType name="schoolCollegesTermType">
		<xs:sequence>
			<xs:element name="term" type="codeDescriptionPairType"/>
			<xs:element ref="schoolColleges"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="credits" type="creditsType"/>
	<xs:complexType name="creditsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
			Not defined as a high-level EBO on the <a href="https://wiki.doit.wisc.edu/confluence/x/g35XAw">wiki repository</a>,
			this is simply a container for CAOS to deliver the various credit-related EBOs.]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="creditTotals" minOccurs="0"/>
			<xs:element name="transferCredits" type="transferCreditsType" minOccurs="0"/>
			<xs:element name="testCredits" type="testCreditsType" minOccurs="0"/>
			<xs:element name="otherCredits" type="otherCreditsType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditTotals" type="creditTotalsType"/>
	<xs:complexType name="creditTotalsType">
		<xs:annotation>
			<xs:documentation>
				Credit totals for a student will include a breakdown by career
				of cumulative totals for transfer credits, test credits, total credits,
				and other (retro) credits. It will also include term credit totals,
				term taken totals, term taken credits counted in GPA, term taken credits not
				counted in GPA and term in-progress credits; class standing,
				projected class standing and the number of terms enrolled.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="creditTotalsCareers"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditsCumulative" type="creditsCumulativeType"/>
	<xs:complexType name="creditsCumulativeType">
		<xs:sequence>
			<xs:element name="total" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Total of credits earned at UW-Madison.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="gpa" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Sum of all the term gpa credits for all terms in the same career up to and including the given term.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="transfer" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Total of credits earned for courses taken at
						institutions other than UW-Madison.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="test" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Total of credits earned through tests rather than courses, ex. AP or IB.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="other" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Sum of all the other credits for all terms in the same career
						up to and including the given term.  An example is retroactive credits.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="currentClassStanding" type="levelType">
				<xs:annotation>
					<xs:documentation><![CDATA[
		  The student's academic level at the beginning of the given term]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="projectedClassStanding" type="levelType">
				<xs:annotation>
					<xs:documentation><![CDATA[
		  The student's academic level projected for the beginning of that given term.
		  This includes all completed credits, in-progress credits and transfer credits (includes other and test credits) for all prior terms.]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="numberOfTermsEnrolled" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Implemented in 1104 and not calculated retroactively. Counts summer term enrollment.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditTerm" type="creditTermType"/>
	<xs:complexType name="creditTermType">
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="description" type="xs:string">
				<xs:annotation>
					<xs:documentation>Description of the term.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="total" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>The total of all credits "earned" by the student in a given term.
						This total includes credits that are passed, transfer, test, and other
						credits.  Excluded are audits, credits with final grades not
						considered to be passed, and in-progress credits (unreported grades,
						P's, I's, etc.).  NOTES:  The value may change as grades are posted or
						changed.  For graduate students, the value represents the number of
						credits earned (passed) toward a graduate degree (excluding pass/fail,
						audits, and courses below the 300 level).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="taken" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>The total of credits earned (whether passed or not) by the student in
						enrolled courses at UW-Madison in a given term.  Credits for which a student earned a
						grade of NW (No Work) may be included.   Excluded are audits and
						in-progress credits (unreported grades, P's, I's, etc.).  NOTES:  The
						value may change as grades are posted or changed.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="gpa" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>The portion of graded credits taken on the Madison campus that are
						used to calculate a student's GPA in a given term.  Excluded are audits; pass/fail;
						credit/no credit; transfer credits; courses with grades other than A,
						AB, B, BC, C, D, F, NW (No Work); and in-progress credits (unreported
						grades, P's, I's, etc.).  NOTES: The value may change as grades are
						posted or changed.  For graduate students, also excluded from the GPA are courses under the 300 level and courses graded NW.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="nogpa" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>The portion of a student's in-progress credits that will not count
						toward the GPA in a given term. Excluded are audits.  NOTES: The value may change as
						grades are posted or changed.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="grad" type="xs:nonNegativeInteger" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This field is calculated for students with a career of GRAD and should
						be used for checking current term enrollment in a given term.  The total includes
						credits for a given term that will potentially apply toward a graduate
						degree and count in Graduate School requirements for full-time status.
						The total includes both graded (whether passed or not) and
						in-progress credits.  Excluded are pass/fail, audit, and courses below
						the 300 level.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="inProgress" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>The total of credits in a given term for which the student does not
						have a final grade.  This includes all unreported grades, P's, I's,
						etc.  Excluded are audits.  NOTES: The value may change as grades are
						posted or changed.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="currentClassStanding" type="levelType">
				<xs:annotation>
					<xs:documentation><![CDATA[
						The student's academic level at the beginning of the given term]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="projectedClassStanding" type="levelType">
				<xs:annotation>
					<xs:documentation><![CDATA[
						The student's academic level projected for the beginning of that given term.
						This includes all completed credits, in-progress credits and transfer credits (includes other and test credits) for all prior terms.]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="numberOfTermsEnrolled" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Implemented in 1104 and not calculated retroactively. Counts summer term enrollment.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditTerms" type="creditTermsType"/>
	<xs:complexType name="creditTermsType">
		<xs:sequence>
			<xs:element ref="creditTerm" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditTotalsCareer" type="creditTotalsCareerType">
		<xs:annotation>
			<xs:documentation>Credit totals earned toward a particular career.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="creditTotalsCareerType">
		<xs:sequence>
			<xs:element ref="career"/>
			<xs:element ref="creditsCumulative"/>
			<xs:element ref="creditTerms"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="creditTotalsCareers" type="creditTotalsCareersType"/>
	<xs:complexType name="creditTotalsCareersType">
		<xs:sequence>
			<xs:element ref="creditTotalsCareer" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="transferCredit" type="transferCreditType"/>
	<xs:complexType name="transferCreditType">
		<xs:sequence>
			<xs:element name="institution" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>External Org ID and name of the transfer
						institution.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="termCode">
				<xs:annotation>
					<xs:documentation>The ISIS term the course was taken in.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subjectCode" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The subject code of the course at the transfer
						institution.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="courseNumber" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The course number used by the transfer
						institution.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="courseTitle" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The title of the course according to the transfer
						institution.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwCredits" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Number of UW-Madison credits granted for the
						course.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwArticulatedCourse" type="xs:string">
				<xs:annotation>
					<xs:documentation>Course ID for the UW-Madison equivalent course.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwArticulatedCourseTitle" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Course title for the UW-Madison equivalent course; will be
						returned if the uwArticulatedCourse value represents a direct course equivalent.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwArticulatedCourseGEBLC" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Course GEBLC for the UW-Madison equivalent course; will be
						returned if the uwArticulatedCourse value represents a direct course equivalent.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwArticulatedCourseSubject" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Short description of the subject for the UW-Madison equivalent course.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uwArticulatedCourseNumber" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Catalog number for the UW-Madison equivalent course.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="transferCreditsType">
		<xs:sequence>
			<xs:element ref="transferCredit" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="levelType">
		<xs:sequence>
			<xs:element name="code" type="levelCode"/>
			<xs:element name="description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="levelCode">
		<xs:annotation>
			<xs:documentation><![CDATA[
    Enumerated type for level]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="05">
				<xs:annotation>
					<xs:documentation>special</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="10">
				<xs:annotation>
					<xs:documentation>freshman, 0-24 credits</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="20">
				<xs:annotation>
					<xs:documentation>sophomore, 25-53 credits</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="30">
				<xs:annotation>
					<xs:documentation>junior, 54-85 credits</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="40">
				<xs:annotation>
					<xs:documentation>senior, 86+ credits</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="F1">
				<xs:annotation>
					<xs:documentation>First year FISC</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="F2">
				<xs:annotation>
					<xs:documentation>Second year FISC</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="GR">
				<xs:annotation>
					<xs:documentation>grad student</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="LAW">
				<xs:annotation>
					<xs:documentation>Law Student</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="P1">
				<xs:annotation>
					<xs:documentation>professional year 1</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="P2">
				<xs:annotation>
					<xs:documentation>professional year 2</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="P3">
				<xs:annotation>
					<xs:documentation>professional year 3</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="P4">
				<xs:annotation>
					<xs:documentation>professional year 4</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="academicSummary" type="academicSummaryType"/>
	<xs:complexType name="academicSummaryType">
		<xs:annotation>
			<xs:documentation>
For each career in which a student is enrolled, this EBO contains career-related milestones, per-term information for GPAs and any academic actions
tied to the term.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="academicSummaryCareer" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicSummaryCareer" type="academicSummaryCareerType"/>
	<xs:complexType name="academicSummaryCareerType">
		<xs:annotation>
			<xs:documentation>
Contains career-related milestones, per-term information for GPAs and any academic actions
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="career"/>
			<xs:element ref="careerCumulatives"/>
			<xs:element ref="milestones" minOccurs="0"/>
			<xs:element ref="academicSummaryTerms"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="careerCumulatives" type="careerCumulativesType"/>
	<xs:complexType name="careerCumulativesType">
		<xs:sequence>
			<xs:element name="advanceStandingCredits" type="gpaType"/>
			<xs:element name="cumulativeCredits" type="gpaType"/>
			<xs:element name="cumulativeGPACredits" type="gpaType"/>
			<xs:element name="cumulativeGradePoints" type="gpaType"/>
			<xs:element name="cumulativeGPA" type="gpaType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="milestones" type="milestonesType"/>
	<xs:complexType name="milestonesType">
		<xs:sequence>
			<xs:element ref="milestone" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="milestone" type="milestoneType"/>
	<xs:complexType name="milestoneType">
		<xs:annotation>
			<xs:documentation>
Contains milestone information for the career and the planCode to which the milestone applies, if applicable
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="effectiveDate" type="xs:dateTime"/>
			<xs:element name="dateCompleted" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="formalDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="planCode" type="xs:string" minOccurs="0"/>
			<xs:element name="code" type="xs:string"/>
			<xs:element name="status" type="xs:string"/>
			<xs:element name="transcriptPlanDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="displayOnTranscript" type="xs:boolean"/>
			<xs:element name="howCompleted" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicSummaryTerms" type="academicSummaryTermsType"/>
	<xs:complexType name="academicSummaryTermsType">
		<xs:sequence>
			<xs:element ref="academicSummaryTerm" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicSummaryTerm" type="academicSummaryTermType"/>
	<xs:complexType name="academicSummaryTermType">
		<xs:annotation>
			<xs:documentation>
Contains term-related GPA information and academic action information tied to the term
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="termDescription" type="xs:string"/>
			<xs:element name="cumGPA" type="gpaType">
				<xs:annotation>
					<xs:documentation><![CDATA[
The total number of grade points a student has earned divided by the total number of credits attempted over the course of all credits taken as residence credits at UW-Madison.]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="termGPA" type="gpaType">
				<xs:annotation>
					<xs:documentation><![CDATA[
The total number of grade points a student has earned divided by the total number of credits attempted over the course of a term in residence at UW-Madison.]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="academicStandingActions" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation><![CDATA[
Any standing academic action placed on the student record for the current term. Academic standing actions used before Summer 1999 (Term - 0996) are excluded.]]></xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="gpaType">
		<xs:restriction base="xs:decimal">
			<xs:fractionDigits value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="photoInfo" type="photoInfoType"/>
	<xs:complexType name="photoInfoType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   Photo information for a student or message if photo is unavailable.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:sequence>
				<xs:element name="uri" type="xs:anyURI"/>
				<xs:element name="imageWidthPixels" type="xs:integer"/>
				<xs:element name="imageHeightPixels" type="xs:integer"/>
				<xs:element name="expires" type="xs:dateTime"/>
			</xs:sequence>
			<xs:element name="errorMessage" type="xs:string"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="academicObjective" type="academicObjectiveType"/>
	<xs:complexType name="academicObjectiveType">
		<xs:annotation>
			<xs:documentation><![CDATA[
  The list of a student's program/plan/certificate/honors and whether they have applied to graduate for each term enrolled.
  The degree checkout status is only delivered for degree granting programs.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="academicObjectiveTerms"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicObjectiveTerms" type="academicObjectiveTermsType"/>
	<xs:complexType name="academicObjectiveTermsType">
		<xs:sequence>
			<xs:element ref="academicObjectiveTerm" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicObjectiveTerm" type="academicObjectiveTermType"/>
	<xs:complexType name="academicObjectiveTermType">
		<xs:annotation>
			<xs:documentation>
Contains the term information and a listing of all the student's programs in that term.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="term" type="codeDescriptionPairType"/>
			<xs:element name="primaryCareerInTerm" type="careerType"/>
			<xs:element ref="studentPrograms"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="programs" type="programsType"/>
	<xs:complexType name="programsType">
		<xs:sequence>
			<xs:element ref="program" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="baseProgramType">
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element ref="schoolCollege"/>
					<xs:element ref="career"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="program" type="programType"/>
	<xs:complexType name="programType">
		<xs:complexContent>
			<xs:extension base="baseProgramType">
				<xs:sequence>
					<xs:element name="firstTermAvailable" type="xs:string"/>
					<xs:element name="lastTermAvailable" type="xs:string" minOccurs="0"/>
					<xs:element ref="plans"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentProgram" type="studentProgramType"/>
	<xs:complexType name="studentProgramType">
		<xs:annotation>
			<xs:documentation>
Contains the program information, any degree checkout information for the program, the expected graduation term,
whether the program is the primary one in the enclosing academicObjectiveTerm, and a listing of plans pursued under that program.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="baseProgramType">
				<xs:sequence>
					<xs:element name="isPrimaryProgramInTerm" type="xs:boolean"/>
					<xs:element name="degreeCheckoutStatus" type="degreeCheckoutStatusType" minOccurs="0"/>
					<xs:element name="expectedGraduationTerm" minOccurs="0">
						<xs:complexType>
							<xs:complexContent>
								<xs:extension base="codeDescriptionPairType"/>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
					<xs:element ref="studentPlans"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentPrograms" type="studentProgramsType"/>
	<xs:complexType name="studentProgramsType">
		<xs:sequence>
			<xs:element ref="studentProgram" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="plans" type="plansType"/>
	<xs:complexType name="plansType">
		<xs:sequence>
			<xs:element name="plan" type="planType" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="basePlanType">
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="type">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="code" type="xs:string"/>
								<xs:element name="description" type="xs:string"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="plan" type="planType"/>
	<xs:complexType name="planType">
		<xs:complexContent>
			<xs:extension base="basePlanType">
				<xs:sequence>
					<xs:element name="departmentOwnerAcademicOrgCode" type="xs:string"/>
					<xs:element name="awardLevelDescription" type="xs:string" minOccurs="0"/>
					<xs:element name="transcriptDescription" type="xs:string" minOccurs="0"/>
					<xs:element name="degreeName" type="xs:string" minOccurs="0"/>
					<xs:element name="firstTermAvailable" type="xs:string"/>
					<xs:element name="lastTermAvailable" type="xs:string" minOccurs="0"/>
					<xs:element name="fieldOfStudy" minOccurs="0">
						<xs:complexType>
							<xs:complexContent>
								<xs:extension base="codeDescriptionPairType"/>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
					<xs:element name="modeOfDelivery" minOccurs="0">
						<xs:complexType>
							<xs:complexContent>
								<xs:extension base="codeDescriptionPairType"/>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
					<xs:element ref="subPlans" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentPlan" type="studentPlanType"/>
	<xs:complexType name="studentPlanType">
		<xs:annotation>
			<xs:documentation>
Contains the plan code and description and a listing of subplans pursued by the student under the plan.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="basePlanType">
				<xs:sequence>
					<xs:element name="degreeName" type="xs:string"/>
					<xs:element name="transcriptDescription" type="xs:string" minOccurs="0"/>
					<xs:element name="awardCategory" type="xs:string" minOccurs="0"/>
					<xs:element name="degreeConferredDate" type="xs:date" minOccurs="0"/>
					<xs:element ref="studentSubPlans" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentPlans" type="studentPlansType"/>
	<xs:complexType name="studentPlansType">
		<xs:sequence>
			<xs:element ref="studentPlan" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="baseSubPlanType">
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="type">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="code" type="xs:string"/>
								<xs:element name="description" type="xs:string"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>

	</xs:complexType>
	<xs:element name="subPlan" type="subPlanType"/>
	<xs:complexType name="subPlanType">
		<xs:complexContent>
			<xs:extension base="baseSubPlanType">
				<xs:sequence>
					<xs:element name="transcriptDescription" type="xs:string" minOccurs="0"/>
					<xs:element name="modeOfDelivery" minOccurs="0">
						<xs:complexType>
							<xs:complexContent>
								<xs:extension base="codeDescriptionPairType"/>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
					<xs:element name="firstTermAvailable" type="xs:string"/>
					<xs:element name="lastTermAvailable" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentSubPlan" type="studentSubPlanType"/>
	<xs:complexType name="studentSubPlanType">
		<xs:annotation>
			<xs:documentation>
Contains the subplan code and description pursued by the student under the attached plan
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="baseSubPlanType">
				<xs:sequence>
					<xs:element name="transcriptDescription" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="studentSubPlans" type="studentSubPlansType"/>
	<xs:complexType name="studentSubPlansType">
		<xs:sequence>
			<xs:element ref="studentSubPlan" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="subPlans" type="subPlansType"/>
	<xs:complexType name="subPlansType">
		<xs:sequence>
			<xs:element name="subPlan" type="subPlanType" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="degreeCheckoutStatusType">
		<xs:annotation>
			<xs:documentation>
Contains the code for the degree checkout status and its description along with the term and its description for which it applies.
Degree checkout status codes and descriptions will be one of: AW, Degree Awarded; AP Approved; AG, Applied for Graduation.
This data element will be available on each program/plan/subplan grouping after the student submits the 'Apply to Graduate'
information in SIS on their primary program.
If the 'AG' degree checkout status code appears on any program/plan/subplan grouping that is not the student's
primary program, the student has not 'Applied to Graduate'.
If the highestAwardCategoryReceived element appears, this 'highest' award category of all plans in the program. This
is most important for programs that offer multiple award categories such as a Masters AND a Doctorate.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="code" type="xs:string"/>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="expectedGraduationTermCode" type="xs:string" minOccurs="0"/>
			<xs:element name="expectedGraduationTermDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="degreeConferredDate" type="xs:date" minOccurs="0"/>
			<xs:element name="highestAwardCategoryReceived" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicStandingActions" type="academicStandingActionsType"/>
	<xs:complexType name="academicStandingActionsType">
		<xs:sequence>
			<xs:element ref="academicStandingAction" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="academicStandingAction" type="academicStandingActionType"/>
	<xs:complexType name="academicStandingActionType">
		<xs:annotation>
			<xs:documentation>
Academic actions that can be placed on a student record.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="actionDate" type="xs:dateTime"/>
					<xs:element name="academicGroupCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
					<xs:element name="actionDateSequence" type="xs:nonNegativeInteger"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="entryType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Enumerated type for entryType.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="TRF"/>
			<xs:enumeration value="FYR"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="entryInformation" type="entryInformationType"/>
	<xs:complexType name="entryInformationType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Information regarding the term a student was first enrolled in UW-Madison in a non-special career and subsequent re-entry events.
A student may have entry information for multiple careers such as undergradaute (UGRD) and graduate (GRAD), each of which will have
a matriculation event and zero or more re-entry events.
]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="careers"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="entryEvents" type="entryEventsType"/>
	<xs:complexType name="entryEventsType">
		<xs:sequence>
			<xs:element ref="entryEvent" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="entryEvent" type="entryEventType"/>
	<xs:complexType name="entryEventType">
		<xs:annotation>
			<xs:documentation>Describes an entry event--usually one matricuation
				event and zero or more reentry events.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="code" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Entry event code; not provided for matriculation
						event types if not FYR or TRF.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Entry event description; not provided for
						matriculation event types if not FYR or TRF.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="type" type="xs:string">
				<xs:annotation>
					<xs:documentation>Either matricuation or reentry</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="termCode">
				<xs:annotation>
					<xs:documentation>Term when the entry event happened
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="testScores" type="testScoresType"/>
	<xs:complexType name="testScoresType">
		<xs:sequence>
			<xs:element ref="test" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="test" type="testType"/>
	<xs:complexType name="testType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   Represents a test such as a GRE, MCAT, ACT, or SAT. A test is made up of test components.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element ref="testComponents"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="testComponents" type="testComponentsType"/>
	<xs:complexType name="testComponentsType">
		<xs:sequence>
			<xs:element ref="testComponent" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="testComponent" type="testComponentType"/>
	<xs:complexType name="testComponentType">
		<xs:annotation>
			<xs:documentation><![CDATA[
   A component of test such as the math component of the ACT test
        ]]></xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="range" minOccurs="0">
						<xs:annotation>
							<xs:documentation><![CDATA[ DEPRECATED: as of CAOS v1.8.2 range elements in effect at test-taking time
							appear under testResultType. This range element will be removed with the CAOS v1.9.0 release.
					   Contains the minimum and or maximum score allows. One or both could be null. If both are null, then the range will not appear.
					        ]]></xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="min" type="xs:nonNegativeInteger" minOccurs="0"/>
								<xs:element name="max" type="xs:decimal" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element ref="testResults"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="testResults" type="testResultsType"/>
	<xs:complexType name="testResultsType">
		<xs:sequence>
			<xs:element ref="testResult" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="testResult" type="testResultType"/>
	<xs:annotation>
		<xs:documentation><![CDATA[
   An individual result for a test component. If a test component was taken multiple times, there will be mulitiple test results.
        ]]></xs:documentation>
	</xs:annotation>
	<xs:complexType name="testResultType">
		<xs:sequence>
			<xs:element name="testDate" type="xs:date"/>
			<xs:element name="score" type="xs:decimal"/>
			<xs:element name="coursePlacementDecision" type="xs:string" minOccurs="0"/>
			<xs:element name="range" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[ Since 1.8.2;
					   Contains the minimum and or maximum score allows. One or both could be null. If both are null, then the range will not appear.
					]]></xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="min" type="xs:nonNegativeInteger" minOccurs="0"/>
						<xs:element name="max" type="xs:decimal" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="integerRangeType">
		<xs:sequence>
			<xs:element name="low" type="xs:integer">
				<xs:annotation>
					<xs:documentation>The low value of the range.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="high" type="xs:integer">
				<xs:annotation>
					<xs:documentation>The high value of the range.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="secondarySchools" type="secondarySchoolsType"/>
	<xs:complexType name="secondarySchoolsType">
		<xs:sequence>
			<xs:element ref="transcriptText" minOccurs="0"/>
			<xs:element ref="secondarySchool" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="transcriptText" type="transcriptTextType"/>
	<xs:complexType name="transcriptTextType">
		<xs:annotation>
			<xs:documentation>Aggregate transcript assessment, potentially based
				upon multiple secondary schools.
				For example, if ESL is required for
				COM A, ESLAT.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="entry" type="xs:string" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="secondarySchool" type="secondarySchoolType"/>
	<xs:complexType name="secondarySchoolType">
		<xs:annotation>
			<xs:documentation>Secondary school(s) the student attended. Note: A secondary school will not be included in the result set,
				for a given student, if the secondary school does not have any area of study and units reported in ISIS.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="highSchoolAttended" type="xs:string">
				<xs:annotation>
					<xs:documentation>A secondary school the student attended.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="city" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The city of the secondary school.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="state" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The state of the secondary school.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="isLastSchoolAttended" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This element will be delivered with a value of true, for a given student, if the
						last school attended data field in ISIS has	been filled in and matches one of the returned secondary schools.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subjectAreas" type="subjectAreasType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="subjectAreasType">
		<xs:sequence>
			<xs:element ref="subjectArea" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="subjectArea" type="subjectAreaType"/>
	<xs:complexType name="subjectAreaType">
		<xs:sequence>
			<xs:element ref="areaOfStudy"/>
			<xs:element name="units" type="xs:decimal">
				<xs:annotation>
					<xs:documentation>Number of units (equal to 1 year of high school).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="areaOfStudy" type="areaOfStudyType"/>
	<xs:complexType name="areaOfStudyType">
		<xs:annotation>
			<xs:documentation>High school area of study.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="shortDescription" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="enrollmentType">
		<xs:sequence>
			<xs:element name="highSchoolAttended" type="xs:string">
				<xs:annotation>
					<xs:documentation>The secondary school the student graduated from.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="careers" type="careersType"/>
	<xs:complexType name="careersType">
		<xs:sequence>
			<xs:element ref="career" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="career" type="careerType"/>
	<xs:complexType name="careerType">
		<xs:annotation>
			<xs:documentation>ISIS career code and description. A student may
				have multiple careers.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element ref="entryEvents" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="residency" type="residencyType"/>
	<xs:complexType name="residencyType">
		<xs:sequence>
			<xs:element name="wisconsinResident" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Is a Wisconsin resident.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="minnesotaReciprocity" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Is eligible for Minnesota tuition reciprocity.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studentServiceIndicator">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="codeDescriptionPairType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="baseAdvisorCommittee">
		<xs:complexContent>
			<xs:extension base="committeeType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="committeeType">
		<xs:annotation>
			<xs:documentation><![CDATA[
    	Basic type for committee.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="id" type="xs:string"/>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="type" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="affiliations" type="affiliationsType"/>
	<xs:complexType name="affiliationsType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Miscellaneous relationships or memberships of the student, such as Veteran, Athlete, Student Groups, etc.
If the student has no affiliations, this element will not be present.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="veteran" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[
This indicates a student's self-reported veteran status at time of
last refresh of the given term (anyone who receives Federal orders).
Element appears only if student is a veteran.
	        ]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="targetedMinority" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[
This field is used to define students (or applicants)
who are targeted minorities for campus diversity initiatives and programs
such as Plan 2008. A student (or applicant) who is a US Citizen, permanent
resident, refugee, or domestic-status pending, AND who is Black, Hispanic,
American Indian or Southeast Asian (of Laotian, Cambodian, or Vietnamese
heritage and came to the US prior to the end of the Vietnam war or is descended
from such a person) are considered targeted minorities.
Element appears only if student is a targeted minority.
			]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="esl" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[
Non-native English speakers admitted to the University are required to take ENGLISH 118
to complete the Communications A requirement. The requirement is currently coded as a Dean's Action.
Element appears only if student is required to take the esl required coursework.
			]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="athlete" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[
Student participation in NCAA sponsored athletics. These students must generally meet NCAA academic eligibility requirements.
Element appears only if student is an athlete.
			]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="visaPermitType" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation><![CDATA[
Student who are here on an F1 or J1 visa have certain requirements they must meet under federal immigration law in
order to remain in the U.S. Ex. must be a full time student. This requires further discussion.
Element appears only if student is an F1 or J1 visa.
			]]></xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="studentGroups" minOccurs="0"/>
			<xs:element name="recruitingCategories" type="recruitingCategoriesType" minOccurs="0"/>
			<xs:element name="citizenshipStatus" type="xs:string">
				<xs:annotation>
					<xs:documentation><![CDATA[
Student's citizenship status with respect to the United States. Possible values include:
				Not Indicated
				Native
				Naturalized
				Alien Permanent
				Alien Temporary
				Alien
				Refugee
				Domestic, Status Pending
				Other
					]]></xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="recruitingCategory" type="recruitingCategoryType"/>
	<xs:complexType name="recruitingCategoryType">
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>Category short description, e.g.: Men Bskbl, Wmn
							Golf.
						</xs:documentation>
					</xs:annotation>
					<xs:element name="shortDescription" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="recruitingCategoriesType">
		<xs:sequence>
			<xs:element ref="recruitingCategory" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studentGroups" type="studentGroupsType"/>
	<xs:complexType name="studentGroupsType">
		<xs:sequence>
			<xs:element ref="studentGroup" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studentGroup" type="studentGroupType"/>
	<xs:complexType name="studentGroupType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Student groups in ISIS allow the University to "flag" a student for a variety of reasons:
tuition, admissions or residence halls purposes, or to enforce enrollment on some courses,
such as honors, math class eligibility based on placement tests, or course level permissions.
A student can be assigned to as many student groups as needed.
	        ]]></xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="directory" type="studentDirectoryType"/>
	<xs:complexType name="studentDirectoryType">
		<xs:annotation>
			<xs:documentation><![CDATA[
The Student Directory EBO currently lists the most common pieces of Directory data.
The pieces of directory data that are not included are - dates of attendance, degrees and awards received,
previously attended educational agencies or institutions, participation in officially recognized activities and participation in athletics.
Some or pieces of these elements can be found in other Academic EBO's.

If a privacyFlag exists and is true for a grouping of information--such as an address or phone number--then the student has
requested restricted access to that information.
]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="birthdate" type="xs:date" minOccurs="0"/>
			<xs:element name="derivedAge" type="xs:positiveInteger" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Current age.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="preferredPhone" type="phoneType" minOccurs="0"/>
			<xs:element name="homeAddress" type="addressType" minOccurs="0"/>
			<xs:element name="localAddress" type="addressType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="enrollmentImpacts">
		<xs:annotation>
			<xs:documentation>Contains various elements that impact a student's enrollment.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="holds" minOccurs="0"/>
				<xs:element ref="registrationAppointments" minOccurs="0"/>
				<xs:element ref="deansExceptions" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="enrollmentSummary" type="enrollmentSummaryType"/>
	<xs:complexType name="enrollmentSummaryType">
		<xs:annotation>
			<xs:documentation>Enrollment summaries for terms prior to Summer 1999 (term 0996) have special considerations.
				The term summaries will not include the classNumber, courseGEBLC information, and the type of classSSRComponent (LEC, DIS, LAB, etc.).
				Also, the concept of an enrollment package did not exist in terms prior to 0996.  Consequently, the numCreditsTaken and the grade
				will be associated with all course components.

				Note: An enrollment package is a collection of classes that are tied together for enrollment purposes.
				An enrollment package defines a main class and a list of 0 to N dependent classes.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="enrollmentTerm" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="enrollmentTerm" type="enrollmentTermType"/>
	<xs:complexType name="enrollmentTermType">
		<xs:annotation>
			<xs:documentation>Container to group enrollmentClasses by term.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="termDescription" type="xs:string"/>
			<xs:element ref="enrollmentClass" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="enrollmentClass" type="enrollmentClassType"/>
	<xs:complexType name="enrollmentClassType">
		<xs:annotation>
			<xs:documentation>Details of a student's enrollment in a class including credit information and grade.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="courseDescription" type="xs:string"/>
			<xs:element name="courseCatalogNumber" type="xs:string"/>
			<xs:element name="courseId" type="xs:string"/>
			<xs:element name="courseGEBLC" type="xs:string" minOccurs="0"/>
			<xs:element name="subjectCode" type="xs:string"/>
			<xs:element name="subjectDescription" type="xs:string"/>
			<xs:element name="subjectShortDescription" type="xs:string"/>
			<xs:element name="classNumber" type="xs:string" minOccurs="0"/>
			<xs:element name="classSection" type="xs:string"/>
			<xs:element name="classSSRComponent" type="xs:string"/>
			<xs:element name="sessionCode" type="xs:string"/>
			<xs:element name="topicId" type="xs:string" minOccurs="0"/>
			<xs:element name="topicDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="numCreditsTaken" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="numCreditsEarned" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="numCreditsProgress" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="enrollmentStatus" type="xs:string"/>
			<xs:element name="isAuditing" type="xs:boolean"/>
			<xs:element name="grade" type="xs:string" minOccurs="0"/>
			<xs:element name="isHonors" type="xs:boolean" minOccurs="0"/>
			<xs:element name="gradePoints" type="xs:decimal" minOccurs="0"/>
			<xs:element name="dropDate" type="xs:date" minOccurs="0"/>
			<xs:element name="crossListedCode" type="crossListedCodeType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="crossListedCodeType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Defines codes for cross-listed types: XL - the code for cross-listed;
XM - the code for cross-listed and meets with.
These codes correspond to 'CrossListed' and 'CrossListedAndMeetsWith' enumerations defined in
the 'crossListedType' definition in this schema.
        ]]></xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="XL"/>
			<xs:enumeration value="XM"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="holds" type="holdsType"/>
	<xs:complexType name="holdsType">
		<xs:sequence>
			<xs:element ref="hold" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="hold" type="holdType"/>
	<xs:complexType name="holdType">
		<xs:sequence>
			<xs:element name="activeTermCode" type="termCodeType"/>
			<xs:element name="activeTermDescription" type="xs:string">
				<xs:annotation>
					<xs:documentation>Description of the term when hold begins.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="endTermCode" type="termCodeType" minOccurs="0"/>
			<xs:element name="endTermDescription" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Description of the term when hold ends.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="serviceIndicatorCode" type="xs:string">
				<xs:annotation>
					<xs:documentation>Code for the type of service indicator to be placed.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="reasonCode" type="xs:string">
				<xs:annotation>
					<xs:documentation>Code for the reason the service indicator is being placed. Multiple reason codes can be associated with one service indicator code.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="reasonDescription" type="xs:string">
				<xs:annotation>
					<xs:documentation>Description of the reason code.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="registrationAppointment" type="registrationAppointmentType"/>
	<xs:complexType name="registrationAppointmentType">
		<xs:annotation>
			<xs:documentation>A student's registration appointment.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="careerCode" type="xs:string">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property>
							<jaxb:javadoc>Career code for the registration appointment. A student registers under their primary career
					in a given term, but the student's career may change across the list of registration appointments.</jaxb:javadoc>
						</jaxb:property>
					</xs:appinfo>
				</xs:annotation>
			</xs:element>
			<xs:element ref="termCode">
				<xs:annotation>
					<xs:documentation>Term code for registration date and time.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="termDescription" type="xs:string">
				<xs:annotation>
					<xs:documentation>Description of term for registration date and time.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="registrationDateTime" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>Date and time when registration can begin.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="registrationAppointments">
		<xs:annotation>
			<xs:appinfo>
				<jaxb:class>
					<jaxb:javadoc>A student's registration appointments for the current and future terms.</jaxb:javadoc>
				</jaxb:class>
			</xs:appinfo>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="registrationAppointment" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="deansExceptions">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="deansException" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="deansException" type="deansExceptionType"/>
	<xs:complexType name="deansExceptionType">
		<xs:sequence>
			<xs:element ref="termCode">
				<xs:annotation>
					<xs:documentation>Term code when Dean's exception is in effect.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="termDescription" type="xs:string">
				<xs:annotation>
					<xs:documentation>Description of term code when Dean's exception is in effect.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="career" type="xs:string">
				<xs:annotation>
					<xs:documentation>Student's academic career that the Dean's exception effects.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="maxCredits" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>Maximum number of credits that can be taken for the term as approved by the Dean. (Note: may be 0 if that is the data contained in ISIS)</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="primaryCareer" type="primaryCareerType"/>
	<xs:complexType name="primaryCareerType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Although a student can have multiple careers, one is designated as the primary career.
Enrollment status will be one of:
     ADMT:  An applicant that has been admitted to the program they applied for
     APPL:  A student who has completed their application to UW-Madison
     CONN:  An applicant who is admitted into the Connections Program
     ELIG:  A student who is activated for the term and is eligible to enroll in classes
     ENRL:  A student who is enrolled in classes
     INTD:  An applicant that has been admitted to a program and either confirmed they plan to attend or they are ready to become activated for the term they applied for
     WDRW:  A student who was enrolled but has since withdrawn from all of their classes

        ]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="careerCode" type="xs:string">
				<xs:annotation>
					<xs:documentation>The primary career a student is in. If a student has multiple careers, the primary career delivered will be the career they are eligible to enroll in.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="programName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Student's primary academic program associated with the primary career.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="enrollmentStatusCode" type="xs:string">
				<xs:annotation>
					<xs:documentation>Current Enrollment status for the primary career/program.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="academicLevelDescription" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The description of the student's academic level for the primary career/program.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="academicLoadDescription" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Description of a student's credit load for a term.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="termCode"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="previousInstitutions" type="previousInstitutionsType"/>
	<xs:complexType name="previousInstitutionsType">
		<xs:sequence>
			<xs:element ref="previousInstitution" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="previousInstitution" type="previousInstitutionType"/>
	<!-- Definition now extends InstitutionType

	<xs:complexType name="previousInstitutionType">
		<xs:annotation>
			<xs:documentation><![CDATA[
The institutions that a student has attended prior to enrolling at UW-Madison appear on the top
of the official transcript. The PREVIOUS_INSTITUTION option will list all previous institutions
for a student that appear in the student information system along with any degree and degree date that exists.
Included in the previous institutions are the institutions that administer the Advance Placement exams.
]]>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="institutionCode" type="xs:string" />
			<xs:element name="institutionName" type="xs:string" />
			<xs:element name="institutionCity" type="xs:string" minOccurs="0" />
			<xs:element name="institutionState" type="xs:string" minOccurs="0" />
			<xs:element name="degree" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="degreeCode" type="xs:string" minOccurs="0" />
						<xs:element name="degreeName" type="xs:string" minOccurs="0" />
						<xs:element name="degreeDate" type="xs:date" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
-->
	<xs:complexType name="previousInstitutionType">
		<xs:annotation>
			<xs:documentation><![CDATA[
The institutions that a student has attended prior to enrolling at UW-Madison appear on the top
of the official transcript. The PREVIOUS_INSTITUTION option will list all previous institutions
for a student that appear in the student information system along with any degree and degree date that exists.
Included in the previous institutions are the institutions that administer the Advance Placement exams.
]]></xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="institutionType">
				<xs:sequence>
					<xs:element name="degree" minOccurs="0" maxOccurs="unbounded">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="degreeCode" type="xs:string" minOccurs="0"/>
								<xs:element name="degreeName" type="xs:string" minOccurs="0"/>
								<xs:element name="degreeDate" type="xs:date" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="institution" type="institutionType"/>
	<xs:complexType name="institutionType">
		<xs:annotation>
			<xs:documentation><![CDATA[
Contains basic information about a SIS institution
]]></xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="institutionCode" type="xs:string"/>
			<xs:element name="institutionName" type="xs:string"/>
			<xs:element name="institutionCity" type="xs:string" minOccurs="0"/>
			<xs:element name="institutionState" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="postSecondaryInstitutions" type="postSecondaryInstitutionsType"/>
	<xs:complexType name="postSecondaryInstitutionsType">
		<xs:annotation>
			<xs:documentation>A listing of post-secondary institutions in SIS</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="institution" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="otherCredit" type="otherCreditType"/>
	<xs:complexType name="otherCreditType">
		<xs:sequence>
			<xs:element name="uwCredits" type="xs:decimal"/>
			<xs:element ref="termCode"/>
			<xs:element name="uwArticulatedCourseId" type="xs:string"/>
			<xs:element name="uwArticulatedSubject" type="xs:string"/>
			<xs:element name="uwArticulatedCourseNumber" type="xs:string"/>
			<xs:element name="uwArticulatedCourseTitle" type="xs:string"/>
			<xs:element name="uwArticulatedCourseGEBLC" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="testCreditsType">
		<xs:annotation>
			<xs:documentation>
Test Credits list the advanced credits the student has been granted for the successful
completion of college-level course work while in high school and for high
achievement on Advanced Placement (AP), GCE Advanced Level (A-Level),
International Baccalaureate (IB), and College-Level Examination Program (CLEP) exams.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="testCredit" type="otherCreditType" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="otherCreditsType">
		<xs:annotation>
			<xs:documentation>
Other Credits list the retroactive credits the student has earned at UW-Madison.
Retroactive credits are credits granted in recognition of previous language study.
Retroactive credits earned at UW-Madison do correspond to particular courses, but
the credits are not graded and do not factor into a student's GPA.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="otherCredit" type="otherCreditType" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studyAbroadExperiences" type="studyAbroadExperiencesType"/>
	<xs:complexType name="studyAbroadExperiencesType">
		<xs:sequence>
			<xs:element ref="studyAbroadExperience" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="studyAbroadExperience" type="studyAbroadExperienceType"/>
	<xs:complexType name="studyAbroadExperienceType">
		<xs:annotation>
			<xs:documentation>
Contains the term information and agreement information for a study abroad experience
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="term" type="codeDescriptionPairType"/>
			<xs:element name="agreementCode" type="xs:string"/>
			<xs:element name="agreementDescription" type="xs:string"/>
			<xs:element name="schoolName" type="xs:string" minOccurs="0"/>
			<xs:element name="startDate" type="xs:date" minOccurs="0"/>
			<xs:element name="endDate" type="xs:date" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="athleticParticipation" type="athleticParticipationType"/>
	<xs:complexType name="athleticParticipationType">
		<xs:annotation>
			<xs:documentation>
				The specific team by sport and gender in which the student is an active participant
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="clockStartTerm" type="clockStartTermType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="athleteParticipationType">
		<xs:annotation>
			<xs:documentation>
				contains information on whether the student is a current participant and
				NCAA eligible. Both must be true for the student to show up on athletic reports.
				The values are are only used for participation not for eligibility purposes.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="isCurrentParticipant" type="xs:boolean"/>
					<xs:element name="isNCAAEligible" type="xs:boolean"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="sportType">
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="participation" type="athleteParticipationType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="sportsType">
		<xs:annotation>
			<xs:documentation>the overall sport the student is an active participant on</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="sport" type="sportType" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="clockStartTermType">
		<xs:annotation>
			<xs:documentation>
				The first full-time enrollment at any collegiate institution
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="codeDescriptionPairType">
				<xs:sequence>
					<xs:element name="sports" type="sportsType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="memorandum" type="memorandumType"/>
	<xs:complexType name="memorandumType">
		<xs:annotation>
			<xs:documentation>
Information that appears on the student record (aka unofficial transcript). A term is associated with HON, ACTN, and DROP sourced
memoranda, but not with TEXT-type memoranda.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="date" type="xs:dateTime"/>
			<xs:element name="term" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="termCode"/>
						<xs:element name="description" type="xs:string"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="sourceCode">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="HON">
							<xs:annotation>
								<xs:documentation>Identifies the memorandum text as Honors information. Commonly appears after the term.</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="TEXT">
							<xs:annotation>
								<xs:documentation>Identifies the memorandum text as general Text information. Commonly appears at the end of the transcript</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="DROP">
							<xs:annotation>
								<xs:documentation>Identifies the memorandum text as Dropped class information. Commonly appears at the end of the transcript</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="ACTN">
							<xs:annotation>
								<xs:documentation>Identifies the memorandum text as Academic Action information. Commonly appears at the end of the transcript</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="HDR">
							<xs:annotation>
								<xs:documentation>Identifies memorandum text that should appear after previous institution data</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="TERM">
							<xs:annotation>
								<xs:documentation>Identifies memorandum text that should appear after the courses for the specified term</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
						<xs:enumeration value="TERMHDR">
							<xs:annotation>
								<xs:documentation>Identifies memorandum text that should appear as a header for the term block</xs:documentation>
							</xs:annotation>
						</xs:enumeration>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="text" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="memoranda" type="memorandaType"/>
	<xs:complexType name="memorandaType">
		<xs:sequence>
			<xs:element ref="memorandum" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- LEARNING OUTCOMES -->
	<!-- PROGRAM LEARNING OUTCOME -->
	<xs:element name="programLearningOutcome" type="programLearningOutcomeType"/>
	<xs:complexType name="programLearningOutcomeType">
		<xs:annotation>
			<xs:documentation>
Program learning outcomes as found in The Guide as approved for the term. The
programEffectiveDate is the most recent approval date for the outcomes.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="sisPlanCode" type="xs:string"/>
			<xs:element name="programEffectiveDate" type="xs:date" minOccurs="0"/>
			<xs:element ref="outcomes" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- COURSE LEARNING OUTCOME -->
	<xs:element name="courseLearningOutcome" type="courseLearningOutcomeType"/>
	<xs:complexType name="courseLearningOutcomeType">
		<xs:annotation>
			<xs:documentation>
Course learning outcomes as found in The Guide as approved for the term. The
courseffectiveDate is the most recent approval date for the outcomes.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="courseId" type="xs:string"/>
			<xs:element name="courseEffectiveDate" type="xs:date" minOccurs="0"/>
			<xs:element ref="outcomes" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="outcome" type="outcomeType"/>
	<xs:complexType name="outcomeType">
		<xs:annotation>
			<xs:documentation>
An individual learning outcome. The audience element applies only to course learning outcomes
and will be one of: undergraduate, graduate or both.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="sequence" type="xs:int"/>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="outcomeId" type="xs:string"/>
			<xs:element name="audience" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="outcomes" type="outcomesType"/>
	<xs:complexType name="outcomesType">
		<xs:sequence>
			<xs:element ref="outcome" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="department" type="departmentType"/>
	<xs:complexType name="departmentType">
		<xs:annotation>
			<xs:documentation>
A Department/(Academic Unit) is a group of faculty members recognized by the faculty and chancellor,
(and the Board of Regents,) as dealing with a common field of knowledge or as having common or
closely related scholarly interests.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="termCode"/>
			<xs:element name="departmentOwnerAcademicOrgCode" type="xs:string"/>
			<xs:element name="shortDescription" type="xs:string"/>
			<xs:element name="formalDescription" type="xs:string"/>
			<xs:element name="uddsFundingSource" type="xs:string"/>
			<xs:element ref="schoolCollege"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="departments" type="departmentsType"/>
	<xs:complexType name="departmentsType">
		<xs:sequence>
			<xs:element ref="department" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>