Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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="https://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.