推斷程式會先從 XML 文件判斷哪些元素會推斷為表格。 從其餘的 XML 中,推斷程式會決定這些數據表的數據行。 對於巢狀數據表,推斷程式會產生巢狀 DataRelation 和 ForeignKeyConstraint 物件。
以下是推斷規則的簡短摘要:
具有屬性的元素會被推斷為表格。
具有子元素的元素被推斷為表格。
重複的元素會被推斷為單一資料表。
如果檔案或根元素沒有屬性且沒有可以推斷為資料行的子元素,則會被推斷為 DataSet。 否則,文檔元素會被推斷為表格。
屬性會推斷為數據行。
元素在沒有屬性或子元素且不重複的情況下,會被推斷為資料欄。
對於在其他同樣推斷為表格的元素中,若以巢狀資料表推斷,則會在兩個資料表之間建立巢狀
DataRelation結構。 在兩個資料表中新增一個命名TableName_Id為主鍵欄位,並由 DataRelation 使用。 在兩個資料表之間,使用TableName_Id欄建立ForeignKeyConstraint。對於推論為表格且包含文字但無子元素的元素,會為每個元素的文字建立一個新欄位
TableName_Text。 如果專案被推斷為數據表並具有文字,但也有子元素,則會忽略文字。