This section presents the XML structure for Infrastructure common elements, messages and objects in a tabular format for readers less versed in parsing formal XML schema definitions.
The Char(acteristics) column for all of the tables in this section use the following codes:
Code | Characteristic |
M | Mandatory element or attribute |
O | Optional element or attribute |
C | Conditional element or attribute |
MR | Mandatory and repeatable element |
OR | Optional and repeatable element |
CR | Conditional and repeatable element |
Mandatory elements and attributes MUST be provided in the Infrastructure messages in which they appear.
Infrastructure data objects (SIF_ZoneStatus
, SIF_AgentACL
) can be subject to SIF's request/response and event models;
when impacted by these models (in a SIF_Event
or in a SIF_Response
), these objects follow the same conventions as
listed in Data Model.
The SIF_Message
element is the root element of all SIF messages.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Message | Contains one of the SIF message types. | choice of: SIF_Ack SIF_Event SIF_Provide SIF_Provision SIF_Register SIF_Request SIF_Response SIF_Subscribe SIF_SystemControl SIF_Unprovide SIF_Unregister SIF_Unsubscribe SIF_ServiceInput SIF_ServiceOutput SIF_ServiceNotify | ||
@ | xmlns | C |
The xmlns attribute specifies the XML namespace for SIF messages.
For this version of the specification, the value of this attribute MUST be
Note that one | xs:anyURI |
@ | Version | M |
The version of the SIF Implementation Specification that defines this message's XML structure.
For this version of the specification, the value of this attribute is | VersionType |
SIF_Header
is a common message header for all SIF messages.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Header | M | Header information associated with a message. | ||||
SIF_MsgId | M |
| MsgIdType | |||
SIF_Timestamp | M | Timestamp of when the message was sent. | xs:dateTime | |||
SIF_Security | O |
This element allows an originating agent to specify security requirements that the ZIS must ensure upon delivery of the message to recipient agents. | ||||
SIF_Security/SIF_SecureChannel | M | The originating agent uses this element to specify security requirements for the channel between the ZIS and any recipient agents at delivery time. The ZIS must ensure these requirements are met for this message when delivered to other agents. | ||||
SIF_Security/SIF_SecureChannel/ SIF_AuthenticationLevel | M | The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents. | SIF_AuthenticationLevel | |||
SIF_Security/SIF_SecureChannel/ SIF_EncryptionLevel | M | The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents. | SIF_EncryptionLevel | |||
SIF_SourceId | M |
The | xs:token
| |||
SIF_DestinationId | C | This element represents the ID of the recipient of the message and may be present as follows:
This element SHOULD NOT be used in any other SIF Infrastructure messages. If the element is present, it will be ignored by the ZIS. | xs:token
| |||
SIF_Contexts | O |
Contains each SIF Context that applies to the message. If omitted, the applicable context is | SIF_Contexts |
The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.
The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.
A list of SIF contexts that applies to a message or operation. Typically where used as an optional element,
the omission of this element implies the SIF_Default
context applies.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Contexts |
A list of SIF contexts that applies to a message or operation. Typically where used as an optional element,
the omission of this element implies the | List | ||
SIF_Context | MR | SIF_Context |
The name of a SIF Context that applies to a message or operation.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Context | The name of a SIF Context that applies to a message or operation. | xs:token
|
Contains protocol information regarding a ZIS or Agent.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Protocol | C | Contains protocol information regarding a ZIS or Agent. | ||||
@ | Type | M |
The type of protocol to use ( | union of: DefinedProtocolsType xs:token | ||
@ | Secure | M | Whether the protocol provides a secure channel. | values:
| ||
SIF_URL | C |
This element is required if the protocol is | xs:anyURI
| |||
SIF_Property | OR |
May contain zero or more | ||||
SIF_Property/SIF_Name | M | Property name. | xs:token
| |||
SIF_Property/SIF_Value | M | Property value. | xs:string
|
This element is used to signal a successful response.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Status | This element is used to signal a successful response. | |||||
SIF_Code | M | InfrastructureStatusCodeType | ||||
SIF_Desc | O |
An optional textual description/equivalent of | xs:string
| |||
SIF_Data | O |
Optional element to hold data related to a successful operation. This data is currently limited
to a | choice of: SIF_Message SIF_AgentACL SIF_ZoneStatus |
This element is used to signal an unsuccessful response.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Error | This element is used to signal an unsuccessful response. | |||||
SIF_Category | M | InfrastructureErrorCategoryType | ||||
SIF_Code | M | See Error Codes. | union of: InfrastructureXMLValidationErrorType InfrastructureEncryptionErrorType InfrastructureAuthenticationErrorType InfrastructureAccessAndPermissionErrorType InfrastructureRegistrationErrorType InfrastructureProvisionErrorType InfrastructureSubscriptionErrorType InfrastructureRequestAndResponseErrorType InfrastructureEventReportingAndProcessingErrorType InfrastructureTransportErrorType InfrastructureSystemErrorType InfrastructureGenericMessageHandlingErrorType xs:token | |||
SIF_Desc | M | A simple, easy to understand, description of the error. The primary consumer of this message is the application user. Example: "Unable to open database." | xs:string
| |||
SIF_ExtendedDesc | O | An optional error description that is more complete and technical in nature. It is to be used as a diagnostic message in trouble-shooting procedures. Example: "The 'Students' table is opened in exclusive mode by user 'ADM1' (dbm.cpp, line 300)." | xs:string |
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Query | SIF's default query mechanism. | |||
SIF_QueryObject | M | This is the object that is being queried for. | ||
@ | ObjectName | M | The actual name of the object that is being queried for. | SIF_RequestObjectNamesType |
SIF_QueryObject/SIF_Element | OR |
Individual elements/attributes being requested of matching object. See Note that this is a means to filter or select a subset of elements/attributes from a matching object; specifying elements/attributes here that do not occur in or are not supported in a matching object does not exclude that matching object from being returned. Include any existing parent elements/attributes of the elements/attributes that are requested but not present. | xs:normalizedString | |
SIF_ConditionGroup | C |
Either
| ||
@ | Type | M |
The Boolean operator for joining conditions ( | values:
|
SIF_ConditionGroup/SIF_Conditions | MR | This construct allows for nested conditions. | ||
@ | Type | M |
The boolean operator for joining conditions ( | values:
|
SIF_ConditionGroup/SIF_Conditions/ SIF_Condition | MR | This element represents an individual condition. | ||
SIF_ConditionGroup/SIF_Conditions/ SIF_Condition/SIF_Element | M | This is the element/attribute being queried. See below for syntax. | xs:normalizedString | |
SIF_ConditionGroup/SIF_Conditions/ SIF_Condition/SIF_Operator | M | The comparison operator for the condition. | values:
| |
SIF_ConditionGroup/SIF_Conditions/ SIF_Condition/SIF_Value | M |
| xs:string | |
SIF_Example | C |
An example SIF object that serves as a template for matching objects. There is an implied | SIF_ExampleObjectType |
The SIF_Query
element may have a SIF_ConditionGroup
element that may have one or more SIF_Conditions
elements. A SIF_Conditions
element may contain one or more SIF_Condition
elements.
Each SIF_Condition
element defines a search criterion, which contains the following sub-elements.
To reference individual elements/attributes in query criteria for objects, and in lists of individual elements/attributes to
be returned from matching objects, SIF defines a path syntax which is based on a small subset of [XPath], for use
in SIF_Element
.
Elements are specified by name (e.g. Name
) and attributes are specified by name, prefixed with
@
(e.g. @Type
). Namespace prefixes may precede element/attribute names as necessary (e.g. @xml:lang
) and reference
the current prefix-to-namespace mappings within the XML of the request. To reference child elements or attributes of child elements, a path notation
is used where each element/attribute in the path is separated by /
(e.g.
PersonalInformation/Name/GivenName
,
PersonalInformation/Name/@Type
). The object's element is the root element and is not included when referencing child elements (e.g.
PersonalInformation/Name/FirstName
, not
LearnerPersonal/PersonalInformation/Name/GivenName
);
no /
is required when referencing attributes of the object itself (e.g. @RefId
, not
LearnerPersonal/@RefId)
.
SIF_Condition/SIF_Element
may also contain XPath predicates (e.g.
[@Type='R]
) to allow for more
precise matching, especially with regard to repeatable elements with "key" attributes. The following SIF_Condition
would match object withs any
GivenName
of Cameron
:
Using a predicate allows the requester to specifically query the person's name of record (
R
) vs. his/her
previous, professional, current legal name, etc.
Predicate expressions supported in SIF are limited to or
, and
, =
, element/attribute names with optional
prefixes and accessing nested elements/attributes using /
.
SIF's default query mechanism for SIF_Request
, SIF_Query
, has several limitations that limit its usefulness when creating reporting applications
that process data from a SIF zone. SIF_Query
is limited to matching only one object type per query, requiring applications to
manually join together results as needed for reporting and general data processing. SIF_ExtendedQuery
is designed to allow for joins on
object identifiers/RefIds and to allow retrieval of data in a row/column fashion similar to SQL. Each returned column may contain hierarchical XML elements/objects.
Providers and Responders in a Zone may support SIF_ExtendedQuery
in addition to SIF_Query
. Support for SIF_ExtendedQuery
can be declared in and retrieved from the Zone is various Infrastructure
messages and objects.
Note that matching rows are generated solely based on the SIF_From
clause, with optional join criteria, optionally
limited/filtered by the SIF_Where
clause. If a repeatable element is requested as a column in SIF_Select
, this does not generate multiple rows for each occurrence
of matching elements; all elements are returned in the corresponding column within a single row.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_ExtendedQuery |
SIF's default query mechanism for
Note that matching rows are generated solely based on the | |||||
SIF_DestinationProvider | O |
If no | SIF_RequestObjectNamesType | |||
SIF_Select | M | Identifies which data elements/attribute are to be returned as columns in each matching row. | ||||
@ | Distinct | M |
Specifies whether query results should return all rows ( | xs:boolean | ||
@ | RowCount | M |
The maximum number of rows to return. If | union of: xs:positiveInteger additional values:
| ||
SIF_Select/SIF_Element | MR |
Indicates the element/attribute to return as a column. Contents can be left empty to return the whole object specified in | xs:normalizedString | |||
@ | Alias | O | Optional caption for the column. | xs:normalizedString
| ||
@ | ObjectName | M | The name of the object from which to retrieve element/attributes. | SIF_RequestObjectNamesType | ||
SIF_From | M |
Join specification for the query if more than one object is being queried. If only one object is being queried, specify it without the
| ||||
@ | ObjectName | M | The name of the object to query. | SIF_RequestObjectNamesType | ||
SIF_From/SIF_Join | OR | Additional objects to query, with join conditions specifying the relationships between objects. | ||||
@ | Type | M | Type of relational join. | values:
| ||
SIF_From/SIF_Join/SIF_JoinOn | MR | Specifies the conditions for the join. | ||||
SIF_From/SIF_Join/SIF_JoinOn/ SIF_LeftElement | M | Specifies the left-side element/attribute on which to constrain the join. Currently only support for keys/RefIds/RefId references is required. | xs:normalizedString | |||
@ | ObjectName | M | Name of the object that contains the element/attribute. | SIF_RequestObjectNamesType | ||
SIF_From/SIF_Join/SIF_JoinOn/ SIF_RightElement | M | Specifies right left-side element/attribute on which to constrain the join. Currently only support for keys/RefIds/RefId references is required. | xs:normalizedString | |||
@ | ObjectName | M | Name of the object that contains the element/attribute. | SIF_RequestObjectNamesType | ||
SIF_Where | O |
Optionally specifies conditions to limit/filter rows resulting from the | ||||
SIF_Where/SIF_ConditionGroup | M | Conditions that matching rows must meet. | ||||
@ | Type | M |
The Boolean operator for joining conditions ( | values:
| ||
SIF_Where/SIF_ConditionGroup/ SIF_Conditions | MR | This construct allows for nested conditions. | ||||
@ | Type | M |
The boolean operator for joining conditions ( | values:
| ||
SIF_Where/SIF_ConditionGroup/ SIF_Conditions/SIF_Condition | MR | This element represents an individual condition. | ||||
SIF_Where/SIF_ConditionGroup/ SIF_Conditions/SIF_Condition/ SIF_Element | M | This is the element/attribute being queried. | xs:normalizedString | |||
@ | ObjectName | M | The name of the object containing the element/attribute. | SIF_RequestObjectNamesType | ||
SIF_Where/SIF_ConditionGroup/ SIF_Conditions/SIF_Condition/ SIF_Operator | M | The comparison operator for the condition. | values:
| |||
SIF_Where/SIF_ConditionGroup/ SIF_Conditions/SIF_Condition/ SIF_Value | M |
| xs:string | |||
SIF_OrderBy | O | An optional list of elements/attributes by which to sort the resulting rows. | ||||
SIF_OrderBy/SIF_Element | MR | Indicates the element/attribute by which to sort. | xs:normalizedString | |||
@ | ObjectName | M | The name of the object containing the element/attribute. | SIF_RequestObjectNamesType | ||
@ | Ordering | M | Whether to order the element/attribute in ascending or descending order. | values:
|
While there are differences in how matching objects are returned, note that all non-SIF_Example
SIF_Query
-based requests
can be mapped to a corresponding SIF_ExtendedQuery
-based request:
1 |
Place SIF_Query/SIF_QueryObject/@ObjectName in SIF_ExtendedQuery/SIF_From/@ObjectName .
|
2 |
If elements/attributes are specified in SIF_Query/SIF_QueryObject/SIF_Element ,
place them in SIF_ExtendedQuery/SIF_Select/SIF_Element with @ObjectName
set to SIF_Query/SIF_QueryObject/@ObjectName . Otherwise in SIF_Select , specify
an empty SIF_Element element with @ObjectName
set to SIF_Query/SIF_QueryObject/@ObjectName .
|
3 |
If SIF_Query/SIF_ConditionGroup exists, place it in SIF_ExtendedQuery/SIF_Where setting
@ObjectName
to SIF_Query/SIF_QueryObject/@ObjectName in every occurrence of SIF_Element .
|
4 |
Set SIF_Select/@Distinct to false and SIF_Select/@RowCount to All .
|
This element provides a wrapper for data returned in response to a SIF_ExtendedQuery
. Used in SIF_Response
and SIF_ReportObject
.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_ExtendedQueryResults |
This element provides a wrapper for data returned in response to a | |||||
SIF_ColumnHeaders | M |
Provides the element/attribute and caption information for each column supplied in | ||||
SIF_ColumnHeaders/SIF_Element | MR |
The element/attribute specified for the column in | xs:normalizedString | |||
@ | ObjectName | M | The object in which the element/attribute occurs. | SIF_RequestObjectNamesType | ||
@ | Alias | O |
The caption for the column, if specified in | xs:normalizedString
| ||
@ | xsi:type | O | Optionally allows type of column value to be explicitly communicated. | |||
SIF_Rows | M |
A list of matching rows resulting from the supplied | ||||
SIF_Rows/R | OR |
An individual matching row resulting from the supplied | ||||
SIF_Rows/R/C | MR |
Contains the value of each column specified in | SelectedContentType |
This message is used as an acknowledgement for infrastructure messages. All infrastructure messages will return a
SIF_Ack
as a result to indicate if the request was successful or not. A SIF_Ack
must contain either a SIF_Status
element acknowledging a successful result or a SIF_Error
element describing the failure. The SIF_Error
element
contains a standardized error number as well as a description of the error.
A successful SIF_Ack
is typically returned to the caller containing a SIF_Header
, SIF_OriginalSourceId
,
SIF_OriginalMsgId
and the SIF_Status
element. In situations where additional information needs to be returned to
the caller, a SIF_Data
element can be added to the SIF_Status
element.
In addition, successful SIF_Ack
messages may also be sent to the ZIS under two conditions. The first is when a
pull-mode agent requests that a message is to be removed from its queue. The
second is when an agent which has invoked SMB wishes to end SMB handling. In that case, the agent sends a "Final" SIF_Ack
to the ZIS. In each
instance the ZIS returns a SIF_Ack
in response to the agent's SIF_Ack
message.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Ack | M | This message is used as an acknowledgement to an infrastructure message. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_OriginalSourceId | M |
The | xs:token | |
SIF_OriginalMsgId | M |
The | MsgIdType | |
SIF_Status | C | This element is used to signal a successful response. | SIF_Status | |
SIF_Error | C | This element is used to signal an unsuccessful response. | SIF_Error |
SIF_Event
is used to deliver event objects as defined in SIF. Events represent the availability of a new data object, changes to, or deletions of data object.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Event | M |
| ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_ObjectData | M | |||
SIF_ObjectData/SIF_EventObject | M | Contains the actual object (partial or whole) that is being added, changed or deleted. | SIF_EventObjectType | |
@ | ObjectName | M | This is the name of the object being added, changed or deleted. | SIF_SubscribeObjectNamesType |
@ | Action | M |
This is the action associated with the object that is being conveyed by this | values:
|
The SIF_Provide
message is used to attempt registering as the provider of one or more data objects.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Provide | M |
The | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Object | MR | This is the object that is being provided. | ||
@ | ObjectName | M | The actual name of the object that is being provided. | SIF_ProvideObjectNamesType |
SIF_Object/SIF_ExtendedQuerySupport | O |
Whether or not the Agent supports | xs:boolean | |
SIF_Object/SIF_Contexts | O |
The contexts in which the object is being provided; if omitted, the context is | SIF_Contexts |
Once registered, this message allows an agent to announce to the ZIS the functionality the agent will provide.
The ZIS compares the functionality to its access control list and either returns a failure or a success. Upon success,
the ZIS performs an atomic update of its provide/subscribe database entries for the agent to match the objects listed in this message and atomically
updates other stored settings for the agent.
A ZIS must not allow an agent to perform operations that it did not successfully announce. Agents should be aware that if the access control
list changes after a successful SIF_Provision
, some operations may still be rejected with access control errors.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Provision |
Once registered, this message allows an agent to announce to the ZIS the functionality the agent will provide.
The ZIS compares the functionality to its access control list and either returns a failure or a success. Upon success,
the ZIS performs an atomic update of its provide/subscribe database entries for the agent to match the objects listed in this message and atomically
updates other stored settings for the agent.
A ZIS must not allow an agent to perform operations that it did not successfully announce. Agents should be aware that if the access control
list changes after a successful | |||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_ProvideObjects | M | A list of objects an Agent wishes to provide. | ||
SIF_ProvideObjects/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_ProvideObjectNamesType |
SIF_ProvideObjects/SIF_Object/ SIF_ExtendedQuerySupport | O |
Whether or not | xs:boolean | |
SIF_ProvideObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_SubscribeObjects | M | A list of objects to which an Agent wishes to subscribe. | ||
SIF_SubscribeObjects/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_SubscribeObjectNamesType |
SIF_SubscribeObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_PublishAddObjects | M |
A list of objects for which an Agent wishes to publish | ||
SIF_PublishAddObjects/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_SubscribeObjectNamesType |
SIF_PublishAddObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_PublishChangeObjects | M |
A list of objects for which an Agent wishes to publish | ||
SIF_PublishChangeObjects/ SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_SubscribeObjectNamesType |
SIF_PublishChangeObjects/ SIF_Object/SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_PublishDeleteObjects | M | A list of objects for which an Agent wishes to publish Delete events. | ||
SIF_PublishDeleteObjects/ SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_SubscribeObjectNamesType |
SIF_PublishDeleteObjects/ SIF_Object/SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_RequestObjects | M | A list of objects an Agent wishes to request. | ||
SIF_RequestObjects/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_RequestObjectNamesType |
SIF_RequestObjects/SIF_Object/ SIF_ExtendedQuerySupport | O |
Optionally specify whether or not | xs:boolean | |
SIF_RequestObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_RespondObjects | M |
A list of objects for which an Agent wishes to handle requests, whether or not it is the Provider for each object. Note
that this list MUST include those objects specified in | ||
SIF_RespondObjects/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | SIF_RequestObjectNamesType |
SIF_RespondObjects/SIF_Object/ SIF_ExtendedQuerySupport | O |
Whether or not | xs:boolean | |
SIF_RespondObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
SIF_ProvideService | O | A list of SIF Zone Services that the agent wishes to provide to the zone | ||
SIF_ProvideService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_ProvideService/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |
SIF_RespondService | O | Indicates that the agent desires to respond to directed requests for one or more services in the SIF Zone | ||
SIF_RespondService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_RespondService/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |
SIF_RequestService | O | Indicates that the agent will make service calls to the specified SIF Zone Service by sending a SIF_ServiceInput message. This is an optinal element that is used for allowing agents to report all of their expected activities within a zone. It is not used operationally within the zone, and failing to submit this element while provisioning will not prevent the agent from making service calls. | ||
SIF_RequestService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_RequestService/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |
SIF_RequestService/SIF_Service/ SIF_Operations | O | The agent is not required to specify which operations it will invoke on the specified SIF Zone Service. However, the agent can do so if it desires report all of the activity it does within a zone. | List | |
SIF_RequestService/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific method that the agent invokes the specified SIF Zone Service | xs:token | |
SIF_SubscribeService | O | Indicates that the agent desires to subscribe to one or more events emitted by the specified service | ||
SIF_SubscribeService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_SubscribeService/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |
SIF_SubscribeService/SIF_Service/ SIF_Operations | O | If SIF_Operations is not present, then the agent desires to subscribe to all events emitted by the service within the given context | List | |
SIF_SubscribeService/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific event that the agent desires to subscribe to | xs:token |
SIF_Register
is the message for registering an agent with a ZIS. An agent must be registered before it sends out
other SIF messages. SIF_Register
serves to provide the ZIS with the sender's identification information as well as to
provide the information that the ZIS will need to contact this agent, should it register in Push mode.
Once a sender registers in the ZIS with the SIF_Register
message, the sender can use the SIF_SourceId
value in the
header of all other outgoing messages as its identification. It is not necessary to send a SIF_Register
message each
time your agent starts up but it is not an error to do so. If there are any blocked events in the Agent's queue when
a ZIS receives the SIF_Register
message, the blocks will be removed.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_Register | M |
| ||||
SIF_Header | M | Header information associated with this message. | SIF_Header | |||
SIF_Name | M | This is the descriptive name of the agent that is registering (i.e. Ramsey Media Center). | xs:normalizedString
| |||
SIF_Version | MR | Specifies the SIF Implementation Specification version(s) defining messages the agent can receive. If the ZIS cannot communicate in this format, it should reject the request.
The format of * - Any SIF version <major version>.* - Any minor version plus revisions within a major version (e.g., 1.*) <major version>.<minor version><r>* - Any revision within a minor version (e.g., 1.1r*)
Note: As wildcarding was first introduced in version 1.1 of the specification, 1.* does not match versions 1.0, 1.0r1 or 1.0r2. 1.1 or later agents that register with 1.* and wish to also receive messages from pre-1.1 agents must include | VersionWithWildcardsType | |||
SIF_MaxBufferSize | M | Specifies the maximum size of a packet to be returned by the ZIS. The ZIS may return packets smaller than, or equal to, the maximum value. | xs:unsignedInt | |||
SIF_Mode | M | Specifies the communication mode (Pull or Push) as chosen by the message sender. | values:
| |||
SIF_Protocol | C |
If | SIF_Protocol | |||
SIF_NodeVendor | O | The vendor of the SIF agent. | xs:normalizedString
| |||
SIF_NodeVersion | O | The agent version number. The format of this field is undefined, but it should match the format used in the agent's conformance statement, if the agent is SIF Certified. Examples | xs:normalizedString
| |||
SIF_Application | O | Contains information about the vendor of the product that the agent represents. | ||||
SIF_Application/SIF_Vendor | M | The name of the company of the product that this agent supports. | xs:normalizedString
| |||
SIF_Application/SIF_Product | M | The name of the product that this agent supports. | xs:normalizedString
| |||
SIF_Application/SIF_Version | M | The version of the product. This field is informative only. | xs:normalizedString
| |||
SIF_Icon | O |
HTTP URL referencing an icon for graphical representation of the application/agent.
Should range from 16x16 pixels to 128x128 pixels and be of an | xs:anyURI |
This message is used to request information in SIF data objects from other SIF nodes. It optionally specifies the query criteria with which to match objects, as well as an optional subset of elements to be returned for matching objects.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Request | M |
| ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Version | MR | Specifies which SIF Implementation Specification version should be used when returning the response data; wildcards are allowed. The responding agent SHOULD return data using the highest version it supports that falls within the specified versions. | VersionWithWildcardsType | |
SIF_MaxBufferSize | M |
Specifies the maximum size of a response packet to be returned to the requester.
The responder may return packets smaller than, or equal to, the maximum value.
To guarantee delivery of response packets, requesting agents must not specify a | xs:unsignedInt | |
SIF_Query | C |
Either | SIF_Query | |
SIF_ExtendedQuery | C | SIF_ExtendedQuery |
SIF_Response
is used to respond to a SIF_Request
message. A response may span multiple SIF_Response
messages.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Response | M |
| ||
SIF_Header | M |
Header information associated with this message. The | SIF_Header | |
SIF_RequestMsgId | M |
This is the message ID of the | MsgIdType | |
SIF_PacketNumber | M |
This element represents the index of the
The receiver of a | xs:positiveInteger | |
SIF_MorePackets | M | This element provides an indication as to whether there are more packets besides this one to make up a complete response.
The necessity of this element stems from the requirement on an agent to break response data to fit into the
When this element's value is equal to | values:
| |
SIF_Error | C |
The responder returns
This element allows the Responder to report an error condition that occurs while processing the
If a | SIF_Error | |
SIF_ObjectData | C |
The | SIF_ResponseObjectsType | |
SIF_ExtendedQueryResults | C |
This element contains the elements requested by | SIF_ExtendedQueryResults |
This message is used to subscribe to event objects that are contained in this message.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Subscribe | M | This message is used to subscribe to event objects that are contained in this message. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Object | MR | |||
@ | ObjectName | M |
The actual name of the object that is being subscribed to. All valid | SIF_SubscribeObjectNamesType |
SIF_Object/SIF_Contexts | O |
The contexts to which the subscription applies; if omitted, the context is | SIF_Contexts |
A SIF_SystemControl
message is designed to control the flow of data between an agent and ZIS or vice-versa, and
to synchronously retrieve data available from the ZIS. The
SIF_SystemControl
message is a container for a number of specialized control messages. SIF_SystemControl
messages are handled immediately by receivers and are not persisted in a message queue for later delivery.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_SystemControl | M | This message is designed to control the flow of data an agent and ZIS or vice-versa, and to synchronously retrieve data available from the ZIS. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_SystemControlData | M | This element holds the sub-message being sent. | choice of: SIF_Ping SIF_Sleep SIF_Wakeup SIF_GetMessage SIF_GetZoneStatus SIF_GetAgentACL SIF_CancelRequests |
SIF_Ping
is sent to detect if a ZIS or push-mode agent is ready to receive and process messages.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Ping | M | This sub-message detects if an a Push-Mode Agent or ZIS is ready to receive and process messages. | EMPTY |
The SIF_Sleep
message allows an agent to notify a ZIS or a ZIS to notify a push-mode agent
that it must not send any more messages to the sender of the SIF_Sleep
. After the sender receives a SIF_Ack
indicating that the message was received, the receiver must not send any further messages to the sender.
This message provides the ability to signal an agent or ZIS that the sender will be unable to process further messages
until some time in the future. Reasons for sending a SIF_Sleep
message include the sender is unable to process
more data because of limited resources (i.e. disk storage, network bandwidth, etc.), or the sender is being
temporarily shutdown and will be unable to receive messages.
Since the sender may send a SIF_Sleep
message for a variety of reasons, if the receiver sends messages after a
SIF_Sleep
message but prior to receiving a SIF_Wakeup
or SIF_Register
message from the sender, an error must be
returned. A transport error will occur or be returned if a connection cannot be established with the sender, or the
sender may choose to receive the connection but return an error.
If the sender is an agent, the ZIS will continue to hold any messages for the agent in the queue but the ZIS will not
send those messages until a SIF_Wakeup
(or SIF_Register
) message is received.
If an agent is processing a message requiring additional SIF_Request
s to be sent to the ZIS and a SIF_Sleep
message
is received from the ZIS, the agent will not be able to retrieve the additional data. The agent must abort the
processing of the message and only attempt to process the message after receiving a SIF_Wakeup
message from the
ZIS.
An agent or ZIS is not required to be able to send SIF_Sleep
messages. However, if an agent or ZIS has the ability
to send a SIF_Sleep
, it must also be able to send a SIF_Wakeup
. Although the sending of SIF_Sleep
is optional, an
agent or ZIS must always be able to process and respond appropriately to these messages if received.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Sleep | M | This sub-message tells a receiver not to send any more messages to the sender. | EMPTY |
When the "sleeping" agent or ZIS is ready to resume message processing, it will send a SIF_Wakeup
message. This will signal the receiver that the sender is now able to process messages. Sending a
SIF_Wakeup
message without a previous SIF_Sleep
message is permissible and is not considered an error.
If there are any blocked events in the Agent's queue when a ZIS receives the SIF_Wakeup
message, the blocks
will be removed.
Since a ZIS may choose to stop sending messages to an agent if a connection cannot be made with that agent, it is
recommended that an agent send a SIF_Wakeup
message to the ZIS upon agent startup.
An agent or ZIS is not required to be able to send SIF_Wakeup
messages. Although the sending of SIF_Wakeup
is
optional, an agent or ZIS must always be able to process and respond to these messages correctly if received.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Wakeup | M | This message tells a receiver that the sender is able to process messages. | EMPTY |
Using the SIF_Wakeup
message is the preferred method of communicating that an agent or ZIS is ready to process
messages. This is preferable over the use of a SIF_Register
message because a SIF_Register
message specifies
protocol information while the SIF_Sleep
/SIF_Wakeup
pair communicates flow control information.
However, when a SIF_Register
message is processed, the receiver must behave like a SIF_Wakeup
message was
also received.
It is important to note that while SIF_Sleep
and SIF_Wakeup
are opposites of one another, this is not the case with
SIF_Register
and SIF_Unregister
. This is because a SIF_Unregister
command removes essential agent
configuration information such as the provision and subscription lists, which will not be specified by a subsequent
SIF_Register
command. (SIF_Unregister
also causes any messages pending delivery to the agent to be purged from
the agent's queue.) In other words, a SIF_Register
alone will not reverse the effects of a SIF_Unregister
.
The SIF_GetMessage
message provides the mechanism for an agent to pull message from a
ZIS. An agent sends a SIF_GetMessage
and the ZIS returns the next available message,
subject to Selective Message Blocking, wrapped in a SIF_Ack
with a SIF_Status/SIF_Code
of 0
and
the message in the SIF_Status/SIF_Data
element. If there are no messages to be returned, the ZIS returns a value of
9
in SIF_Status/SIF_Code
.
If an agent is not registered with a mode of Pull
the ZIS will return a SIF_Ack
with an error category of
Registration and an error code indicating the agent is registered in Push mode.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_GetMessage | M | This message tells the ZIS to return the first available message to the agent, subject to Selective Message Blocking. | EMPTY |
The SIF_GetZoneStatus
message provides the agent with the ability to synchronously
retrieve the current status of the zone, by-passing the asynchronous nature of retrieving the zone
status by sending a SIF_Request
for SIF_ZoneStatus
and waiting for the arrival of the SIF_ZoneStatus
response
at the top of its queue. Agents may also use the asynchronous model for requesting SIF_ZoneStatus
, if and when desired.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_GetZoneStatus | M |
This message tells the ZIS to return the current | EMPTY |
The SIF_GetAgentACL
message provides the agent with the ability to synchronously
retrieve its Access Control List permissions in the Zone via SIF_AgentACL
.
Agents may also use the asynchronous model of SIF_Request
for requesting SIF_AgentACL
, if and when desired.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_GetAgentACL | M |
This message tells the ZIS to return the Agent's ACL permissions in a | EMPTY |
The SIF_SystemControl—SIF_CancelRequests message allows an Agent or ZIS to notify a ZIS or Push-Mode Agent, respectively,
that the specified SIF_Request
s should be cancelled, whether pending or in process. Handling by a Push-Mode Agent
is optional; if unsupported, the Agent returns a Generic Message Handling error upon receipt of the SIF_SystemControl
message, error code "Message not supported."
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_CancelRequests | M |
This sub-message asks a receiver (ZIS or Push-Mode Agent) to cancel the specified | ||
SIF_NotificationType | M | values:
| ||
SIF_RequestMsgIds | M |
The list of SIF_Request s to cancel.
| List | |
SIF_RequestMsgIds/SIF_RequestMsgId | MR |
This is the SIF_MsgId of the SIF_Request message being cancelled.
| MsgIdType |
The SIF_SystemControl message is already part of the SIF Infrastructure. This messages allows for synchronous communication between an agent and a ZIS. The SIF_SystemControl - SIF_CancelServiceInputs allows an agent or ZIS to notify the other party that the specified SIF_ServiceInput should be cancelled.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_CancelServiceInputs | M | The SIF_SystemControl message is already part of the SIF Infrastructure. This messages allows for synchronous communication between an agent and a ZIS. The SIF_SystemControl - SIF_CancelServiceInputs allows an agent or ZIS to notify the other party that the specified SIF_ServiceInput should be cancelled. | ||
SIF_NotificationType | M | values:
| ||
SIF_ServiceMsgIds | M |
The list of SIF_ServiceInput s to cancel.
| List | |
SIF_ServiceMsgIds/SIF_ServiceMsgId | MR |
This is the SIF_ServiceMsgId of the SIF_ServiceInput message being cancelled.
| MsgIdType |
This message performs the opposite function of SIF_Provide
. It removes the message sender as a provider of the
data objects contained in this message.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Unprovide | M |
This message performs the opposite function of | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Object | MR | This is the object that is being removed from the provider list. | ||
@ | ObjectName | M | The actual name of the object that is being removed. | SIF_ProvideObjectNamesType |
SIF_Object/SIF_Contexts | O |
The contexts from which the object is being removed; if omitted, the context is | SIF_Contexts |
This message allows an agent to remove any association it has with the ZIS. By sending this message, the ZIS will remove all provisions and subscriptions it maintains for the sender and discards any messages pending for the agent.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Unregister | M | This message is used to unregister an agent from a Zone. | ||
SIF_Header | M | Header information contained in the message. | SIF_Header |
This message performs the opposite function of SIF_Subscribe
. It removes the message sender as a subscriber to the
SIF_Event
s contained in this message.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_Unsubscribe | M |
This message is used to unsubscribe from | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Object | MR | |||
@ | ObjectName | M | The actual name of the object from which the agent should be unsubscribed. Events pertaining to this object published after successful unsubscription will no longer be queued for delivery to the agent. Events already queued for delivery to the agent prior to unsubscription will be delivered. | SIF_SubscribeObjectNamesType |
SIF_Object/SIF_Contexts | O |
The applicable contexts; if omitted, the context is | SIF_Contexts |
This message is used to invoke a method that is exposed by a SIF Zone Service.
The SIF Zone Service specification may state that multiple SIF_ServiceInput messages may be sent to comprise a single invocation of a zone service method. If this is the case, the must be packetized using the following rules.
When an agent is creating SIF_ServiceInput packets, it MUST attempt to ensure that each packet is no larger than the maximum SIF_MaxBufferSize supported by the service. The default SIF_MaxBufferSize for any SIF Zone service is 64k. Each SIF_ServiceInput message be packetized using a maximum 64K to a SIF Zone Service by a service client (agent). A higher buffer size MAY be used only if the service client (agent) has verified that the service can accept a higher buffer size.
The size of a SIF_ServiceInput message SHOULD be less than or equal 65,536 bytes, unless one of the following is true:
If one or more SIF_ServiceInput packets have been sent by the service client, the following rules apply:
The SIF_ServiceInput message also contains SIF_Version elements that specify which SIF versions the responding agent should use when preparing the response packets.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_ServiceInput | M | SIF_ServiceInput is used to invoke a method that is exposed by a SIF Zone Service. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Service | M | The name of the SIF Zone Service that is being invoked. | xs:normalizedString | |
SIF_Operation | M | This is the name of the service operation that is being invoked. | xs:normalizedString | |
SIF_ServiceMsgId | M | The unique ID of this service request invocation. Multiple SIF_ServiceInput packets may be sent with this same SIF_ServiceMsgId | GUIDType | |
SIF_Version | CR | Specifies which SIF Specification version should be used when returning the response data. If a responder cannot return response data in this format, it should reject the SIF_ServiceInput. It is recommended that clients use a wildcard version for the “minor” portion of the version, such as "2.*". This element is mandatory for the first SIF_ServiceInput packet (SIF_PacketNumber is set to "1"). For subsequent packets, it is not required, and should be ignored, if present, for packets other than the first packet. | VersionWithWildcardsType | |
SIF_MaxBufferSize | C | Specifies the maximum size of a response packet to be returned to the requester. The responder may return packets smaller than, or equal to, the maximum value. If the maximum size is too small to contain a single whole response object, the responder should reject the SIF_ServiceInput. To guarantee delivery of response packets, requesting agents must not specify a SIF_MaxBufferSize greater than its registered SIF_Register/SIF_MaxBufferSize. This element is mandatory for the first SIF_ServiceInput packet (SIF_PacketNumber is set to "1"). For subsequent packets, it is not required, and should be ignored, if present, for packets other than the first packet. | xs:unsignedInt | |
SIF_PacketNumber | M | This element represents the index of the SIF_ServiceInput message in the sequence of packets that make up a complete response. Its value must be in the range of 1 through n, with n equal to the total number of packets that make up a response. The receiver of a SIF_ServiceInput message, with the help of the SIF_MorePackets and SIF_PacketNumber element in each incoming SIF_ServiceOutput message, will be able to interpret and process each SIF_ServiceInput as part of a complete invocation of a SIF Zone Service Operation. | xs:positiveInteger | |
SIF_MorePackets | M | This element provides an indication as to whether there are more packets besides this one to make up a complete service request. The value of this element can only be "Yes" or "No". The necessity of this element stems from the requirement on an agent to break service response data into multiple packets to fit into the SIF_MaxBufferSize that has been registered by the service. Agents may also break response data into multiple packets for the benefit of improving performance or for circumventing limitations of the underlying network infrastructure. When this element's value is equal to "No", it is an indication from the sender to the receiver that it has already sent out all the packets that make up a complete SIF_ServiceInput as indicated by the SIF_ServiceMsgId element. | values:
| |
SIF_Error | C | The agent creates either a SIF_Error or SIF_Body element. The SIF_Error element allows the agent that is invoking the service to report an error condition that occurs while creating the SIF_ServiceInput. Reporting a SIF_Error in SIF_ServiceInput is normally only expected if one or more packets have already been sent so that the receiving agent is aware that an error has occurred that will halt the service invocation message packets. However, a SIF Zone Service definition may define other valid reasons for sending a SIF_Error as the first packet of a SIF_ServiceInput message. If a SIF_Error element is present, the service must not expect to receive further SIF_ServiceInput messagest. | SIF_Error | |
SIF_Body | C | SIF_Body contains a single child element that has the same name as the value of the SIF_Operation element. The structure of this element is defined by the XML Schema that is defined for the Service. | ExtendedContentType |
SIF_ServiceOutput is used to respond to a SIF_ServiceInput message. A SIF_ServiceOutput message stream may consist of multiple packets. Each packet consists of a single service element, as defined by the service, contained as a child of the SIF_Body element.
When an agent is creating SIF_ServiceOutput packets, it MUST attempt to ensure that each packet is no larger than the SIF_MaxBufferSize specified by the SIF_ServiceInput If for any packet a single packet does fit within the supplied SIF_MaxBufferSize, the agent MUST, in addition to acknowledging receipt of the message to the ZIS, send a SIF_ServiceOutput message to the client with the SIF_Error element populated to indicate the nature of the error, and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_ServiceInput.
The SIF_ServiceInput message also contains SIF_Version elements that specify which SIF versions the responding agent SHOULD use when preparing the response packets. If a responding agent can support a single requested SIF version, it returns a response packet using that version. If more than one version is specified and the responding agent supports more than one of those versions it SHOULD respond with the highest version it supports. If the agent cannot support any requested SIF version, it should send a SIF_Error ack back to the ZIS. The ZIS is responsible for constructing a SIF_ServiceOutput error message back to the original agent. The ZIS MUST send a SIF_ServiceOutput message to the client with the SIF_Error element populated to indicate the nature of the error, a SIF_PacketNumber of 1 and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_ServiceInput.
If any other error occurs while creating SIF_ServiceOutput packets for a given request, in addition to acknowledging receipt of the message to the ZIS, the agent MUST send a SIF_ServiceOutput message to the client with the SIF_Error element populated to indicate the nature of the error, with SIF_MorePackets set to indicate that no further packets will be sent in response to the SIF_ServiceOutput.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_ServiceOutput | M | SIF_ServiceOutput is used to respond to a SIF_ServiceInput message. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_ServiceMsgId | M | This element represents the value of the SIF_ServiceMsgId that was sent as part of the original SIF_ServiceInput message stream, and should contain the same value to allow the client and the ZIS to associate each SIF_ServiceOutput packet with the SIF_ServiceInput message stream. This value uniquely identifies the entire set of SIF_ServiceInput and SIF_ServiceOutput messages involved in a single invocation of a SIF Zone Service method. | GUIDType | |
SIF_PacketNumber | M | This element represents the index of the SIF_ServiceOutput message in the sequence of packets that make up a complete response. Its value must be in the range of 1 through n, with n equal to the total number of packets that make up a response. The receiver of a SIF_ServiceOutput message, with the help of the SIF_MorePackets and SIF_PacketNumber element in each incoming SIF_ServiceOutput message, will be able to interpret and process each SIF_ServiceOutput as part of a complete response to a previous SIF_ServiceInput. | xs:unsignedInt | |
SIF_MorePackets | M | This element provides an indication as to whether there are more packets besides this one to make up a complete response. The value of this element can only be "Yes" or "No". The necessity of this element stems from the requirement on an agent to break response data to fit into the SIF_MaxBufferSize provided in the SIF_ServiceInput. Agents may also break response data into multiple packets for the benefit of improving performance or for circumventing limitations of the underlying network infrastructure. When this element's value is equal to "No", it is an indication from the sender to the receiver that it has already sent out all the packets that make up a complete response for a SIF_ServiceInput as indicated by the SIF_ServiceMsgId element. | values:
| |
SIF_Error | C | This element allows the Responder to report an error condition that occurs while processing the SIF_ServiceInput. If a SIF_Error element is present, the requesting agent must not expect to receive further SIF_ServiceOutputs to the SIF_ServiceInput. | SIF_Error | |
SIF_Body | C | SIF_Body contains a single child element that has a name composed of the value of the SIF_Operation element concatenated with the string "Response". For example a SIF Zone Service Operation with the name "GetWeather" would have in it’s response SIF_Body a single child element with the name "GetWeatherResponse". The structure of this element is defined by the XML Schema that is defined for the Service. | ExtendedContentType |
SIF_ServiceNotify is a message definition used to deliver service events.
SIF_ServiceNotify messages SHOULD not be sent higher than 64K unless the service knows that all subscribers can accept a higher max buffer size.
Therefore, the size of a SIF_ServiceNotify message SHOULD be less than or equal 65,536 bytes, unless one of the following is true:
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_ServiceNotify | M | SIF_ServiceNotify is used to deliver notifications to service clients that some state associated with the service has changed. | ||
SIF_Header | M | Header information associated with this message. | SIF_Header | |
SIF_Service | M | The name of the SIF Zone Service that initiated the event | xs:normalizedString | |
SIF_Operation | M | The name of the notification message being sent | xs:normalizedString | |
SIF_ServiceMsgId | M | A unique IdRefType that has been assigned to this series of messages. All SIF_ServiceNotify messages that contain this ID correspond to the same event instance. | GUIDType | |
SIF_PacketNumber | M | This element represents the index of the SIF_ServiceNotify message in the sequence of packets that make up a complete notification message stream. Its value must be in the range of 1 through n, with n equal to the total number of packets that make up the message stream. The receiver of a SIF_ServiceNotify message, with the help of the SIF_MorePackets and SIF_PacketNumber element in each incoming SIF_ServiceNotify message, will be able to interpret and process each SIF_ServiceNotify as part of a complete message. | xs:unsignedInt | |
SIF_MorePackets | M | This element provides an indication as to whether there are more packets besides this one to make up a complete notification message stream. The value of this element can only be "Yes" or "No". The necessity of this element stems from the requirement on an agent to break the notification message stream to fit into the SIF_MaxBufferSize specified for the service. Agents may also break the message stream into multiple packets for the benefit of improving performance or for circumventing limitations of the underlying network infrastructure. When this element's value is equal to "No", it is an indication from the sender to the receiver that it has already sent out all of the packets. | values:
| |
SIF_Error | C | The agent creates either a SIF_Error or SIF_Body element. The SIF_Error element allows the agent that creating the notification to report an error condition that occurs while creating the SIF_ServiceNotify. Reporting a SIF_Error in SIF_ServiceNotify is normally only expected if one or more packets have already been sent so that the receiving agent is aware that an error has occurred that will halt the notification message packets. However, a SIF Zone Service definition may define other valid reasons for sending a SIF_Error as the first packet of a SIF_ServiceNotify message. If a SIF_Error element is present, the receiver must not expect to receive further SIF_ServiceNotify messages as part of this message stream. | SIF_Error | |
SIF_Body | C | SIF_Body contains a single child element that has the same name as the value of the SIF_Operation element. The structure of this element is defined by the XML Schema that is defined for the Service. | ExtendedContentType |
This object provides an Agent its access control list (ACL) settings in the Zone.
It does not communicate which objects the Agent is currently registered as providing, subscribing, publishing, requesting, or responding;
it simply lists the ACL rights granted to the Agent in the Zone.
When objects are absent from any of the access lists, the Agent does not have the necessary rights to perform the given action on the object.
While an Agent may asynchronously request this object from the ZIS via SIF_Request
, it is typically returned synchronously in response
to the SIF_SystemControl
message SIF_GetAgentACL
; it is also returned synchronously in response to SIF_Register
.
Typically only Change
events are reported.
Element/@Attribute | Char | Description | Type | |
---|---|---|---|---|
SIF_AgentACL | This object provides an Agent its access control list (ACL) settings in the Zone. | |||
SIF_ProvideAccess | M |
Access control list by object for | List | |
SIF_ProvideAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_ProvideAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_SubscribeAccess | M |
Access control list by object for | List | |
SIF_SubscribeAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_SubscribeAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_PublishAddAccess | M |
Access control list by object for corresponding section in | List | |
SIF_PublishAddAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_PublishAddAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_PublishChangeAccess | M |
Access control list by object for corresponding section in | List | |
SIF_PublishChangeAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_PublishChangeAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_PublishDeleteAccess | M |
Access control list by object for corresponding section in | List | |
SIF_PublishDeleteAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_PublishDeleteAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_RequestAccess | M |
Access control list by object for | List | |
SIF_RequestAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_RequestAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_RespondAccess | M |
Access control list by object for corresponding section in | List | |
SIF_RespondAccess/SIF_Object | OR | |||
@ | ObjectName | M | The name of each object. | ObjectNameType |
SIF_RespondAccess/SIF_Object/ SIF_Contexts | M | List of contexts in which rights for the given action/object apply. | SIF_Contexts | |
SIF_ProvideService | M | Indicates that the recipient agent has permission to provide one or more services to the SIF Zone | List | |
SIF_ProvideService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_ProvideService/SIF_Service/ SIF_Contexts | M | List of contexts in which rights for the given action/service apply. | SIF_Contexts | |
SIF_RespondService | M | Indicates that the recipient agent has permission to respond to directed requests for one or more services in the SIF Zone | List | |
SIF_RespondService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_RespondService/SIF_Service/ SIF_Contexts | M | List of contexts in which rights for the given action/service apply. | SIF_Contexts | |
SIF_RequestService | M | Indicates that the recipient agent has permission to make service calls to a SIF Zone Service | List | |
SIF_RequestService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_RequestService/SIF_Service/ SIF_Contexts | M | List of contexts in which rights for the given action/service apply. | SIF_Contexts | |
SIF_RequestService/SIF_Service/ SIF_Operations | O | If SIF_Operations is not present, then the agent has permission to invoke all operations in the specified service. | List | |
SIF_RequestService/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific operation that the agent has permission to invoke or subscribe to | xs:token | |
SIF_SubscribeService | M | Indicates that the recipient agent has permission to subscribe to notification messages that are emitted from a SIF Service | List | |
SIF_SubscribeService/SIF_Service | OR | |||
@ | ServiceName | M | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token |
SIF_SubscribeService/SIF_Service/ SIF_Contexts | M | List of contexts in which rights for the given action/service apply. | SIF_Contexts | |
SIF_SubscribeService/SIF_Service/ SIF_Operations | O | If SIF_Operations is not present, then the agent has permission to subcribe to all notifications in the specified service . | List | |
SIF_SubscribeService/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific operation that the agent has permission to invoke or subscribe to | xs:token | |
SIF_Metadata | O | SIF_Metadata | ||
SIF_ExtendedElements | O | SIF_ExtendedElements |
This object captures an occurrence within a SIF node (ZIS or agent)—error, warning or information—for storage in an optionally provided zone log. SIF_LogEntry Adds are reported and are used to post new log entries to the provider of the log. Of course, subscribing agents may also filter incoming Adds as part of their own logging mechanism. Any Change or Delete SIF_Events should be ignored at the agent level, but should be routed by the ZIS (though this should not be necessary). Use of the log is optional and voluntary, except where noted as mandatory in this specification. Nodes may post as much or as little log data as required with the expectation that if there is a provider of SIF_LogEntry that the logged entries be available for a provider-defined amount of time subject to provider-defined restrictions on the quantity of data logged by any given node.
SIF_Events are reported for this object.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_LogEntry | This object captures an occurrence within a SIF node (ZIS or agent)—error, warning or information—for storage in an optionally provided zone log. SIF_LogEntry Adds are reported and are used to post new log entries to the provider of the log. Of course, subscribing agents may also filter incoming Adds as part of their own logging mechanism. Any Change or Delete SIF_Events should be ignored at the agent level, but should be routed by the ZIS (though this should not be necessary). Use of the log is optional and voluntary, except where noted as mandatory in this specification. Nodes may post as much or as little log data as required with the expectation that if there is a provider of SIF_LogEntry that the logged entries be available for a provider-defined amount of time subject to provider-defined restrictions on the quantity of data logged by any given node. | |||||
@ | Source | M | The SIF node that logged this entry. | values:
| ||
@ | LogLevel | M | The level of the log entry herein described. | values:
| ||
SIF_LogEntryHeader | M | This is a copy of the SIF_Event/SIF_Header in the message that added this SIF_LogEntry to the zone. This copy facilitates querying log entries with regard to source, time, optionally destination, etc. | ||||
SIF_LogEntryHeader/SIF_Header | M | SIF_Header | ||||
SIF_OriginalHeader | O | If this log entry references a previous SIF_Message, this element contains a copy of the referenced message's SIF_Header. | ||||
SIF_OriginalHeader/SIF_Header | M | SIF_Header | ||||
SIF_Category | C | A SIF_LogEntry category. May be omitted for informational-type postings, where typically a textual description will suffice. Note that categories may be combined with the Source attribute of SIF_LogEntry to differentiate agent error conditions from ZIS error conditions. | values:
| |||
SIF_Code | O | A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well. | union of: SIF_LogEntrySuccessCategoryType SIF_LogEntryDataIssuesWithSuccessResultType SIF_LogEntryDataIssuesWithFailureResultType SIF_LogEntryAgentErrorConditionType SIF_LogEntryZISErrorConditionType | |||
SIF_ApplicationCode | O | An error code specific to the application posting the entry. Can be used by vendors to query log entries for errors specific to their applications. If a SIF_ApplicationCode is included, SIF_Category must be included as well; i.e., application-specific error codes should fall within one of the defined log entry categories. | xs:normalizedString
| |||
SIF_Desc | M | A textual description of the error. | xs:string
| |||
SIF_ExtendedDesc | O | Any extended error description. | xs:string | |||
SIF_LogObjects | O | List | ||||
SIF_LogObjects/SIF_LogObject | MR | Any SIF data objects to which this log entry may apply. | <xs:complexType>
<xs:sequence>
<xs:any processContents="skip" />
</xs:sequence>
<xs:attribute name="ObjectName" use="required" type="sif:SIF_RequestObjectNamesType" />
</xs:complexType> | |||
@ | ObjectName | M | The name of the SIF object referenced (e.g. LearnerPersonal). | SIF_RequestObjectNamesType | ||
SIF_Metadata | O | SIF_Metadata | ||||
SIF_ExtendedElements | O | SIF_ExtendedElements |
The SIF_ZoneStatus
object is an object that is implicitly provided by all Zone Integration Servers to provide
information about the ZIS. Zone Integration Servers MUST provide this object.
Change events are supported on SIF_ZoneStatus
.
Element/@Attribute | Char | Description | Type | |||
---|---|---|---|---|---|---|
SIF_ZoneStatus |
The | |||||
@ | ZoneId | M |
The identifier for this Zone.
It is the same as the | xs:token | ||
SIF_Name | M | The descriptive name for the zone. | xs:normalizedString | |||
SIF_Icon | O |
HTTP URL referencing an icon for graphical representation of the ZIS/Zone.
Should range from 16x16 pixels to 128x128 pixels and be of an | xs:anyURI | |||
SIF_Vendor | O | Contains information about the vendor that wrote this ZIS. | ||||
SIF_Vendor/SIF_Name | M | The name of the company that wrote the ZIS. | xs:normalizedString | |||
SIF_Vendor/SIF_Product | M | The product name assigned by the vendor to identify this ZIS. | xs:normalizedString | |||
SIF_Vendor/SIF_Version | M | The version of the vendor's product—not necessarily the SIF version. | xs:normalizedString | |||
SIF_Providers | C | Encompasses all the providers registered with this ZIS. This element is mandatory if there are providers registered with the ZIS. | List | |||
SIF_Providers/SIF_Provider | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that is providing objects. This is the agent or ZIS identifier that would appear in the | xs:token
| ||
SIF_Providers/SIF_Provider/ SIF_ObjectList | M | List | ||||
SIF_Providers/SIF_Provider/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being provided by this SIF node. | ObjectNameType | ||
SIF_Providers/SIF_Provider/ SIF_ObjectList/SIF_Object/ SIF_ExtendedQuerySupport | M | xs:boolean | ||||
SIF_Providers/SIF_Provider/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_Subscribers | C | Encompasses all the subscribers registered with this ZIS. This element is mandatory if there are subscribers registered with the ZIS. | List | |||
SIF_Subscribers/SIF_Subscriber | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that is subscribing to the object events. This is the agent or ZIS identifier that would appear in the | xs:token
| ||
SIF_Subscribers/SIF_Subscriber/ SIF_ObjectList | M | List | ||||
SIF_Subscribers/SIF_Subscriber/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being subscribed to by this SIF node. | ObjectNameType | ||
SIF_Subscribers/SIF_Subscriber/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_AddPublishers | C |
Encompasses all the | List | |||
SIF_AddPublishers/SIF_Publisher | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that can publish the | xs:token
| ||
SIF_AddPublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
SIF_AddPublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being published by this agent. | ObjectNameType | ||
SIF_AddPublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_ChangePublishers | C |
Encompasses all the | List | |||
SIF_ChangePublishers/SIF_Publisher | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that can publish the | xs:token
| ||
SIF_ChangePublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
SIF_ChangePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being published by this agent. | ObjectNameType | ||
SIF_ChangePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_DeletePublishers | C |
Encompasses all the | List | |||
SIF_DeletePublishers/SIF_Publisher | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that can publish the | xs:token
| ||
SIF_DeletePublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
SIF_DeletePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being published by this agent. | ObjectNameType | ||
SIF_DeletePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_Responders | C | Encompasses all the responders registered with this zone. | List | |||
SIF_Responders/SIF_Responder | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that can respond. This is the agent identifier that would appear in the | xs:token
| ||
SIF_Responders/SIF_Responder/ SIF_ObjectList | M | List | ||||
SIF_Responders/SIF_Responder/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object for which the agent can respond to requests. | ObjectNameType | ||
SIF_Responders/SIF_Responder/ SIF_ObjectList/SIF_Object/ SIF_ExtendedQuerySupport | M | xs:boolean | ||||
SIF_Responders/SIF_Responder/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_Requesters | C | Encompasses all the requesters registered with this zone. | List | |||
SIF_Requesters/SIF_Requester | MR | |||||
@ | SourceId | M |
The identifier of the SIF node that can request an object. This is the agent identifier that would appear in the | xs:token
| ||
SIF_Requesters/SIF_Requester/ SIF_ObjectList | M | List | ||||
SIF_Requesters/SIF_Requester/ SIF_ObjectList/SIF_Object | MR | |||||
@ | ObjectName | M | The name of the object being requested by this agent. | ObjectNameType | ||
SIF_Requesters/SIF_Requester/ SIF_ObjectList/SIF_Object/ SIF_ExtendedQuerySupport | M | xs:boolean | ||||
SIF_Requesters/SIF_Requester/ SIF_ObjectList/SIF_Object/ SIF_Contexts | M | SIF_Contexts | ||||
SIF_SIFNodes | C | Encompasses all of the nodes registered with the ZIS. This element is mandatory if there are SIF nodes registered. | List | |||
SIF_SIFNodes/SIF_SIFNode | MR | |||||
@ | Type | M |
The type of the node registered with the ZIS. Note that | values:
| ||
SIF_SIFNodes/SIF_SIFNode/ SIF_Name | M | The descriptive name of the SIF node (i.e. Ramsey Food Services). | xs:normalizedString | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Icon | O |
HTTP URL referencing an icon for graphical representation of the application/agent.
Should range from 16x16 pixels to 128x128 pixels and be of an | xs:anyURI | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_NodeVendor | O | The vendor of the SIF agent. | xs:normalizedString
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_NodeVersion | O | The agent version number. The format of this field is undefined, but it should match the format used in the agent's conformance statement, if the agent is SIF Certified. Examples | xs:normalizedString
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Application | O | Contains information about the vendor of the product that the agent represents. | ||||
SIF_SIFNodes/SIF_SIFNode/ SIF_Application/SIF_Vendor | M | The name of the company of the product that this agent supports. | xs:normalizedString
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Application/SIF_Product | M | The name of the product that this agent supports. | xs:normalizedString
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Application/SIF_Version | M | The version of the product. This field is informative only. | xs:normalizedString
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_SourceId | M |
The agent or ZIS identifier. This is the same value that the SIF node would place in any | xs:token
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Mode | M | Specifies the communication mode (Pull or Push) as chosen by the message sender. | values:
| |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Protocol | O | Describes the currently active protocol that the SIF node is using to communicate with the ZIS. | SIF_Protocol | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_VersionList | M | List | ||||
SIF_SIFNodes/SIF_SIFNode/ SIF_VersionList/SIF_Version | MR | This is the version or versions of the SIF Implementation Specification that define(s) the messages the SIF node can receive. For agents, this information was communicated when the SIF node registered with the ZIS. | VersionWithWildcardsType | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_AuthenticationLevel | O | This is the level of authentication that the SIF node supports when it wants to communicate via a secure channel. | SIF_AuthenticationLevel | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_EncryptionLevel | O | This is the level of encryption that the SIF node supports when it wants to communicate via a secure channel. | SIF_EncryptionLevel | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_MaxBufferSize | M |
Specifies that the ZIS should never send packets larger than this value. Query responses from other providers are controlled by the | xs:unsignedInt | |||
SIF_SIFNodes/SIF_SIFNode/ SIF_Sleeping | M | This element shows whether the SIF node is ready to process messages. | values:
| |||
SIF_SupportedAuthentication | C | Enumerates the various authentication protocols that the ZIS supports. If the ZIS supports an authentication protocol this element is mandatory. | List | |||
SIF_SupportedAuthentication/ SIF_ProtocolName | MR | Describes a particular authentication protocol supported. | values:
| |||
SIF_SupportedProtocols | M | Enumerates the various communication transport protocols that are supported by the ZIS. | List | |||
SIF_SupportedProtocols/SIF_Protocol | MR | SIF_Protocol | ||||
SIF_SupportedVersions | M | Enumerates the versions of the SIF Implementation Specification that this ZIS can use when communicating with the agent. | List | |||
SIF_SupportedVersions/SIF_Version | MR | Lists a specific SIF Implementation Specification version. | VersionType | |||
SIF_AdministrationURL | O |
Should a ZIS vendor provide an administration interface for the zone via a URL, the ZIS can make the URL available in | xs:anyURI | |||
SIF_Contexts | M | SIF_Contexts | ||||
SIF_ServiceProviders | O | List | ||||
SIF_ServiceProviders/SIF_ServiceProvider | OR | A list of nodes within a SIF Zone that provide one or more SIF Zone Services. The provider of a SIF Zone Service can be a SIF Agent or the Zone Integration Server (ZIS) itself. | ||||
@ | SourceId | M | The identifier of the SIF node that is providing SIF Services. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node. | xs:token | ||
SIF_ServiceProviders/SIF_ServiceProvider/ SIF_ServiceList | M | The list of services provided by this node | List | |||
SIF_ServiceProviders/SIF_ServiceProvider/ SIF_ServiceList/SIF_Service | MR | |||||
@ | ServiceName | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token | |||
SIF_ServiceProviders/SIF_ServiceProvider/ SIF_ServiceList/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |||
SIF_ServiceResponders | O | A list of nodes within a SIF Zone that will respond to SIF_ServiceInput messages for one or more SIF Zone Services. The responder can be a SIF Agent or the Zone Integration Server (ZIS) itself. | List | |||
SIF_ServiceResponders/SIF_ServiceResponder | OR | |||||
@ | SourceId | M | The identifier of the SIF node that is providing SIF Services. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node. | xs:token | ||
SIF_ServiceResponders/SIF_ServiceResponder/ SIF_ServiceList | M | The list of services that will be responded to by this node. | List | |||
SIF_ServiceResponders/SIF_ServiceResponder/ SIF_ServiceList/SIF_Service | MR | |||||
@ | ServiceName | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token | |||
SIF_ServiceResponders/SIF_ServiceResponder/ SIF_ServiceList/SIF_Service/ SIF_Contexts | O | Applicable contexts for stated SIF Zone Service support. If omitted, the context defaults to SIF_Default. | SIF_Contexts | |||
SIF_ServiceRequesters | OR | A list of nodes within a SIF Zone that will respond to SIF_ServiceInput messages for one or more SIF Zone Services. The responder can be a SIF Agent or the Zone Integration Server (ZIS) itself. | List | |||
SIF_ServiceRequesters/SIF_ServiceRequester | OR | |||||
@ | SourceId | M | The identifier of the SIF node that will respond to SIF_ServiceInput messages. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node. | xs:token | ||
SIF_ServiceRequesters/SIF_ServiceRequester/ SIF_ServiceList | M | The list of services that will be invoked by this node | List | |||
SIF_ServiceRequesters/SIF_ServiceRequester/ SIF_ServiceList/SIF_Service | MR | |||||
@ | ServiceName | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token | |||
SIF_ServiceRequesters/SIF_ServiceRequester/ SIF_ServiceList/SIF_Service/ SIF_Operations | O | The list of operations an agent may invoke on a SIF Zone Service. This information may or may not be known by the ZIS as it is optionally provided by an agent during SIF_Provision.The list of operations an agent may invoke on a SIF Zone Service. This information may or may not be known by the ZIS as it is optionally provided by an agent during SIF_Provision. | List | |||
SIF_ServiceRequesters/SIF_ServiceRequester/ SIF_ServiceList/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific operation with a SIF Zone Service that the agent will invoke. | xs:token | |||
SIF_ServiceRequesters/SIF_ServiceRequester/ SIF_ServiceList/SIF_Service/ SIF_Contexts | O | SIF_Contexts | ||||
SIF_ServiceSubscribers | O | List | ||||
SIF_ServiceSubscribers/SIF_ServiceSubscriber | OR | |||||
@ | SourceId | M | The identifier of the SIF node that is providing SIF Services. This is the agent or ZIS identifier that would appear in the SIF_SourceId field of any SIF_Header created by the SIF node. | xs:token | ||
SIF_ServiceSubscribers/SIF_ServiceSubscriber/ SIF_ServiceList | M | The list of services that are subscribed to by this node. | List | |||
SIF_ServiceSubscribers/SIF_ServiceSubscriber/ SIF_ServiceList/SIF_Service | MR | |||||
@ | ServiceName | The name of the SIF Zone Service as defined by a SIF Zone Service specification | xs:token | |||
SIF_ServiceSubscribers/SIF_ServiceSubscriber/ SIF_ServiceList/SIF_Service/ SIF_Operations | O | If SIF_Operations is not present, then the agent is subscribed to all events emitted by the service | List | |||
SIF_ServiceSubscribers/SIF_ServiceSubscriber/ SIF_ServiceList/SIF_Service/ SIF_Operations/SIF_Operation | MR | A specific notification message that the agent is subscribed to | xs:token | |||
SIF_ServiceSubscribers/SIF_ServiceSubscriber/ SIF_ServiceList/SIF_Service/ SIF_Contexts | O | SIF_Contexts | ||||
SIF_Metadata | O | SIF_Metadata | ||||
SIF_ExtendedElements | O | SIF_ExtendedElements |