# Appendix A: Common Types

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

## A.1 DefinedProtocolsType

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

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

Table A.1-1: DefinedProtocolsType

## A.2 ExtendedContentType

Allows for any mixed XML in an element.
Figure A.2-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.2-1: ExtendedContentType

## A.3 GUIDType

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

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

Table A.3-1: GUIDType

## A.4 IdRefType

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

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

Table A.4-1: IdRefType

## A.5 MonetaryAmountType

A monetary amount.

Figure A.5-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.5-1: MonetaryAmountType

## A.6 MsgIdType

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

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

Table A.6-1: MsgIdType

## A.7 ObjectNameType

An unenumerated SIF object name.

Figure A.7-1: ObjectNameType

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

Table A.7-1: ObjectNameType

## A.8 RefIdType

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

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

Table A.8-1: RefIdType

## A.9 SelectedContentType

Allows an XML fragment selected from an object to be used in an element with XML validation skipped.
Figure A.9-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.9-1: SelectedContentType

## A.10 SIF_EventObjectType

The SIF objects that can be included in a `SIF_Event` message.
Figure A.10-1: SIF_EventObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_EventObjectType |  | The SIF objects that can be included in a `SIF_Event` message. | choice of: AssessmentLearnerSet AssessmentSession ContactPersonal Identity LAInfo LearnerAssessmentResponseSet LearnerAssessmentResult LearnerAttendance LearnerAttendanceSummary LearnerContact LearnerExclusion LearnerGroupEnrolment LearnerPersonal LearnerSchoolEnrolment LearnerSpecialNeeds PersonPicture SchoolGroup SchoolGroupType SchoolInfo SIF_AgentACL SIF_LogEntry SIF_ZoneStatus TermInfo WorkforcePersonal

Table A.10-1: SIF_EventObjectType

## A.11 SIF_ExampleObjectType

The SIF objects that can be included in `SIF_Query/SIF_Example`.
Figure A.11-1: SIF_ExampleObjectType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ExampleObjectType |  | The SIF objects that can be included in `SIF_Query/SIF_Example`. | EMPTY

Table A.11-1: SIF_ExampleObjectType

## A.12 SIF_ProvideObjectNamesType

The SIF object names that can be specified in a `SIF_Provide` message.
Figure A.12-1: SIF_ProvideObjectNamesType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ProvideObjectNamesType |  | The SIF object names that can be specified in a `SIF_Provide` message. | values: AssessmentLearnerSet AssessmentResponseComponent AssessmentResponseComponentGroup AssessmentResultComponent AssessmentResultComponentGroup AssessmentResultGradeSet AssessmentSession ContactPersonal Identity LAInfo LearnerAssessmentResponseSet LearnerAssessmentResult LearnerAttendance LearnerAttendanceSummary LearnerContact LearnerExclusion LearnerGroupEnrolment LearnerPersonal LearnerSchoolEnrolment LearnerSpecialNeeds PersonPicture SchoolGroup SchoolGroupType SchoolInfo SIF_LogEntry TermInfo WorkforcePersonal

Table A.12-1: SIF_ProvideObjectNamesType

## A.13 SIF_RequestObjectNamesType

The SIF object names that can be specified in a `SIF_Request` message, or every SIF object name.
Figure A.13-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. | values: AssessmentLearnerSet AssessmentResponseComponent AssessmentResponseComponentGroup AssessmentResultComponent AssessmentResultComponentGroup AssessmentResultGradeSet AssessmentSession ContactPersonal Identity LAInfo LearnerAssessmentResponseSet LearnerAssessmentResult LearnerAttendance LearnerAttendanceSummary LearnerContact LearnerExclusion LearnerGroupEnrolment LearnerPersonal LearnerSchoolEnrolment LearnerSpecialNeeds PersonPicture SchoolGroup SchoolGroupType SchoolInfo SIF_AgentACL SIF_LogEntry SIF_ZoneStatus TermInfo WorkforcePersonal

Table A.13-1: SIF_RequestObjectNamesType

## A.14 SIF_ResponseObjectsType

The SIF objects that can be included, repeated, in a `SIF_Response` message.
Figure A.14-1: SIF_ResponseObjectsType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ResponseObjectsType |  | The SIF objects that can be included, repeated, in a `SIF_Response` message. | <xs:choice minOccurs="0"> <xs:sequence> <xs:element ref="sif:AssessmentLearnerSet" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentResponseComponent" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentResponseComponentGroup" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentResultComponent" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentResultComponentGroup" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentResultGradeSet" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:AssessmentSession" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:ContactPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:Identity" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LAInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerAssessmentResponseSet" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerAssessmentResult" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerAttendance" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerAttendanceSummary" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerContact" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerExclusion" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerGroupEnrolment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerSchoolEnrolment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LearnerSpecialNeeds" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:PersonPicture" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolGroup" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolGroupType" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolInfo" 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_ZoneStatus" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TermInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:WorkforcePersonal" maxOccurs="unbounded" /> </xs:sequence> </xs:choice>

Table A.14-1: SIF_ResponseObjectsType

## A.15 SIF_ResponseObjectType

The SIF objects that can be included in a `SIF_Response` message, or every SIF object.
Figure A.15-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. | choice of: AssessmentLearnerSet AssessmentResponseComponent AssessmentResponseComponentGroup AssessmentResultComponent AssessmentResultComponentGroup AssessmentResultGradeSet AssessmentSession ContactPersonal Identity LAInfo LearnerAssessmentResponseSet LearnerAssessmentResult LearnerAttendance LearnerAttendanceSummary LearnerContact LearnerExclusion LearnerGroupEnrolment LearnerPersonal LearnerSchoolEnrolment LearnerSpecialNeeds PersonPicture SchoolGroup SchoolGroupType SchoolInfo SIF_AgentACL SIF_LogEntry SIF_ZoneStatus TermInfo WorkforcePersonal

Table A.15-1: SIF_ResponseObjectType

## A.16 SIF_SubscribeObjectNamesType

The SIF object names that can be specified in a `SIF_Subscribe` message.
Figure A.16-1: SIF_SubscribeObjectNamesType

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_SubscribeObjectNamesType |  | The SIF object names that can be specified in a `SIF_Subscribe` message. | values: AssessmentLearnerSet AssessmentSession ContactPersonal Identity LAInfo LearnerAssessmentResponseSet LearnerAssessmentResult LearnerAttendance LearnerAttendanceSummary LearnerContact LearnerExclusion LearnerGroupEnrolment LearnerPersonal LearnerSchoolEnrolment LearnerSpecialNeeds PersonPicture SchoolGroup SchoolGroupType SchoolInfo SIF_AgentACL SIF_LogEntry SIF_ZoneStatus TermInfo WorkforcePersonal

Table A.16-1: SIF_SubscribeObjectNamesType

## A.17 URIOrBinaryType

Allows for a URL or a Base-64 encoding.
Figure A.17-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.17-1: URIOrBinaryType

## A.18 VersionType

A SIF version number.
Figure A.18-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.18-1: VersionType

## A.19 VersionWithWildcardsType

A SIF version number, with wildcards for matching multiple versions.
Figure A.19-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.19-1: VersionWithWildcardsType