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">


</Vulcan>


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


 


<Connections>


</Connections>


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">


</Table>


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.


 


<Columns>


</Columns>


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.


 


<Keys>


</Keys>


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" />


</PrimaryKey>


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.


 


<Sources>


      <StaticSource>


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


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


      </StaticSource>


</Sources>


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


 

Skip to main content