SIFWorks ADK 2.0
SifElement Class
NamespacesEdustructures.SifWorksSifElement

[This is preliminary documentation and is subject to change.]

The abstract base class for all SIF Elements.
Declaration Syntax
C#Visual BasicVisual C++
[SerializableAttribute]
public abstract class SifElement : Element
<SerializableAttribute> _
Public MustInherit Class SifElement _
	Inherits Element
[SerializableAttribute]
public ref class SifElement abstract : public Element
Members
All MembersConstructorsMethodsProperties



IconMemberDescription
SifElementSifElementNew(IElementDef)
Constructs a SifElement

AddChild(IElementDef, SifElement)
Adds a child SifElement

AddChild(SifElement)
Adds a child SifElement

ChildCount
Returns the number of children elements of this SIFElement

Clone()() (Overrides Element.Clone()().)
CompareGraphTo(SifElement)
Compares all child elements and attributes of this Element with that of another Element.

static memberCreate(SifElement, IElementDef)
reates an instance of a SIFElement from its ID and adds it to the parent, taking into account rules about collapsed elements

EffectiveSIFVersion
Gets the SifVersion effective for this element by searching the ancestry until a valid SifVersion is returned by one of the parent objects.

FieldCount
Gets the number of fields for this object

GetChild(IElementDef)
Gets the child object with the matching IElementDef

GetChild(IElementDef, String)
Gets the child object with the matching IElementDef and key

GetChild(String, String)
Gets the child object with the matching element name and key

GetChild(IElementDef, array<String>[]())
Gets a child object identified by its IElementDef and composite key

GetChildren()()
Returns a read-only list of all Child elements

GetChildren(IElementDef)
Gets all child objects with a matching IElementDef

GetChildren(String)
Gets all child objects with a matching version-independent element name

GetContent()()
Gets an ordered list of all child elements and fields that are in a changed state and do not have a null value.

GetContent(SifVersion)
Gets an ordered list of all child elements and fields that are in a changed state and do not have a null value.

GetField(IElementDef)
Gets a field's value and sequence number

GetField(String)
GetFields()()
Gets a read-only list of the fields for this object

GetFieldValue(IElementDef)
Gets a field's value as a String

HasTextValue()()
Does this element have a text value?

Key
RemoveChild(SifElement)
Removes a child object

RemoveChild(IElementDef, String)
Removes a child object identified by its IElementDef and key

RemoveChild(IElementDef)
Removes a child object identified by its IElementDef

RemoveChild(IElementDef, array<String>[]())
Removes a child object identified by its IElementDef and complex key

SetChanged(Boolean)
Sets this element and each of its children to the specified changed state. An object in the changed state will be written to the XML stream when a SIF message is rendered; objects that are not changed will be excluded.
(Overrides Element.SetChanged(Boolean).)
SetChildren(IElementDef, array<SifElement>[]())
Adds the specified children as an array to the SIFElement object.

SetEmpty(Boolean)
Sets this element and each of its children to the specified empty state. An object in the empty state will be written to an XML stream as an empty element with no children.
(Overrides Element.SetEmpty(Boolean).)
SetField(IElementDef, String)
Sets a field's value

SetField(IElementDef, SifSimpleType)
Sets a field's value

SetField(SimpleField)
Sets a SimpleField value to this SifElement

SifValue
Returns the underlying SIF data type that is stored in this field
(Overrides Element.SifValue.)
SifVersion
Gets or Sets the SifVersion associated with this element, if applicable. The base class implementation of this method always returns null.

Tag
Gets the tag name for this element. The effective version of SIF is used to determine the exact tag name since tag names may change from one version of SIF to the next.

TextValue
Gets the text value of this element, if applicable. The text value will be parsed into the native datatype of the element.
(Overrides Element.TextValue.)
XmlId
Gets or sets the unique identifier for this object. This value is not used by the ADK and is reserved for use by the application.

Remarks

Each object type and complex field element defined in the SIF Specification is encapsulated by a subclass of SifElement. Objects include <StudentPersonal>, <StaffPersonal>, <BusInfo>, etc. while complex field elements include <Address>, <OtherId>, <PhoneNumber> and so on. Simple fields which have only a string value but which have no child elements are encapsulated by the SimpleField class instead of by SifElement. An example of such a field is the <FirstName> child of the <Name> element.

SifElements may have a single parent and zero or more children. Complex fields are always represented as child objects. The AddChild, GetChildren, RemoveChild, countChildren, and removeAllChildren methods are provided to manipulate the child list. Simple fields are stored in a dictionary keyed by the field's IElementDef constant as defined in the SifDtd class. The value of a simple field is encapsulated by a SimpleField object, which stores not only the current string value of the field but also its change state and a reference to its IElementDef.

Comparing SifElement Graphs

Agent developers do not typically work with SifElement objects directly. The compareGraphTo method is one exception. Agents can use this method to compare the contents of two SifElements in order to determine which elements and attributes are different. For an example of how this method can be used to assist in SIF_Event reporting, refer to the SchoolInfoProvider Adk Example program. Similarly, the SIFDiff example program demonstrates using the compareGraphTo method to display the differences between two SIF Data Objects read from disk.

SifVersion

The abstract getSIFVersion method returns the SifVersion that is currently in effect for this object. This is often used to determine the element tag name and sequence number when rendering XML because these may change from one version of SIF to the next. However, the SifElement class does not itself keep track of version; it is up to the derived class to do so. Both SifDataObject and SifMessagePayload store the SIF version associated with their objects. By working up the object ancestry, it is possible to determine the SifVersion currently associated with a SifElement. The effectiveSIFVersion method performs this task.

Inheritance Hierarchy
Object
Element
 SifElement
  SifKeyedElement
  SifList<(Of <TValue>)>
  SifMessagePayload
  ReportingPeriod
  SIF_JoinOn
  SIF_GetZoneStatus
  SIF_ExtendedQuery
  SIF_Application
  SIF_Wakeup
  SIF_Select
  SIF_LogEntryHeader
  SIFOrderByElement
  SIFSelectElement
  SIF_SecureChannel
  SIF_OriginalHeader
  SIF_EventObject
  SIF_Vendor
  SIF_Property
  SIF_Error
  SIF_Sleep
  SIF_GetMessage
  SIF_Ping
  SIF_ExtendedQueryResults
  SIF_GetAgentACL
  SIF_Condition
  NameList
  Demographics
  InstructionalLevel
  MeetingTime
  ProgramStatus
  ProgramFundingSource
  DwellingArrangement
  GridLocation
  RightsElement
  LifeCycle
  SIF_Metadata
  SpanGap
  TransferPoint
  TransStudent
  StaffAssigned
  IncidentCategory
  Action
  SCEDCode
  ResidencyStatus
  StudentAttendance
  ManifestationDetermination
  LanguageOfInstruction
  TeacherAttendance
  ContactFlags
  AdministratorAttendance
  ScheduleInfoOverride
  CalendarDateType
  HomeEnrollment
  MostRecent
  PartCTransitionMeetingOutcome
  ProgramExitReason
  LeastRestrictiveEnvironment
  AccommodationCategory
  WhenServiceProvided
  ReferralSource
  ServiceFundingSource
  Accommodations
  Accommodation
  ServiceProviderType
  PartCTransitionMeetingNotHeldReason
  FrequencyTime
  StudentProgramType
  StudentProgramAccommodation
  ProgramPlanType
  Transaction
  AssignmentTime
  ResourceEvaluations
  Component
  SourceAuthor
  Approval
  LRContact
  ResourceContact
  StandardHierarchyLevel
  Copyright
  Period
  BudgetAccount
  FISPeriod
  HRProgramType
  ExpenseAccount
  FISAmount
  FTAmount
  AnnualItem
  Percentage
  Narrative
  AuditInfo
  Numeric
  Customer
  PurchaseQuantity
  ItemQuantity
  SaleQuantity
  LEAInfoData
  AcademicPerformanceSummary
  StudentContactsSummary
  Requirement
  Counselor
  StaffPersonalData
  SchoolCourseInfoData
  DemographicsData
  CurrentCourseActivity
  Records
  SchoolInfoData
  MarkingPeriod
  StudentPersonalData
  TermPerformance
  StudentParticipationData
  Advisor
  Term
  ParentGuardian
  AssessmentHistory
  ActivityAward
  StudentGradeLevel
  AssessmentGradeLevel
  BackgroundCheck

Assembly: Edustructures.SifWorks.Adk (Module: Edustructures.SifWorks.Adk) Version: 2.0.0.10