/// <summary>
 /// Constructor that accepts values for all mandatory fields
 /// </summary>
 ///<param name="refId">The Id (GUID) that uniquely identifies this StaffSectionAssignment entity.</param>
 ///<param name="staffPersonalRefId">The Id (GUID) of the teacher or educational staff to whom the assignment information applies.</param>
 ///<param name="sectionInfoRefId">The Id (GUID) of the section in which this staff (teacher) is assigned.</param>
 ///<param name="teacherOfRecord">Indicates if the staff is the Teacher of Record during this assignment.</param>
 ///<param name="roles">List of one or more Roles.</param>
 ///
 public StaffSectionAssignment( string refId, string staffPersonalRefId, string sectionInfoRefId, TeacherOfRecord teacherOfRecord, Role roles )
     : base(Adk.SifVersion, StudentDTD.STAFFSECTIONASSIGNMENT)
 {
     this.RefId = refId;
     this.StaffPersonalRefId = staffPersonalRefId;
     this.SectionInfoRefId = sectionInfoRefId;
     this.SetTeacherOfRecord( teacherOfRecord );
     this.Roles =  new Roles( roles );
 }
 ///<summary>Sets the value of the <c>&lt;Roles&gt;</c> element.</summary>
 /// <param name="Role">One of a set of possible enumerated Role values.</param>
 ///<remarks>
 /// <para>This form of <c>setRoles</c> is provided as a convenience method
 /// that is functionally equivalent to the <c>Roles</c></para>
 /// <para>Version: 2.6</para>
 /// <para>Since: 2.6</para>
 /// </remarks>
 public void SetRoles( Role Role )
 {
     RemoveChild( StudentDTD.STAFFSECTIONASSIGNMENT_ROLES);
     AddChild( StudentDTD.STAFFSECTIONASSIGNMENT_ROLES, new Roles( Role ) );
 }