/// <summary>
 /// Sets the value of the <c>&lt;Code&gt;</c> element.
 /// </summary>
 /// <param name="val">A NCES0673NonpromotionReason object</param>
 /// <remarks>
 /// <para>The SIF specification defines the meaning of this element as: "The reason the student was not promoted. This element should only be populated if the value of PromotionStatus is "Promoted"."</para>
 /// <para>Version: 2.5</para>
 /// <para>Since: 2.4</para>
 /// </remarks>
 public void SetCode( NCES0673NonpromotionReason val )
 {
     SetField( StudentDTD.NONPROMOTION_CODE, val );
 }
 /// <summary>
 /// Constructor that accepts values for all mandatory fields
 /// </summary>
 ///<param name="code">The reason the student was not promoted. This element should only be populated if the value of PromotionStatus is "Promoted".</param>
 ///
 public Nonpromotion( NCES0673NonpromotionReason code )
     : base(StudentDTD.NONPROMOTION)
 {
     this.SetCode( code );
 }
 ///<summary>Sets the value of the <c>&lt;Nonpromotion&gt;</c> element.</summary>
 /// <param name="Code">The reason the student was not promoted. This element should only be populated if the value of PromotionStatus is "Promoted".</param>
 ///<remarks>
 /// <para>This form of <c>setNonpromotion</c> is provided as a convenience method
 /// that is functionally equivalent to the <c>Nonpromotion</c></para>
 /// <para>Version: 2.5</para>
 /// <para>Since: 2.4</para>
 /// </remarks>
 public void SetNonpromotion( NCES0673NonpromotionReason Code )
 {
     RemoveChild( StudentDTD.PROMOTIONINFO_NONPROMOTION);
     AddChild( StudentDTD.PROMOTIONINFO_NONPROMOTION, new Nonpromotion( Code ) );
 }