Lesson 3: Vulcan XML File structure

As you’ve seen in HelloWorld.xml of Lesson 1, the Vulcan XML file has a clear structure which enables the file itself easy to read and modify. You may have understood the basic grammar by just looking at HelloWorld.xml. Here’s the detailed explanation:

<Vulcan xmlns="http://tempuri.org/vulcan2.xsd">


All the table definitions, ETLs should only exist in <Vulcan> element.




The list of all the connections used in the tables, ETLs. Each connection is represented by <Connection> element as below.   

<Connection Name="TestDataWarehouse" Type="OLEDB" ConnectionString="Data Source=localhost\sql2008;Initial Catalog=TestDataWarehouse;Provider=SQLNCLI10.1;Integrated Security=SSPI;" />

The connection defined by Name, Type and ConnectionString. The Name attribute will be used in table definitions and ETLs.


<Table Name="HelloWorld" ConnectionName="TestDataWarehouse">


This is a table definition framework. You need to give it a name to be referenced in other places. The ConnectionName attribute specifies the connection to be used by this table.




This is the list of columns in a table. Each column is defined by <Column> element as below.


<Column Name="HelloID" Type="INT64" />

Column is usually defined by Name, Type and other attributes depending on the column’s type. Such as Length, Precision, Scale, IsNullable, Computed.




This is the list of keys defined in a table. Each key is defined by a key element as below. You can choose from Identity, PrimaryKey, and UniqueKey.


<PrimaryKey Name="PK_HelloPrimary" Clustered="true">

      <Column ColumnName="HelloID" />


These 3 lines define a primary key by its Name, Clustered attributes and its underlying column. There are other attributes you can apply to a key and the underlying column. For example, SortOrder can be used to specify if the sorting order is ascending or descending.




            <Row>0, 'Hello, World!'</Row>

            <Row>1000, 'Hello, World 1000 times!'</Row>



The above lines just put initial values into the table and should be straightforward.