Share via


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.

Namespace https://schemas.microsoft.com/analysisservices/2003/engine

Syntax

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header>
      ...
      <ProtocolCapabilities xmlns="https://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 an Analysis Services instance at any time. Protocol negotiation involves the following steps:

  1. The client application identifies its protocol capability by sending a SOAP request that includes the ProtocolCapabilities element as part of the SOAP header.

  2. The Analysis Services instance receives and processes the SOAP request.

  3. 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.

See Also

Concepts

Managing Connections and Sessions (XMLA)

Other Resources

Headers (XMLA)