首页
会员中心
到顶部
到尾部
计算机

XML查询语言的分析比较

时间:2020/10/27 9:20:41  作者:  来源:  查看:0  评论:0
内容摘要:要对XML文档进行语法分析就必须考查XML文档的组成和语法构成。一个结构良好的XML文档由三个部分组成:1) 一个可选的序言(prolog)。2) 文档的主体(body),由一个文档元素组成,其下可以由一个或多个元素组成,各元素可以包含其他的元素、字符数据、字符引用、实体引用、P...

要对XML文档进行语法分析就必须考查XML文档的组成和语法构成。
一个结构良好的XML文档由三个部分组成:
1) 一个可选的序言(prolog)。
2) 文档的主体(body),由一个文档元素组成,其下可以由一个或多个元素组成,各元素可以包含其他的元素、字符数据、字符引用、实体引用、PI、注释和CDATA部分等,结构为一个层次树。
3) 可选的的尾声(epilog),其内容包括注释、处理指令(PI)等。这部分内容不必提交给数据库,故不考虑。
由于文档的各个部分相对独立,所以本文采用对文档各部分分别分析的方法进行分析,见图3。以下开始就三部分分别进行考查和分析:
1) 文档序言的分析
首先是XML文档的序言部分。
XML文档是以序言开头的。它用来表示XML数据的开始,描述字符的编码方法,为XML解析器和应用程序提供其他一些配置线索。
序言的组成包括:一个可选的XML声明,可能紧跟着几个(或者没有)注释、处理指令、空白字符,其后可能有一个可选的文档类型声明。由于本文是对XML文档的语法分析不含DTD,所以忽略对文档类型声明的分析。
良构的XML文档由一个XML声明开始,且必须处在文档最前面,即不允许有任何空白或注释。下面的例子是一个XML声明的完整语法:
<?xml version=“1.0” encoding="UTF- 8" standalone=“yes” ?>
﹒version—不能省略;值必须为“1.0”;该属性用来保证对XML未来版本的支持。
﹒encoding—可选;值必须是一种合法的字符编码,例如“UTF-8”、“UTF-16”或者“ISO-8859-1”。
如果没有包含这个属性,就假设是“UTF-8”或“UTF-16”编码,这取决于开始的“<?xml”字符串的格式。
﹒standalone—可选;值必须是“yes”或“no”;如果是“yes”就意味着所有必须的实体声明都包含在文档中,如果是“no”就意味着需要外部的DTD。
由于本文不涉及DTD,所以略去对此项的分析
与大多数XML属性不同,这些必须按上面的顺序依次出现。
由此可得出分析序言的流程,见图4。关于这部分的代码实现很简单,故略,但都需要调用一些基本的函数比如读名称的函数、忽略空白符的函数等,有关代码见附录。接下去开始分析XML文档的主体部分。

2) 文档主体的分析
 先来看一看文档主体的组成。文档的主体是由一个文档元素组成的,该元素下面包含若干个子元素,元素可以包含其他的元素、字符数据、字符引用、实体
引用及CDATA部分等元素内容,整个文档主题构成一个由元素组成的层次树,下面看一下元素的语法特点和组成。
元素使用标记(tag)进行分隔—由一对尖括号(“< >”)围住元素类型名(一个字符串)。每一个元素都必须由一个起始标记和一个结束标记分隔开,这项规则唯一的例外是没有任何内容的元素,即空元素( empty element),它既可以使用起始标记/结束标记对,也可以使用短小精悍的混合形式—空元素标记。
1) 起始标记
一个元素开始的分隔符被称作起始标记。起始标记是一个包含在尖括号里的元素类型名,比如<BOOK>。
2) 空元素标记
 空元素可以用缩略形式表示。空元素标记由一个元素类型名称紧跟一个反斜杠组成,并围在一对尖括号中,比如<AUTHOR/>。
3) 字符引用
在XML中,字符引用是一个字符文字形式的替代品,当对该字符的文字形
式直接处理会导致违反XML对格式正规的要求时,它会起到非常重要的作用。
字符引用用来表示一个可显示的字符,它由十进制或十六进制的数字前面加上“&#”或“&#x”,后面紧跟分号“;”组成,比如©,©(在HTML浏览器中)会被显示为“c”,而& # 1 7 4或& # x A D会显示为“r”。
 

Tags:XML



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号