XML技术和Web服务

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第12章XML技术和Web服务

12.1 XML概述

XML是"eXtensible Markup Language"的缩写,即可扩展标记语言。XML对于语法有着严格的规定,只有当一个XML文档符合语法规定,处理程序才能对它加以分析和处理。每个XML文档都有一个逻辑结构和物理结构。从逻辑上讲,文档由声明(declaration)、元素(element)、注释(comment)、字符引用(character reference)和处理说明(processing instruction)组成。

1、XML声明

XML声明是处理指令的一种,一个XML文档最好以一个XML声明作为开始。下面是一个完整的XML声明:

在一个XML的处理指令中必须包括version属性,指明所采用的XML的版本号,而且它必须在属性列表中排在第一位。standalone属性表明该XML文档是否和一个外部文档类型定义DTD配套使用。encoding属性则指明了数据所采用的编码标准。

2、元素

元素是XML文档内容的基本单元。从语法上讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。其形式是:

<标记>数据内容

对于标记有以下语法规定:

标记都区分大小写。

要有正确的结束标记。结束标记除了要和起始标记在拼写和大小写上完全相同,还必须在前面加上一个斜杠"/"。当一对标记之间没有任何文本内容

时,可以不写结束标记,而在起始标记的最后冠以斜杠"/"来确认。这样的

标记称为"空标记"。

XML标记都必须合理嵌套。

标记命名要合法。标记名应该以字母、下划线"_"或冒号":"开头,后面跟字母、数字、句号". "、冒号、下划线或连字符"-",但是中间不能有空格,而

且任何标记名不能以"XML"(或者"XML"大小写的任何组合,如"XML"、

"XML"、"XML"等等)起始。

有效使用属性。标记中可以包含任意多个属性,属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号"="分隔,且取值用引号引起来。

3、CDATA节

在标记CDA TA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDA TA的形式如下:

<![CDATA[ 文本内容]] >

CDA TA的文本内容中不能出现字符串"]]>",另外,CDA TA不能嵌套,

0第12章 XML技术和Web服务

2 4、注释

注释是在XML文档中加入一些用作解释的字符数据,XML处理器不对它们进行任

何处理。在XML中,注释的方法与HTML完全相同,用"<!--"和"-->"将注释文本引起来。对于注释还有以下规定:

❑注释不能出现在XML声明之前;

❑注释不能出现在标记中;

❑注释中不能出现连续两个连字符,即"--" 如:

❑注释中可包含元素,但元素中不能包含"--"包含的元素解析时被忽略;

❑注释不能嵌套;

5、处理指令

处理指令是用来给处理XML文档的应用程序提供信息的,XML分析器把信息原封不动地传给应用程序,由应用程序来解释这个指令,并遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:

<?处理指令名处理指令信息>

XML文档使用的是自描述的和简单的语法,一个XML文档最基本的构成包括:声明,处理指令(可选)和元素。

12.2 XML常用对象

XML所有对象都在System.Xml命名空间中,并且这些对象是以XmlDocument对象为核心组织起来的。下面来讲解一下XML常用对象。

1、XmlNode对象

XmlNode对象表示XML 文档中的单个节点。该对象常用属性及方法意义如下:

✧Name属性:获取节点的限定名。

✧V alue属性:获取或设置节点的值。

✧BaseURI属性:获取当前节点的基URI。

✧ChildNodes属性:获取节点的所有子节点。

✧FirstChild属性:获取节点的第一个子级。

✧HasChildNodes属性:获取一个值,该值指示节点是否有任何子节点。

✧LastChild属性:获取节点的最后一个子级。

✧NamespaceURI属性:获取该节点的命名空间URI。

✧WriteTo方法:将当前节点保存到指定的XmlWriter对象中。

✧SelectSingleNode方法:选择匹配XPath 表达式的第一个XmlNode。

✧SelectNodes方法:选择匹配XPath 表达式的节点列表。

✧RemoveChild方法:移除指定的子节点。

✧RemoveAll方法:移除当前节点的所有子节点和/或属性。

✧PrependChild方法:将指定的节点添加到该节点的子节点列表的开头。

✧InsertBefore方法:将指定的节点紧接着插入指定的引用节点之前。

峰杰工作室

✧InsertAfter方法:将指定的节点紧接着插入指定的引用节点之后。

✧AppendChild方法:将指定的节点添加到该节点的子节点列表的末尾。

✧Clone方法:创建当前节点的一个副本。

2、XmlDocument对象

XmlDocument对象用来描述XML文件对象。在进行实例化时,可以由XmlReader 对象打开一个现有的XML文件,也可以根据自身的构造函数创建一个XML文件对象。当XmlDocument对象被创建或赋值时,将在内存中生成一个描述XML文件对象,这样就可以在这个对象范围内,对指定的XML文件执行导航和写入的操作。该对象常用属性及方法意义如下:

✧Name属性:获取节点的限定名。

✧NodeType属性:获取当前节点的类型。

✧ParentNode属性:获取该节点(对于可以具有父级的节点)的父级。

✧LocalName属性:获取节点的本地名称。

✧InnerXml属性:获取或设置表示当前节点子级的标记。

✧DocumentType属性:获取包含DOCTYPE 声明的节点。

✧DocumentElement属性:获取文档的根System.Xml.XmlElement。

✧SchemaInfo属性:返回节点的后架构验证信息集(PSVI)。

✧ImportNode方法:将节点从另一个文档导入到当前文档。

✧Load方法:从指定的URL 加载XML 文档。

✧LoadXml方法:从指定的字符串加载XML 文档。

✧ReadNode方法:根据System.Xml.XmlReader 中的信息创建一个

System.Xml.XmlNode 对象。读取器必须定位在节点或属性上。

✧Save方法:将XML 文档保存到指定的文件。

✧CreateElement方法:创建具有指定名称的元素。

3、XmlReader对象

XmlReader对象就是XML数据读取器,即对XML数据进行快速、非缓存、只进访问。该对象常用属性及方法意义如下:

✧V alue属性:获取当前节点的文本值。

✧ReadState属性:获取读取器的状态。

✧NodeType属性:获取当前节点的类型。

✧Name属性:获取当前节点的限定名。

✧LocalName属性:获取当前节点的本地名称。

✧EOF属性:获取一个值,该值指示此读取器是否定位在流的结尾。

✧IsEmptyElement属性:获取一个值,该值指示当前节点是否为空元素。

✧Depth属性:获取XML 文档中当前节点的深度。

✧Skip方法:跳过当前节点的子级。

✧Read方法:从流中读取下一个节点。

✧MoveToElement方法:移动到包含当前属性节点的元素。

✧Create方法:使用指定的流创建一个新的XmlReader 实例。

3

相关文档
最新文档