XML for Analysis

From Wikipedia, the free encyclopedia

XML for Analysis (abbreviated as XMLA) is the industry standard for data access in analytical systems, such as OLAP and Data Mining. XMLA is based on other industry standards such as XML, SOAP and HTTP. XMLA is maintained by XMLA Council with Microsoft, Hyperion and SAS being the official XMLA Council founder members.

Contents

[edit] History

  • April 2000 - XMLA was first proposed by Microsoft as a successor for OLE DB for OLAP (ODBO).
  • January 2001 - Hyperion joined Microsoft endorsing XMLA.
  • April 2001 - XMLA 1.0 was released.
  • September 2001 - XMLA Council was formed. First XMLA Council meeting took place.
  • November 2001 - Microsoft released XML for Analysis SDK - first reference implementation for XMLA 1.0
  • November 2002 - First Private XMLA interop event at Simba Technologies headquarters. XMLA 1.1 was released by XMLA Council.
  • March 2003 - Second Private XMLA interop event at Simba Technologies headquarters.
  • May 2003 - Public XMLA interop event at TDWI conference.

[edit] API

XMLA consists of only two SOAP methods. It was designed in such a way to preserve simplicity.

  • Execute
  • Discover

[edit] Execute

Execute method has two parameters:

  • Command - command to be executed. It can be MDX, DMX or SQL.
  • Properties - XML list of command properties such as Timeout, Catalog name etc.

The result of Execute command could be Multidimensional Dataset or Tabular Rowset.

[edit] Discover

Discover method was designed to model all the discovery methods possible in OLEDB including various schema rowset, properties, keywords etc. Discover method allows to specify what needs to be discovered, the possible restrictions and properties. The result of Discover method is a rowset.

[edit] Query language

XMLA specifies MDXML as the query language. In the XMLA 1.1 version, the only construct in MDXML is an MDX statement enclosed in the <Statement> tag.

[edit] Example

Below is an example of XMLA Execute request with MDX query in command.

<soap:Envelope>
 <soap:Body>
  <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
   <Command>
    <Statement>SELECT Measures.MEMBERS ON COLUMNS FROM Sales</Statement>
   </Command>
   <Properties>
    <PropertyList>
     <DataSourceInfo/>
     <Catalog>FoodMart</Catalog>
     <Format>Multidimensional</Format>
     <AxisFormat>TupleFormat</AxisFormat>
    </PropertyList>
   </Properties>
  </Execute>
 </soap:Body>
</soap:Envelope>

[edit] Session management

XMLA has a notion of session state. It is maintained through predefined SOAP headers

  • BeginSession - to begin a new session
  • EndSession - to end existing session
  • UseSession - to use existing session. SessionId attribute previously returned for BeginSession should be used.

[edit] Products

Products which support XMLA fall into two categories:

  • XMLA Providers - these products provide XMLA service. Typically these are server or middle tier products
  • XMLA Consumers - these products can connect to XMLA Providers and consume XMLA. Typically these are client/UI products

[edit] XMLA Providers

[edit] External links