XML基础教程人民邮电出版社第1章XML概述1.1HTML及其局限1.2XML解决方案1.3标记语言概述XML的特点1.4XML的应用1.5XML相关技术1.61.1标记语言概述什么是标记语言?使用某种“记号”来表示某种特殊信息的语言,它是一套标记符号和相关语法的集合。什么是XML?XML(eXtensibleMarkupLanguage,可扩展标记语言)是由W3C(WorldWideWebConsortium,万维网联盟)推出的新一代网络数据表示、传递和交换的标准,是Internet环境中跨平台的、依赖于内容的技术。常用标记语言的发展关系1.1标记语言概述1.1标记语言概述1.1.1标准通用标记语言SGML1969年IBM公司GML(通用标记语言)1986年ISO组织SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)它是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源,早在Web发明之前SGML就已存在。1.1.1标准通用标记语言SGMLSGML是用于定义其他语言的元语言,它以逻辑化和结构化的方式来描述文本化的文档,主要用于电子文档的创建、存储和分发。SGML文档虽然已经在美国军方及航空业使用多年,但它过于复杂和麻烦,难以学习和掌握,致使无法实现有效率地在网络上传递信息。另外,SGML过多的弹性与其他一些特性,让编写负责在浏览器中处理与显示SGML信息的软件变得非常困难。由此出现了超文本标记语言HTML。1.1.2超文本标记语言HTML1989年欧洲粒子物理实验室HTML(HyperTextMarkupLanguage,超文本标记语言)HTML是SGML的简化子集,是目前网络上应用最广泛的语言,也是构成网页文档的主要语言。一个普通人员无需了解HTML的相关语法就可以使用各种所见即所得的HTML编辑器,如Dreamweaver、Frontpage等进行Web页面的创作。HTML已经成为最主要的Web页面语言。1.1.3可扩展标记语言XML1998年W3CXML(eXtensibleMarkupLanguage)即可扩展标记语言XML也是SGML的简化子集。XML是年轻的元语言,在其基础上已经开发出适合各领域内部文档发布和数据交换的XML应用标准,如MathML、CML、VML、MusicML等。XML不仅可用来描述网络上的各种新型文档格式,而且适用于描述任何结构化或者半结构化数据。XML标准1998年2月W3C发布了XML推荐标准XML1.0。2004年2月4日XML1.1推荐标准正式发布。但目前推荐遵循的是W3C于2000年10月6日发布的XML1.0标准。?xmlversion=1.0encoding=GB2312?XML的特点:XML是SGML的简化版本XML揭示了数据本身的含义XML是可扩展的XML是跨平台的XML是结构化的XML是基于文本的XML的数据与其显示格式是分离的XML文档比HTML文档更容易访问1.2HTML及其局限1.2.1HTML文档范例HTML提供了一组固定的、预先定义好的元素标记用来标注一般用途的网页元素。常用的元素标记包括:标题、段落、列表、表格、图片与超链接等。homepage.htm1.2.2HTML文档基本架构HTML元素HTML使用各种不同的HTML标记符号来分别标识和设定不同的网页元素。开始标记内容/结束标记1.2.2HTML文档基本架构HTML元素的属性标记名称属性名称=“属性值”……内容/标记名称例:LIAHREF=Diary.htm……/A/LI英文半角的单引号或双引号一个完整的HTML文档由文档头部和文档正文两个部分组成,其基本结构如下:HTML最高层元素HEADTITLE网页标题不显示在网页中/TITLE/HEADBODYP这是正文部分!/P浏览器窗口中显示的内容/BODY/HTML说明:1)HTML的文档内容是不区分大小写的,包括元素标记的名称和属性名称等。2)对于HTML中连续的空格、【tab】或【enter】,浏览器会当成是一个空格。3)在一个元素的开始标记中,元素名称及其各个属性名称之间应该以空格、【tab】或【enter】隔开,因此某个元素的内容可能会跨越数行,而浏览器只认定和。4)注释标记:!--和--。5)对于HTML中的错误元素及其属性,浏览器将会跳过它而不予理会。6)各个元素之间的关系可以是嵌套的,但不能是交错的。1.2.3HTML文档常用标记常用的HTML标记及其功能如表1-1所示。表1-1HTML网页中常用的标记标记标记功能HTML标识整个网页文档HEAD标识网页头部TITLE标识网页标题内容,此内容将出现在浏览器的标题栏中BODY标识网页的主体部份H1标识第一级标题文字H2标识第二级标题文字H3标识第三级标题文字TABLE标识一个表格TR标识表格中的一行TH标识表格标题行中一个单元格的内容TD标识表格数据行中一个单元格的内容UL设定项目列表(无顺序编号的列表)OL设定项目列表(有顺序编号的列表)表1-1HTML网页中常用的标记(续)LI标识列表中的一个项目(列表项目)P标识一个文字段落IMG标识一个图像A标识链接到其他位置或其他网页的超链接(Anchor元素)FONT标识文字的字体、字号与颜色EM标识一个加强显示的斜体文字区块B标识一个粗体文字区块表1-1HTML网页中常用的标记(续)1.2.4HTML的局限①HTML欠缺对文档数据含义的确切描述②HTML文档欠缺对内部数据结构的描述③HTML页面的数据搜索耗时过长④HTML的链接机制不够完善⑤HTML无法表示非传统组件所构成的文档数据⑥HTML只能使用预先定义的标记,可扩展性差⑦HTML缺乏对双字节字符或多语种文字的良好支持⑧HTML本身的语法不够规范严密,严重影响网络信息传递和共享⑨HTML无法真正实现数据的交互⑩HTML不可重用1.3XML解决方案1.3.1XML的实现机制XML的基本实现机制:XML使用能够说明数据本质而不是其表象的标记来标注数据,并且把数据的样式信息从文档中分离出来,而将其放入相关的样式表(StyleSheet)文件中。1.3XML解决方案1.3.1XML的实现机制XML的标记总是成对出现,就像通常使用的括号一样,同时又具有引号的功能,并可采用常见的树型结构进行多层嵌套,这就为程序员的编程处理提供了极大的方便。XML是一种电子文档信息的自定义语言—任何人、任何行业都可遵循这些规则,自己定义各种标记来描述信息中的所有数据元素。1.3.2XML文档实例在创建一个XML文档时,可以由用户自己定义各种标记并以任何名字(可以是中文的)为它们命名,这就是可扩展标记语言的特性。因此,XML几乎可以用来描述所有形式的文档,从音乐乐谱到数据库中的数据记录。范例:movies.xml范例:movies.xml说明:①IE浏览器显示XML文档中的所有内容未链接有关样式表②IE浏览器以不用颜色的代码来表示文档的不同部分③以可收缩的/伸展的树状结构表明各个元素的层次结构④浏览器可以对任何错误进行解析和报告补充:编辑XML文档的工具NotepadUltraEditXMLSpyXMLWriter1.3.3XML的官方目标XML应该在Internet上直接可用。XML应该支持各类不同的应用程序。XML应该与SGML兼容。XML应该很容易编写处理XML文档的程序。XML中可选功能的数目应该维持在最小值,理想情况是零。XML文档应该是易读的,并且清楚合理的。XML的设计应该能在一定时间内迅速地完成其阶段性的任务。XML的设计应该合乎规范并且简洁。XML文档应该容易建立。1.4XML的特点1.4.1XML的优势1.良好的可读性2.方便的可扩展性3.数据内容与其形式的分离4.便于信息的检索5.可以轻松地跨平台应用6.支持不同文字不同语种间的信息交互7.为科学实践与交流提供捷径8.大大改善网页的超链接性能9.便于信息的长期保存10.适合面向对象的程序开发1.4.2XML与JavaJava技术产生于20世纪90年代,是最重要的信息技术发展之一。Java不仅是一种高性能的网络编程语言,而且已成为网络世界中一种跨系统的操作平台。XML和Java技术的合作,许多任务可以在客户端完成,从而使得网络更加畅通快捷。可以说,XML使Java真正有了用武之地。1.4.3XML的不足XML的数据是以树状结构存储的,数据的插入与修改比较困难。XML文档的内容完全以文本形式表现与存储,与采用二进制形式相比其存储量和传输量都将大大增加。XML文档作为数据集合使用时,相当于一个数据库,却不具备数据库管理系统那样完备的功能。XML不能替代HTML。XML是一种元标记语言,任何组织、任何人都可以利用它来定义新的标记和标准,从而将产生一定的混乱与冲突。1.5XML的应用1.5.1XML的应用领域1.数据交换2.Web服务3.Web集成4.电子商务5.数据库应用6.网络出版7.特定文档的组织8.系统配置文件1.5.2XML的延伸语言1.XHTML(可扩展超文本标记语言)2.VML(矢量标记语言)3.PGML(精确图形标记语言)4.WML(无线标记语言)5.基于XML的其他语言CML、MathML、MusicML……1.6XML相关技术文档类型定义DTD(DocumentTypeDefinition)层叠样式表CSS(CascadingStyleSheet)可扩展样式表语言XSL(eXtensibleStyleSheetLanguage)数据源对象DSO(DataSourceObject)文档对象模型DOM(DocumentObjectModel)XMLSchemaXlink与Xpointer本章小结了解标记语言的产生历史掌握XML的概念掌握HTML的局限性及XML的优势了解XML的应用领域了解XML的相关技术