Student Data System XML Business Transactions Saskatchewan Learning
Student Data System XML Business Transactions Saskatchewan Learning Trent Reifferscheid Bonnie Stecyk 1
General XML Notes Avoiding validation errors • Pass application specific Id’s as the transaction Ref. Id Eg) Ref. Id=“{application student no}” • Include the XML header to correctly encode/decode special characters <? xml version="1. 0" encoding="UTF-8"? > • Encode special characters as symbols Eg) “&” as “& ”, “Qu’appelle” as “Qu' appelle” • Pass only numeric data for numeric elements: Dept. Assigned. Person. Id, Dept. Assigned. Course. Id, School. Id, Educator. Certificate. Number & School. Mark • Pass element code definitions exactly as defined in the XML specification: Eg) Use <Entry. Type Code=“ 01”/> vs <Entry. Type Code=“ 1”/> • Use Schema Validation Tools (such as XMLSpy) to validate the contents of your XML document if you are running into XML validation issues. 2
Enrolment Transactions Enrolment Transaction Types: • Add a new student enrolment (assign a Dept. Assigned. Person. Id from the response). • Grade advancement for a student previously enrolled. • Student withdrawal for a student leaving the school. 3
Add a New Student Enrolment <!– Use this transaction to add a new individual to your school --> <SL_Event. Object. Name="Student. School. Enrollment" Action="Add"> <Student. School. Enrollment Ref. Id="350001378"> Notes / Keypoints <Student. Identification> • Set Action=“Add” for a new student <Birth. Date>1989 -10 -31</Birth. Date> enrolment (No Dept. Assigned. Person. Id). </Student. Identification> • Supply Student Demographic information <Student. Info> in Student. Info section. … • Set Entry. Date to the date the individual </Student. Info> enrolled in the current school year. <School. Id>2163404</School. Id> <School. Enrollment. Info> • Set the Grade to the grade as of the <Entry. Date>2004 -08 -28</Entry. Date> entry date. <Entry. Type Code="01"/> • Supply the Dept. Assigned. Program. Id and <Grade Code="09"/> Program. Enrollment. Info: Entry. Date for the </School. Enrollment. Info> Program Enrolment. <Dept. Assigned. Program. Id>10</Dept. Assigned. Program. Id> <Program. Enrollment. Info> <Entry. Date>2004 -08 -28</Entry. Date> • The students assigned Dept. Assigned. Person. Id will returned in </Program. Enrollment. Info> the XML Response file. </Student. School. Enrollment> 4
Student Grade Advancement <!– Use this transaction to advance the grade for a student already enrolled in the school--> <SL_Event. Object. Name="Student. School. Enrollment" Action=“Change"> <Student. School. Enrollment Ref. Id="350001378"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1989 -10 -31</Birth. Date> Notes / Keypoints </Student. Identification> <Student. Info> … </Student. Info> • Set Action=“Change” as the <School. Id>2163404</School. Id> Dept. Assigned. Person. Id is <School. Enrollment. Info> known. <Grade Code="09"/> • Student. Info is only required if </School. Enrollment. Info> the individual’s personal </Student. School. Enrollment> information has changed. • Set the Grade for the individual for this school year. 5
Withdraw a Student from your School <!– Use this transaction to withdraw an individual from your school --> <SL_Event. Object. Name="Student. School. Enrollment" Action=“Change"> <Student. School. Enrollment Ref. Id="350001378"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1989 -10 -31</Birth. Date> Notes / Keypoints </Student. Identification> • Set Action=“Change” as the <Student. Info/> Dept. Assigned. Person. Id is known. <School. Id>2163404</School. Id> <School. Enrollment. Info> • Student. Info section is not required. <Exit. Date>2004 -06 -28</Exit. Date> • Set Exit. Date to the date the <Exit. Type Code="01"/> individual withdrew (the end of the </School. Enrollment. Info> school year). </Student. School. Enrollment> • Set the Exit. Type for the exit reason. 6
Class Registration Transactions Class Registration Transaction Types: • Create a school class • Register a student in a 100% school class (accredited teacher) • Register a student in a blended class (60% school / 40% dept mark) • Register a student in a departmental exam • Drop a student from the class • Submit school marks for a registered student • Change a school mark for a registered student 7
Add a New School Class <!-- Add a class for the school --> <SL_Event. Object. Name="School. Class" Action="Add"> <School. Class Ref. Id="1"> <Class. Identification> Notes / Keypoints <School. Id>4154902</School. Id> <Class. Id>C 10 NS-12</Class. Id> • Set Action=“Add” for a new <Start. Date>2004 -09 -01</Start. Date> school class, <End. Date>2005 -06 -28</End. Date> Action=“Change” can be used </Class. Identification> to change End. Date only <Class. Info> <Dept. Assigned. Course. Id>4994</Dept. Assigned. Course. Id> <Educator. Certificate. Number>1234567</Educator. Certificate. Number> <Mode. Of. Instruction Code="Class"/> </Class. Info> 2. Make Class. Id/Start. Date/End. Date identifier unique and </School. Class> unchanging, as this is required for matching during </SL_Event. Object> class registrations. 3. Supply an Educator. Certificate. Number as this is required 8 for mark submissions.
Register a Student in a 100% School Class <!—Register a student in a 100% school / accredited class --> <Student. Class. Enrollment Ref. Id="FJB 42"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1989 -11 -03</Birth. Date> </Student. Identification> Notes / Keypoints <Class. Identification> <School. Id>4825103</School. Id> • Set Action=“Add” for a new <Class. Id>TIN 10 a</Class. Id> registration, Action=“Change” to <Start. Date>2004 -08 -26</Start. Date> modify an existing registration <End. Date>2005 -06 -30</End. Date> • Supply a Dept. Assigned. Person. Id </Class. Identification> <Class. Enrollment. Info/> • Supply the Class. Identification from </Student. Class. Enrollment> the School. Class transaction 9
Register a Student in a Blended Class <!-- Register a student in a blended course (60% School / 40% Deptartmental) --> <SL_Event. Object. Name="Student. Class. Enrollment" Action=“Add"> <Student. Class. Enrollment Ref. Id="BJC-51 -"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1987 -04 -15</Birth. Date> Notes / Keypoints </Student. Identification> <Class. Identification> • Set Action=“Add” for a new registration, <School. Id>4825103</School. Id> Action=“Change” to modify an existing <Class. Id>ANGA 30 a</Class. Id> registration. <Start. Date>2005 -01 -19</Start. Date> <End. Date>2005 -06 -28</End. Date> • Set Mark. Source to Blended. </Class. Identification> <Class. Enrollment. Info> <Mark. Source Code="Blended"/> </Class. Enrollment. Info> • Include the Exam. Registration. Info section for the departmental portion of the class, set the Exam. Period. End. Date to the published exam date. <Exam. Registration. Info Type="Class"> <Exam. Period. End. Date>2005 -06 -28</Exam. Period. End. Date> </Exam. Registration. Info> </Student. Class. Enrollment> 10
Register a Student for a Departmental Exam <!-- Register a student for a departmental exam --> <SL_Event. Object. Name="Student. Exam. Registration" Action="Change"> <Student. Exam. Registration Ref. Id="1"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1986 -02 -12</Birth. Date> </Student. Identification> <Dept. Assigned. Course. Id>8404</Dept. Assigned. Course. Id> <Exam. Registration. Info Type="Class"> <Exam. Period. End. Date>2005 -01 -28</Exam. Period. End. Date> </Exam. Registration. Info> Notes / Keypoints <Exam. Location> <School. Id>1234567</School. Id> • Set Action=“Add” for a new registration, Action=“Change” to modify an existing </Exam. Location> registration. </Student. Exam. Registration> • Set the Exam. Period. End. Date to the published exam date. • Set the School. Id to the Writing Center #. 11
Drop a Student from a Class <!– Drop a student from a class --> <SL_Event. Object. Name="Student. Class. Enrollment" Action="Change"> <Student. Class. Enrollment Ref. Id="132 -003700692"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1988 -11 -29</Birth. Date> </Student. Identification> <Class. Identification> <School. Id>4155004</School. Id> Notes / Keypoints <Class. Id>BA 20 NS-02</Class. Id> <Start. Date>2004 -09 -01</Start. Date> • Set Action=“Change” to modify a existing registration. <End. Date>2005 -06 -28</End. Date> </Class. Identification> • Set the Dept. Assigned. Person. Id. <Class. Enrollment. Info> <Dropped Code="Yes"/> • Set the Class. Identification. </Class. Enrollment. Info> • Set the Dropped Code=“Yes” to drop the </Student. Class. Enrollment> </SL_Event. Object> student from a class. 12
Submit school marks for a registered student <!– Send a school mark in for a student registered in a class --> <SL_Event. Object. Name="Student. Class. Mark" Action="Add"> <Student. Class. Mark Ref. Id="1"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1987 -06 -16</Birth. Date> </Student. Identification> <Class. Identification> <School. Id>4154902</School. Id> Notes / Keypoints <Class. Id>CL 30 -11</Class. Id> • Set Action=“Add” for a new mark. <Start. Date>2004 -09 -01</Start. Date> <End. Date>2004 -11 -21</End. Date> • Set the Dept. Assigned. Person. Id. </Class. Identification> <School. Mark. Info> • Set the Class. Identification. <School. Mark>95</School. Mark> • Set the School. Mark for the student </School. Mark. Info> (number between 1 and 100). </Student. Class. Mark> </SL_Event. Object> 13
Change a school mark for a student <!– Change a school mark for a student registered in a class --> <SL_Event. Object. Name="Student. Class. Mark" Action=“Change"> <Student. Class. Mark Ref. Id="1"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1987 -06 -16</Birth. Date> </Student. Identification> Notes / Keypoints <Class. Identification> <School. Id>4154902</School. Id> • Set Action=“Change” to change a <Class. Id>CL 30 -11</Class. Id> mark. <Start. Date>2004 -09 -01</Start. Date> <End. Date>2004 -11 -21</End. Date> • Set the Dept. Assigned. Person. Id. </Class. Identification> <School. Mark. Info Correction. Code=“Yes"> • Set the Class. Identification. <School. Mark>94</School. Mark> • Set the Correction. Code to Yes. </School. Mark. Info> </Student. Class. Mark> • Set the School. Mark for the student </SL_Event. Object> (number between 1 and 100). 14
Response Files Response file types: • XML Validation Errors – Your XML document does not pass validation against the XML schema definition file. • Processing Errors and Warnings – Each transaction is processed independently. • Enrolment response, returning Dept. Assigned. Person. Id 15
Sample XML Reponse <SL_Response> <SL_Header> <SL_Msg. Id>EDTEMR. 20041216. 144705. 0000000608</SL_Msg. Id> <SL_Date>2004 -12 -16</SL_Date> <SL_Time Zone="UTC-06: 00">14: 47: 05</SL_Time> <SL_Source. Id>8888888</SL_Source. Id> </SL_Header> <SL_Ack> <SL_Original. Msg. Id>. 20041216. 145048</SL_Original. Msg. Id> <SL_Original. Source. Id>4154902</SL_Original. Source. Id> <SL_Status> <SL_Status. Code>Errors</SL_Status. Code> <SL_Status. Msg>XML processing error {Summary: Transactions: 2 Successful: 1 Errors: 1 Warnings: 0}</SL_Status. Msg> </SL_Status> <SL_Error Object. Name="Student. School. Enrollment" Ref. Id=“ 1"> <SL_Error. Severity>Informational</SL_Error. Severity> <SL_Error. Code>0</SL_Error. Code> <SL_Error. Msg>Transaction Successful</SL_Error. Msg> </SL_Error> <SL_Error Object. Name="Student. School. Enrollment" Ref. Id=“ 2"> <SL_Error. Severity>Error</SL_Error. Severity> <SL_Error. Code>53908</SL_Error. Code> <SL_Error. Msg>Student cannot be enrolled twice in same school at same time</SL_Error. Msg> </SL_Error> 16 </SL_Ack>
XML Reponse Sample Page 2 <SL_Object. Data> <SL_Event. Object. Name="Student. Personal"> <Student. Personal Ref. Id=“ 1"> <Student. Identification> <Dept. Assigned. Person. Id>123456789</Dept. Assigned. Person. Id> <Birth. Date>1983 -03 -09</Birth. Date> </Student. Identification> <Student. Info> <School. Assigned. Person. Id>900016</School. Assigned. Person. Id> </Student. Info> </Student. Personal> </SL_Event. Object> </SL_Response> 17
Support Documentation • SDS XML web site http: //www. sasked. gov. sk. ca/sds/xml/ • SDS application help. • Support email address student. records@sasked. gov. sk. ca 18
- Slides: 18