Developing with XMLA in Analysis Services

XML for Analysis (XMLA) is a SOAP-based XML protocol, designed specifically for universal data access to any standard multidimensional data source that can be accessed over an HTTP connection. Analysis Services uses XMLA as its only protocol when communicating with client applications. Fundamentally, all client libraries supported by Analysis Services formulate requests and responses in XMLA.

As a developer, you can use XMLA to integrate a client application with Analysis Services, without any dependencies on the .NET Framework or COM interfaces. Application requirements that include hosting on a wide range of platforms can be satisfied by using XMLA and an HTTP connection to Analysis Services.

Analysis Services is fully compliant with the 1.1 specification of XMLA, but also extends it to enable data definition, data manipulation, and data control support. Analysis Services extensions are referred to as the Analysis Services Scripting Language (ASSL). Using XMLA and ASSL together enables a broader set of functionality than what XMLA alone provides. For more information about ASSL, see Developing with Analysis Services Scripting Language (ASSL).



Managing Connections and Sessions (XMLA)

Describes how to connect to an Analysis Services instance, and how to manage sessions and statefulness in XMLA.

Handling Errors and Warnings (XMLA)

Describes how Analysis Services returns error and warning information for methods and commands in XMLA.

Defining and Identifying Objects (XMLA)

Describes object identifiers and object references, and how to use identifiers and references within XMLA commands.

Managing Transactions (XMLA)

Details how to use the BeginTransaction, CommitTransaction, and RollbackTransaction commands to explicitly define and manage a transaction on the current XMLA session.

Canceling Commands (XMLA)

Describes how to use the Cancelcommand to cancel commands, sessions, and connections in XMLA.

Performing Batch Operations (XMLA)

Describes how to use the Batch command to run multiple XMLA commands, in serial or in parallel, either within the same transaction or as separate transactions, using a single XMLA Execute method.

Creating and Altering Objects (XMLA)

Describes how to use the Create, Alter, and Delete commands, along with Analysis Services Scripting Language (ASSL) elements, to define, change, or remove objects from an Analysis Services instance.

Locking and Unlocking Databases (XMLA)

Details how to use the Lock and Unlock commands to lock and unlock an Analysis Services database.

Processing Objects (XMLA)

Describes how to use the Process command to process an Analysis Services object.

Merging Partitions (XMLA)

Describes how to use the MergePartitions command to merge partitions on an Analysis Services instance.

Designing Aggregations (XMLA)

Describes how to use the DesignAggregations command, either in iterative or batch mode, to design aggregations for an aggregation design in Analysis Services.

Backing Up, Restoring, and Synchronizing Databases (XMLA)

Describes how to use the Backup and Restore commands to back up and restore an Analysis Services database from a backup file.

Also describes how to use the Synchronize command to synchronize an Analysis Services database with an existing database on the same instance or on a different instance.

Inserting, Updating, and Dropping Members (XMLA)

Describes how to use the Insert, Update, and Drop commands to add, change, or delete members from a write-enabled dimension.

Updating Cells (XMLA)

Describes how to use the UpdateCells command to change the values of cells in a write-enabled partition.

Managing Caches (XMLA)

Details how to use the ClearCache command to clear the caches of Analysis Services objects.

Monitoring Traces (XMLA)

Describes how to use the Subscribe command to subscribe to and monitor an existing trace on an Analysis Services instance.

XML for Analysis fully supports data mining schema rowsets. These rowsets provide information for querying data mining models using the Discover method. For more information about data mining schema rowsets, see Data Mining Schema Rowsets

For more information about DMX, see Data Mining Extensions (DMX) Reference.


The schema defined in this specification uses the XML namespace and the standard abbreviation “DDL.”


The definition of an XML Schema definition language (XSD) schema for the Analysis Services object definition language is based on the definition of the schema elements and hierarchy in this section.

Extensibility of the object definition language schema is provided by means of an Annotation element that is included on all objects. This element can contain any valid XML from any XML namespace (other than the target namespace that defines the DDL), subject to the following rules:

  • The XML can contain only elements.

  • Each element must have a unique name. It is recommended that the value of Name reference the target namespace.

These rules are imposed so that the contents of the Annotation tag can be exposed as a set of Name/Value pairs through Decision Support Objects (DSO) 9.0.

Comments and white space within the Annotation tag that are not enclosed with a child element may not be preserved. In addition, all elements must be read-write; read-only elements are ignored.

The object definition language schema is closed, in that the server does not allow substitution of derived types for elements defined in the schema. Therefore, the server accepts only the set of elements defined here, and no other elements or attributes. Unknown elements cause the Analysis Services engine to raise an error.

Community Additions