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 语句:
1<installedfxversions>
2{
3for $version in map:view("HardDriveCView')/Windows/Microsoft.NET/Framework
4
5<version>{ return $version/@folderName }</version>
6
7The output of this XQuery statement could be:
8
9<installedfxversions>
10<version>v1.0.3705</version>
11<version>v1.1.4322</version>
12<version>v 1.2.0000 </version>
13</installedfxversions></installedfxversions>