Creating a Basic Package Using Biml

This article is going to walk through the process of creating a simple package using Biml and the Biml Package Generator feature in BIDS Helper. To start out, you need to install the latest beta of BIDS Helper from CodePlex. Once that is set up, you should create a new Integration Services project in BIDS. In the project, right-click on the Project in the Solution Explorer. There’s a new item in this menu – Add New Biml File.


Clicking Add New Biml File will add a new file to the Miscellaneous folder in the solution named BimlScript.biml. (The name is automatically generated, so it may be BimlScript1.biml, etc). You can right-click on the file and choose rename to give the file a more specific name. For this example, rename the file “BasicPackage.biml”.

Double-clicking on the file will open the XML editor inside of BIDS. The editor supports Intellisense for Biml, so typing an opening tag (“<”) will give you a list of valid options for tags you can use. (If you aren’t seeing the Intellisense, please check this link for troubleshooting steps.)


For this example, copy and paste the following Biml into the document. Since the code below includes the document root tags (<Biml>), you’ll want to make sure you replace the entire contents of the Biml file.

<Biml xmlns="">
        <Connection Name="AdventureWorks" ConnectionString="Server=.;Initial Catalog=AdventureWorks;Integrated Security=SSPI;Provider=SQLNCLI10"/>
        <Package Name="Biml Sample" AutoCreateConfigurationsType="None" ConstraintMode="Linear">
                <Dataflow Name="Extract Table List">
                        <OleDbSource Name="Get Table List" ConnectionName="AdventureWorks">
                            <DirectInput>SELECT * FROM sys.tables</DirectInput>
                        <Multicast Name="Multicast"/>

The first section (<Connections>) of this Biml defines an OleDbConnection that points to the AdventureWorks database. The next section (inside the <Packages> tag) defines a single package that contains a Dataflow task (the <Dataflow> tag). The Dataflow task contains two components, an OleDb Source and an Union All transformation.

The next step is to take this definition of a package, and actually generate the package from it. To do this, right-click on the Biml file, and choose Expand Biml File from the context menu.


A new package will be added to the SSIS Packages folder, named Biml Sample.dtsx. If you review the generated package, you’ll see that it matches up to what was defined in the Biml code.


That’s a quick introduction to the Biml functionality in BIDS Helper. In the next article, we’ll set the stage for some more advanced (read: more interesting) uses of Biml, including some scripting.


  1. Shane says:

    Nice tool! This will really allow us to do some rapid stubbing in SSIS. I look forward to the rest of the series. Thank you for adding this to BIDS helper!

    I ran into the Intellisense problem so I followed the link to download the XSD, but it looks like the XSD does not include the Dataflow node under tasks. It runs fine, but it displays a validation warning on this node.

  2. aingram says:

    Really interesting stuff, I have been playing with BIML a bit!

    The only drawback I have found so far is the inability to work with custom components. It may be I am looking in the wrong place…

  3. Samit Shah says:


    I directly copied the code provided for creating package for the tables available in the meta db. But it says character # is illegal in XML name. There are many others such as missing attribute name. I am not able to figure out what the issue is.

    If you can please help me out,

    Thanks and Regards,
    Samit Shah

  4. M Markel says:

    The last couple of hours have been my first exposure to BIDSHelper and biml. Do you know if one can reverse engineer and existing BIDS package into biml? ..convert an existing package to biml ?

Leave a Reply