ProtocolCapabilities Element (XMLA)
Uses the SOAP header in a SOAP request message to identify protocol capabilities between an instance of Analysis Services and a client application.
Namespace http://schemas.microsoft.com/analysisservices/2003/engine
Syntax
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
...
<ProtocolCapabilities xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Capability>...</Capability>
</ProtocolCapabilities>
...
</soap:Header>
<soap:Body>
...
</soap:Body>
</soap:Envelope>
Element characteristics
Characteristic | Description |
---|---|
Data type and length | None |
Default value | None |
Cardinality | 0-1: Optional element that can occur once and only once. |
Element relationships
Relationship | Element |
---|---|
Parent elements | None |
Child elements | Capability |
Remarks
The ProtocolCapabilities element enables client applications to negotiate protocol capabilities, such as binary XML or compression support, with a server instance at any time. Protocol negotiation involves the following steps:
The client application identifies its protocol capability by sending a SOAP request that includes the ProtocolCapabilities element as part of the SOAP header.
The instance receives and processes the SOAP request.
If the instance has the same protocol capability as that requested, the instance sends a SOAP response that includes the same ProtocolCapabilities element sent in the SOAP request, and the protocol has been successfully negotiated. Otherwise, the protocol capabilities are not successfully negotiated, and the instance returns a SOAP fault.
After successfully negotiating protocol capabilities, how long the client application and the instance use a particular protocol depends upon whether the session is explicit or implicit:
An explicit session is one that is created using the BeginSession header element. For an explicit session, the negotiated protocol is used until either the client application sends a new ProtocolCapabilities element or the session ends.
An implicit session is one that is created by an instance and not explicitly specified by the client application when submitting a SOAP request. For an implicit session, the negotiated protocol is used only until the SOAP request is completed.
Protocol capabilities do not have to be explicitly negotiated. That is, a client application does not have to include a ProtocolCapabilities element as part of the SOAP request. If a SOAP request does not include a ProtocolCapabilities element, the instance responds using the same format as the SOAP request.