# Appendix A: Common Types

Common and supporting types referenced in this specification are included here as a reference.

## A.1 AbstractContentElementType

`AbstractContentPackageType` used as an element rather than an object, omitting `RefId`, `SIF_Metadata` and `SIF_ExtendedElements`.

Figure A.1-1: AbstractContentElementType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| AbstractContentElementType |  | `AbstractContentPackageType` used as an element rather than an object, omitting `RefId`, `SIF_Metadata` and `SIF_ExtendedElements`. |
| XMLData | C | Contains an arbitary XML element, encoded in UTF-8. | <xs:any processContents="lax" />
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| TextData | C | Contains arbitrary text, encoded in UTF-8. | xs:string
@ | MIMEType | O | Optional MIME type to specifically indicate the text type. Otherwise `text/plain` can be assumed. | xs:token
@ | FileName | O | Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| BinaryData | C | Contains the base64Binary encoding of binary or text data not encoded in UTF-8. | xs:base64Binary
@ | MIMEType | M | MIME type to indicate the content type. | xs:token
@ | FileName | O | Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| Reference | C | References external content via a URL. |
@ | MIMEType | M | MIME type to indicate the content type to be expected when retrieving the external content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| Reference/URL | M | Location of external content. | xs:anyURI

Table A.1-1: AbstractContentElementType

## A.2 AbstractContentPackageType

An abstract type for derived content package types, elements and objects. This structure may be used verbatim, optionally extending with additional attributes, or may be redefined to include only a subset of child elements and/or to add validation to XML contained in `XMLData`. Only one instance of `XMLData`, `TextData`, `BinaryData` or `Reference` can occur in a single instance.

Figure A.2-1: AbstractContentPackageType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| AbstractContentPackageType |  | An abstract type for derived content package types, elements and objects. This structure may be used verbatim, optionally extending with additional attributes, or may be redefined to include only a subset of child elements and/or to add validation to XML contained in `XMLData`. Only one instance of `XMLData`, `TextData`, `BinaryData` or `Reference` can occur in a single instance. |
@ | RefId | M | The GUID that uniquely identifies an instance of the package. | RefIdType
| XMLData | C | Contains an arbitary XML element, encoded in UTF-8. | <xs:any processContents="lax" />
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| TextData | C | Contains arbitrary text, encoded in UTF-8. | xs:string
@ | MIMEType | O | Optional MIME type to specifically indicate the text type. Otherwise `text/plain` can be assumed. | xs:token
@ | FileName | O | Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| BinaryData | C | Contains the base64Binary encoding of binary or text data not encoded in UTF-8. | xs:base64Binary
@ | MIMEType | M | MIME type to indicate the content type. | xs:token
@ | FileName | O | Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| Reference | C | References external content via a URL. |
@ | MIMEType | M | MIME type to indicate the content type to be expected when retrieving the external content. | xs:token
@ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the `AbstractContentPackageType` pattern. | xs:token
| Reference/URL | M | Location of external content. | xs:anyURI
| SIF_Metadata | O |  | SIF_Metadata
| SIF_ExtendedElements | O |  | SIF_ExtendedElements

Table A.2-1: AbstractContentPackageType

## A.3 BaseNameType

Base type, without attributes, for `Name` elements, primarily to allow structure to be leveraged with different `Type` attribute values.

Figure A.3-1: BaseNameType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| BaseNameType |  | Base type, without attributes, for `Name` elements, primarily to allow structure to be leveraged with different `Type` attribute values. |
| Title | O | A title or prefix associated with the name. If any of: Mr, Mrs, Ms, Miss, Rev, Fr, Dr, Prof, Hon, Sir, Lord, Lady - these must be as shown, otherwise free text. Note that title is not applicable to learners. | xs:normalizedString
| FamilyName | C | Family name. That part of the person's name which is used to describe family, clan, tribal group, or marital association. Note that this element is required when known. However, it may not be possible to know the family name in which case you should add the available information to the FullName element. | xs:normalizedString
| GivenName | C | Given name of the person. Note that this element is required if known. However, it may not be possible to know the given name in which case you should add the available information to the FullName element. | xs:normalizedString
| MiddleName | O | All other given or middle names, each separated with a single space character. | xs:normalizedString
| FamilyNameFirst | O | An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name. | AUCodeSetsYesOrNoCategoryType
| PreferredFamilyName | O | The family name preferred most by the person (as written). | xs:normalizedString
| PreferredFamilyNameFirst | O | An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name. | AUCodeSetsYesOrNoCategoryType
| PreferredGivenName | O | The given name preferred most by the person (as written). | xs:normalizedString
| Suffix | O | Textual suffix like PHD, JP, BSc. | xs:normalizedString
| FullName | C | A free text field for the complete name for display purposes. If this is associated with a StudentPersonal,StaffPersonal or StudentContactPersonal record and the FamilyName and GivenName are not both specified, then this becomes mandatory. | xs:normalizedString

Table A.3-1: BaseNameType
<Name Type="LGL"> <FamilyName>Wesson</FamilyName> <GivenName>Melanie</GivenName> <MiddleName>Joan</MiddleName> <FamilyNameFirst>N</FamilyNameFirst> <PreferredFamilyName>Wesson</PreferredFamilyName> <PreferredFamilyNameFirst>N</PreferredFamilyNameFirst> <PreferredGivenName>Mel</PreferredGivenName> </Name>
Example A.3-1: BaseNameType

## A.4 DefinedProtocolsType

The transport protocols defined in SIF.
Figure A.4-1: DefinedProtocolsType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| DefinedProtocolsType |  | The transport protocols defined in SIF. | values: HTTPS HTTP

Table A.4-1: DefinedProtocolsType

## A.5 ExtendedContentType

Allows for any mixed XML in an element.
Figure A.5-1: ExtendedContentType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ExtendedContentType |  | Allows for any mixed XML in an element. | <xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>

Table A.5-1: ExtendedContentType

## A.6 GUIDType

SIF format for a GUID.
Figure A.6-1: GUIDType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| GUIDType |  | SIF format for a GUID. | xs:token
xs:pattern | [0-9A-F]{32}

Table A.6-1: GUIDType

## A.7 IdRefType

A reference to a RefId.
Figure A.7-1: IdRefType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| IdRefType |  | A reference to a RefId. | RefIdType

Table A.7-1: IdRefType

## A.8 MonetaryAmountType

A monetary amount.

Figure A.8-1: MonetaryAmountType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| MonetaryAmountType |  | A monetary amount. | xs:decimal
@ | Currency | O | Currency code. Where omitted, defaults to implementation-defined local currency, typically `USD` in the United States. | ISO4217CurrencyNamesAndCodeElementsType

Table A.8-1: MonetaryAmountType

## A.9 MsgIdType

A message identifier.
Figure A.9-1: MsgIdType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| MsgIdType |  | A message identifier. | GUIDType

Table A.9-1: MsgIdType

## A.10 NameOfRecordType

Extends `BaseNameType` to allow for one `Type` attribute value, indicating the name is the name of record; serves as the primary name in some SIF objects, including `StudentPersonal`.

Figure A.10-1: NameOfRecordType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| NameOfRecordType |  | Extends `BaseNameType` to allow for one `Type` attribute value, indicating the name is the name of record; serves as the primary name in some SIF objects, including `StudentPersonal`. | BaseNameType
@ | Type | M | Code that specifies what type of name this is. Note that type “LGL” must be used here. | values: LGL Name of Record

Table A.10-1: NameOfRecordType

## A.11 ObjectNameType

An unenumerated SIF object name.

Figure A.11-1: ObjectNameType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ObjectNameType |  | An unenumerated SIF object name. | xs:NCName
xs:maxLength | 64

Table A.11-1: ObjectNameType

## A.12 OtherNameType

Extends `BaseNameType` to allow for `Type` attribute values excluding "name of record." Used for other names to be included in addition to the name of record in objects.

Figure A.12-1: OtherNameType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| OtherNameType |  | Extends `BaseNameType` to allow for `Type` attribute values excluding "name of record." Used for other names to be included in addition to the name of record in objects. | BaseNameType
@ | Type | M | Code that specifies what type of name this is. Note that type “LGL” is NOT to be used here. | AUCodeSetsNameUsageTypeType

Table A.12-1: OtherNameType

## A.13 PartialDateType

A year, with an optional month/day, or an optional month by itself.

Figure A.13-1: PartialDateType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| PartialDateType |  | A year, with an optional month/day, or an optional month by itself. | union of: xs:date xs:gYearMonth xs:gYear

Table A.13-1: PartialDateType

## A.14 RefIdType

An object or element identifier.
Figure A.14-1: RefIdType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| RefIdType |  | An object or element identifier. | GUIDType

Table A.14-1: RefIdType

## A.15 ReportDataObjectType

The SIF objects that can be included in `SIF_ReportObject/ReportData`, plus `ReportPackage`. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.15-1: ReportDataObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ReportDataObjectType |  | The SIF objects that can be included in `SIF_ReportObject/ReportData`, plus `ReportPackage`. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | choice of: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo Assessment AssessmentAdministration AssessmentForm AssessmentItem AssessmentPackage AssessmentRegistration AssessmentSubTest CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningResourcePackage LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN StudentSnapshot SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject ReportPackage

Table A.15-1: ReportDataObjectType

## A.16 ReportPackageType

This package has exactly the same structure as `AbstractContentPackageType`. `ReportPackage` can be used in addition to SIF objects specifically in reporting situations within `SIF_ReportObject`. At this time, it is not a SIF object. It cannot be requested via `SIF_Query` or `SIF_ExtendedQuery` in a `ReportManifest`. It may be included in `SIF_ReportObject` as part of an external report definition.
Figure A.16-1: ReportPackageType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ReportPackageType |  | This package has exactly the same structure as `AbstractContentPackageType`. `ReportPackage` can be used in addition to SIF objects specifically in reporting situations within `SIF_ReportObject`. At this time, it is not a SIF object. It cannot be requested via `SIF_Query` or `SIF_ExtendedQuery` in a `ReportManifest`. It may be included in `SIF_ReportObject` as part of an external report definition. | AbstractContentPackageType

Table A.16-1: ReportPackageType

## A.17 SelectedContentType

Allows an XML fragment selected from an object to be used in an element with XML validation skipped.
Figure A.17-1: SelectedContentType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SelectedContentType |  | Allows an XML fragment selected from an object to be used in an element with XML validation skipped. | <xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>

Table A.17-1: SelectedContentType

## A.18 SIF_EventObjectType

The SIF objects that can be included in a `SIF_Event` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.18-1: SIF_EventObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_EventObjectType |  | The SIF objects that can be included in a `SIF_Event` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | choice of: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo AssessmentAdministration AssessmentRegistration CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject

Table A.18-1: SIF_EventObjectType

## A.19 SIF_ExampleObjectType

The SIF objects that can be included in `SIF_Query/SIF_Example`. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.19-1: SIF_ExampleObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ExampleObjectType |  | The SIF objects that can be included in `SIF_Query/SIF_Example`. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | EMPTY

Table A.19-1: SIF_ExampleObjectType

## A.20 SIF_LogEntryExtendedContentType

Allows for any mixed XML in an element. XSD content processing is set to skip.
Figure A.20-1: SIF_LogEntryExtendedContentType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_LogEntryExtendedContentType |  | Allows for any mixed XML in an element. XSD content processing is set to skip. | <xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>

Table A.20-1: SIF_LogEntryExtendedContentType

## A.21 SIF_ProvideObjectNamesType

The SIF object names that can be specified in a `SIF_Provide` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.21-1: SIF_ProvideObjectNamesType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ProvideObjectNamesType |  | The SIF object names that can be specified in a `SIF_Provide` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | values: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo Assessment AssessmentAdministration AssessmentForm AssessmentItem AssessmentPackage AssessmentRegistration AssessmentSubTest CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningResourcePackage LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_LogEntry SIF_ReportObject StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN StudentSnapshot SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject

Table A.21-1: SIF_ProvideObjectNamesType

## A.22 SIF_RequestObjectNamesType

The SIF object names that can be specified in a `SIF_Request` message, or every SIF object name. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.22-1: SIF_RequestObjectNamesType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_RequestObjectNamesType |  | The SIF object names that can be specified in a `SIF_Request` message, or every SIF object name. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | values: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo Assessment AssessmentAdministration AssessmentForm AssessmentItem AssessmentPackage AssessmentRegistration AssessmentSubTest CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningResourcePackage LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN StudentSnapshot SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject

Table A.22-1: SIF_RequestObjectNamesType

## A.23 SIF_ResponseObjectsType

The SIF objects that can be included, repeated, in a `SIF_Response` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.23-1: SIF_ResponseObjectsType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ResponseObjectsType |  | The SIF objects that can be included, repeated, in a `SIF_Response` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | <xs:choice minOccurs="0"> <xs:sequence> <xs:element ref="sif:AggregateCharacteristicInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AggregateStatisticFact" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AggregateStatisticInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:Assessment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentAdministration" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentForm" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentItem" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentPackage" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentRegistration" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentSubTest" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:CalendarDate" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:CalendarSummary" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:Identity" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LEAInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearningResource" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearningResourcePackage" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearningStandardDocument" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearningStandardItem" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:PersonPicture" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:ReportAuthorityInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:ReportManifest" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:RoomInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolCourseInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolPrograms" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SessionInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_AgentACL" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_LogEntry" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_ReportObject" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_ZoneStatus" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StaffAssignment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StaffPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentActivityInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentActivityParticipation" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentAttendanceSummary" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentContactPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentContactRelationship" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentDailyAttendance" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentParticipation" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentPeriodAttendance" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSchoolEnrollment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentScoreSet" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSDTN" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSnapshot" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SummaryEnrollmentInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SystemRole" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TeachingGroup" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TermInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTable" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTableCell" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTableSubject" maxOccurs="unbounded" /> </xs:sequence> </xs:choice>

Table A.23-1: SIF_ResponseObjectsType

## A.24 SIF_ResponseObjectType

The SIF objects that can be included in a `SIF_Response` message, or every SIF object. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.24-1: SIF_ResponseObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ResponseObjectType |  | The SIF objects that can be included in a `SIF_Response` message, or every SIF object. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | choice of: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo Assessment AssessmentAdministration AssessmentForm AssessmentItem AssessmentPackage AssessmentRegistration AssessmentSubTest CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningResourcePackage LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN StudentSnapshot SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject

Table A.24-1: SIF_ResponseObjectType

## A.25 SIF_SubscribeObjectNamesType

The SIF object names that can be specified in a `SIF_Subscribe` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model.
Figure A.25-1: SIF_SubscribeObjectNamesType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_SubscribeObjectNamesType |  | The SIF object names that can be specified in a `SIF_Subscribe` message. When this infrastructure type is implemented with a data model, the enumeration will contain the appropriate objects from that data model. | values: AggregateCharacteristicInfo AggregateStatisticFact AggregateStatisticInfo AssessmentAdministration AssessmentRegistration CalendarDate CalendarSummary Identity LEAInfo LearningResource LearningStandardDocument LearningStandardItem PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentScoreSet StudentSDTN SummaryEnrollmentInfo SystemRole TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject

Table A.25-1: SIF_SubscribeObjectNamesType

## A.26 URIOrBinaryType

Allows for a URL or a Base-64 encoding.
Figure A.26-1: URIOrBinaryType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| URIOrBinaryType |  | Allows for a URL or a Base-64 encoding. | union of: xs:anyURI xs:base64Binary

Table A.26-1: URIOrBinaryType

## A.27 VersionType

A SIF version number.
Figure A.27-1: VersionType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| VersionType |  | A SIF version number. | xs:token
xs:pattern | [0-9]+[.][0-9]+(r[0-9]+)?
xs:maxLength | 12

Table A.27-1: VersionType

## A.28 VersionWithWildcardsType

A SIF version number, with wildcards for matching multiple versions.
Figure A.28-1: VersionWithWildcardsType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| VersionWithWildcardsType |  | A SIF version number, with wildcards for matching multiple versions. | xs:token
xs:pattern | \*|([0-9]+[.]\*)|([0-9]+[.][0-9]+r\*)|([0-9]+[.][0-9]+(r[0-9]+)?)
xs:maxLength | 12

Table A.28-1: VersionWithWildcardsType