XMLDataDocument和DataSet的同步
XMLDocument和XMLDataDocument对象的唯一真正的外部区别就是,后者有几个附加属性和方法。其中最有用的就是名为DataSet的属性。它会返回一个对包含了XML文档中数据的对象的引用,但我们所看到的则是一个DataSet。这个属性是只读的,所以我们不能对它做其他处理,尽管如此,它仍给我们提供了许多有利的机会。
我们能通过各种Reader对象来访问XML文档,可以将文档加载到一个XMLDataDocument对象中,还可以将文档加载到一个DataSet中。但是,在将文档加载到一个XMLDataDocument对象之后,我们就可以引用一个包含相同数据的DataSet对象,这相当于将数据读入了那个DataSet中。而且,无论我们改变DataSet还是XMLDataDocument对象中的数据,两者都会发生相应的变化。它们是完全自动同步的——实际上,我们所得到的是同一数据的两种不同显示方式而已。
这意味着这两种数据(关系数据或者XML数据)之间再也没有差别,它们只是同一数据的两种显示方式。但这种同步不总是有效的,因为在底层,.NET Frameword数据管理对象都用XML作为它们的标准存在格式。一旦得到了XMLDataDocument对象中的数据,我们就可以用关系和XML库中可用的任何方法来访问它。