StudentAcademicRecord wrong ordering of elements
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Open ADK for Java |
Fix Committed
|
Undecided
|
Unassigned |
Bug Description
This bug was discovered by Jon Kelly, which was discussed and confirmed in https:/
Using the OpenADK to generate a StudentAcademic
Example. The following message is generated by the OpenADK and sent to the ZIS:
<SIF_Message xmlns="http://
<SIF_Response>
<SIF_Header>
<
<
<
<
<
<
</SIF_Header>
<SIF_
<SIF_
<SIF_
<SIF_
<ReportingDat
<StudentSchoo
<GradeLevel>
<
</GradeLevel>
</StudentScho
<StudentSchoo
<StudentSchoo
<GradeLevel>
<
</GradeLevel>
</StudentScho
<SchoolAttend
<SchoolAttended RefId="
<
<
<
<
</SchoolAtt
<SchoolAttended RefId="
<
<
<
<
</SchoolAtt
</SchoolAtten
<CurrentCours
<Courses>
<Course>
<MarkData MarkValueInfoDa
</Course>
</Courses>
</CurrentCour
</StudentAcadem
</SIF_ObjectData>
</SIF_Response>
</SIF_Message>
The ZIS replies with the following error:
<b>SIF_Response</b> acknowledged (not successful) XML Validation Error. cvc-complex-
After investigation, it was discovered that the OpenADK is generating classes that do not comply with the SIF Specifications. According to the US SIF specification 2.0r1 (the version the message is being sent in) the following series of elements are expected:
/StudentAcademi
but according to the configuration file /open-adk-
/StudentAcademi
Because a MarkingPeriods element is expected by the ADK, it fails to order elements correctly when adding a MarkingPeriod to Course directly. This was confirmed when wrapping a MarkingPeriod element inside a MarkingPeriods element: the ADK correctly ordered the elements, but this does not produce XML that validates against the SIF spec.
The solution we found was to rebuild the ADK after editing the file:
/open-adk-
On Line 246, replace the line:
<element name="MarkingPe
with:
<element name="MarkingPe
I believe lines 338--341 can also be removed, although I am not familiar enough with the US spec to know this for certain.
To quote Jon Kelly: "Making this change throughout all the etranscripts.xml and rebuilding fixed the generation and validation issue I was having."
Indeed, I have also checked the 2.4 SIF Specification against the respective XML file, and this issue appears there too. All versions need to be checked and corrected as appropriate.
MarkingPeriod element added to Course object in etranscipts.xml in each datadef sif2.0 - sif2.4 This solves the ordering problem with StudentAcademic Record.