<!--
    DTD for course_class
-->
<!ELEMENT course_class (course?, class*)>
<!ATTLIST course_class
          id CDATA #REQUIRED
          source CDATA #REQUIRED>
		  
<!-- DTD for course -->
<!ELEMENT course (short_title?, title?, description?, units_minimum?, units_maximum?,
          grading_basis?, graded_component?, repeat_for_credit?, add_consent?, drop_consent?,
          requirement_designation?, equivalent_course_group?, attribute*, course_offering*, course_component*)>
<!ATTLIST course
          id CDATA #REQUIRED
          term CDATA #REQUIRED
          courseid CDATA #REQUIRED
          status CDATA #REQUIRED>
<!ELEMENT short_title (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT units_minimum (#PCDATA)>
<!ELEMENT units_maximum (#PCDATA)>
<!ELEMENT grading_basis (#PCDATA)>
<!ATTLIST grading_basis
          code CDATA #REQUIRED>
<!ELEMENT graded_component (#PCDATA)>
<!ATTLIST graded_component
          code CDATA #IMPLIED>
<!ELEMENT repeat_for_credit (#PCDATA)>
<!ELEMENT add_consent (#PCDATA)>
<!ATTLIST add_consent
          code CDATA #REQUIRED>
<!ELEMENT drop_consent (#PCDATA)>
<!ATTLIST drop_consent
          code CDATA #REQUIRED>
<!ELEMENT requirement_designation (#PCDATA)>
<!ATTLIST requirement_designation
          code CDATA #REQUIRED>
<!ELEMENT equivalent_course_group (#PCDATA)>
<!ELEMENT attribute (#PCDATA)>
<!ATTLIST attribute
          code CDATA #REQUIRED
          type CDATA #REQUIRED>
<!ELEMENT course_offering (academic_group?, academic_career?, academic_organization?,
          requirement_group?, catalog_print?, print_instructor_in_schedule?, schedule_print?)>
<!ATTLIST course_offering
          catalognum CDATA #REQUIRED
          offering CDATA #REQUIRED
          subject CDATA #REQUIRED>
<!ELEMENT academic_group (#PCDATA)>
<!ATTLIST academic_group
          code CDATA #REQUIRED>
<!ELEMENT academic_career (#PCDATA)>
<!ATTLIST academic_career
          code CDATA #REQUIRED>
<!ELEMENT academic_organization (#PCDATA)>
<!ATTLIST academic_organization
          code CDATA #IMPLIED>
<!ELEMENT requirement_group (#PCDATA)>
<!ATTLIST requirement_group
          code CDATA #REQUIRED>
<!ELEMENT catalog_print (#PCDATA)>
<!ELEMENT print_instructor_in_schedule (#PCDATA)>
<!ELEMENT schedule_print (#PCDATA)>
<!ELEMENT course_component (final_exam?, exam_spacing?, graded_component?, primary_component?, optional_component?)>
<!ATTLIST course_component
          code CDATA #REQUIRED
          description CDATA #REQUIRED>
<!ELEMENT final_exam (#PCDATA)>
<!ATTLIST final_exam
          code CDATA #REQUIRED>
<!ELEMENT exam_spacing (#PCDATA)>
<!ELEMENT primary_component (#PCDATA)>
<!ELEMENT optional_component (#PCDATA)>

<!-- DTD for class -->
<!ELEMENT class (equivalent*, owner*, section*)>
<!ATTLIST class
          id CDATA #REQUIRED
          term CDATA #REQUIRED
          subject CDATA #REQUIRED
          catalognum CDATA #REQUIRED
          offering CDATA #REQUIRED>
<!ELEMENT equivalent EMPTY>
<!ATTLIST equivalent
          courseid CDATA #REQUIRED
          offering CDATA #REQUIRED
          term CDATA #REQUIRED>
<!ELEMENT owner (organization)>
<!ATTLIST owner
          percent CDATA #REQUIRED>
<!ELEMENT organization (#PCDATA)>
<!ATTLIST organization
			acadid CDATA #REQUIRED>
			
<!-- DTD for section -->
<!ELEMENT section (session?, start_date?, end_date?, component?, event_id?, class_type?,
           associated_class*, units?, student_specific_permissions?, academic_organization?,
           academic_group?, course_equivalent_course_group?, class_equivalent_course_group?,
           schedule_print?, attribute*, combined_section_id?, meetings?, enrollment_control?,
           note*, exam*, text_book_assignment*, associated_class*, student*)>
<!ATTLIST section
          id CDATA #REQUIRED
          term CDATA #REQUIRED
          classnum CDATA #REQUIRED
          enrolled CDATA #IMPLIED
          enrollment (no | yes) #REQUIRED
          maxunits CDATA #IMPLIED
          maxenroll CDATA #IMPLIED
          minunits CDATA #IMPLIED
          session CDATA #IMPLIED
          status CDATA #REQUIRED>
<!ELEMENT session (#PCDATA)>
<!ATTLIST session
          code CDATA #REQUIRED>
<!ELEMENT start_date (#PCDATA)>
<!ELEMENT end_date (#PCDATA)>
<!ELEMENT component (#PCDATA)>
<!ATTLIST component
          code CDATA #REQUIRED>
<!ELEMENT event_id (#PCDATA)>
<!ELEMENT class_type (#PCDATA)>
<!ATTLIST class_type
          code CDATA #REQUIRED>
<!ELEMENT associated_class (#PCDATA | academic_progress_units | course_count |
          fa_units | max_units | min_units | use_blind_grading | grading_basis | requirement_group)*>
<!ELEMENT units (#PCDATA)>
<!ELEMENT student_specific_permissions (#PCDATA)>
<!ELEMENT course_equivalent_course_group (#PCDATA)>
<!ELEMENT class_equivalent_course_group (#PCDATA)>
<!ELEMENT combined_section_id (#PCDATA)>
<!ELEMENT meetings (meeting+)>
<!ELEMENT meeting (location?, schedule?, instructor?)>
<!ATTLIST meeting
          number CDATA #REQUIRED>
<!ELEMENT location (facility_id?, building?, room?)>
<!ELEMENT facility_id (#PCDATA)>
<!ATTLIST facility_id
          code CDATA #REQUIRED>
<!ELEMENT building (#PCDATA)>
<!ATTLIST building
          code CDATA #REQUIRED>
<!ELEMENT room (#PCDATA)>
<!ELEMENT schedule EMPTY>
<!ATTLIST schedule
          code CDATA #REQUIRED
          day CDATA #IMPLIED
          startdate CDATA #REQUIRED
          starttime CDATA #REQUIRED
          stopdate CDATA #REQUIRED
          stoptime CDATA #REQUIRED>
<!ELEMENT instructor (name?, schedule_print?, grade_roster_access?)>
<!ATTLIST instructor
          univid CDATA #IMPLIED
          type CDATA #IMPLIED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT grade_roster_access (#PCDATA)>
<!ATTLIST grade_roster_access
          code CDATA #REQUIRED>
<!ELEMENT enrollment_control (class_status?, enrollment_status?, auto_enroll_waitlist?,
          add_consent?, drop_consent?, enrollment, wait_list?)>
<!ELEMENT class_status (#PCDATA)>
<!ATTLIST class_status
          code CDATA #REQUIRED>
<!ELEMENT enrollment_status (#PCDATA)>
<!ATTLIST enrollment_status
          code CDATA #REQUIRED>
<!ELEMENT auto_enroll_waitlist (#PCDATA)>
<!ELEMENT enrollment EMPTY>
<!ATTLIST enrollment
          capacity CDATA #REQUIRED
          totalcapacity CDATA #REQUIRED>
<!ELEMENT wait_list EMPTY>
<!ATTLIST wait_list
          capacity CDATA #REQUIRED
          totalcapacity CDATA #REQUIRED>
<!ELEMENT note (note_text?, free_format_text?)>
<!ATTLIST note
          sequencenumber CDATA #REQUIRED
          notenumber CDATA #REQUIRED>
<!ELEMENT note_text (#PCDATA)>
<!ELEMENT free_format_text (#PCDATA)>
<!ELEMENT exam (exam_date?, facility_id?, building?, room?)>
<!ATTLIST exam
          spacing CDATA #REQUIRED>
<!ELEMENT exam_date EMPTY>
<!ATTLIST exam_date
          date CDATA #REQUIRED
          examstart CDATA #REQUIRED
          examend CDATA #REQUIRED>
<!ELEMENT text_book_assignment (status?, text_book_none?, special_instructions?, text_book?)>
<!ELEMENT status (#PCDATA)>
<!ATTLIST status
          code CDATA #REQUIRED>
<!ELEMENT text_book_none (#PCDATA)>
<!ELEMENT special_instructions (#PCDATA)>
<!ELEMENT text_book (course_material_type?, course_material_status?, title?, notes?)>
<!ATTLIST text_book
          isbn CDATA #IMPLIED
          author CDATA #IMPLIED
          publisher CDATA #IMPLIED
          edition CDATA #IMPLIED
          yearpublished CDATA #IMPLIED
          price CDATA #IMPLIED
          currency CDATA #IMPLIED>
<!ELEMENT course_material_type (#PCDATA)>
<!ATTLIST course_material_type
          code CDATA #REQUIRED>
<!ELEMENT course_material_status (#PCDATA)>
<!ATTLIST course_material_status
          code CDATA #REQUIRED>
<!ELEMENT notes (#PCDATA)>
<!ATTLIST associated_class
          id CDATA #IMPLIED>
<!ELEMENT academic_progress_units (#PCDATA)>
<!ELEMENT course_count (#PCDATA)>
<!ELEMENT fa_units (#PCDATA)>
<!ELEMENT max_units (#PCDATA)>
<!ELEMENT min_units (#PCDATA)>
<!ELEMENT use_blind_grading (#PCDATA)>
<!ELEMENT student (academic_career?, academic_program?, course_career?, name?, add_date?,
          units_earned?, units_taken?, grading_basis?, class_permission_number?, student_grade_points?, grades?)>
<!ATTLIST student
          univid CDATA #IMPLIED          
          status (enrolled | waiting | audit) #REQUIRED>
<!ELEMENT academic_program EMPTY>
<!ATTLIST academic_program
          code CDATA #REQUIRED>
<!ELEMENT course_career (#PCDATA)>
<!ATTLIST course_career
          code CDATA #REQUIRED>
<!ELEMENT add_date (#PCDATA)>
<!ELEMENT units_earned (#PCDATA)>
<!ELEMENT units_taken (#PCDATA)>
<!ELEMENT class_permission_number (#PCDATA)>
<!ELEMENT student_grade_points (#PCDATA)>
<!ELEMENT grades (#PCDATA)>