XML for Analysis (XMLA) ist ein Industriestandard für den Datenzugriff in Analysesystemen wie Online Analytical Processing (OLAP) und Data Mining. XMLA basiert auf anderen Industriestandards wie XML, SOAP und HTTP. XMLA iwird vom XMLA Council gepflegt, wobei Microsoft, Hyperion und SAS Institute die Gründungsmitglieder des XMLA Council sind.
Die XMLA-Spezifikation wurde erstmals im April 2000 von Microsoft als Nachfolger von OLE DB für OLAP vorgeschlagen. Im Januar 2001 schloss sich Hyperion ihr an und unterstützte XMLA. Die Version 1.0 des Standards wurde im April 2001 veröffentlicht und im September 2001 wurde der XMLA Council gegründet. Im April 2002 schloss sich SAS Microsoft und Hyperion als Gründungsmitglied des XMLA Council an.[1] Mit der Zeit schlossen sich mehr als 25 Unternehmen an und unterstützten den Standard.
XMLA besteht nur aus zwei SOAP-Methoden: Ausführen und Entdecken.[2] Es wurde so gestaltet, dass die Einfachheit erhalten bleibt.
Die Execute-Methode hat zwei Parameter:
Das Ergebnis des Befehls „Ausführen“ könnte ein Multidimensional Dataset oder ein tTabular Rowset. sein.
Die Discover-Methode wurde entwickelt, um alle in OLEDB möglichen Erkennungsmethoden zu modellieren, einschließlich verschiedener Schema-Rowsets, Eigenschaften, Schlüsselwörter usw. Mit der Discover-Methode können Benutzer sowohl angeben, was erkannt werden muss, als auch die möglichen Einschränkungen oder Eigenschaften. Das Ergebnis der Discover-Methode ist ein Rowset.
XMLA gibt MDXML als Abfragesprache an. In der XMLA 1.1-Version ist das einzige Konstrukt in MDXML eine MDX-Anweisung, die im <Statement>-Tag eingeschlossen ist.[3]
Unten befindet sich ein Beispiel für eine XMLA-Ausführungsanforderung mit MDX-Abfrage im Befehl.
<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>
XMLA hat eine Vorstellung vom Sitzungsstatus. Die Verwaltung erfolgt über vordefinierte SOAP-Header