您的位置: 网站首页 > 程序开发 > C#程序设计 > 第11章 XML编程 > 【11.1 .NET框架中的XML】

11.1 .NET框架中的XML

 

XML的全称是Extensible Markup Language,中文名称为可扩展标记语言。XML语言在不断的应用中逐渐成熟和流行起来,C#中提供了对XML的支持。本章主要介绍XML的相关知识。

本章主要内容

&        XML的基础知识

&        C#中对XML的支持

&        XmlDocument的使用

&        XmlReader的使用

&        XmlNode的使用

&        访问XML文档

&        使用XML文档

11.1  .NET框架中的XML

XML技术与HTML既有相似性,也有其自身的特殊性,对HTML语言比较熟悉的读者可以快速地浏览本章内容。本章将简单地介绍XML技术的由来和特点。

11.1.1  理解XML

XMLHTML都来自于标准通用标记语言(Standard Generalized Markup LanguageSGML)。标准通用标记语言早在Web发明之前就已经产生。从其命名可以知道,SGML是一种用标记来描述文档资料的通用语言。SGML包含了一系列的DTD(文档类型定义)。DTD中定义了标记的含义,因此SGML的语法是可以根据需要进行扩展的。SGML的内容十分复杂,不但不容易学,也不容易使用,在计算机上实现难度也非常大。鉴于这些因素,一些研究人员对SGML进行了精简,提出了HTML语言的概念。

HTML只使用了标准通用标记语言中的部分标记。在HTML中,固定了可以使用的标记个数,这样更便于其在计算机上实现,即HTML语法是不可扩展的。因此,HTML不需包含DTD。由于HTML语法的这种固定性,使得其易学易用,开发符合HTML语法要求的浏览器也比较方便。HTML语言的这种简单特性使其流行开来,走进了几乎所有的计算机中。

随着计算机技术的发展,Web应用越来越广泛,无论是开发人员还是普通用户都逐渐对HTML提出了更高的要求。HTML语言已经越来越不适合Web的发展。尽管HTML语言一直在进行不同形式的更新、改革,但始终难以满足日益增长的需求。另外一方面,随着计算机软硬件技术的发展,现在可以开发出远比当年更加复杂的Web浏览器,这也从另一方面促进了Web技术的发展,提出了新型Web页面语言的要求。

Web语言的选取上曾经存在着部分争论,这些争论主要集中于是否选用SGML语言。但是由于SGML对于当前的Web页面技术仍然存在过于庞大,开发人员学习成本过高的问题,另外开发一个满足SGML语言全部要求的浏览器也过于复杂。因此,随着讨论的深入,逐渐倾向于采用XML语言作为新的Web语言,即SGML的子集。XML语言得到了Web标准化组织W3C的支持,因此其规范程度得到了保证,其普及程度相当高。

11.1.2  XML文档的特点

XML主要具有以下几个特点。

1.简洁有效

XMLSGML进行了有效的精简,选取了SGML的部分子集作为自身的语言。在对SGML的简化过程中,XML保留了SGML的丰富功能以及其SGML的可扩展特性,并充分考虑了HTML的简单特性,这是XMLHTML根本性的差别。XML还包括可扩展格式语言(Extensible Style LanguageXSL)和可扩展链接语言(Extensible Linking LanguageXLL),这些技术使XML的显示和解析更加方便快捷。

2.易学易用

XMLSGML进行了精简,摈弃了SGML中不常用的部分。这不仅便于用户编写Web页面,同时也给开发人员实现新的XML浏览器降低了困难。

3.开放的国际化标准

XMLWeb标准化组织W3C正式批准,因此完全可用于Web和工具的开发。XML支持多种标准,包括文档对象模型标准、可扩展类型语言标准、可扩展链接语言标准和XML指针语言标准。使用XML可以在不同的计算机系统间交换信息,而且还可以跨越国界和不同文化交换信息。

4.高效可扩充

XML支持文档内容的高度复用,开发人员可以开发和使用自定义的标签,也可以与其他开发人员共享,易于扩展。在XML中,可定义一组无限量的标准,因此可以有效地进行XML文件的扩展。

11.1.3  System.Xml命名空间

System.Xml命名空间中的XML类提供使用XML文档和数据的功能。XML类支持分析和编写XML文档,编辑内存中的XML数据、数据验证,以及XSLT转换等。

.NET Framework 2.0中新增了部分功能,有.NET Framework 1.1经验的读者可以迅速地阅读本小节以获得相关的知识。.NET Framework 2.0版中新增了下列System.Xml功能。

·    新的XML数据处理模型:2.0版包含新的内存XML数据处理模型。XPathNavigator类已更新,增加了编辑功能,可以用于修改存储在XmlDocument类中的数据。

·    新的XSLT处理器:XSLT结构在.NET Framework 2.0版中重新设计。XslCompiled- Transform类是新的XSLT处理器。XslCompiledTransform类包括许多性能上的改进,比已过时的XslTransform类速度快得多。

·    类型支持:XmlReaderXmlWriterXPathNavigator类已更新,包含类型支持。这些类上的新方法可以将节点值作为公共语言运行库对象返回。

·    用于创建XmlReaderXmlWriter对象的新模型:在创建XmlReaderXmlWriter对象时,建议使用XmlReaderXmlWriter类上的静态Create方法。使用Create方法可以指定希望XmlReaderXmlWriter对象支持的功能集。

·    架构推断:使用XmlSchemaInference类可以从XML文档的结构推断XML架构定义语言(XSD)架构。