360 likes | 529 Views
第 3 章 回顾 XML 的基础知识. XML 概述 XML 的主要特性 XML 的其他应用 构造良好的 XML 文档 合法性检验 如何将 XML 文档转换为 HTML 文档 XML Path 语言. 名词解释. W3C-World Wide Web ConsortiumW3C 协会 ( 同盟 ) SGML-Standard Generalized Marked Language 标准通用标记语言 XML-eXtensible Marked Language 可扩展标记语言 XSL-eXtensible Style Language 可扩展格式语言
E N D
第3章 回顾XML的基础知识 XML概述 XML的主要特性 XML的其他应用 构造良好的XML文档 合法性检验 如何将XML文档转换为HTML文档 XML Path语言
名词解释 • W3C-World Wide Web ConsortiumW3C协会(同盟) • SGML-Standard Generalized Marked Language标准通用标记语言 • XML-eXtensible Marked Language 可扩展标记语言 • XSL-eXtensible Style Language可扩展格式语言 • XSD-XML Schema Definition XML模式定义 • XSLT-Extensible Stylesheet Language Transformation可扩展样式表语言转换
XML概述 • XML的产生 XML与HTML一样都是SGML的子集。由于SGML十分庞大,既不容易学,又不容易使用,在计算机上实现也十分困难。所以W3C使用精简的SGML版本-XML • XML的功能 XML是一套定义语义标记的规则,标记将文档分成许多部件并对这些部件加以标识。使用起来非常方便。XML提供了一个直接处理Web数据的通用方法,描述的是Web页面的内容。
XML的十个目标 • XML应该与SGML相兼容 • 处理XML文档的程序应该容易编写 • 在XML中,要求可供选择的特性数量保持绝对的少,更理想一点一个也没有 • XML文档应当是可读性强和条理清晰的 • XML设计的准备工作应该能迅速完成的
XML的十个目标 • XML的设计应当是正规并且简洁的 • XML文档应该容易创建 • 在XML的结构中,简洁、精练应该是无足轻重的 • 在Internet上XML应该是直接可以使用的 • XML应该支持各种各样的应用
XML文档的开发工具 • 编辑器 XML文档在大多数情况下都是用编辑器创建的。编辑器可以是基本的文本编辑器如NotePad,也可以是WYSIWYG的编辑器如XML Spy。 • 语法分析程序和处理程序 XML的语法分析程序(即XML的处理程序)读取文档并检查其中包括的XML是否是结构完整的。还要确定文档是否合法。如果文档通过了测试,则处理程序就将文档转换为元素的树状结构。如XMLSpy就可以进行语法分析。
XML文档的开发工具 • 浏览器和其他工具 语法分析程序将树状结构或是树的节点传送给用户端应用程序。这个应用程序可以是浏览器如Internet Explorer,或是其他能够理解如何处理数据的程序。如果这个应用程序是浏览器的话,数据就显示给用户。其他程序也可以接受数据,如可将数据翻译成数据库的输入、一系列要演奏的乐谱或是要运行的Java程序。总之,XML是非常灵活的,可以用于许多不同的目的
处理过程总结 • 由编辑器创建XML文档 • 语法分析程序将树状结构传送给浏览器,由浏览器显示出来 所有这些部分都是独立的,互相分离的。将这些部分联系在一起的是XML文档。改变编辑程序与终端应用程序无关。事实上,在编写文档时可能不知道最终的应用程序是什么,可能是最终用户来阅读文档,也可能是数据库从中提取数据,甚至还可能是其他的未知的程序。即文档与读取它的程序无关。
XML工具 很多公司开发的软件都支持XML,如XML Spy,Macromedia公司的Dreamweaver UltraDev4就可以用来书写XML文档,Microsoft公司的Internet Explorer5.0已经可以显示、处理和编辑XML文档,Netscape 、Sun公司纷纷表示要在他们的Web工具中支持MXL
XML的特性 • 结构化(必须是结构化的) • 自描述 • 可扩展 • 浏览器自适应
结构化 • XML描述的是文档的结构和意义,不描述页面元素的格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记,不说明文档看起来是什么样的。 • XML是一种标准化的语言规范。XML文件利用了一个DTD规范,DTD规范是一个用来定义XML文件的语法、句法和数据结构的标准。DTD还可以定义在使用每一个所声明的元素时是必需的、可选的还是有条件的,以及可允许的属性值的范围是否有所限制、是否有一个默认值,或者是否允许有空标记等。
结构化 XML定义严格的数据结构对编写Web页的人的好处 • 使各种格式的XML文件都可以被机器所识别 允许机器能够识别各种格式的XML页面就可以让不同的站点之间自动共享不同格式的数据。 • 使用DTD,用户甚至可以通过一个共同的描述连接不同格式的数据
自描述 • XML的第二个特性是允许有自描述信息。尽管并不要求XML文件是自描述的,但带有自描述可以增强Web检索功能。描述称为“元数据(metedata)”。 • XML是一种元标记语言。用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建,在标记的意义上,也具有相当的灵活性。
自描述 新创建的标记可在DTD中加以描述。浏览器不必事先了解多种不同的标记语言使用的每个标记。事实上,浏览器在读入文档和它的DTD时才了解了给定文档使用的标记。关于如何显示这些标记的内容的详细指令是附加在文档在上的另外的样式单提供的。
可扩展性 • 可扩展即可定制的能力 XML能够创建新的标记。在XML中,标记是由DTD定义的,正是它来定义在一个文件的结构中允许有什么样的应用(如风格条、浏览器、检索数据库、打印引擎等)
浏览器自适应 • 如果一个XML文档是结构化的,那么这样的一个文件应该能够适应各种不同的浏览模式。XML的结构允许将Web页面分割成若干部分,以便可以将它们分别发送给任何一种网络附加设备,如PDA、移动电话、家用电器等。 • XML提供的软件功能还能够对用户输入的数据进行动态地计算和显示。
XML的其他应用 • 电子数据交换EDI(Electronic Data Interchange) • 化学标记语言CML和数学标记语言Math ML • 开放式软件描述格式OSD(Open Software Description) • 通道定义格式CDF(Channel Definition Format) • 开放式财务交换OFX(Open Financial Exchange)
Well-Formed的XML文档 XML标准中明确规定了XML文件应该遵守的规则,分成基本规则和DTD规定的XML文件结构规则。在不考虑DTD的情况下,符合了下述规则,文档即为构造良好的XML文档,浏览器就可以正常显示,否则浏览器不能正常显示。一份构造良好的XML文档中的所有元素和字符数据必须遵守下列规则:
XML文件基本规则 • 文档的开始必须是XML声明 • 含有数据的元素必须有起始标记和结束标记 • 不含数据并且仅使用一个标记的元素必须以/>结束 • 文档只能包含一个能够包含全部其他元素的元素-根元素 • 元素只能嵌套不能重叠 • 属性值必须加上引号 • 字符<和&只能用于起始标记和实体引用 • 出现的实体引用只有&;<;>;&apos;" • 属性名的第一个字母必须以字母或下划线开头 • 在同一个开始标记里,一个特殊的属性名仅仅只能出现一次
合法性检验 一份只要是Well-Formed的XML文档,浏览器就可以显示出来,如果其中包含了自定义的标记,这些元标记会直接显示在浏览器。如果XML文档与DTD或模式中的规则不一致,那么这样的XML文档就不是有效的文档。模式和DTD是两个不同的说明XML文档规则的途径。DTD有以下缺点:DTD本身不是一个XML文档;DTD中用来定义属性内容或元素内容的可用元素非常有限。由W3C提出的XSD规范在ADO.NET中实现了,VS.NET支持XSD规范
XSD • 模式仅仅是预定义规范集中的一个子集,这个预定义规范集描述了一个XML文档的内容。 • 在XSD模式中,可以定义XML文档的结构、文档的数据,元素的数据类型以及相关的属性。 • 最重要的是定义元素之间的父子关系
XML模式数据类型 • 当一个XML文件充当数据库并且XSL和Xpath语言充当SQL的时候,需要在一处声明XML文件的内容以及数据类型。正如其他的数据库一样,无论是SQL Server还是Oracle,所有各列定义的都是具体的数据类型,所以在XML模式里也需要有数据类型的需求。
XML模式数据类型 原始的:原始数据类型不是从其他数据类型派生出来的。 派生的:是以其他数据类型为基础的类型,如整型数据类型就是由十进制数据类型派生出来的 为XML模式而定义的数据类型不一定和为其他规范或数据库定义的数据类型一样,同样,用户为XML模式自定义的数据类型也不适用其他的资源。表3.1列出了各种XML模式能够利用的各种数据类型。
如何将XML文档转换为HTML文档 在HTML中我们已经讲过CSS,CSS样式表只能显示元素内容,而不能显示元素的属性。CSS显示给用户的任何数据都是元素内容的一部分,而不是它的属性。若要能够访问并显示属性数据,就必须使用样式单语言-XSL(eXtensible Style Language)。XSL分为两部分:替换部分和格式化部分。
XSL样式表语言组成 • 替换部分 能够将一个标记替换为另一个标记。通过定义替换规则,使用标准的HTML标记代替XML标记或者使用HTML标记与CSS属性来替换XML标记。同时还可以在文档中重新安排元素和在XML文档中添加没有出现过的附加内容。 • 格式化部分
XSL样式表语言组成 • 格式化部分 把功能强大的文档视图定义为页面。XSL格式化功能能够指定页面的外观和编排,包括多个专栏、围绕主题的字数、行间距、相配的字体属性等。它的功能非常强大,足以为网络打印并自动处理来自于相同源文档的编排任务。
XSL的基本知识 • XSL包含了一套元素集的XML语法规范和定义,该语法规范被用来把XML文件转换成HTML文件或XML文档。一个XSL样式表集合了一系列设计规则以用于将信息从XML文件中汲取出来,并将其转换成HTML等其他格式。这种转换将采用一种公开的方式,使其更加容易地被程序员描述,而且XSL还将提供多种脚本语言的通道以满足更为复杂的应用需求。
XSL的基本知识 • 在显示XML方面,XSL样式表比CSS功能更强大。XSL样式表提供了完整的输出控制权。XSL允许用户精确地挑选想显示的XML数据,利用各种顺序和协议来显示这些资料,并且可以自由地修改或新增信息。XSL提供用户对所有XML组件(如元素、属性、批注和处理指令)的控制权,构成元素的权力,让用户轻而易举地排序和筛选XML中的数据,从而具有轻松地区分与过滤XML数据。
XSL的特点 • XSL样式表的基本形态会选择性地将XML文件转换成HTML格式,让浏览器处理并显示其内容。 • XSL样式表具有提供用户运用HTML的完整格式安排与丰富功能特性的能力 • XSL本身也提供了数据存取和转换的能力 • XSL指令能够提取存储于XML文档中的任何数据,包括元素内容、元素名称和对示例很重要的元素属性。接下页
XSL的特点 特定的元素由一种模式选定,该模式会考虑元素的名称和值、元素的属性名和值以及在XML文档树状结构中的绝对和相对位置等。数据一经从一个元素中取出,就可以移动、复制和进行其他多种处理。 • XSL与CSS一样是用于设定XML文件的外观的,并不影响XML源代码。只不过XSL采用的是转换的方式,将转换后的代码存成另一个文件或者放在浏览器的缓存中。
通过XSLT转换XML • XSLT是W3C所定义的XML规范中的转换组件。是一种必要的基于模板的声明语言,能够把一个XML文档转换成另一个XML文档,或将一种XML文档转化成其他类型的文档。我们能够开发和应用各种XSLT模块来选择过滤和处理XML文档的各个部分。在.NET中,我们能够用XSLTTransform类中的方法Transform()来转换XML文档。
通过XSLT转换XML • Microsoft的IE浏览器已经内置了一个XSL转换器,它能够自动地将一个XML文档转换成一个HTML文档。但是IE不能将一个XML文档转换成另一个XML文档,要解决这个问题,可以采用编程语言如C#或者采用XSLT。因为XSLT就是为此服务的。所以用XSLT来开发应用程序将更加方便。 • 请同学们上机时运行一下P68-P71的例题
通过XSLT转换XML 通过71页的例题,我们通过把XML文档和XSL样式表相结合,使之把数据转换成HTML。这样做是因为Web应用产生XML文档而不是HTML文档。数据与显示分离将允许Web应用的表达和商业服务平等发展。当Web开发者和组件开发者没有很好地加强他们相互之间的协作时,数据与显示分离将有助于减少因缺少联系而产生的摩擦。同样,我们也可以为不同的浏览器用不同的样式表转换不同的HTML文档,尽可能地利用这些浏览器提供的额外附加功能。
XML Path语言 XPath是用来搜索和查询XML文档,以得到与给定标准相匹配的节点列表的语言。它已经被W3C标准化了。一个XPath语言的表达式可详细说明要匹配的位置和模式。将布尔运算符、字符串运算符和算术运算符应用到XPath语言的表达式中,能够建立极其复杂的查询。 XPath也提供了一些做数字评估的函数。
XPath语言的特性 • 能找到当前节点的所有子节点 • 能找到具有特定标志的当前上下文节点的所有祖先节点 • 能找到具有特定标志的当前节点的最后一个子元素 • 根据一个给定属性的元素的当前上下文节点找到第n个元素 • 能找到具有<tag1>或<tag2>标志的第一个子元素
XPath语言的特性 • 能找到不具有某个属性的元素的所有子节点 • 能找到所有数字元素子节点的总和 • 能找到所有子节点的数量 .NET Framework还提供了对XPath查询的支持。在本书中使用XPath语言的相应的System.XML类。