推理过程首先从 XML 文档中确定哪些元素将推断为表。 从余下的 XML 中,推理步骤确定这些表的字段。 对于嵌套表,推理过程将生成嵌套 DataRelation 和 ForeignKeyConstraint 对象。
下面是推理规则的简要摘要:
具有属性的元素被推断为表。
具有子元素的元素会被推断为表。
重复的元素被推断为单个表。
如果文档或根元素没有属性,也没有子元素被推断为列,则将其视为DataSet。 否则,文档元素将推断为表。
属性被视为列。
没有属性或子元素且不重复的元素被推断为列。
如果元素被推断为表,而这些表嵌套在同样被推断为表的其他元素中,则将在两个表之间创建嵌套的 DataRelation。 添加一个名为TableName_Id的新主键列到两个表中,并由DataRelation使用。 使用 TableName_Id 列在两个表之间创建 ForeignKeyConstraint。
对于被推断为表但不包含子元素的元素,将为每个元素的文本创建一个名为 TableName_Text 的新列。 如果元素被推断为表并具有文本,但也有子元素,则忽略文本。