版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ECJTUNIVERSITYXML技术基础XML技术基础第一章第一章 XMLXML概述概述课程介绍 本课程是本科院校计算机科学与技术、软件工程、网络工程、电子商务等专业的技术基础课 。 前导知识:网页设计、JAVA、JavaScript、B/S架构编程 共48课时,其中32学时讲授,16学时上机,安排一周课程设计XML网页设计实用教程网页设计实用教程21世纪高等院校网络工程规划教材世纪高等院校网络工程规划教材教材介绍参考书及网站 XML精要精要快速参考手册快速参考手册 Aaron Skonnard、Martin Gudgin著著 牛韬牛韬 英宇译英宇译 网站:中国网站:中国XML论坛论坛(ht
2、tp:/) 教材上的源码可以到教材上的源码可以到http:/下下载载nXML简介及发展历史;简介及发展历史;n理解理解XML与与HTML的关系;的关系;nXML的进一步认识;的进一步认识;n了解了解XML的技术规范;的技术规范;n XML解析器、浏览器及编辑软件解析器、浏览器及编辑软件n编写一个存储学生信息的编写一个存储学生信息的XML文档文档n小结小结XML简介了处理数据的效率和灵活性了处理数据的效率和灵活性XML的设计的设计目的目的。几种置标语言的发展关系 XML标准 1998年2月W3C发布了XML推荐标准XML 1.0。 2004年2月4日XML 1.1推
3、荐标准正式发布。 但目前推荐遵循的是W3C于2000年10月6日发布的XML 1.0标准。 SGML、HTML和XML的关系 HTML、XML、SGML都是标记语言。都是标记语言。 SGML定义了标记语言的基本概念,奠定了标记语言的技定义了标记语言的基本概念,奠定了标记语言的技术基础。术基础。SGML是一种元语言。它是一种以标准方法创建是一种元语言。它是一种以标准方法创建标识语言的规范;标识语言的规范;SGML的应用和涵盖范围、语言定义集的应用和涵盖范围、语言定义集合以及具体的实现方法等都要复杂的多。合以及具体的实现方法等都要复杂的多。 HTML与与HTTP构成了构成了WWW的最基本的标准,对
4、人们的生活、的最基本的标准,对人们的生活、工作产生了革命的影响。工作产生了革命的影响。HTML是是SGML的一个应用,它所的一个应用,它所有的标记具有固定的含义。有的标记具有固定的含义。 XML是是SGML的一个子集。的一个子集。XML将数据本身与数据的显示方将数据本身与数据的显示方法与处理分离开。法与处理分离开。XML描述的是数据,可由任何的程序获描述的是数据,可由任何的程序获取处理它。因此,全球的开发人员都将取处理它。因此,全球的开发人员都将XML集成到自己的集成到自己的程序中来。程序中来。定单的例子(html) 订单信息订单信息 订单号:订单号:1001 商品名称:跑步鞋商品名称:跑步鞋
5、 单价:单价:150元元 数量:数量:2双双标记是固定的定单的例子(xml) 1001 跑步鞋 150 2 标记是自定义的XML和HTML的主要区别 1、HTML的标记是固定的,预定义的,不可扩展的;而XML的标记是可扩展的,是可以由用户自定义的。2、HTML的标记说明了信息的显示格式;而XML标记表示了数据的逻辑结构及语义 是一种语义标记,意味着其中的内容特别重要; 是结构标记,指明内容是表格中的一个单元; 另外,某些标记可能具有所有这3种意义,标记可同时表示20磅的Helvetica字体的粗体、第一级标题和页面标题。 XML和HTML的主要区别(续)3、XML和HTML为不同的目的而设计。
6、XML被设计用来描述数据,其焦点是数据的内容;HTML被设计用来显示数据,其焦点是数据的外观。HTML旨在显示信息,而XML旨在描述信息。XML 不是要替换HTML,实际上XML和HTML是两种不同用途的语言。4、XML的数据可重复使用;而HTML的数据难以重用 5、HTML的数据与排版、表现形式混在一起;而XML文档将数据与显示格式完全分离,能实现同样的数据以不同的方式显示输出,为信息的开放、共享和交互提供基础。 XML和HTML的主要区别(续)XML 什么也不做什么也不做 XML只是用来组织、存储信息的。 Ordm Lin Reminder Dont forget me this week
7、end! 这个便条有信息头,又信息主体,还包括发送人和接收人。尽管如此,这个XML文档仍然什么都不做,他只是用XML标记存储信息的文件。 需要人们编写发送和接收并且显示这种格式信息的软件。XML的进一步认识XML继承了SGML的许多特性,它有SGML 20%的复杂性,却有SGML 80%的功能。 XML描述的是结构和语义,而不是格式化 XML将数据内容和显示格式相分离 XML是元标记语言 XML是自描述语言 XML是独立于平台的 XML 不进行任何操作 XML具有良好的保值性 XML的用途XML是被设计用来存储数据、携带数据和交换数据的,它不是为了显示数据而设计的。XML的主要用途包括以下几个
8、方面。 从HTML中分离数据。 交换数据 共享数据 存储数据 充分利用数据 创建新的语言MusicML 、MathML 、CML 、SVG 、WML 、SMIL 等 提问: 对XML的认识XML的技术规范XML相关规范可分为以下3部分来理解XML基本规范(XML1.0、XML1.1)。XML关联技术规范(DTD、XML命名空间、XML Schema、XPath、XSL、XSLT、XLink、XPointer、XQuery、DOM、SAX等)。XML应用规范(XHTML、SVG、SMIL、MathML、GML、RDDL、XBL、XBRL、RSS等)。XML解析器 XML解析器是XML和应用程序之
9、间存在的一个软件组织,主要起桥梁的作用,为应用程序从XML中提取所需要的数据。 现在普遍使用的解析器都是用Java编写的。常见的解析器有下面几种:IBM XML4J、Apache Xerces、Sun Project X、Microsoft MSXML、Oracle XML Parser for Java和James Clark XP。XML解析器 XML解析器最基本的功能就是检查文档格式是否良好 大多数解析器还能够判断文档是否遵守DTD/Schema规范,前提是该XML文档带有自己的DTD/Schema。 XML浏览器 大多数浏览器都内嵌了XML解析器,因此大多数浏览器都支持XML,但仅是不
10、同程度的支持。 微软公司的Internet Explorer浏览器内置了MSXML解析器 Mozilla含有用于XML解析的EXPat,并支持显示XML + CSS。 Firefox从版本1.0.2开始,就已开始支持XML和XSLT(包括CSS) Netscape从版本8开始使用Mozilla的引擎 XML编辑软件 XML是基于文本格式的语言,可以在任何能够创建简单文本文件的字处理程序中创建,例如记事本或写字板等 我们推荐使用专业的XML编辑软件 例如XMLSpy、 XMLWriter 存在开始标签的,可以自动生成结束标签; 强制用户使用有效的XML代码编写; 通过DTD验证用户所编写的XML
11、代码; 通过Schema验证用户编写的XML代码; 根据XML不同的语法给不同的XML代码标记不同的颜色 编写一个存储学生信息的XML文档李华李华男男1978.9.1292Java倪冰倪冰女女1979.1.1289Visual Basic张君宝张君宝男男1982.9.998XML本章小结 对对XML的认识的认识; XML的历史与未来的历史与未来; HTML和和XML的区别的区别 XML的技术规范;的技术规范; XML的工具软件;的工具软件; XML文档的编写文档的编写ECJTUNIVERSITYXML技术基础第二章 XML语法规则XML技术基础nXML简介及发展历史;简介及发展历史;n理解理解
12、XML与与HTML的关系;的关系;n了解了解XML的进一步认识;的进一步认识;n了解了解XML的技术规范;的技术规范;n XML解析器、浏览器及编辑软件解析器、浏览器及编辑软件nXML文档的编写文档的编写本章目标 XML标记语法标记语法 XML文档组成文档组成 元素元素(element) 属性属性(attribute) 文本文本(PCDATA-parsed character data) 注释注释(comment) 处理指令处理指令(PI-processing instruction) DOCTYPE 实体实体(ENTITIES) CDATA(character data) 小结小结标记语言的
13、基本概念 标记语言的基本特点:在表示数据内容的在表示数据内容的基础上,插入各种具有明确含义的基础上,插入各种具有明确含义的标记,标记,以起到对数据内容进行解释、说明、限制以起到对数据内容进行解释、说明、限制等作用。等作用。 标记的表示方法:,一般成对使用。yahoo 标记的命名规则 名称的开头是字母或下划线“_”; 标记名称中不能有空格; 名称的字符串只能包含英文字母、数字、“_”、“-”、“.”等字符。标记的使用规则 XML文档必须具有根标记且根标记必须唯一文档必须具有根标记且根标记必须唯一 XML文档中的第一个元素就是根元素。文档中的第一个元素就是根元素。 开始标记和结束标记需配对使用开始
14、标记和结束标记需配对使用This is a paragraph 【HTML】This is another paragraph【XML】 标记不能交错使用标记不能交错使用,所有的所有的XML元素必须合理元素必须合理包含包含 This text is bold and italic 【HTML】This text is bold and italic 【XML】标记的使用规则 XML标记都是大小写敏感的;标记都是大小写敏感的;This is incorrect This is correct 空标记的使用空标记的使用 空标记指的是标记只有开始没有结束,又称为空标记指的是标记只有开始没有结束,又称
15、为孤立标记孤立标记 形式形式: 属性值必须使用引号属性值必须使用引号标记的使用规则 两个基本的概念1,格式良好的 XML文档符合语法的XML文档称为结构良好的XML文档 。2,有效XML文档有效XML文档:内容结构严格遵守它自身的标记说明,能通过自身的语法检查;通过DTD验证的XML文档称为有效的XML文档 。 格式良好的XML文档与有效的XML文档的区别? 有效地有效地XML文档肯定是格式良好的文档肯定是格式良好的XML文档。反文档。反过来,一个格式良好的过来,一个格式良好的XML文档不一定是有效文档不一定是有效的的XML文档。有效的文档。有效的XML文档遵守文档遵守DTD或或Schema定
16、义的规则。定义的规则。一个完整的XML实例李华李华男男1978.9.1292此学生爱好编程,以下是它编的代码此学生爱好编程,以下是它编的代码!CDATA function f1(a,b) if (name=cai & a 0) return 1 else return 0 Visual Basic & C#序言序言文档文档元素元素根元素根元素属性属性元素元素注释注释文档文档类型类型声明声明XML声明声明文本文本预处理预处理指令指令CDATA实体实体XML声明XML声明一般是声明一般是XML文档的第一行第一个字符文档的第一行第一个字符XML声明由以下几个部分组成:声明由以
17、下几个部分组成: version - -文档符合文档符合XML1.0规范,现在只有规范,现在只有1.0 是必须定义的部分;是必须定义的部分; encoding - -文档字符编码,默认为文档字符编码,默认为“UTF-8“ 还可以定义为还可以定义为“GB2312”等;等;当使用当使用UTF-8时,时,XML文档可以使用中文、日文、英文等;文档可以使用中文、日文、英文等;当使用当使用GB2312时,时,XML文档可以使用中文和文档可以使用中文和ASCII字符;字符; standalone - -是否需要从其他外部资源获得自定是否需要从其他外部资源获得自定义标记的说明,并检查义标记的说明,并检查XM
18、L文档的有效性。文档的有效性。 standalone=“yes”(不需要外部文档)(不需要外部文档) standalone=“no”(缺省)(缺省)处理指令PI 语法:语法: 或或 目标命名:目标命名: 名称必须以字母、下划线或冒号开头;名称必须以字母、下划线或冒号开头; 名称可以包括字母、下划线、冒号、数字、横名称可以包括字母、下划线、冒号、数字、横线和句号;线和句号; 处理指令处理指令PI用于将用于将XML文档与文档与XML应用程序应用程序联系起来,用来向联系起来,用来向XML应用程序传递信息。应用程序传递信息。 样式表处理指令样式表处理指令 这个处理指令必须出现在序言部分,在根元素这个处
19、理指令必须出现在序言部分,在根元素之前。之前。 type=text/css 或者或者 type=text/xsl“传递的信息传递的信息应用程序应用程序的名字的名字注释 注释不能出现在声明之前; 不要把注释放在标记中间; Name TOM 注释内容中不要出现-; 注释不能嵌套; 可以在除以上限制以外的任何地方放注释。 注释中的内容在解析时会被忽略;文档类型声明文档类型定义(文档类型定义(DTD)是用来定义XML文档数据结构;文档类型声明文档类型声明是用来声明文档类型定义;文档类型定义;文档类型声明文档类型声明必须包括或引用文档类型定义;文档类型定义;文档类型文档类型声明声明使用DOCTYPE标记
20、声明DTD ;DTD的分类:一个一个XML文档只文档只有一个有一个DTD声明声明声明内部DTD子集例如:!DOCTYPE 员工 李亮 男 1978.2.5内部DTD子集通常声明语法:Standalone=?声明外部DTD子集例:该该DTD是私有的是私有的该该DTD是公有的是公有的1:!DOCTYPE 根元素名称 SYSTEM “DTD-URL”2:声明语法:Standalone=?将上一个例题由内部DTD改为外部DTD文档类型声明(续) 一个XML文档可以同时拥有内部DTD和外部DTD子集,语法: 当同时拥有外部和内部子集,若这两者出现矛盾时,不同的解析器有不同的策略。一般以内部DTD子集为准
21、。文档类型声明(续)1、URI统一资源标识符是所有名称/地址的,它们是指向资源的简短字符串。2、URL统一资源定位符的结构: 协议协议-域名域名-路径路径-文件名文件名 URL是URI模式的集合,是URI的子集,它显示的说明怎样访问Internet上的资源。3、URN统一资源名称,是一个持久、可用的URI元素XML技术基础.开始标记开始标记结束标记结束标记内容内容空元素空元素TITLE空元素空元素TITLE元素(续) XML元素是可以扩展的,它们之间有关联。 XML元素的内容 XML元素有简单的命名规则 XML的根元素 每个XML文档必须有且只有一个根元素。 根元素是一个完全包括文档中其他所有
22、元素的元素。元素(续) 元素是可以扩展的,以携带更多的信息 XML便条例子: 全体同学 Mike 请大家学好XML,因为它有用:P 元素(续) 让我们来设想一个能够读取此XML文档的并能解读其中XML元素(, , 和)的软件,可能的输出如下:MESSAGE To: 全体同学From: Mike请大家学好XML,因为它有用:P元素(续) 我们再来设想,如果便条的作者在这个XML文档中加入一些额外的信息,如下所示: 2005-02-24 全体同学 Mike 注意哟 请大家学好XML,因为它有用:P 元素(续) 那么原来的应用程序会中断或者崩溃么?不会。应用程序仍然会正确的解读, , 和 等元素,并
23、且产生同样的输出。元素(续)XML文档是可以扩展的!文档是可以扩展的! 元素(续) 元素之间的关系:子元素元素之间的关系:子元素/父元素、祖先父元素、祖先/后后代代设想有这样一本书: 署名署名: XML 指南指南第一章: XML入门简介 什么是HTML 什么是XML 第二章: XML语法 XML元素必须有结束标记 XML元素必须正确的嵌套元素(续)我们可以用XML文档来描述这本书: XML 指南指南 XML入门简介 什么是HTML 什么是XML XML语法 XML元素必须有结束标记 XML元素必须正确的嵌套 元素(续) XML元素的内容 :元素内容的类型:嵌套元素元素内容的类型:嵌套元素/字符
24、数据字符数据/实体实体引用引用/ CDATA节节/处理指令处理指令/注释注释 有三类XML元素的内容: 混合内容 简单内容 空内容元素(续)XML元素命名与元素命名与Java、C的命名规则类似:的命名规则类似: 元素名必须是以字母、下划线开始的字符串; 元素名可以包含字母、数字、连字符、下划线、句号。 元素的名字不能以XML(或者xml,Xml,xMl.)开头。 元素的名字不能包含空格。 应该使元素的名字具有可读性 。 XML文档往往都对应着数据表,我们应该尽量让数据库中的字段的命名和相应的XML文档中的元素命名保持一致,这样可以方便数据变换。 在XML元素命名中不要使用:,因为XML命名空间
25、需要用到这个十分特殊的字符。 属性 属性值用双引号(“)或单引号()分隔(如果属性值中有,用”分隔;有“,用分隔) 一个元素可以有多个属性,它的基本格式为: 特定的属性名称在同一个元素标记中只能出现一次 属性值不能包括,如果需要用则应用替代符; 属性只能包含在开始标记中。 属性的命名规则同元素命名。属性与子元素的有关问题 属性的表达方式:TOM 子元素的表达方式: 100TOM属性与子元素的有关问题(续)一般来说子元素可以完全代替属性。要采用子元素的情况:1. 一个属性不能包含子属性,但子元素可以包含自己的子元素。故对复杂的信息,要采用复合的子元素来说明。2. 若元素的开始标记中包含过多的属性
26、,造成整个开始标记过长而降低程序的可读性,则可以考虑使用子元素代替属性。3. 属性不容易扩展。 4. 属性不能够描述文档结构(子元素可以)。 5. 属性很难被程序代码处理。 6. 属性值很难通过DTD进行测试。但属性很简洁,有很好的可读性,如果使用过多的子元素会降低可读性。属性(续) 这样对不对? 这样好不好?属性(续) Tove Jani 1299Reminder Dont forget me this weekend! 属性(续) 结论:与元素关系紧密的数据常以属性的方式存储,而数据本身应该以元素的形式存储。 实体概念:?指代其他复杂的结构,可以避免重复的输入两步操作:声明和引用分类:1.
27、内嵌替代符(预定义实体)2.一般实体:指代文本、文件等3.参数实体:指代数据类型的定义(留到后续章节)预定义实体符号<&"'文本、文件、二进制数据等Visual Basic & C#内嵌替代符 也可以通过指明字符的码值来直接说明字符,例:等价于 也等价于 例子解析结果3<533A&BA&BJoe'sJoes"yes "“yes”文本内容PCDATA XML支持Unicde字符集,因此可以在文本中包含字母/数字/标点/符号等
28、。 注意:因为XML使用和&等界定标记,如果在文本中包含有这些字符,必须使用预定义实体替代。李华李华CDATA当XML文档元素内容中包含大量、&或者“字符时 function f1(a,b) if (name=“cai” & a 0) return 1 else return 0 function f1(a,b) if (name="cai"&& a < 0) return 1 else return 0 CDATA(续) !CDATA function f1(a,b) if (name=
29、“cai“ & a 用CDATA节括起来,则不需要使用替代字符CDATA (续) CDATA节用于把整段包含大量、&或者“的文本解释为纯字符数据而不是标记的情况。 CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记。 语法格式:CDATA(续)CDATA注意事项: 可以输入任意字符(除或者”之间没有空格或者换行符。 可以利用CDATA标记将含有非法字符的文本括起来;CDATA与PCDATA的比较 PCDATA是被解析器解析的文本。文本内的标签会被当作标记,实体会被展开。 CDATA是不被解析器解析的文本。文本内的标签不会被当作标记,实体不会被展开。小结:
30、本课学习了XML的基本语法规则; XML文档必须具有根标记且根标记必须唯一 开始标记和结束标记需配对使用 标记不能交错使用,所有的XML元素必须合理包含 XML标记都是大小写敏感的 属性值必须使用引号小结: 学习了XML文档的各组成部分: XML声明 处理指令(PI-processing instruction) DOCTYPE 注释(comment) 元素(element) 属性(attribute) 文本(PCDATA-parsed character data) 实体(ENTITIES) CDATA(character data)课外作业: 完成第二章习题(一)(四) 准备实验一 结构良
31、好的XML文档 准备实验预习报告,实验任务书应包括: 实验目的 实验任务 实验步骤 实验程序 实验分析(实验中出现的问题及解决的方法)ECJTUNIVERSITYXML技术基础XML文档的有效性验证技术(DTD)XML技术基础内容回顾DTD的声明 内部DTD的声明: 外部DTD的声明 !DOCTYPE 根元素名称 SYSTEM “DTD-URL” 内部DTD与外部DTD结合 DTD是使用是使用DTD的声明引入到的声明引入到XML文档中的文档中的内容回顾 两个基本的概念1,格式良好的 XML文档符合语法的XML文档称为结构良好的XML文档 。2,有效XML文档有效XML文档:内容结构严格遵守它自
32、身的标记说明,能通过自身的语法检查;通过DTD验证的XML文档称为有效的XML文档 。 格式良好的XML文档与有效的XML文档的区别? 有效地有效地XML文档肯定是格式良好的文档肯定是格式良好的XML文档。反文档。反过来,一个格式良好的过来,一个格式良好的XML文档不一定是有效文档不一定是有效的的XML文档。有效的文档。有效的XML文档遵守文档遵守DTD或或Schema定义的规则。定义的规则。本课目标什么是DTD、为什么要用DTD元素的定义XML属性声明小结什么是DTD? 文档类型定义-Document Type Definition DTD用来描述XML文档的结构,一个DTD文档包含: 元素
33、(ELEMENT)的定义规则 元素之间的关系规则 属性(ATTLIST)的定义规则 可使用的实体(ENTITY)或符号(NOTATION)规则 DTD与XML文档实例的关系 类与对象 数据库表结构与数据记录为什么要用DTD 有了DTD,每个XML文件可以携带一个自身格式的描述。 有了DTD,不同组织的人可以使用一个通用DTD用来交换数据。 应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效 可以使用DTD校验自己的XML数据为什么要用DTD(续) DTD检查的内容包括: 检查XML文档中所有的标记是否相符; 是否还包含有其他未定义的子标记等; 并对各个标记的属性做检查,检查
34、这些属性是否与DTD中的定义相符;元素的定义!DOCTYPE 员工 李亮 男 1978.2.5例题:元素的定义 元素类型声明的基本格式元素类型声明的基本格式: 元素内容模式 空模式 任意模式 #PCDATA模式 子元素模式 混合模式 元素指示符 元素综合示例应有空格应有空格空模式 元素不能包含任何子元素,也不能包含任何数据内容。 语法: 例DTD定义如下:对应的XML实例1:花花对应的XML实例2:任意模式 元素可以包含任何子元素或数据 语法: 注意:适用于程序调试、检查;随着程序的完善,一般要用更确定的内容代替ANY内容#PCDATA模式 声明为#PCDATA类型的元素是不包含任何其他元素而
35、只包含字符数据即文本数据的元素; 一般语法结构为: #PCDATA示例 对应的XML元素:元素的数据内容代表代表XML解析器解析解析器解析后的字符数据后的字符数据子元素模式子元素定义集模式用来说明那些有严格结构包含关系的元素。利用子元素定义集模式可以说明某元素必须包含哪些子元素及其相互位置、层次关系。子元素与子元素之间可以用逗号逗号子元素之间有严格的先后顺序,竖线竖线子元素不能在一个元素中同时出现,而且只能出现一个,逗号与竖线可以混合使用。例如:.5. 混合模式 混合模式是文本和子元素的混合; 一般语法结构为: 混合模式示例: 对应的XML实例: abcd abcd abcd不能
36、为逗号不能为逗号只能为只能为*元素指示符 ?修饰符:说明它所修饰的子元素组合可以出现零次或一次,即这种组合可以出现,也可以不出现。 +修饰符:说明它所修饰的子元素组合可以出现一次或一次以上的任意多次,即修饰符所修饰的子元素组合至少必须出现一次。 *修饰符:说明它所修饰的子元素组合可以出现零次到任意多次,即*修饰符所修饰的子元素组合可以出现,也可以不出现,可以出现一次,也可以出现多次。几个例题 正确的示例: 错误的示例: 元素综合示例 李华 男 XML Java 2006该生学习较刻苦,但成绩一般 2007该生学习改进了学习方法,成绩有较大进步 倪冰 89 Visual Basic 2006该生
37、爱好文艺表演 对应的DTD属性 DTD中的属性声明用来定义所有元素可接受的属性。 它可以出现在DTD定义信息的任何部分,并不强制要求出现在对应元素的DTD定义之后,有时甚至可以为尚不存在的元素定义属性,从而扩大了属性定义的适用范围。 属性定义的一般语法: 属性综合示例属性的类型1) CDATA 2) NMTOKEN和 NMTOKENS3) ID4) IDREF和 IDREFS5) Enumerated6) NOTATION 7) ENTITY 和 ENTITIES (与外部非解释实体一起学习)CDATA CDATA指的是纯文本,是会解析的,与CDATA节不同; 属性中如果出现“&”、小
38、于号“”和引号“”,应该使用实体&代替“&”,<代替“”,"代替“”。 是限制最少,最自由的属性;CDATA(续)!DOCTYPE 剧本 我可不这么认为! 为什么呢?NMTOKEN/NMTOKENS NMTOKEN类型属性值是一个XML名称记号,XML名称记号只能包含数字、字母、下划线、冒号及其他名字字符,可以由数字开头。 NMTOKEN是CDATA 的一个子集,其限制比CDATA类型多,它不能包括空格、回车符、换行符、制表符等符号。 NMTOKENS是由空格分隔的若干个NMTOKEN类型属性列表。 NMTOKEN和NMTOKENS是诸多属
39、性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。当需要把一个元素和其它的元件(例如一个JAVA类或一个安全算法)相联系时,可以让它们助你一臂之力。NMTOKEN/NMTOKENS(续)!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图, 江流石不转江流石不转,遗恨失吞吴遗恨失吞吴. !DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图, 江流石不转江流石不转,遗恨失吞吴遗恨失吞吴. NMTOKEN/NMTOKENS(续)!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图
40、, 江流石不转江流石不转,遗恨失吞吴遗恨失吞吴. !DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图, 江流石不转江流石不转,遗恨失吞吴遗恨失吞吴. ID ID是用属性值的方式为文件中的某个元素定义的方法 ID的值必须是一个,XML名称与XML名称记号类似,但XML名称的第一个字符必须是字母或下划线。每个XML名称都是一个XML名称记号,然而XML名称记号不全是XML名称。 一个元素,而且ID属性的取值必须与XML文档中其他元素的ID类型属性的取值不同。 此类属性经常使用REQUIRED缺省类型;而而不要指定缺省值或使用不要指定缺省值或使用FIXED型、IM
41、PLIED型。ID(续)!DOCTYPE 联系人列表 张三 李四 IDREF/IDREFS IDREF类型允许一个元素引用文件中的另一个元素,方法就是把那个元素的ID标识值作为当前元素IDREF类属性的取值。 IDREF属性取值必须与当前XML文档中某个元素的ID属性的取值相同。 如果在DTD中使用了IDREF属性类型,则有效性验证解析器会确定IDREF引用的每个ID属性是否都在XML文档中。IDREF/IDREFS (续)!DOCTYPE 联系人列表联系人列表 张三张三 李四李四 IDREF/IDREFS IDREFS同IDREF,是可以具有由空格分开的多个引用。 空格E
42、numerated枚举类型 属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。 各选择值通过竖线“|”分隔; 关键字。Enumerated枚举类型(续)!DOCTYPE 购物篮 属性的默认取值为“鸡肉”。不需要引号NOTATION XML通过NOTATION声明为非XML格式数据描述一种可能的处理方式。能够让XML应用程序知道如何处理非XML格式数据。 NOTATION属性值是等于一个注记名。因此要使用NOTATION类型属性,首先要在DTD中为可选用的注记作出声明。注记声明的方式有两种 : 或者: 例如:说明注记gif的类型为image/gif。NO
43、TATION NOTATION类型允许属性值为一个DTD中声明的 这个类型对于使用非XML格式的数据非常有用。 现实世界中存在着很多无法或不易用XML格式组织的数据,例如图象、声音、影象等等。对于这些数据,XML应用程序常常并不提供直接的应用支持。通过为它们设定NOTATION类型的属性,可以向。例如,当你想要为一个给定的文件类型指定一个演示设备时,可以用NOTATION类型的属性作为触发。NOTATION(续)在下面这个例子中,为电影元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。!DOCTYPE 文件 属性缺省值1,#REQUIR
44、ED 元素的所有实例都必须有该属性的值(NOT NULL) 语法: DTD 示例: XML 示例: 属性缺省值(续)2, IMPLIED 属性值可有可无的属性属性值可有可无的属性,元素的实例中可以忽略该属性(NULL)。 语法: DTD示例: XML示例: 属性缺省值(续)3,元素实例中该属性的值必须为指定的固定值。(常量) 语法: DTD示例: XML示例:属性缺省值(续)4,Default value(可覆盖) 为属性提供一个默认的值 语法: DTD示例: XML示例: 属性综合示例 信息工程 计算机应用 李华 男 倪冰 对应的DTD小结 本课学习了DTD的内涵,了解了DTD的用途; 主要
45、介绍了DTD的定义方法,包括: 元素的声明; 属性的声明; 作业:完成课后练习ECJTUNIVERSITYXML技术基础XML文档的有效性验证技术(DTD)XML技术基础内容回顾 文档类型定义-Document Type Definition DTD用来描述XML文档的结构,一个DTD文档包含: 元素(ELEMENT)的定义规则 元素之间的关系规则 属性(ATTLIST)的定义规则 可使用的实体(ENTITY)或注记(NOTATION)规则内容回顾 元素类型声明的基本格式: 元素内容模式 空模式 任意模式 #PCDATA模式 子元素模式 混合模式内容回顾 DTD中的属性声明用来定义所有元素可接
46、受的属性。 它可以出现在DTD定义信息的任何部分,并不强制要求出现在对应元素的DTD定义之后,有时甚至可以为尚不存在的元素定义属性,从而扩大了属性定义的适用范围。 属性定义的一般语法:本课目标实体的声明预定义实体(内嵌替代符)一般实体参数实体条件语句( INCLUDE和IGNORE)综合实例小结一般实体(普通实体) 实体可以指代其他复杂的结构,包括形式规范的XML、其他形式的文本或二进制数据。 一般实体 内部实体:将实体所指代的内容已经包含在DTD文件本身中。 外部实体:所实体所指代的内容独立于XML文档。XML能过URL定位来引入外部实体; 解释实体:一定会被XML解析器所解释并使用的实体。
47、 非解释实体:可能被XML解析器忽略的实体。 其中,非解释实体一定是外部实体,故实体可分为三类: 内部解释实体(内部实体) 外部解释实体 外部非解释实体内部解释实体(内部普通实体) 实体声明的语法为: 实体的使用语法: 内部解释实体可以在内部DTD中声明:内部解释实体(内部普通实体)!DOCTYPE roster 李华 &skill1; &skill2; 倪冰 &skill1; &skill2; &skill3; 内部解释实体(内部普通实体) 内部解释实体也可以在外部DTD子集中声明。 使用外部子集定义内部解释实体outEntity.dtd:内部解释实体
48、(内部普通实体) 相应的XML: 李华 &skill1; &skill2; 倪冰 &skill1; &skill2; &skill3; 内部解释实体(内部普通实体) 使用外部文档类型定义的优点:方便XML文档的编写、修改、复用; XML文档的归一化:将XML文档中的所有实体扩展成它所指代的具体内容; 实体的内容必须是完整的XML组成部分; 实体中可以嵌套实体;外部解释实体(外部普通实体) XML文档中引用一个完整的文件,则需要外部解释实体 外部解释实体声明的语法格式: 或者 例: 外部解释实体(外部普通实体)!DOCTYPE roster &st
49、udent1; &student2;被引用的外部实体 李华 &skill1; &skill2; 倪冰 &skill1; &skill2; &skill3; 3.18.xml3.19.xml外部非解释实体 外部非解释实体用来在XML程序文档中加入二进制数据,例如,图像、声音等多媒体数据。 定义外部非解释实体的语法:表示XML不解析该数据 引用方式:作为引用方式:作为ENTITY/ENTITIES类型属性类型属性的属性值的赋给属性;的属性值的赋给属性;ENTITY/ENTITIES ENTITY类型的属性的取值必须是当前XML文档中的某个(ENTIT
50、Y)的名字。拥有ENTITY类型的属性的元素利用这种属性来引用外部实体。 ENTITIES类型的属性与ENTITY类型的属性相似,只不过ENTITIES类型的属性可以包含多个外部实体名,其间用空格分隔。两种外部实体的比较 引用方法: NDATA NOTATION名 引用方法:属性名=“ENTITY/ENTITIES !DOCTYPE img 实体名用在属性值中,实体名用在属性值中,&logo; Logo 参数实体 所谓参数实体的概念就是说该实体实际上不是在具体实例文档中使用,而是在DTD文档内部被使用。 内部参数实体的定义语法是: 外部参数实体的定义语法是: 引用方式为: 使用参数实体
51、,可以方便编写DTD,有利于维护DTD文件。有空格有空格无空格无空格内部参数实体(续)例:注意:参数实体指代的内容不是完整的DTD声明,只能用于外部DTD参数实体(续)类型类型一般实体一般实体参数实体参数实体使用场使用场合合 用在用在XML文档中文档中 只用在只用在DTD中元素和属性的声中元素和属性的声明中明中 声声明明方方式式 内内部部 外外部部 引用方引用方式式 &实体名实体名;%实体名实体名;外部参数实体Public.dtd%book;Book1.dtd条件语句,如果需要作简单的修改,可以使用INCLUDE和IGNORE标记。 通过使用INCLUDE和IGNORE,可以方便地改变
52、原有的缺省值甚至小范围地改动DTD所定义的XML文档结构。 方法:在复用DTD基础上需要特别加入的部分括入:INCLUDE,需要特别去除的部分括入IGNOR即可。条件语句(续) 使用INCLUDE标记的语法格式为: 使用IGNORE标记的语法格式为:条件语句(续) 例如:!INCLUDE 指示解析器包括myElement1的声明;!IGNORE 指示解析器忽略myElement2的声明;条件语句(续)条件语句通常与参数实体一起使用,示例:!DOCTYPE UNIT %unit; 14 条件语句(续)!%monitor; !%mainboard; !%networkcard; 3.24.dtd综
53、合实例 最后,我们来总结一些前三章学习的内容,写一个包含DTD,XML,以及Script的简单实例,便于同学们理解:1.将下面文件存为myfile.dtd综合实例(续) 2.然后建立XML文档myfile.xml:XML轻松学习手册xml综合实例(续) 3.建立HTML文档myfile.htmlvar xmlDoc = new ActiveXObject(Microsoft.XMLDOM);xmlDoc.load(myfile.xml); nodes = xmlDoc.documentElement.childNodes;title.innerText = nodes.item(0).text
54、;author.innerText = nodes.item(1).text; 综合实例(续) 在HTML中调用XML数据标题: 作者: 4.用IE5.0以上浏览器打开myfile.html就可以看到效果了。小结DTD包括 元素的声明 属性的声明 实体的声明 预定义实体 内部解释实体 一般实体 外部解释实体 参数实体 外部非解释实体 条件语句 INCLUDE IGNORE通过综合实例我们知道,通过综合实例我们知道,HTML文档通过脚本文档通过脚本调用调用XML文档中的数据,并输出显示。文档中的数据,并输出显示。ECJTUNIVERSITYXML技术基础XML验证技术Schema XML技术基础
55、本课目标命名空间命名空间XML Schema简介简介W3C Schema W3C XML Schema完整的示例完整的示例 W3C Schema的数据类型的数据类型 简单数据类型简单数据类型 复杂数据类型复杂数据类型 W3C Schema元素属性声明元素属性声明 W3C Schema元素声明元素声明 W3C Schema属性声明属性声明 元素、元素、 属性综合例题属性综合例题 引入外部模式文档引入外部模式文档 W3C的几种命名空间的几种命名空间小结小结命名空间 Namespaces翻译为名字空间或命名空间。 当我们在一个XML文档中使用他人的或者,就会出现这样的矛盾:因为XML中标识都是自己创
56、建的,在不同的DTD文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱引起数据混乱。 例如:在一个文档中wood table中表示桌子,而在另一个文档namelist中表示表格。如果我需要同时处理这两个文档,就会发生名字冲突。 XML命名空间是XML解决元素多义性和名字冲突问题的方案。 W3C组织的推荐用书对XML命名空间的解释是:“,它由URI(统一资源标识)确定,在XML文件中作为元素标识和属性名使用”。 命名空间是名称上相关的一组名称的汇集,在同一空间中每一个名称都必须唯一。例如,可以将某个班的学生姓名作为一个命名空间,也可以将某企业的产品名称作为一个命名空间。通过命名空间可以
57、区分来自不同的XML应用但具有相同名称的标识,可以把来自某种XML应用的相关元素和属性集合在一起,以方便软件识别和处理。命名空间命名空间 namespaces通过给标识名称加一个网址给标识名称加一个网址(URL)(URL)定位的方法来区别这些名称相同的标识。 命名空间一般用属性xmlns来声明,声明的语法如下: xmlns:命名空间属性名,是声明命名空间必需的属性。 prefix:命名空间的前缀,它的值不能为XML。在引用此命名空间中的名称时,需要在名称前加“prefix: ”。 URI:统一资源标示符(Uniform Resource Identifier),是一个标识网络资源的字符串。最普
58、通的URI应该是统一资源定位符(Uniform Resource Locator ,URL),URL用于标识网络主机的地址。另一个不常用的URI是通用资源名字(Universal Resource Name ,URN),这是一个相对固定的地址。命名空间 引用此名空间中的元素、属性的方法:前缀名:元素名 或 前缀名:属性名 声明时若前缀名省略,则声明的是缺省的空间,引用缺省名空间中的元素、属性时可不加前缀名;默认的命名空间的声明语法格式为:this is element use default namespace prefixthis is element use ss1 namespace p
59、refixthis is element use qinghua namespaceprefix在根元素处定在根元素处定义名空间属性义名空间属性使用缺省名空间使用缺省名空间使用指定名空间使用指定名空间命名空间命名空间 一般命名空间在根元素处声明; 命名空间作用于它所在的元素及该元素内部所有子元素。 如果子元素又声明了新命名空间,且使用与原命名空间相同的前缀但URI不同时,新命名空间将覆盖原来的命名空间。 默认的命名空间不作用于属性(非默认的命名空间作用之);默认的命名空间如果遇到空值,下级命名空间将被取消。命名空间 覆盖原来的命名空间 此元素不属于任何命名空间 此元素超出了命名空间作用域此元素
60、的命名空间是此元素的命名空间是: http:/此元素不属于此元素不属于任何命名空间任何命名空间此属性不属于此属性不属于任何命名空间任何命名空间此元素超出了命名此元素超出了命名空间作用域空间作用域XML Schema简介 Schema与DTD的关系 Schema与DTD的作用相同,它们各自以不同的方式来描述XML文档结构,都用于文档验证。XML Schema简介 Schema与DTD的比较 DTD使用EBNF语法,Schema基于XML语法。Schema可以像其他XML文档一样被解析和处理 DTD描述的是XML文件的结构,而非元素内容,因此DTD不能进行数据有效性检查;例如:文字 Schema大大扩充了数据类型,可以自定义数据类型【数字型、整型、布尔型、日期时间型】 Schema提供一个可扩充的内容模式,而DTD扩展性差; Schema可对整个XML文档或文档局部进行验证,而DTD缺乏这种灵活性。 Schema支持名称空间, DTD不支持命名空间。 囊括了DTD文件所能实现的全部功能,同时它也是一个完全规范的XML文档。S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金融行业数字化支付方式研究报告及未来发展趋势
- 2025广东中山市人民政府西区街道办事处所属事业单位第二期招聘事业单位人员3人参考题库含答案详解ab卷
- 2025广东中山市人民政府南区街道办事处所属事业单位第二期招聘事业单位人员4人参考题库及答案详解(网校专用)
- 2025年甘肃省科学技术厅所属事业单位引进高层次人才参考题库及答案详解(各地真题)
- 2025广东广州市生态环境局海珠分局第二次招聘编外人员1人参考题库及答案详解(全优)
- 2025广东深圳市福田区教育科学研究院市内选调教研员11人参考题库带答案详解
- 2025广东中山市人民政府南区街道办事处所属事业单位第二期招聘事业单位人员4人参考题库含答案详解(培优)
- 2025年甘肃省庆阳市宁县委组织部下属事业单位选调参考题库附答案详解(综合题)
- 2025广西南宁市兴宁区司法局招聘工作人员2人参考题库及答案详解一套
- 2025广东清远佛冈县汤塘镇人民政府招聘动物(疫病)防治员1人参考题库及1套完整答案详解
- 香薰蜡烛制作课件
- 2022利达消防LD5503EN 气体灭火控制器使用说明书
- 2024年中国人民大学建设中心招聘考试真题
- 老年人使用开塞露课件
- 教学宝猴王出世课件
- 新版2025年GCP临床试验伦理规范考试题及答案
- 2025年贵州综合评标专家库评标专家考试经典试题及答案一
- 2025至2030年中国金属镁行业发展监测及投资前景展望报告
- “苏超”现象:文化破圈、城市崛起与青年力量的融合交响-2026年高考语文作文热点话题素材积累与实战训练
- 知道智慧树创新创业教育与工程设计实践满分测试答案
- 广州医科大学《英语阅读(一)》2023-2024学年第一学期期末试卷
评论
0/150
提交评论