XML for Analysis

Source: Wikipedia, the free encyclopedia.

XML for Analysis (XMLA) is an industry standard for data access in analytical systems, such as

Hyperion and SAS Institute
being the XMLA Council founder members.

History

The XMLA specification was first proposed by

Hyperion endorsing XMLA. The 1.0 version of the standard was released in April 2001, and in September 2001 the XMLA Council was formed. In April 2002 SAS joined Microsoft and Hyperion as founding member of XMLA Council.[1]
With time, more than 25 companies joined with their support for the standard.

API

XMLA consists of only two SOAP methods.: execute and discover.[2] It was designed in such a way to preserve simplicity.

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.

Discover

Discover method was designed to model all the discovery methods possible in

OLEDB
including various schema rowset, properties, keywords, etc. Discover method allows users to specify both what needs to be discovered and the possible restrictions or properties. The result of Discover method is a rowset.

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

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>

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.

References

  1. ^ "XML for Analysis gathers steam". Archived from the original on May 28, 2008.
  2. ^ "XML for Analysis Specification". 30 June 2006.
  3. ^ "MDX / mdXML". Archived from the original on September 7, 2008.

External links