Conceptual Schema Definition Language (CSDLBI) overview
Applies to: SQL Server Analysis Services Azure Analysis Services Power BI Premium
Analysis Services supports the presentation of the definition of multidimensional models and tabular models at the 1103 and lower compatibility levels in an XML format called Conceptual Schema Definition Language with Business Intelligence annotations (CSDLBI). This article provides an overview of CSDLBI and how it is used with Analysis Services data models.
Understanding the Role of CSDL
The Conceptual Schema Data Language (CSDL) is an XML-based language that describes entities, relationships, and functions. CSDL is defined as part of the Entity Data Framework. The BI annotations are an extension designed to support data modeling using Analysis Services.
Although CSDL is compliant with the Entity Data Framework, you do not need to understand the entity-relationship model or have any special tools to build a tabular model or a report based on a model. You build models by using client tools such as Visual Studio with Analysis Services projects extensions, also known as SQL Server Data Tools (SSDT), or an API such as AMO and deploy the model to a server.
The CSDLBI schema is generated by the Analysis Services server in response to a request for a model definition from a client. The client application sends an XML query to the Analysis Services server that hosts the model data. In response, the server sends an XML message containing a definition of the entities in the model, using the CSDLBI annotations. The reporting client then uses the information to present the fields, aggregations, and measures that are available in the model. The CSDLBI annotations also provide information about how to group, sort, and format the data.
Working with CSDL
The set of CSDLBI annotations that represents any particular tabular model is an XML document containing a collection of entities, both simple and complex. The entities define tables (or dimensions), columns (attributes), associations (relationships), and formulas included in calculated columns, measure, or KPIs.
You cannot modify these objects directly, but must use the client tools and application programming interfaces (APIs) provided for working with tabular models.
You can obtain the CSDL for a model by sending a DISCOVER request to the server that hosts the model. The request must be qualified by specifying the server and the model, and, optionally, a view or perspective. The returned message is an XML string. Certain elements are language-dependent and may return different values depending on the language of the current connection. For more information, see DISCOVER_CSDL_METADATA Rowset.
The original CSDL specification (from the Entity Data Framework) provides for most of the entities and properties that are needed to support modeling. The BI annotations support special requirements of tabular models, reporting properties required for clients, and additional metadata required for multidimensional models.
Beginning in 2012, version 1.0 and subsequent versions of the CSDLBI specification are described in Open Specifications. The Open Specification is updated periodically to coincide with changes in functionality. Prior to publishing CSDLBI to the Open Specification, CSDLBI versions 1.0 and 1.1 were documented as a reference on MSDN\TechNet. This early version of the CSDLBI reference provides more in-depth definitions of CSDLBI structures and semantics than provided in the open specification, however, the open specification should be used.
Open Specification versions 1.0 and higher
CSDLBI 1.0, 1.1 Reference (Archived)
For detailed information about individual elements in the CSDLBI annotations, see Technical Reference for BI Annotations to CSDL.
For information about the core CSDL specification, see the CSDL specification on MSDN.