XML for Analysis Specification

Specifies a SOAP-based XML communication API that supports the exchange of analytical data between clients and servers on any platform and with any language.

XML for Analysis is a Simple Object Access Protocol (SOAP)-based XML API, designed specifically for standardizing the data access interaction between a client application and a data provider working over the Web.

Currently, under traditional data access techniques such as OLE DB and ODBC, a client component that is tightly coupled to the data provider server must be installed on the client machine in order for an application to be able to access data from a data provider. Tightly coupled client components can create dependencies on a specific hardware platform, a specific operating system, a specific interface model, a specific programming language, and a specific match between versions of client and server components.

The requirement to install client components and the dependencies associated with tightly coupled architectures are unsuitable for the loosely coupled, stateless, cross-platform, and language independent environment of the Internet. To provide reliable data access to Web applications, the Internet, mobile devices, and cross-platform desktops need a standard methodology that does not require component downloads to the client.

Extensible Markup Language (XML) is generic and can be universally accessed. What if, instead of invoking a proprietary interface of a client component, you could call methods and transfer data through XML HTTP messages without any client component? What if the application developer could build client components without concern for tight coupling to a server component or application? What if an application, developed with any programming language and running on any platform, could access data from any place on the Web without having to plan for specific platform support or even a specific provider version? This specification answers these questions with XML for Analysis.

XML for Analysis advances the concepts of OLE DB by providing standardized universal data access to any standard data source residing over the Web without the need to deploy a client component that exposes COM interfaces. XML for Analysis is optimized for the Web by minimizing roundtrips to the server and targeting stateless client requests to maximize the scalability and robustness of a data source.

This specification defines two methods, Discover and Execute, which consume and send XML for stateless data discovery and manipulation.

The specification is built upon the open Internet standards of HTTP, XML, and SOAP, and is not bound to any specific language or technology. The specification references OLE DB so that application developers already familiar with OLE DB can see how XML for Analysis can be mapped and implemented. These references also provide background information on the OLE DB definitions that the specification extends.

This specification targets application developers and assumes the following:

Knowledge of XML

Knowledge of SOAP

Understanding of online analytical processing (OLAP) and data mining

Working knowledge of OLE DB and OLE DB for OLAP
For more information about these areas, see Appendix E.

Design Goals
The primary goals of this specification include the following:

Provide a standard data access API to remote data access providers that can be used universally on the Internet or intranet for multidimensional data

Optimize a stateless architecture, requiring no client components for the Web, with minimal roundtrips

Support technologically independent implementations using any tool, programming language, technology, hardware platform, or device

Build on open Internet standards, such as SOAP, XML, and HTTP

Leverage and reuse successful OLE DB design concepts, so that OLE DB for OLAP applications and OLE DB providers can be easily enabled for XML for Analysis

Work efficiently with standard data sources, such as relational OLAP, and data mining
Design Summary
The design centers around an XML-based communication API, called XML for Analysis, which defines two generally accessible methods: Discover and Execute. Because XML allows for a loosely coupled client and server architecture, both methods handle incoming and outgoing information in XML format. This API is optimized for the Internet, where roundtrips to the server are expensive in terms of time and resources, and where stateful connections to the data limit user connections on the server.

Discover is used to obtain information and meta data from a Web Service. This information can include a list available data sources and data about the provider for a particular data source. Properties are used to define and shape what data is obtained. The client application may need many types of information; Discover allows you to specify this in a common way. This generic interface and use of properties allows extensibility without rewriting existing functions.

Execute is used to execute Multidimensional Expressions (MDX) or other provider-specific commands against a particular XML for Analysis data source. The following diagram illustrates one possible implementation of an n-tiered application.

Provided with the URL for a server hosting a Web service, the client sends Discover and Execute calls using the SOAP and HTTP protocols to the server. The server instantiates the XML for Analysis provider, which handles the Discover and Execute calls. The XML for Analysis provider fetches the data, packages it into XML, and then sends the requested data as XML to the client.

The Discover and Execute methods enable users to determine what can be queried on a particular server and, based on this, submit commands to be executed. The following scenario illustrates how an Internet application or a Web Service could use these methods.

Part I - XML for Analysis
Introduction to XML for Analysis
XML for Analysis specifies a SOAP-based XML communication API that supports the exchange of analytical data between clients and servers on any platform and with any language.

The following methods provide a standard way for XML applications to access basic information from the server. Because these methods are invoked using the SOAP protocol, they accept input and deliver output in XML. By default, these methods are stateless, so the server context ends at the completion of any command. For information about how to make stateful calls, see Support for Statefulness in XML for Analysis.

The simplified interface model has two methods. The Discover method obtains information, and the Execute method sends action requests to a server. The XML namespace for these methods is "urn:schemas-microsoft-com:xml-analysis".

Connection information is supplied in each method call with the connection properties.

The Discover method can be used to retrieve information, such as the list of available data sources on a server or details about a specific data source. The data retrieved with the Discover method depends on the values of the parameters passed to it.


SOAP Action

Discover (
[in] RequestType As EnumString,
[in] Restrictions As Restrictions,
[in] Properties As Properties,
[out] Result As Rowset)
RequestType [in]

This required parameter consists of a RequestTypes enumeration value, which determines the type of information to be returned. The RequestTypes enumeration is used by the Discover method to determine the structure and content of the rowset returned in the Result parameter. The format of the Restrictions parameter and the resulting XML result set is also dependent on the value specified in this parameter. This enumeration can be extended to support provider-specific enumeration strings.

Each RequestTypes enumeration value corresponds to a return rowset. For rowset definitions, see XML for Analysis Rowsets. Support is required for the following explicitly named RequestTypes enumeration values.

Enumeration value Description
DISCOVER_DATASOURCES Returns a list of XML for Analysis data sources available on the server or Web Service. (For an example of how these may be published, see XML for Analysis Implementation Walkthrough.) DISCOVER_PROPERTIES Returns a list of information and values about the requested properties that are supported by the specified data source (provider).
DISCOVER_SCHEMA_ROWSETS Returns the names, values, and other information of all supported RequestTypes enumeration values (including those listed here), and any additional provider-specific enumeration values.
DISCOVER_ENUMERATORS Returns a list of names, data types, and enumeration values of enumerators supported by a specific data source's provider.
DISCOVER_KEYWORDS Returns a rowset containing a list of keywords reserved by the provider.
DISCOVER_LITERALS Returns information about literals supported by the data source provider.
Schema Rowset Constant Given a constant that corresponds to one of the schema rowset names defined by OLE DB, such as MDSCHEMA_CUBES, returns the OLE DB schema rowset in XML format. Note that providers may also extend OLEDB by providing additional provider-specific schema rowsets. The schema rowsets that tabular data providers (TDP) and multidimensional data providers (MDP) are required to support are listed in the section DISCOVER_SCHEMA_ROWSETS Rowset.

Restrictions [in]

This parameter, of the Restrictions data type, enables the user to restrict the data returned in Result. The Result columns are defined by the rowset specified in the RequestType parameter. Some columns of Result can be used to filter the rows returned. For these columns and those that can be restricted, see the rowset tables in XML for Analysis Rowsets. To obtain the restriction information for provider-specific schema rowsets, use the DISCOVER_SCHEMA_ROWSETS request type.

This parameter must be included, but it can be empty.

Properties [in]

This parameter, of the Properties data type, consists of a collection of XML for Analysis properties. Each property enables the user to control some aspect of the Discover method, such as specifying the return format of the result set, the timeout, and specifying the locale in which the data should be formatted.

The available properties and their values can be obtained by using the DISCOVER_PROPERTIES request type with the Discover method. Standard XML for Analysis properties are detailed in XML for Analysis Properties.

There is no required order for the properties listed in the Properties parameter. This parameter must be included, but it can be empty.

Result [out]

This required parameter contains the result set returned by the provider as a Rowset object.

The columns and content of the result set are specified by the values specified in the RequestType and Restrictions parameters. The column layout of the returned result set is also determined by the value specified in RequestType. For more information about the rowset layouts that correspond to for each RequestType value, see XML for Analysis Rowsets.

For more information about the Rowset data type, see Data Types Used in XML for Analysis.


Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.