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.

AbstractContentElementType
Figure A.1-1: AbstractContentElementType AbstractContentElementType XMLData Description TextData MIMEType FileName Description BinaryData MIMEType FileName Description Reference MIMEType Description URL
 Element/@AttributeCharDescriptionType
 AbstractContentElementType 

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

 
 
 XMLDataC

Contains an arbitary XML element, encoded in UTF-8.

 
<xs:any processContents="lax" />
@DescriptionO

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
 TextDataC

Contains arbitrary text, encoded in UTF-8.

 
xs:string
@MIMETypeO

Optional MIME type to specifically indicate the text type. Otherwise text/plain can be assumed.

 
xs:token
@FileNameO

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
@DescriptionO

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
 BinaryDataC

Contains the base64Binary encoding of binary or text data not encoded in UTF-8.

 
xs:base64Binary
@MIMETypeM

MIME type to indicate the content type.

 
xs:token
@FileNameO

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
@DescriptionO

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
 ReferenceC

References external content via a URL.

 
 
@MIMETypeM

MIME type to indicate the content type to be expected when retrieving the external content.

 
xs:token
@DescriptionO

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/URLM

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.

AbstractContentPackageType
Figure A.2-1: AbstractContentPackageType AbstractContentPackageType RefId XMLData Description TextData MIMEType FileName Description BinaryData MIMEType FileName Description Reference MIMEType Description URL
 Element/@AttributeCharDescriptionType
 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.

 
 
@
key
RefIdM

The GUID that uniquely identifies an instance of the package.

 
RefIdType
 XMLDataC

Contains an arbitary XML element, encoded in UTF-8.

 
<xs:any processContents="lax" />
@DescriptionO

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
 TextDataC

Contains arbitrary text, encoded in UTF-8.

 
xs:string
@MIMETypeO

Optional MIME type to specifically indicate the text type. Otherwise text/plain can be assumed.

 
xs:token
@FileNameO

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
@DescriptionO

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
 BinaryDataC

Contains the base64Binary encoding of binary or text data not encoded in UTF-8.

 
xs:base64Binary
@MIMETypeM

MIME type to indicate the content type.

 
xs:token
@FileNameO

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
@DescriptionO

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
 ReferenceC

References external content via a URL.

 
 
@MIMETypeM

MIME type to indicate the content type to be expected when retrieving the external content.

 
xs:token
@DescriptionO

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/URLM

Location of external content.

 
xs:anyURI
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.

BaseNameType
Figure A.3-1: BaseNameType BaseNameType Title FamilyName GivenName MiddleName FamilyNameFirst PreferredFamilyName PreferredFamilyNameFirst PreferredGivenName Suffix FullName
 Element/@AttributeCharDescriptionType
 BaseNameType 

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

 
 
 TitleO

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
 FamilyNameC

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
 GivenNameC

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
 MiddleNameO

All other given or middle names, each separated with a single space character.

 
xs:normalizedString
 FamilyNameFirstO

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
 PreferredFamilyNameO

The family name preferred most by the person (as written).

 
xs:normalizedString
 PreferredFamilyNameFirstO

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
 PreferredGivenNameO

The given name preferred most by the person (as written).

 
xs:normalizedString
 SuffixO

Textual suffix like PHD, JP, BSc.

 
xs:normalizedString
 FullNameC

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.
DefinedProtocolsType
Figure A.4-1: DefinedProtocolsType DefinedProtocolsType
 Element/@AttributeCharDescriptionType
 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.
ExtendedContentType
Figure A.5-1: ExtendedContentType ExtendedContentType
 Element/@AttributeCharDescriptionType
 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. This is different for 2.x Infrastructure and 3.x Infrastructure - 2.x xs:pattern value='[0-9A-F]{32}' 3.x - xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" >
GUIDType
Figure A.6-1: GUIDType GUIDType
 Element/@AttributeCharDescriptionType
 GUIDType SIF format for a GUID. This is different for 2.x Infrastructure and 3.x Infrastructure - 2.x xs:pattern value='[0-9A-F]{32}' 3.x - xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" > xs:token
xs:pattern[0-9A-F]{32}
Table A.6-1: GUIDType

A.7 IdRefType

A reference to a RefId.
IdRefType
Figure A.7-1: IdRefType IdRefType
 Element/@AttributeCharDescriptionType
 IdRefType A reference to a RefId. RefIdType
Table A.7-1: IdRefType

A.8 MonetaryAmountType

A monetary amount.

MonetaryAmountType
Figure A.8-1: MonetaryAmountType MonetaryAmountType Currency
 Element/@AttributeCharDescriptionType
 MonetaryAmountType 

A monetary amount.

 
xs:decimal
@CurrencyOCurrency 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.
MsgIdType
Figure A.9-1: MsgIdType MsgIdType
 Element/@AttributeCharDescriptionType
 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.

NameOfRecordType
Figure A.10-1: NameOfRecordType NameOfRecordType Type
 Element/@AttributeCharDescriptionType
 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
@TypeM

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.

ObjectNameType
Figure A.11-1: ObjectNameType ObjectNameType
 Element/@AttributeCharDescriptionType
 ObjectNameType 

An unenumerated SIF object name.

 
xs:NCName
xs:maxLength64
Table A.11-1: ObjectNameType

A.12 ObjectType

A SIF XML object.

ObjectType
Figure A.12-1: ObjectType ObjectType
 Element/@AttributeCharDescriptionType
 ObjectType 

A SIF XML object.

 
<xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" namespace="##any" /> </xs:sequence>
Table A.12-1: ObjectType

A.13 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.

OtherNameType
Figure A.13-1: OtherNameType OtherNameType Type
 Element/@AttributeCharDescriptionType
 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
@TypeM

Code that specifies what type of name this is. Note that type "LGL" is NOT to be used here.

 
AUCodeSetsNameUsageTypeType
Table A.13-1: OtherNameType

A.14 PartialDateType

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

PartialDateType
Figure A.14-1: PartialDateType PartialDateType
 Element/@AttributeCharDescriptionType
 PartialDateType 

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

 
union of:

xs:date
xs:gYearMonth
xs:gYear
Table A.14-1: PartialDateType

A.15 RefIdType

An object or element identifier.
RefIdType
Figure A.15-1: RefIdType RefIdType
 Element/@AttributeCharDescriptionType
 RefIdType An object or element identifier. GUIDType
Table A.15-1: RefIdType

A.16 ReportDataObjectType

A SIF XML object.

ReportDataObjectType
Figure A.16-1: ReportDataObjectType ReportDataObjectType
 Element/@AttributeCharDescriptionType
 ReportDataObjectType 

A SIF XML object.

 
<xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence>
Table A.16-1: ReportDataObjectType

A.17 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.
ReportPackageType
Figure A.17-1: ReportPackageType ReportPackageType
 Element/@AttributeCharDescriptionType
 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.17-1: ReportPackageType

A.18 SelectedContentType

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

A.19 ServiceNameType

An unenumerated SIF object name.

ServiceNameType
Figure A.19-1: ServiceNameType ServiceNameType
 Element/@AttributeCharDescriptionType
 ServiceNameType 

An unenumerated SIF object name.

 
xs:NCName
Table A.19-1: ServiceNameType

A.20 URIOrBinaryType

Allows for a URL or a Base-64 encoding.
URIOrBinaryType
Figure A.20-1: URIOrBinaryType URIOrBinaryType
 Element/@AttributeCharDescriptionType
 URIOrBinaryType Allows for a URL or a Base-64 encoding. union of:

xs:anyURI
xs:base64Binary
Table A.20-1: URIOrBinaryType

A.21 VersionType

A SIF version number.
VersionType
Figure A.21-1: VersionType VersionType
 Element/@AttributeCharDescriptionType
 VersionType A SIF version number. xs:token
xs:pattern[0-9]+[.][0-9]+(r[0-9]+)?
xs:maxLength12
Table A.21-1: VersionType

A.22 VersionWithWildcardsType

A SIF version number, with wildcards for matching multiple versions.
VersionWithWildcardsType
Figure A.22-1: VersionWithWildcardsType VersionWithWildcardsType
 Element/@AttributeCharDescriptionType
 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:maxLength12
Table A.22-1: VersionWithWildcardsType

Valid XHTML 1.0 Transitional