1、 22.1 XML文档文档 22.2 在应用程序中使用在应用程序中使用XML 22.3 小结小结22.1 XML文档XML(Extensible Markup Language,可扩展标记语言)是一种描述结构化数据可扩展标记语言)是一种描述结构化数据的方法,简单来说就是一种数据描述语言,的方法,简单来说就是一种数据描述语言,它与它与HTML的主要区别如下。的主要区别如下。XML用来描述数据,而用来描述数据,而HTML用来显示数据。用来显示数据。XML中的标签是未预定义的,在使用时需要自中的标签是未预定义的,在使用时需要自定义,而定义,而HTML里的标签是预定义的。里的标签是预定义的。XML可以
2、广泛应用于可以广泛应用于Web的任何方面,以的任何方面,以满足网络应用的需求。满足网络应用的需求。22.1 XML文档下列代码演示了一个简单的下列代码演示了一个简单的XML文档。文档。主题主题 内容内容22.1.1 XML元素XML元素用于封装数据,是元素用于封装数据,是XML文档的基本单位,文档的基本单位,它由元素的名称和属性值组成。它由元素的名称和属性值组成。XML元素的基本元素的基本结构由开始标记、数据内容和结束标记组成,因结构由开始标记、数据内容和结束标记组成,因此通常此通常XML元素表示从该元素的开始标记到结束元素表示从该元素的开始标记到结束标记之间的部分内容。标记之间的部分内容。注
3、意元素和标签的区别,标签只是一对包含内容注意元素和标签的区别,标签只是一对包含内容的尖括号。例如,的尖括号。例如,“”是标签,是标签,“主题主题”就是一个元素。就是一个元素。在一个在一个XML文档中只能有一个根元素,且它的开文档中只能有一个根元素,且它的开始标记须在所有的子元素之前,结束标记须在所始标记须在所有的子元素之前,结束标记须在所有子元素的结束标记之后。子元素之间可以是父有子元素的结束标记之后。子元素之间可以是父子关系或兄弟关系。子关系或兄弟关系。22.1.1 XML元素下列代码为一段下列代码为一段XML代码。代码。2008-2-14 周三的会议不要迟到周三的会议不要迟到 22.1.2
4、 XML属性 XML属性用于描述数据的详细信息,属性属性用于描述数据的详细信息,属性之中只能包含简单数据类型。通常应该将之中只能包含简单数据类型。通常应该将要存储的大量数据放置于元素的内容中,要存储的大量数据放置于元素的内容中,将元素不同的特性数据以及非必须显示的将元素不同的特性数据以及非必须显示的资料放置在元素的属性中。资料放置在元素的属性中。示例:示例:Tom John 22.1.2 XML属性 对于使用子元素还是为元素添加属性值可对于使用子元素还是为元素添加属性值可以由用户任意选择,但应尽量避免使用属以由用户任意选择,但应尽量避免使用属性。使用属性的弊端如下:性。使用属性的弊端如下:属性
5、无法包含多个值,子元素可以。属性无法包含多个值,子元素可以。属性不易扩展。属性不易扩展。属性无法描述结构,子元素可以。属性无法描述结构,子元素可以。属性更难被编程代码处理。属性更难被编程代码处理。22.1.3 XML文档结构XML文档由文档由DTD和和XML文本组成,所谓文本组成,所谓DTD(document type definitions,文档类型定义),文档类型定义),简单来说就是一组标签的语法规则,类似于数据简单来说就是一组标签的语法规则,类似于数据库表,表明库表,表明XML文本的组织形式。例如,文本的组织形式。例如,DTD可可以表示一个以表示一个必须有一个子标签必须有一个子标签,可以
6、决定是否包含子标签可以决定是否包含子标签等。当然,一等。当然,一个简单的个简单的XML文本可以没有文本可以没有DTD。简单来说,。简单来说,DTD文件可以决定文档的结构,文件可以决定文档的结构,XML文件则存放文件则存放相应的数据。相应的数据。22.1.3 XML文档结构 XML文档是由数据和描述数据的标记组成的。文档的组成部分包括声文档是由数据和描述数据的标记组成的。文档的组成部分包括声明、元素、代码、注释、实体引用、明、元素、代码、注释、实体引用、PCDATA、CDATA和处理命令。和处理命令。声明负责为声明负责为XML文档匹配合适的解析器,其语法形式如下。文档匹配合适的解析器,其语法形式
7、如下。根元素:一个文档中只有一个根元素。根元素:一个文档中只有一个根元素。XML的代码主要由元素和属性构成的代码主要由元素和属性构成。注释的语法形式为注释的语法形式为。实体引用用于内容转义,代表与实体引用用于内容转义,代表与XML规范保留字符相冲突的字符数据,规范保留字符相冲突的字符数据,似类于似类于C#中的转义字符。中的转义字符。PDATA(parsed character data)是会被解析器解析的文本。)是会被解析器解析的文本。CDATA(character data)即字符数据,是不会被解析器解析的文)即字符数据,是不会被解析器解析的文本本。处理指令以处理指令以“”结束结束,紧跟在,
8、紧跟在“?”之后的是一之后的是一个目标应用程序,然后是指令实际内容个目标应用程序,然后是指令实际内容。22.1.4 格式良好并有效的XML结构良好的结构良好的XML文档是指该文档符合文档是指该文档符合XML语法规语法规范;而有效的范;而有效的XML文档是指通过了文档是指通过了DTD(Documnet Type Definition)或)或XML Schema的验证,具有良好结构的的验证,具有良好结构的XML文档。文档。格式良好的文档应满足的条件如下:格式良好的文档应满足的条件如下:文档中至少有一个元素,即根元素。文档中至少有一个元素,即根元素。XML里的标签可区分大小写,例如里的标签可区分大小
9、写,例如主题主题中的两个标签是不相同的。中的两个标签是不相同的。结束标签的位置及格式需正确使用。结束标签的位置及格式需正确使用。嵌套标签需正确使用。例如,嵌套标签需正确使用。例如,“”是是错误的形式,应该为错误的形式,应该为“”。标签名要符合命名规则。标签名要符合命名规则。所定义属性必须是有效的,且不能重复,值要用引号所定义属性必须是有效的,且不能重复,值要用引号分开。分开。22.1.4 格式良好并有效的XMLDTD(Document Type Definition,文档类型定,文档类型定义)是一个义)是一个ASCII文本格式的文件,它使用具体文本格式的文件,它使用具体的语法创建元素、属性和内
10、容模型。的语法创建元素、属性和内容模型。下面是一个包含下面是一个包含DTD的的XML文件,代码如下。文件,代码如下。!DOCTYPE student 01 John22.1.4 格式良好并有效的XML XML Schema用于描述用于描述XML文档的结构,类似于文档的结构,类似于DTD,文件后缀名,文件后缀名为为.xsd(XML Schema Definition)。与)。与DTD不同,不同,XML Schema是基于是基于XML编写的,可针对未来的需求进行扩展,支持数据类型和命编写的,可针对未来的需求进行扩展,支持数据类型和命名空间。名空间。下面以一个简单的下面以一个简单的XML Schem
11、a文件为例来具体介绍,代码如下。文件为例来具体介绍,代码如下。22.2 在应用程序中使用XML在应用程序中使用在应用程序中使用XML时通常会用到几种时通常会用到几种模型,用户需根据这些模型创建的模型,用户需根据这些模型创建的API(应用程序接口)来分析和操作(应用程序接口)来分析和操作XML结构。结构。最常用的模型便是最常用的模型便是DOM(Document Object Model,文档对象模型)。,文档对象模型)。22.2.1 XML文档对象模型XML文档对象模型(文档对象模型(DOM)是树状的对象集,该)是树状的对象集,该对象集包括了组成模型的对象及它们的属性和方对象集包括了组成模型的对
12、象及它们的属性和方法。该模型一般由法。该模型一般由3种基本对象所组成,分别为种基本对象所组成,分别为:XmlDocument对象(对象(XML数据的来源);数据的来源);XmlNode对象(模型中的一个节点);对象(模型中的一个节点);XmlNodeList对象(兄弟节点的集合)。对象(兄弟节点的集合)。XmlDocument对象用于表示对象用于表示XML文档中的数据文档中的数据来源。该对象模型允许用户使用任何支持来源。该对象模型允许用户使用任何支持XML的的浏览器或应用程序加载浏览器或应用程序加载XML文件。文件。XmlNode对象用于描述对象用于描述XML文档中的节点信息。文档中的节点信息
13、。节点可以是元素、属性、处理命令、字符等。节点可以是元素、属性、处理命令、字符等。XmlNodeList对象用于描述对象用于描述XmlNode对象的集合,对象的集合,且可利用该对象访问其中的所有元素。且可利用该对象访问其中的所有元素。22.2.2 选择节点示例:示例:1.xmlChild elect one Child elect two利用利用XmlDocument对象的方法和属性来访问根对象的方法和属性来访问根节点和子节点,如访问第一个子节点并返回它节点和子节点,如访问第一个子节点并返回它的内容的内容“Child elect one”,代码如下:,代码如下:XmlDocument doc=
14、new XmlDocument();doc.Load(1.xml);doc.DocumentElement.ChildNodes.Item(0).InnerText;22.2.3 读写XML文件System.XML名称空间中定义了两个类,分别为名称空间中定义了两个类,分别为XmlReader类和类和XmlWriter类。其中,类。其中,XmlReader类中的类中的Read函数用于读函数用于读XML文档,文档,直到节点尾部;直到节点尾部;XmlWriter类用于写类用于写XML文档。文档。XmlReader对象:是一个提供对对象:是一个提供对XML数据的非缓数据的非缓存、只进只读访问的抽象基类
15、存、只进只读访问的抽象基类,XmlReader类可类可以检查字符是否为合法的以检查字符是否为合法的XML字符,元素和属性字符,元素和属性的名称是否为有效的的名称是否为有效的XML名称,名称,XML文档的格式文档的格式是否正确,可以根据是否正确,可以根据DTD或或XML Schema验证数验证数据,可以从据,可以从XML流检索数据或使用提取模型跳过流检索数据或使用提取模型跳过不需要的记录。不需要的记录。XMLWriter对象能够提供一种快速、非缓存和只对象能够提供一种快速、非缓存和只进的方式来生成包含进的方式来生成包含XML数据的流或文件。数据的流或文件。22.2.3 读写XML文件示例:演示示
16、例:演示XmlReader对象的使用方法。对象的使用方法。XmlReaderSettings settings=new XmlReaderSettings();settings.ProhibitDtd=false;settings.ValidationType=ValidationType.DTD;settings.ValidationEventHandler+=new ValidationEventHandler(Validation);XmlReader reader=XmlReader.Create(a.xml,settings);22.2.4 验证XML文件 在在C#.Net中,可以使
17、用中,可以使用XmlReader类对类对XML文件强制进行验证。其中,文件强制进行验证。其中,XmlReaderSettings类的类的ValidationType属性确定属性确定XmlReader实例是否强制实例是否强制进行验证。进行验证。示例:下列代码演示使用示例:下列代码演示使用DTD文件验证文件验证XML文件。文件。public static void Main()XmlReaderSettings settings=new XmlReaderSettings();settings.ProhibitDtd=false;settings.ValidationType=Validation
18、Type.DTD;settings.ValidationEventHandler+=new ValidationEventHandler(Validation);XmlReader reader=XmlReader.Create(d:a.xml,settings);while(reader.Read();private static void Validation(object sender,ValidationEventArgs e)Console.WriteLine(验证错误验证错误:0,e.Message);22.3 小结本章主要介绍了本章主要介绍了XML的基本知识及其应用。的基本知识及
19、其应用。XML用于用于描述数据内容的,这也是与描述数据内容的,这也是与HTML标记的不同之处。标记的不同之处。XML文档是文档是XML的表现形式,由元素和属性两个基本的表现形式,由元素和属性两个基本块组成。块组成。XML元素和属性分别用于表示数据和描述数元素和属性分别用于表示数据和描述数据,因而具有代表性和基础性。一个据,因而具有代表性和基础性。一个XML文档除了具文档除了具有元素和属性外,还有其他诸如声明、实体引用、注有元素和属性外,还有其他诸如声明、实体引用、注释等的部分,在使用时要严格遵循各自的规则。最后释等的部分,在使用时要严格遵循各自的规则。最后介绍了介绍了XML文档对象模型(文档对象模型(DOM)、读写)、读写XML文件文件和验证和验证XML文件。在文件。在XML文档对象模型中,详细介绍文档对象模型中,详细介绍了组成这个模型的了组成这个模型的3种对象,并对它们的常用属性和种对象,并对它们的常用属性和方法进行了详细介绍。对于读写方法进行了详细介绍。对于读写XML文件,详细介绍文件,详细介绍了使用了使用XMLReader和和XMLWriter访问访问XML文件和验文件和验证证XML文件方法。文件方法。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。