XML schema是W3C的推荐选择,它提供了定义XML文件的结构,内容和语义的工具。与另外两个schema建模工具文件类型定义(DTD)和XDR
(XML Data Reduced)相比,XML schema具有两个关键优势。第一,由于它是针对定义XML数据结构的W3C官方推荐,所以公司组织都将采用同样的定义。第二,它是最新的schema技术,因此它的建构就是要修正另外二者中存在的漏洞和缺陷,特别是在DTD之中的。
XDR并不是一个schema技术的备选方案,因为它只是微软公司的XML schema规范的一个早期草稿。在.NET之中,XDR主要是为了向下兼容性而被支持。SQL Server 2000的XML扩展和微软公司的COM parser (MSXML)仍然对其广泛地使用。
我们开始先来看看XML schema对象模型是如何让你使用.NET的类来操作schema部件的。然后,我们看一看处理schema信息的几种途径。
XML schema代表着XML类型系统并应在他们向其他应用软件和平台序列化他们的状态时被用来描述类和对象。.NET XML schema对象模型(SOM)可以帮助在.NET-specific类型系统和XML schema类型系统之间建构一个桥梁,并使计划性地创建和修改schema变得容易。Schema文件是一个带有.xsd扩展名的XML文件。
所有可以在XML schema文件中使用的数据类型都有一个.NET的副本。一旦一个XSD schema被编译为.NET表述(representation)对象模型,你就可以使用SOM类来访问他们了。Schema编译器将XSD装配到一个XmlSchema对象之中,这个对象通过属性和方式显示了schema的信息。
在一个给定的平台上,在XSD和一个合成二进制类之间的一个有效的序列化机制提供了巨大的潜力,它是实现完全的跨平台互操作性的一个关键步骤。在.NET中,XML序列化是通过XmlSerializer类并利用XML schema定义工具(Xsd.exe)的服务来实现的。这个工具是.NET Framework SDK中的二进制可执行文件,你将会在.NET Framework安装路径中的BIN子目录中找到它,这个路径通常是C:Program FilesMicrosoft Visual Studio .NETFrameworkSDK。
Xsd.exe可以从一个XSD文件中产生一个C# 或是Visual Basic类并从一个XML源文件中推断出一个XML schema。这个工具还负责由Visual Studio .NET执行的XML中与schema相关的技术。