- Created by Ian Christopher on Feb 28, 2017
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
Version 1 Next »
Release & Download Notes
This page contains the download and release notes for Scholar Snapp v3.0a, an alpha draft released on February 28, 2017.
Download a ZIP archive containing the Snapp Data Standard v3.0a and a sample XML data file:
Scholar-Snapp-v3-0a.zip
What's in v3.0a?
This section outlines the updates and additions as of the draft Snapp v3.0a RFC XSD. Although the changes are technically valid, the Snapp team was still soliciting input as of this release – so the final form may be different, and we may back out changes in subsequent versions if implementers advise us to do so.
Ambiguity Removed from Required Elements (SSDS-1)
The v2.0 XSD specification has a logical ambiguity in many required elements: the specification allows required strings to be of zero length, meaning that the value can actually be null.
This issue tripped up field implementations (which expect "required" values to be non-null), including the Snapp UI itself (which was developed to require a non-zero-length string in "required" string fields).
Change Detail
The proposed v3.0 XSD will add a minLength=1
restriction to the ShortString
and LongString
types (lines 7 and 16 in the following snippet):
... <xs:simpleType name="ShortString"> <xs:annotation> <xs:documentation>String used for short text fields</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="100"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="LongString"> <xs:annotation> <xs:documentation>String used for long text fields, such as essays</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="4000"/> </xs:restriction> </xs:simpleType> ...
The ShortString and LongString types are used as a base class for most string values in the standard. This change will force all elements that are present to have a non-zero-length string as a value.
The following snippet illustrates the practical effect of the change in XML data files:
... <!-- Valid in v2.0, will not validate in v3.0 --> <sds:FirstName></sds:FirstName> ...
The example above will not validate in v3.0 because FirstName is present, but doesn't meet the minimum length requirement.
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-1)
- See this change in GitHub (88e9a97)
Allow Multiple Races to be Indicated (SSDS-2)
The v2.0 Snapp Standard uses the same race list as the U.S. Census Bureau -- but unlike the census and the U.S. DoE reporting, the Snapp standard only allows a single selection for the Race enumeration.
This change allows multiple races to be indicated.
Change Detail
The proposed v3.0 XSD will add maxOccurs="unbounded"
to the existing RacesList, allowing multiple selections (line 2 in the following snippet):
... <xs:element name="Race" type="sds:RacesList" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Student's race</xs:documentation> </xs:annotation> </xs:element> ...
The following snippet illustrates the practical effect of the change in XML data files:
... <!-- Not valid in v2.0, will validate in v3.0 --> <sds:Race>AmericanIndianOrAlaskaNative</sds:Race> <sds:Race>White</sds:Race> ...
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-2)
- See this change in GitHub (7182b87)
Support new SAT and PSAT Test Types (SSDS-3)
The v2.0 Snapp Standard has a structured list of test types which did not account for the 2016 changes to the SAT or the 2015 changes to the PSAT. This change supports the latest College Board test types as of January 2017, and deprecates older versions of tests with similar scoring.
Change Detail
The proposed v3.0 XSD will update the values in the TestsList
enumeration.
This change also includes a minor tweak to deprecated or other old tests: v2.0 noted old test types as obsolete (e.g., SAT Verbal (Obsolete)
). The proposed v3.0 changes this to indicate a timeframe (e.g., SAT Verbal (pre-2005)
), which provides implementers with a more meaningful indication of what the type represents. The following snippet shows all SAT and PSAT values, with unchanged test types elided:
... <xs:simpleType name="TestsList"> <xs:annotation> <xs:documentation>The different tests that a person can take</xs:documentation> </xs:annotation> <xs:restriction base="sds:ShortString"> <xs:enumeration value="SAT Total"/> <xs:enumeration value="SAT Evidence-Based Reading and Writing"/> <xs:enumeration value="SAT Math"/> <xs:enumeration value="SAT Reading Essay"/> <xs:enumeration value="SAT Analysis Essay"/> <xs:enumeration value="SAT Writing Essay"/> <xs:enumeration value="SAT Reading Test"/> <xs:enumeration value="SAT Writing and Language Test"/> <xs:enumeration value="SAT Math Test"/> <xs:enumeration value="SAT Analysis in History/Social Studies Cross-Test"/> <xs:enumeration value="SAT Analysis in Science Cross-Test"/> <xs:enumeration value="SAT Command of Evidence Subscore"/> <xs:enumeration value="SAT Words in Context Subscore"/> <xs:enumeration value="SAT Expression of Ideas Subscore"/> <xs:enumeration value="SAT Standard English Conventions Subscore"/> <xs:enumeration value="SAT Heart of Algebra Subscore"/> <xs:enumeration value="SAT Problem Solving and Data Analysis Subscore"/> <xs:enumeration value="SAT Passport to Advanced Math Subscore"/> <xs:enumeration value="SAT Critical Reading (pre-2016)"/> <xs:enumeration value="SAT Verbal (pre-2005)"/> <xs:enumeration value="SAT Math (pre-2016)"/> <xs:enumeration value="SAT Writing (pre-2016)"/> ...unchanged values elided <xs:enumeration value="PSAT Total"/> <xs:enumeration value="PSAT Evidence-Based Reading and Writing"/> <xs:enumeration value="PSAT Math"/> <xs:enumeration value="PSAT Reading Test"/> <xs:enumeration value="PSAT Writing and Language Test"/> <xs:enumeration value="PSAT Math Test"/> <xs:enumeration value="PSAT Analysis in History/Social Studies Cross-Test"/> <xs:enumeration value="PSAT Analysis in Science Cross-Test"/> <xs:enumeration value="PSAT Command of Evidence Subscore"/> <xs:enumeration value="PSAT Words in Context Subscore"/> <xs:enumeration value="PSAT Expression of Ideas Subscore"/> <xs:enumeration value="PSAT Standard English Conventions Subscore"/> <xs:enumeration value="PSAT Heart of Algebra Subscore"/> <xs:enumeration value="PSAT Problem Solving and Data Analysis Subscore"/> <xs:enumeration value="PSAT Passport to Advanced Math Subscore"/> <xs:enumeration value="PSAT Critical Reading (pre-2015)"/> <xs:enumeration value="PSAT Verbal (pre-2005)"/> <xs:enumeration value="PSAT Math (pre-2015)"/> <xs:enumeration value="PSAT Writing (pre-2015)"/> <xs:enumeration value="PSAT Selection Index"/> ...more unchanged values </xs:restriction> </xs:simpleType> ...
The following snippet illustrates a subset of the allowable SAT and PSAT values in XML data files:
... <!-- High-level SAT and PSAT in v3.0 --> <sds:TestScores> <sds:Test>SAT Total</sds:Test> <sds:Score>1350</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2017-01-10</sds:ScoreDate> </sds:TestScores> <sds:TestScores> <sds:Test>SAT Math</sds:Test> <sds:Score>600</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2017-01-10</sds:ScoreDate> </sds:TestScores> <sds:TestScores> <sds:Test>SAT Evidence-Based Reading and Writing</sds:Test> <sds:Score>750</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2017-01-10</sds:ScoreDate> </sds:TestScores> <sds:TestScores> <sds:Test>PSAT Total</sds:Test> <sds:Score>1300</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2016-01-11</sds:ScoreDate> </sds:TestScores> <sds:TestScores> <sds:Test>PSAT Math</sds:Test> <sds:Score>700</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2016-01-11</sds:ScoreDate> </sds:TestScores> <sds:TestScores> <sds:Test>PSAT Evidence-Based Reading and Writing</sds:Test> <sds:Score>600</sds:Score> <sds:ScoreType>Highest ever score</sds:ScoreType> <sds:ScoreDate>2016-01-11</sds:ScoreDate> </sds:TestScores> ...
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-3)
- See this change in GitHub (7182b87)
Improve inline annotations (SSDS-4)
The v2.0 Snapp Standard has several annotations that are mercilessly terse. Others contain light spelling errors and typos. This proposed change makes simple corrections, all of which are non-breaking.
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-4)
- See this change in GitHub (Work In Progress)
Expand ClassTypeList to indicate "General" classes (SSDS-6)
The v2.0 Snapp Standard contains a ClassTypeList that used in the Transcript to indicate special characteristics of a class (e.g., Honors, AP, IB, Dual enrollment).
Implementers have suggested that a "Regular" entry would be useful for data exchange. This would allow systems importing profiles to differentiate between classes that are "Regular" classes and classes that have no indication because the sending system simply doesn't collect class type information or didn't include that information in the profile.
We considered values such as "General" or "Regular" or "Standard" or similar.
Change Detail
Both CEDS and the Ed-Fi Data Standard use "General" for this purpose, so we propose that option for v3.0. The following code snippet shows the complete ClassTypeList with the added value on line 7:
... <xs:simpleType name="ClassTypeList"> <xs:annotation> <xs:documentation>The type of student courses</xs:documentation> </xs:annotation> <xs:restriction base="sds:ShortString"> <xs:enumeration value="General"/> <xs:enumeration value="Senior"/> <xs:enumeration value="Honors"/> <xs:enumeration value="AP"/> <xs:enumeration value="IB"/> <xs:enumeration value="Dual enrollment"/> <xs:enumeration value="Special education"/> <xs:enumeration value="Remedial"/> <xs:enumeration value="Other"/> </xs:restriction> </xs:simpleType> ...
The following snippet illustrates the use of the new General option in XML data:
... <!-- The General value indicates a non-AP, non-IB, non-Remedial, plain old everyday class --> <sds:SimpleTranscript> <sds:ClassName>Calculus</sds:ClassName> <sds:Year>High School Grade 12</sds:Year> <sds:Status>In progress</sds:Status> <sds:Grade>B</sds:Grade> <sds:Scale>Alphabetic</sds:Scale> <sds:Type>General</sds:Type> <sds:SchoolName>Austin High School</sds:SchoolName> </sds:SimpleTranscript> ...
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-6)
- See this change in GitHub (9eb65cc)
Add counselor phone number to CollegeReadinessProgram complex type (SSDS-7)
Implementers using the College Readiness Program entity noted that it was missing a phone number for the Counselor. This change would add an optional counselor phone number to the complex type.
Change Detail
The CollegeReadinessProgram complex type contains simplified contact information (e.g., using a purpose-built first/last name vs. a Name element). In keeping with that idiom, we added a simple string value, illustrated on 12:
... <xs:complexType name="CollegeReadinessProgram"> <xs:annotation> <xs:documentation>The student's participation in a college readiness program</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="ProgramName" type="sds:ShortString"/> <xs:element name="ProgramOtherDesc" type="sds:ShortString" minOccurs="0"/> <xs:element name="CounselorFirstName" type="sds:ShortString" minOccurs="0"/> <xs:element name="CounselorLastName" type="sds:ShortString" minOccurs="0"/> <xs:element name="CounselorEmail" type="sds:ShortString" minOccurs="0"/> <xs:element name="CounselorPhoneNumber" type="sds:ShortString" minOccurs="0"/> <xs:element name="LengthOfParticipation" type="xs:duration" minOccurs="0"/> </xs:sequence> </xs:complexType> ...
The following snippet illustrates a use of the new counselor phone number option in XML data:
... <!-- Updated CRP with counselor phone number in v3.0 --> <sds:CollegeReadinessPrograms> <sds:ProgramName>AVID</sds:ProgramName> <sds:ProgramOtherDesc>Advancement Via Individual Determination</sds:ProgramOtherDesc> <sds:CounselorFirstName>Manuel</sds:CounselorFirstName> <sds:CounselorLastName>Diaz</sds:CounselorLastName> <sds:CounselorEmail>md@example.edu</sds:CounselorEmail> <sds:CounselorPhoneNumber>512-555-9876</sds:CounselorPhoneNumber> <sds:LengthOfParticipation>P2Y</sds:LengthOfParticipation> </sds:CollegeReadinessPrograms> ...
References
- View ticket in the Scholar Snapp Data Standard JIRA Site (SSDS-7)
- See this change in GitHub (7182b87)
- No labels