内 容 简 介XML已成为近年来最热门的IT技术之一,并且已经广泛应用于编程领域中。本书主要讲述了XML技术在VB.NET中的应用。同时介绍了XML的相关技术,如Xpath、XSLT和XML Schema等。主要内容包括:XML语法和格式良好的XML、XML命名空间、利用DTD和XML Schema进行XML验证、使用SOAP和Web服务,以及运用ADO.NET进行数据库访问等。本书还用两个案例分析来展示XML的具体应用。本书适合具有一定的VB.NET编程经验又想了解XML知识的开发人员
前 言 欢迎阅读本书。近年来,可扩展标记语言(XML)已经成为应用程序开发中使用得最多的专业术语。并且,Microsoft已经将XML内置到它的.NET Framework核心中。本书主要是向希望了解XML用途的开发人员讲授XML知识(和相关的技术,例如Xpath、XSLT和XML Schema)。为了引导读者有目的地学习基本的XML技巧,我们假定您已经掌握了一些基本的编程技巧(这里指Visual Basic .NET中一些基本的编程知识),有使用Visual Studio .NET的经验,可以将这些技术运用到新技术中。 在本书中,读者不仅可以很好地理解XML的概念,知道如何及何时在Visual Basic .NET中使用它,也可以知道如何使用XML构建运行在单个台式电脑、单个服务器的应用程序或者是分布式、多平台的Web服务,在这些方面使用以前的技术是难以实现的。 为了加深您对核心概念的理解,本书使用了许多单个示例和两个大的案例分析。我们精心选择了一些示例来演示XML的功能,帮助您在开始利用这一技术时理解其基本概念。首先讨论不同的基于XML方法如何用于地址簿应用程序的开发。在本书中,项目的复杂度会随着读者的知识增加而增大。然后,我们用一章的篇幅来讲述XML和SQL Server数据库在基于Web的新闻门户站点实现中的运用。 本书主要内容 XML语法和格式良好的XML。 使用XML命名空间。 使用XSLT转换XML。 使用DTD和XML Schema进行XML验证。 使用SOAP和Web服务。 使用ADO.NET为应用程序添加数据库访问功能。 使用SQLXML使得SQL Server 2000能够支持XML。 第1章:在VB.NET中使用XML的原因 在本章中,我们将讨论一些基本知识。什么是XML?为何它如此重要?为何说VB.NET是使用它的理想语言?也许最重要的是可以用XML做什么?我们将介绍这些内容,看一下XML适合于.NET Framework和VB.NET的特点,以及要学习如何使用它。还将介绍第一个非常简单的应用程序。 第2章:XML概述 前一章是对XML的预览。本章将更为详细地介绍什么是XML,它的组成以及在创建XML文档时必须遵循的规则和定义。 第3章:在.NET中使用XML 现在我们已经了解了XML的基本构成部分和概念,接下来讲述XML是如何适应.NET Framework的,以及.NET对XML开发提供的支持;接着将看一下.NET Framework是如何在其操作的核心部分使用XML的。在本章最后,我们还将开始一个电话簿案例分析,具体应用本书迄今为止学到的知识。在后面几章中,我们将继续在该基础上进行构建。 第4章:在.NET中读取XML 我们将介绍如何在.NET Framework中使用VB和XML,如何结合两者创建强大的应用程序。还将介绍如何使用.NET读取XML,如何遍历XML文档读取不同的节点类型。另外将讨论如何读取二进制数据和较大的XML文档,以及如何在XML文档中实现一些验证。 第5章:在.NET中编写XML 我们将介绍用编程方式在VB.NET代码中编写XML数据,使用一些.NET类定义的功能。幸运的是,作为.NET开发人员,我们可以很容易地访问那些用于写元素、特性等的非常有用的方法,本章将作详细介绍。 第6章:在.NET中实现DOM 本章将介绍如何在.NET Framework中实现文档对象模型(DOM)。前面在第3章中介绍了DOM的原理;这里将作更为详细的介绍。在本章中,读者将了解DOM的概念,它与流模型的区别,以及如何使用XmlNode和XmlDocument类。接着在案例分析中使用DOM。 第7章:Xpath和.NET 在本章中,我们将扩展对在.NET中使用DOM的理解,讨论如何在.NET中使用Xpath,以便在XML文档中完成复杂的导航和过滤操作。我们还将介绍使用XML在.NET中直接串行化(反串行化)类的基本知识。 第8章:XSLT 在本章中,我们将介绍XSL转换语言(XSLT),以及.NET Framework对的它支持。XSLT用于接收XML文档并以另一种格式输出它,例如HTML页面或另一个XML文档(不过并不限制为这两种格式)。这种转换取决于XML文档的内容,通过匹配文档中的元素和属性(它是由命名空间来限定的)。 第9章:.NET中使用XSLT 在本章中,我们应用前一章中学习的XSLT知识,介绍如何使用.NET类实现它。 第10章:XML模式—— 背景知识、语言和一般用法 在本章中,我们将开始介绍XML模式语言,它是近年来将从根本上取代文档类型定义(DTD)的XML家族的一个重要新成员。它可以定义允许的XML文档结构和内容,在使用XSLT转换它之前验证XML文档是否为指定的结构。模式可用的范围很广,对于商业应用程序和Web服务来说,从文档的简单验证到XML文档的验证都可以利用它。 第11章:XML模式和.NET 在第10章中,我们讨论了W3C定义的XML模式语言的理论和实践方面的内容。在本章中,我们将把XML模式的知识扩展到.NET中去。我们将介绍创建模式文档的编程技术,同时讨论如何使用.NET类根据这些文档验证XML实例。 第12章:XML在ADO.NET中的用法 ADO.NET是.NET应用程序的新的数据访问模型,在许多方面都取代和改进了传统的ADO技术。最重大的改进之处就是它与XML的紧密集成,而这也将是本章介绍的重点。我们将简单地介绍ADO.NET模型,通过一些示例来演示如何使用它,然后介绍如何在这种情况下使用XML。 第13章:Web 服务和Remoting 在本章中,我们将介绍Web服务,以及由.NET Framework提供的基本技术构成的应用程序的更多内容。本章将介绍下列内容:Web服务、全局XML体系结构、简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、Microsoft的DISCO发现XML文档、通用描述、发现和集成服务(UDDI)以及Remoting和XML配置文件。显然,这些主题的范围比较广,但读者将看到XML是如何作为这些技术的整个底层框架的基础的,XML的使用将更为必要,而了解其用途也将非常重要。 第14章:案例分析:一个简单的新闻门户网站 该案例分析演示了可以使用本书中介绍的哪些技术来创建一个简单的新闻门户网站。我们使用绑定到DataSet的可编辑的DataGrid,使远程内容提供者的内容登记更为容易,还演示了在与XmlDataDocument同步时,如何使用Xpath查询DataSet。 我们演示了如何使用XSD模式验证内容,确保提交的XML/HTML文件是结构化的,以便用于我们的系统中。最后,我们介绍了如何通过对SQL Server 2000数据库查询直接返回XML,使用XSLT可以将它直接转换到浏览器中,可以很容易地转换成任何浏览器类型,轻松改变站点布局。 本书读者对象 本书主要为开发人员提供一个指导性方法,知道可以利用XML实现的内容。不过,本书不是针对初学者的,它假定读者具备下列知识: 一些VB.NET的知识—— 本书并不需要任何特别高级的VB.NET功能,但读者需要熟悉基本语法。 知道如何运用Visual Studio .NET。 使用本书的条件 本书中的示例要用Visual Studio .NET专业版或标准版和SQL Server 2000运行,操作系统需要是Windows 2000或Windows XP专业版。 示例的完整源代码可从站点上下载。 用户支持和反馈 我们一贯重视读者的意见,并想知道每位读者对本书的看法,包括读者喜欢和不喜欢的内容,以及读者希望我们下一次完善的地方。您可以通过发送电子邮件(地址为feedback@)来向我们反馈意见。请确保在反馈信息中记录了本书的ISBN和书名。 源代码和更新 在学习本书中的示例时,您也许倾向于手工键入所有代码。许多读者都愿意这样做,主要是因为这是一种能够帮助我们熟练掌握所需编码技巧的好途径。不过,无论您是否希望手工键入所有示例代码,我们都将在站点上放置本书示例的所有源代码,以满足那些希望得到源代码的读者的要求。 当您访问Wrox公司站点(地址为/)时,通过Search工具或书名列表,可以方便地定位需要的书目。然后,单击Code列中的Download超链接,或者单击本书的详细信息页面中的Download Code超链接,就可以下载相应的示例代码。 从我们的站点上下载的可用文件都是使用WinZip压缩过的文档。把附件保存到本地磁盘上的文件夹中后,需要使用一个解压缩程序(例如WinZip或PKUnzip)来解压缩文件。在解压缩文件时,通常将代码解压缩到每一章所在的文件夹中。在解压缩的过程中,应确保解压缩程序已经选中Extract to(或对等选项)选项并使用原有文件夹名作为解压缩目标文件夹名。 即使您喜欢手动键入示例代码,但仍然可以使用我们的源代码来检验可获得的结果—— 如果您认为自己可能存在输入错误时,示例源代码可以帮助您验证错误,得到正确结果。如果您不喜欢手工键入示例代码,那就必须从我们的站点上下载源代码。总之,源代码有利于您更新和调试示例程序。 勘误表 我们已经尽最大努力确保本书中的文本和代码没有错误,但是错误仍然在所难免。如果您发现本书存在错误,例如拼写错误或不正确的代码段,请反馈信息给我们,我们将不胜感激。勘误表的发送可以节约其他读者学习本书的时间,而且能够帮助我们提供更高质量的信息。请将您的反馈信息以电子邮件的形式发送到support@,它们将被检查,如果正确,将被粘贴到本书的勘误页面上,或者在本书的后续版本中使用。 要在我们的站点上找到勘误表,请访问/,并通过Search工具或者书名列表轻松定位本书页面。然后单击Book Errata超链接即可,该链接位于本书的详细页面中。在这个页面中,您可以看到所有已经由编辑检查并提交的勘误内容。也可以通过单击Submit Errata链接,通知我们您已经发现的勘误内容。 技术支持 如果您希望直接向详细了解本书的专家咨询本书中问题,可以发送电子邮件到support@,要求在邮件的主题栏中带上本书的书名和ISBN(国际标准图书编号)的后4位数字。一封典型的电子邮件应包括下面的内容: 在主题栏中必须有本书的书名、ISBN的后4位数字(本书是7787)和问题所在的页码。 正文部分应包括读者的名字、联系信息和问题。 我们不会给您发垃圾邮件。我们只需要详细的资料,以便节约您和我们的时间。当您发送一封电子邮件时,它将经过下面一系列支持: 客户支持:首先,您的信息将被递送到我们的客户支持人员手中,并由他们阅读。他们备有常见问题的文件,并将立即回答有关本书或者Web站点的任何常见问题。 编辑支持:接着,一些有深度的问题将被送到对本书负责的技术编辑手中,他们在程序设计语言或者特定的产品上有着丰富的经验,能够回答相关主题的详细技术问题。问题一旦得到解决,编辑会及时将勘误表发送到我们的Web站点上。 作者支持:最后,如果编辑不能回答您的问题(这种情况很少发生),他们将求助于本书的作者。我们将尽量使作者免受干扰,以便不影响其写作。然而,我们也非常高兴转寄给他们一些特殊的问题。所有Wrox公司的作者都为他们的书提供技术支持。作为回应,他们将发送电子邮件给用户和编辑,进而使所有的读者受益。 说明: Wrox公司的支持过程仅仅对那些与我们出版的书目内容直接相关的问题提供支持,对于超出常规书目支持的问题,您可以从/论坛的公共列表中获得支持信息。 站点 为了便于作者和其他人讨论,请加入到P2P站点的邮件列表中,除了一对一的邮件支持系统外,我们独特的系统将programmer to programmer™(由程序员为程序员而著)的创作理念与邮件列表、论坛、新闻组等其他服务相联系。如果您向P2P发送一个问题,应该相信它一定会被登录邮件列表的Wrox公司作者和其他相关专家发现。无论您是在阅读本书,还是在开发自己的应用程序,都可以在站点中找到许多对自己有所帮助的邮件列表。 按照下面的步骤可以预订一个邮件列表: (1) 登录/站点,并从左边的菜单栏选择一个适当的类别。 (2) 单击您希望加入的邮件列表。 (3) 按照说明订阅并填写自己的邮件地址和密码。 (4) 回复您收到的确认邮件。 (5) 使用预订管理程序加入更多的邮件列表并设置自己的邮件首选项。