The Business Intelligence Markup Language (Biml) is an XML dialect that specifies many aspects of a business intelligence solution, including relational models, data transformation packages, multi-dimensional models (OLAP), and permissions.

When Biml files are compiled, BI assets are generated for a target system. However, unlike other BI solutions, Biml can target multiple BI platforms with little to no code changes. Currently, Biml can be emitted for any version of SQL Server (2005, 2008, 2008 R2, and 2012), creating SQL Server Integration Services (SSIS) packages, SQL Server Analysis Services (SSAS) cubes and SQL Server DDL. This “write once, target many platforms” philosophy provides robustness in all of your Biml solutions.

Since basic Biml is just XML, you can easily use the broad ecosystem of tools for XML-based languages. Unlike DTSX and other SQL Server files, Biml is human readable and writable. This makes it easy to edit Biml files by hand, compare and merge changes across Biml files, automatically template code, and leverage team development tools.


BimlScript is an extension to the Biml language where C# or VB.NET code nuggets are embedded directly within Biml. BimlScript’s relation to Biml is analogous to ASP.NET’s relation to HTML. By incorporating BimlScript, it’s possible to turn tedious, repetitive work into reusable scripts. Furthermore, BimlScript’s power extends to automating package generation and building reusable patterns for common BI tasks. BimlScript particularly shines when metadata from various sources (relational database structure, relational data, flat files, annotations, and more) is used to automatically generate Biml code for your solution.

Using BimlScript has no impact on a Biml file’s ability to target different SQL Server versions. The below image illustrates how Biml and BimlScript are used to generate BI assets for your target platform.