To return a list of SQL Server Analysis Services cubes in a
catalog, use the MDSCHEMA_CUBES request type.
For example, lets return a list of cubes for the Catalog1 SSAS
catalog.
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>MDSCHEMA_CUBES</RequestType>
<Restrictions />
<Properties>
<PropertyList>
<Catalog>Catalog1</Catalog>
</PropertyList>
</Properties>
</Discover>
The MDSCHEMA_CUBES request type will return a list of SSAS cubes
in XML format similar to the following.
<return xmlns="urn:schemas-microsoft-com:xml-analysis">
<root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset"
xmlns:sql="urn:schemas-microsoft-com:xml-sql"
elementFormDefault="qualified">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="row" type="row" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="uuid">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]
{4}-[0-9a-zA-Z]{12}" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="xmlDocument">
<xsd:sequence>
<xsd:any />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="row">
<xsd:sequence>
<xsd:element sql:field="CATALOG_NAME" name="CATALOG_NAME" type="xsd:string" />
<xsd:element sql:field="SCHEMA_NAME" name="SCHEMA_NAME" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="CUBE_NAME" name="CUBE_NAME" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="CUBE_TYPE" name="CUBE_TYPE" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="CUBE_GUID" name="CUBE_GUID" type="uuid" minOccurs="0" />
<xsd:element sql:field="CREATED_ON" name="CREATED_ON" type="xsd:dateTime"
minOccurs="0" />
<xsd:element sql:field="LAST_SCHEMA_UPDATE" name="LAST_SCHEMA_UPDATE"
type="xsd:dateTime" minOccurs="0" />
<xsd:element sql:field="SCHEMA_UPDATED_BY" name="SCHEMA_UPDATED_BY" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="LAST_DATA_UPDATE" name="LAST_DATA_UPDATE" type="xsd:dateTime"
minOccurs="0" />
<xsd:element sql:field="DATA_UPDATED_BY" name="DATA_UPDATED_BY" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="DESCRIPTION" name="DESCRIPTION" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="IS_DRILLTHROUGH_ENABLED" name="IS_DRILLTHROUGH_ENABLED"
type="xsd:boolean" minOccurs="0" />
<xsd:element sql:field="IS_LINKABLE" name="IS_LINKABLE" type="xsd:boolean"
minOccurs="0" />
<xsd:element sql:field="IS_WRITE_ENABLED" name="IS_WRITE_ENABLED" type="xsd:boolean"
minOccurs="0" />
<xsd:element sql:field="IS_SQL_ENABLED" name="IS_SQL_ENABLED" type="xsd:boolean"
minOccurs="0" />
<xsd:element sql:field="CUBE_CAPTION" name="CUBE_CAPTION" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="BASE_CUBE_NAME" name="BASE_CUBE_NAME" type="xsd:string"
minOccurs="0" />
<xsd:element sql:field="CUBE_SOURCE" name="CUBE_SOURCE" type="xsd:unsignedShort"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<row>
<CATALOG_NAME>Cube1</CATALOG_NAME>
<CUBE_NAME>Top Level</CUBE_NAME>
<CUBE_TYPE>CUBE</CUBE_TYPE>
<LAST_SCHEMA_UPDATE>2009-09-22T15:49:12</LAST_SCHEMA_UPDATE>
<LAST_DATA_UPDATE>2010-01-15T13:41:18</LAST_DATA_UPDATE>
<DESCRIPTION>Cube1</DESCRIPTION>
<IS_DRILLTHROUGH_ENABLED>true</IS_DRILLTHROUGH_ENABLED>
<IS_LINKABLE>true</IS_LINKABLE>
<IS_WRITE_ENABLED>false</IS_WRITE_ENABLED>
<IS_SQL_ENABLED>true</IS_SQL_ENABLED>
<CUBE_CAPTION>Cube1</CUBE_CAPTION>
<CUBE_SOURCE>1</CUBE_SOURCE>
</row>
</root>
</return>