XML视图:一项伟大的技术
作者:Klaus Aschenbrenner
我喜欢XML视图背后的概念。使用XML视图,你能以一种近似于XML的方式来检索任何(!)数据源。现在我们在Whidbey中可能使用像XQuery等的XML查询语言对SQL Server Yukon进行查询。看看下面的XQuery语句:
map:view('nwind')/Customers
这条简单的语句将从SQL服务器中的"Customers"表返回所有的顾客。XML视图产生出魔法般的效果。总而言之,决定一个XML视图,你需要3个映射文件。第一个映射文件(关系映射)描述了你的SQL服务器中的表以及他们之间的关系。你能够使用reg.exe工具生成这个文件。第二个文件描述了返回的XML数据的结构-一个简单的XML架构。第三个文件是最重要的一个:这个文件映射相关的世界到XML的世界。
有了这三步映射的概念,你的理解就不会再受限制。Object Spaces也是这种映射技术的使用。在Object Spaces中,你将一个相关数据库映射到类系统。这里你没有使用XML架构进行描述,而是对你的业务对象结构描述的一种映射。
XML视图引入后,你也有能力去根据不同的数据源创造不同的视图,例如座落在整个世界的SQL Server数据库。这些数据库能够使用一条XQuery语句集成在一起,这不是一件很酷的事情吗?
但是一些开发者希望知道什么时候为XML视图提供一个新的数据源?我正在考虑使用文件系统提供者或叫做WinFS提供者….看下面虚构的XQuery语句:
<InstalledFXVersions>
{
for $version in map:view("HardDriveCView')/Windows/Microsoft.NET/Framework
<Version>{ return $version/@folderName }</Version
}
</InstalledFXVersions>
The output of this XQuery statement could be:
<InstalledFXVersions>
<Version>v1.0.3705</Version>
<Version>v1.1.4322</Version>
<Version>v1.2.0000</Version>
</InstalledFXVersions>