/// <summary>
 /// Constructor that accepts values for all mandatory fields
 /// </summary>
 ///<param name="learnerPersonalRefId">The ID (GUID) of the learner for whom this attendance information is being reported.</param>
 ///<param name="schoolInfoRefId">The ID (GUID) of the school for which this attendance information is being reported.</param>
 ///<param name="schoolYear">School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007 for the 2006/07 school year). CBDS: 100225</param>
 ///<param name="startDate">Starting date of this attendance reporting period. CBDS: 100226</param>
 ///<param name="endDate">Ending date of this attendance reporting period. CBDS: 100227</param>
 ///<param name="reasonsList">An enumeration of sessions by reason code within the reporting period.</param>
 ///<param name="sessionsAttendedTotal">The number of sessions the learner attended school when school was in session between the StartDate and EndDate, inclusive. CBDS: 100229</param>
 ///<param name="sessionsPossible">The number of sessions the learner was present plus the number of sessions the learner was absent (authorised and unauthorised) when school was in session during the period between the StartDate and EndDate, inclusive. CBDS: 100228</param>
 ///
 public LearnerAttendanceSummary( string learnerPersonalRefId, string schoolInfoRefId, int? schoolYear, DateTime? startDate, DateTime? endDate, Reason reasonsList, int? sessionsAttendedTotal, int? sessionsPossible )
     : base(Adk.SifVersion, LearnerDTD.LEARNERATTENDANCESUMMARY)
 {
     this.LearnerPersonalRefId = learnerPersonalRefId;
     this.SchoolInfoRefId = schoolInfoRefId;
     this.SchoolYear = schoolYear;
     this.StartDate = startDate;
     this.EndDate = endDate;
     this.ReasonsList =  new ReasonsList( reasonsList );
     this.SessionsAttendedTotal = sessionsAttendedTotal;
     this.SessionsPossible = sessionsPossible;
 }
 ///<summary>Sets the value of the <c>&lt;ReasonsList&gt;</c> element.</summary>
 /// <param name="Reason">Learner attendance marks by code and number.</param>
 ///<remarks>
 /// <para>This form of <c>setReasonsList</c> is provided as a convenience method
 /// that is functionally equivalent to the <c>ReasonsList</c></para>
 /// <para>Version: 2.6</para>
 /// <para>Since: 2.0</para>
 /// </remarks>
 public void SetReasonsList( Reason Reason )
 {
     RemoveChild( LearnerDTD.LEARNERATTENDANCESUMMARY_REASONSLIST);
     AddChild( LearnerDTD.LEARNERATTENDANCESUMMARY_REASONSLIST, new ReasonsList( Reason ) );
 }