ProtocolCapabilities Element (XMLA)
Uses the SOAP header in a SOAP request message to identify protocol capabilities between an instance of Microsoft SQL Server Analysis Services and a client application.
<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>
The ProtocolCapabilities element enables client applications to negotiate protocol capabilities, such as binary XML or compression support, with an Analysis Services 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 Analysis Services instance receives and processes the SOAP request.
If the Analysis Services 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 Analysis Services 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 Analysis Services 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 Analysis Services instance responds using the same format as the SOAP request.