XML已成为近年来最热闹的IT技术之一,并且已经广泛应用于编程领域中。\r\n 本书主要讲述了XML技术在VB.NET中的应用。同时介绍了XML的相关技术,如XPath、XSLT和XML Schema等。主要内容包括:XML语法和格式良好的XML、XML命名空间、利用DTD和XML Schema进行XML验证、使用SOAP和Web服务,以及运用ADO.NET进行数据库访问等。本书还用两个案例分析来展示XML的具体应用。\r\n 本书适合具有一定的VB.NET编程经验又想了解XML知识的开发人员。
第1章 在VB.NET中使用XML的原因\r\n\r\n1.1 使用XML的原因\r\n1.1.1 开放性\r\n1.1.2 简单性\r\n1.1.3 自描述性\r\n1.1.4 互操作性\r\n1.1.5 结构\r\n1.1.6 分开结构和内容\r\n1.1.7 可扩展性\r\n1.2 XML的定义\r\n1.2.1 XML涉及多种语言\r\n1.2.2 XML文档\r\n1.3 使用XML的领域\r\n1.3.1 内容表示\r\n1.3.2 企业对企业电子商务\r\n1.3.3 远程过程调用\r\n1.3.4 数据存储和访问\r\n1.3.5 不使用XML的情况\r\n1.4 XML标准\r\n1.4.1 万维网联盟\r\n1.4.2 XML标准\r\n1.4.3 与XML相关的标准\r\n1.4.4 标准重要的原因\r\n1.5 XML如何适应.NET\r\n1.5.1 在:NET Framework中使用XML\r\n1.5.2 .NET中的XML支持\r\n1.6 小结\r\n\r\n第2章 XML概述\r\n\r\n2.1 XML的概念\r\n2.1.1 XML元素\r\n2.1.2 XML特性\r\n2.1.3 XML解析器\r\n2.1.4 构建XML\r\n2.1.5 XML文档的各个组成部分\r\n2.2 创建格式良好的XML文档\r\n2.2.1 XML文档中的元素\r\n2.2.2 XML文档中的特性\r\n2.2.3 在XML中使用注释\r\n2.3 验证XML文档的有效性\r\n2.3.1 文档类型定义\r\n2.3.2 XML Schema\r\n2.3.3 XML编码\r\n2.4 小结\r\n\r\n第3章 在.NET中使用XML\r\n\r\n3.1 XML如何适合.NET\r\n3.1.1 XML\r\n3.1.2 文档对象模型(DOM)\r\n3.1.3 命名空间\r\n3.1.4 DTD和 XML Schema\r\n3.1.5 XPath\r\n3.1.6 XSLT\r\n3.2 .NET Framework使用 XML\r\n3.2.1 配置文件\r\n3.2.2 技术文档\r\n3.2.3 ADO.NET\r\n3.2.4 SOAP和Web服务\r\n3.3 案例分析——电话簿样式应用程序\r\n3.4 小结\r\n\r\n第4章 在.NET中读取XML\r\n\r\n4.1 流模型\r\n4.1.1 流模型和DOM\r\n4.1.2 流模型中的变量\r\n4.2 XmlTextReader类\r\n4.2.1 XmlTextReader属性\r\n4.2.2 读取特性\r\n4.2.3 读取较大的数据块\r\n4.3 XmlNodeReader类\r\n4.4 XmlValidatingReader 类\r\n4.5 小结\r\n\r\n第5章 在.NET中编写XML\r\n\r\n5.1 利用.NET类编写XML文档\r\n5.2 Xmlwriter类\r\n5.2.1 Xmlwriter方法\r\n5.2.2 Xmlwriter属性\r\n5.3 XmlTextwriter类\r\n5.3.1 XmlTextwriter构造函数\r\n5.3.2 XmlTextwriter属性\r\n5.3.3 使用 XmlTextwriter\r\n5.4 小结\r\n\r\n第6章 在.NET中实现DOM\r\n\r\n6.1 文档对象模型(DOM)\r\n6.1.1 文档对象模型与流模型\r\n6.1.2 .NET DOM继承模型\r\n6.2 XmlNode类\r\n6.2.1 XmlNode的定义\r\n6.2.2 XmlNode属性\r\n6.2.3 XmlNode方法\r\n6.3 XmlDocument类\r\n6.3.1 创建节点\r\n6.3.2 加载和保存\r\n6.3.3 迭代遍历XmlDocument实例\r\n6.3.4 编辑XML文档\r\n6.4 案例分析\r\n6.4.1 体系结构\r\n6.4.2 应用程序详细信息\r\n6.4.3 加载用户联系人\r\n6.4.4 搜索联系人\r\n6.4.5 导出联系人\r\n6.4.6 导入其他联系人\r\n6.5 小结\r\n\r\n第7章 XPath和.NET\r\n\r\n7.1 System.Xml.XPath命名空间\r\n7.2 .NET中的 XPath类\r\n7.2.1 XPathDocument类\r\n7.2.2 XPathNavigator类\r\n7.2.3 XPathExpression类\r\n7.3 自定义导航器\r\n7.4 XML串行化\r\n7.4.1 如何进行串行化\r\n7.4.2 XmlSerializer类\r\n7.4.3 XmlRootAttribute类\r\n7.4.4 XmlElementAttribute类\r\n7.4.5 XmlAttributeAttribute类\r\n7.4.6 使用多个类进行串行化\r\n7.4.7 改进案例分析\r\n7.5 小结\r\n\r\n第8章 XSLT\r\n\r\n8.1 XSLT\r\n8.1.1 何时使用XSLT\r\n8.1.2 XSL语言\r\n8.1.3 使用 XSL\r\n8.1.4 XSL命名空间\r\n8.1.5 剖析一个简单的XSL示例\r\n8.2 创建XSLT样式表\r\n8.2.1 使用XSLT元素\r\n8.2.2 模式、匹配和模板\r\n8.2.3 高级模板\r\n8.2.4 XSLT函数\r\n8.2.5 XSLT和空白\r\n8.3 小结\r\n\r\n第9章 在.NET中使用XSLT\r\n\r\n9.1 .NET中的 XSLT类\r\n9.1.1 XslTransform类\r\n9.1.2 XsltArgumentList类\r\n9.2 小结\r\n\r\n第10章 XML模式——背景知识、语言和一般用法\r\n\r\n10.1 XML模式(XSD)的任务\r\n10.2 格式良好且有效的XML模式\r\n10.3 模式的定义\r\n10.4 XML模式定义语言\r\n10.4.1 哪些元素可以显示\r\n10.4.2 定义特性\r\n10.5 XML模式数据类型\r\n10.6 模式验证技术\r\n10.6.1 验证和命名空间\r\n10.6.2 通过编程方式进行的验证\r\n10.7 内联模式\r\n10.8 模式模块化\r\n10.8.1 包含模式\r\n10.8.2 导入模式\r\n10.8.3 模式的一般用途\r\n10.9 案例分析——创建XSD模式\r\n10.10 小结\r\n\r\n第11章 XML模式和.NET\r\n\r\n11.1 在Visual Studio.NET中利用模式编辑器\r\n11.1.1 根据 XML文档生成模式\r\n11.1.2 通过编程方式验证 XML\r\n11.1.3 处理异常和利用 ValidationEventHandler\r\n11.2 XSD和用 xsd.exe进行串行化\r\n11.3 案例分析——改进验证操作\r\n11.4 小结\r\n\r\n第12章 XML在ADO.NET中的用法\r\n\r\n12.1 ADO.NET概述\r\n12.2 .NET数据提供者\r\n12.2.1 Connection类\r\n12.2.2 Command类\r\n12.2.3 DataReader类\r\n12.2.4 DataAdapter类\r\n12.2.5 CommandBuilder类\r\n12.3 Dataset类\r\n12.3.1 数据访问策略\r\n12.3.2 在DataTable中处理数据\r\n12.3.3 关系\r\n12.3.4 Dataset和XML\r\n12.4 XmlDataDocument类\r\n12.5 小结\r\n\r\n第13章 Web服务和Remoting\r\n\r\n13.1 Web服务的定义\r\n13.1.1 GXA全局XML体系结构\r\n13.1.2 Web服务和.NET\r\n13.2 SOAP协议\r\n13.3 WSDL\r\n13.3.1 WSDL的用法\r\n13.3.2 简单的 WSDL文件\r\n13.3.3 发现——DISCO\r\n13.3.4 目录——UDDI\r\n13.4 .NET Remoting\r\n13.4.1 什么是Remotingr-一体系结构概述\r\n13.4.2 远程配置\r\n13.5 案例分析和 Web服务\r\n13.5.1 修改当前的应用程序\r\n13.5.2 创建Web服务\r\n13.5.3 测试Web服务\r\n13.6 小结\r\n\r\n第14章 案例分析:一个简单的新闻门户同站\r\n\r\n14.1 应用程序概述\r\n14.2 应用程序的体系结构\r\n14.3 业务层\r\n14.4 表示层\r\n14.5 部署\r\n14.6 使用新闻门户网站应用程序\r\n14.6.1 安全性和提供者注册\r\n14.6.2 内容管理\r\n14.6.3 内容管理的工作原理\r\n14.6.4 contentManager.aspx\r\n14.6.5 contentManager.aspx.vb\r\n14.7 主页\r\n14.7.1 主页的工作原理\r\n14.7.2 浏览内容\r\n14.7.3 今天我们要发布什么类型的新闻\r\n14.7.4 SQLXML托管类\r\n14.8 改进的建议\r\n14.9 小结\r\n\r\n附录A 模式数据类型参考\r\n\r\nA.1 XML模式内置数据类型\r\nA.2 约束数据类型方面\r\n\r\n附录B XSL支持
欢迎阅读本书。近年来,可扩展标记语言(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文档、通用描述、发现和 集成服务(UDD)以及Remoting和XML配置文件。显然,这些主题的范围比较广,但读者将看 到XML是如何作为这些技术的整个底层框架的基础的,XML的使用将更为必要,而了解其用 途也将非常重要。
第14章:案例分析:一个简单的新闻门户网站
该案例分析演示了可以使用本书中介绍的哪些技术来创建一个简单的新闻门户网站。我们 使用绑定到DataSet的可编辑的DataGrid,使远程内容提供者的内容登记更为容易,还演示了 在与XmlDataDocument同步时,如何使用XPath查询DataSet。
我们演示了如何使用XSD模式验证内容,确保提交的XML/MTML文件是结构化的,以便 用于我们的系统中。最后,我们介绍了如何通过对SQL Server 2000数据库查询直接返回 XML,使用XSLT可以将它直接转换到浏览器中,可以很容易地转换成任何浏览器类型,轻松改变站 点布局。
本书读者对象
本书主要为开发人员提供一个指导性方法,知道可以利用XML实现的内容。不过,本书 不是针对初学者的,它假定读者具备下列知识:
.一些VB.NET的知识——本书并不需要任何特别高级的VB.NET功能,但读者需要熟悉基本语法。
.知道如何运用 Visual Studio.NET。
使用本书的条件
本书中的示例要用 Visual Studio.NET专业版或标准版和 SQL Server 2000运行,操作系统 需要是Windows 2000或 Windows XP专业版。
示例的完整源代码可从http://www.wrox.com站点上下载。
用户支持和反馈
我们一贯重视读者的意见,并想知道每位读者对本书的看法,包括读者喜欢和不喜欢的内 容,以及读者希望我们下一次完善的地方。您可以通过发送电子邮件(地址为 feedback@wrox.com)来向我们反馈意见。请确保在反馈信息中记录了本书的ISBN和书名。
源代码和更新
在学习本书中的示例时,您也许倾向于手工键入所有代码。许多读者都愿意这样做,主要 是因为这是一种能够帮助我们熟练掌握所需编码技巧的好途径。不过,无论您是否希望手工键 入所有示例代码,我们都将在Wrox.com站点上放置本书示例的所有源代码,以满足那些希望 得到源代码的读者的要求。
当您访问Wrox公司站点(地址为http://www.wrox.com/)时,通过Search工具或书名列表,可以方便地定位需要的书目。然后,单击Code列中的Download超链接,或者单击本书的详细信息页面中的Download Code超链接,就可以下载相应的示例代码。
从我们的站点上下载的可用文件都是使用WinZip压缩过的文档。把附件保存到本地磁盘 上的文件夹中后,需要使用一个解压缩程序(例如 WinZip或 PKUnzip)来解压缩文件。在解压缩 文件时,通常将代码解压缩到每一章所在的文件夹中。在解压缩的过程中,应确保解压缩程序 已经选中 Extract to或对等选项)选项并使用原有文件夹名作为解压缩目标文件夹名。
即使您喜欢手动键入示例代码,但仍然可以使用我们的源代码来检验可获得的结果——如果您认为自己可能存在输入错误时,示例源代码可以帮助您验证错误,得到正确结果。如果您 不喜欢手工键入示例代码,那就必须从我们的站点上下载源代码。总之,源代码有利于您更新 和调试示例程序。
勘误表
我们已经尽最大努力确保本书中的文本和代码没有错误,但是错误仍然在所难免。如果您 发现本书存在错误,例如拼写错误或不正确的代码段,请反馈信息给我们,我们将不胜感激。 勘误表的发送可以节约其他读者学习本书的时间,而且能够帮助我们提供更高质量的信息。请 将您的反馈信息以电子邮件的形式发送到support@wrox.com,它们将被检查,如果正确,将被 粘贴到本书的勘误页面上,或者在本书的后续版本中使用。
要在我们的站点上找到勘误表,请访问 http://www.wrox.com/,并通过 Search工具或者书 名列表轻松定位本书页面。然后单击 Book Errata超链接即可,该链接位于本书的详细页面中。 在这个页面中,您可以看到所有已经由编辑检查并提交的勘误内容。也可以通过单击Submit Errata链接,通知我们您已经发现的勘误内容。
技术支持
如果您希望直接向详细了解本书的专家咨询本书中问题,可以发送电子邮件到 support@wrox.com,要求在邮件的主题栏中带上本书的书名和ISBN国际标准图书编号)的后4 位数字。一封典型的电子邮件应包括下面的内容:
.在主题栏中必须有本书的书名、ISBN的后4位数字(本书是7787)和问题所在的页码。
.正文部分应包括读者的名字、联系信息和问题。
我们不会给您发垃圾邮件。我们只需要详细的资料,以便节约您和我们的时间。当您发送 一封电子邮件时,它将经过下面一系列支持:
.客户支持:首先,您的信息将被递送到我们的客户支持人员手中,并由他们阅读。他们备有常见问题的文件,并将立即回答有关本书或者Web站点的任何常见问题。
.编辑支持:接着,一些有深度的问题将被送到对本书负责的技术编辑手中,他们在程序设计语言或者特定的产品上有着丰富的经验,能够回答相关主题的详细技术问题。问题一旦得到解决,编辑会及时将勘误表发送到我们的Web站点上。
.作者支持:最后,如果编辑不能回答您的问题(这种情况很少发生),他们将求助于本书的作者。我们将尽量使作者免受干扰,以便不影响其写作。然而,我们也非常高兴转寄给他们一些特殊的问题。所有Wrox公司的作者都为他们的书提供技术支持。作为回应,他们将发送电子邮件给用户和编辑,进而使所有的读者受益。
说明:
Wrox公司的支持过程仅仅对那些与我们出版的书目内容直接相关的问题提供支持,对于超出常规书目支持的问题,您可以从 http://p2p.wrox.com/论坛的公共列表中获得支持信息。
p2p.wrox.com站点
为了便于作者和其他人讨论,请加入到P2P站点的邮件列表中,除了一对一的邮件支持系 统外,我们独特的系统将 programmer to programmerTM(由程序员为程序员而著)的创作理念与邮 件列表、论坛、新闻组等其他服务相联系。如果您向P2P发送一个问题,应该相信它一定会被 登录邮件列表的Wrox公司作者和其他相关专家发现。无论您是在阅读本书,还是在开发自己 的应用程序,都可以在p2p.wrox.com站点中找到许多对自己有所帮助的邮件列表。
按照下面的步骤可以预订一个邮件列表:
(1)登录 http://p2p.wrox.com/站点,并从左边的菜单栏选择一个适当的类别。
(2)单击您希望加入的邮件列表。
(3)按照说明订阅并填写自己的邮件地址和密码。
(4)回复您收到的确认邮件。
(5)使用预订管理程序加入更多的邮件列表并设置自己的邮件首选项。