1、电子商务 技术与应用,主讲教师:陈鑫铭 工作单位:信息学院信息管理系 电话:13170402961 电子邮箱: ,第二章 电子商务表达层及网页设计技术,主要内容 电子商务表达层概述 WEB与HTTP 静态页面设计技术 动态页面设计技术,学习重点 静态页面设计技术 动态页面设计技术,学习难点 动态页面设计技术,1 电子商务表达层概述,一、商务表达层的任务:通过合适的技术与方法将商务数据呈现给用户 二、商务表达层的功能1、商务表达层的功能分析涉及客户端与Web服务器端2、客户端功能:提供具有通用性、易用性和灵活性的用户界面和简单的数据交互能力3、Web服务器端功能:发布商务信息,实现与客户端和应用
2、服务端进行双向信息交互4、功能特点:客户端独立,即商务表达层的变化对商务逻辑层和数据层没有影响,三、商务表达平台的实现,1、Web支持的以HTML为主的表达方式:以Web服务器为基础,无需额外配置且容易实现,但只能支持HTML和XML客户端,无法直接支持WML标准的设备。2、扩展的Web表达方式:在前者的基础上增加支持多种客户端的软件和硬件,扩展Web的功能,使其能支持除HTML与XML以外的其他数据表达方式(如无线应用协议WAP、多媒体邮件类型扩展协议MIME、文档对象模型DOM等)3、利用应用服务器完成表达层功能:应用服务器可以支持多种客户端设备和多种协议,采用应用服务器实现表达层功能的集
3、成难度小,表达部分与应用程序的接口容易实现。,四、客户端的实现,1、客户端的硬件设备:分为普通计算机、移动终端和其他信息终端(如ATM、信息家电等)三大类,具备图形用户界面GUI,支持标准协议HTML、XML、WML等,支持在线诊断或升级。问题:关于信息家电有何了解?听说过微软的“维纳斯计划”吗?2、客户端策略 (1)胖客户端:基于传统的客户端应用程序和特定插件的多媒体技术,具备较强的数据处理功能,可以减轻服务器的负担; (2)瘦客户端:基于浏览器,用户界面风格统一、操作简单,在电子商务中比较常见。,3、客户端显示内容 (1)静态内容:客户端上显示的内容预先放置在Web服务器上,与用户的请求无
4、关,其特点是“千人一面” ; (2)动态内容:客户端上显示的内容是在客户请求发出后,根据请求内容和后台数据库中的数据,通过调用执行一个文件(通常为动态脚本)动态产生的,其特点是“一人一面” 。问题:能举例说明静态和动态网页的区别吗?,2 WEB与HTTP,一、WEB系统概述1、什么是Web?World Wide Web,万维网:欧洲粒子物理研究所(European Organization for Nuclear Research,CERN)的Tim Berners-Lee和Robert Calliau于1990年提出的基于超文本Hypertext、国际互联网Internet和图形用户界面GU
5、I的分布式网络信息系统。,2、Web技术原理:商业数据被组织到一个超文本文件中,借助HTTP协议并通过网络来实现数据的传送和相互通信。,3、Web涉及的几个关键概念(1)统一资源定位器(Uniform Resource Locator,URL):用来唯一标识网络信息资源的位置和存取方式的机制。URL的形式:scheme:/host:port/path?query#fragment 协议:/主机名:端口号/路径/文件名。目前支持的主要协议有:http、ftp、mailto、telnet、news等;主机全名以双斜杠“/”打头,为资源所在的服务器名或IP地址,如或者207.46.19.30;端口号
6、一般设置为默认值(WEB端口号为80、FTP端口号为21、TELNET端口号为23等),它并不是URL的必须项;目录路径的层次以正斜杠“/”分隔。,URL实例:湖南商学院Web服务器上的一个文件http:/ 主机不区分 URL 大小写,但是,Unix/Linux 主机区分大小写。,(2)超文本置标语言(HTML):后节详述。(3)Web服务器:存储文件和其他内容的软硬件的组合,用于提供HTTP和FTP等服务。(4)浏览器(Browser):支持多种协议和多种文档格式并具备调用外部应用功能的组织超文本文件和显示信息的上网软件问题:目前有哪些主流的浏览器?(5)超文本传输协议(HTTP):后节详述
7、。,二、HTTP概述1、什么是HTTP?Hypertext Transfer Protocol/超文本传输协议:用于从WWW服务器传输超文本到本地浏览器的传送协议,它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。从1990年制订以来,目前在WWW中使用的是HTTP/1.1版。关于HTTP规范的详细信息可以查看http:/www.w3.org/Protocols/rfc2616/rfc2616.html,2、HTTP的通信机制(七大步骤),(1)建立TCP连接:在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连
8、接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80;(2)浏览器向Web服务器发送请求命令:一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令,例如:GET/sample/hello.jsp HTTP/1.1;,(3)浏览器发送请求头信息:浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送
9、一空白行来通知服务器,它已经结束了该头信息的发送;(4)Web服务器应答:客户机向服务器发出请求后,服务器会回送应答,HTTP/1.1 200 OK,应答的第一部分是协议的版本号和应答状态码;(5)Web服务器发送应答头信息:正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档;,(6)Web服务器向浏览器发送数据:Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据;(7)Web服务器关闭TCP连接:一般而言,一旦Web服务器向浏览
10、器发送了请求数据,它就要关闭TCP连接;然而如果浏览器或者服务器在其头信息加入了这行代码Connection:keep-alive,TCP连接在发送后将仍然保持打开状态,于是浏览器可以继续通过相同的连接发送请求;保持连接节省了为每个请求建立新连接所需的时间并节约了网络带宽。,3、HTTP的请求和应答格式,(1)HTTP请求:浏览器向Web服务器发出请求实际就是向服务器传递一个数据块即请求信息,HTTP请求信息由3部分组成:请求方法 URL协议/版本+ 请求头+ 请求正文一个HTTP请求的例子:,GET /sample.jsp HTTP/1.1Accept: image/gif. image/j
11、peg, */*Accept-Language: zh-cnConnection: Keep-AliveHost: localhostUser-Agent: Mozila/4.0(compatible; MSIE5.01; Window NT5.0)Accept-Encoding: gzip, deflateusername=jinqiao&password=1234,请求方法 URL协议/版本:请求的第一行是“方法URL协议/版本”(GET /sample.jsp HTTP/1.1),以上代码中“GET”代表请求方法,“/sample.jsp”表示URL,“HTTP/1.1”代表协议和协议的
12、版本。根据HTTP标准,HTTP请求可以使用多种请求方法,例如HTTP1.1支持7种请求方法:GET、POST、HEAD等。在Internet应用中,最常用的方法是GET和POST。URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头。最后,协议版本声明了通信过程中所使用的HTTP的版本。,请求头(Request Header):包含许多有关的客户端环境和请求正文的有用信息。例如请求头可以声明浏览器所用的语言,请求正文的长度等。Accept: image/gif. image/jpeg.*/* Accept-Language: zh-cn C
13、onnection: Keep-Alive Host: localhost User-Agent: Mozila/4.0(compatible; MSIE5.01; Windows NT5.0) Accept-Encoding: gzip, deflate.,请求正文:请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:username=jinqiao&password=1234;在上例的HTTP请求中,请求的正文只有一行内容,但在实际应用中,HTTP请求正文可以包含更多的内容。,(2)HTTP应答:HTTP应答
14、与HTTP请求相似,也由3个部分构成:协议状态版本代码描述+ 响应头+ 响应正文一个HTTP响应的例子: HTTP/1.1 200 OK Server: Apache Tomcat/5.0.12 Date: Mon, 6 Oct 2003 13:23:42 GMT Content-Length: 112HTTP响应示例Hello HTTP!,协议状态代码描述:HTTP响应的第一行(HTTP/1.1 200 OK)类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1,服务器已经成功的处理了客户端发出的请求(200表示成功)响应头(Response Header):响应头也和请求头一样
15、包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等: Server: Apache Tomcat/5.0.12 Date: Mon, 6 Oct 2003 13:13:33 GMT Content-Type: text/html Last-Moified: Mon, 6 Oct 2003 13:23:42 GMT Content-Length: 112,响应正文:响应正文就是服务器返回的HTML页面,响应头和正文之间也必须用空行分隔:HTTP响应示例Hello HTTP!,HTTP应答码:也称为状态码,它反映了Web服务器处理HTTP请求状态;HTTP应答码由3位数字构成,其中首位
16、数字定义了应答码的类型:1XX信息类(Information):表示收到Web浏览器请求,正在进一步的处理中(一般不出现); 2XX成功类(Successful):表示用户请求被正确接收、理解和处理,例如:200 OK; 3XX重定向类(Redirection):表示请求没有成功,客户必须采取进一步的动作,例如:307 ; 4XX客户端错误(Client Error):表示客户端提交的请求有错误,例如:404 NOT Found,意味着请求中所引用的文档不存在; 5XX服务器错误(Server Error):表示服务器不能完成对请求的处理,如 500。,HTTP响应代码示例截图,3 静态网页设
17、计技术,一、静态网页的体系结构1、静态网页:网页的内容对访问者而言是单向的、固定不变的,即访问者不能通过自己的操作来改变网页的内容。2、静态网页的特点:内容固定不变,制作工艺比较简单,3、静态网页的体系结构:事先编辑好的静态网页的内容(HTML文件、图形图像和声音等多媒体文件)存放在WEB服务器上,用户要访问网页便通过浏览器向WEB服务器发出HTTP请求,WEB服务器识别请求后将相应内容通过HTTP送回浏览器并由其解释和显示。,二、置标语言(网络标记语言)简介,1、置标语言的发展情况(1)1945年,美国的Vannevar Bush在大西洋月刊发表的一篇文章中提出了如何利用先进的技术来组织和利
18、用信息资源。他推测未来工程师最终将建成一种记忆扩展设备,可以将一个人的所有的书籍、磁带、信件和研究成果都储存在微型胶卷上,他将其命名为Memex。(2)20世纪60年代,特德尼尔森描述了一种类似的系统,在此系统中,一个页面的文本可以和其它页面的文本连接到一起,这种页面连接的系统被称为超文本hypertext。,(3)1986年,ISO将标准通用标记语言(SGML)的作为国际标准ISO8879;与此同时,鼠标发明者道格拉斯恩格尔巴特在大型计算机上创造了第一个实验性的超文本系统。(4)1992年,欧洲基本粒子实验室CERN的物理学家Tim Berners Lee和Robert Calliau开发出
19、了超文本服务器程序代码,并使之应用于互联网。超文本服务器是一种存储超文本标识语言(HTML)文件的计算机,其它计算机可以连入这种服务器并读取这些HTML文件。(5)随着Web上多元化信息描述需求的增长,HTML标签集的有限性突显出来,扩展标记语言(XML)在W3C的推动下登上了Web舞台。,2、置标语言的体系 (1)常用的标记语言:标准通用标记语言(SGML)、超文本标识语言(HTML)和扩展标记语言(XML),(2)SGML (Standard Generalized Markup Language,标准通用置标语言) SGML是最早的标记语言,而且是一种丰富的元语言,HTML和XML都是在
20、此基础上派生出来的;它是一种用标记描述文档资料的通用语言,包含了一系列的文档类型定义DTD(后述),DTD中定义了标记的含义,因而SGML是可以扩充的;特点:SGML为出版业提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序,在许多大型出版系统中发挥了重要作用;不足:安装耗资不菲,而且需要特殊技术,这种技术是大部分WWW设计者所不具备的;与HTML相比,SGML的工具相当昂贵;用SGML创建的文档类型定义的成本很高;SGML有一个陡峭的学习曲线。,(3)HTML (Hypertext Markup Language,超文本置标语言)只使用SGML中很小一部分标记
21、且标记是固定的;特点:HTML为完全的文本文件,Web服务器只存放文件但不处理标记,由客户端浏览器解释,可以实现平台兼容;大量使用超链接功能,具备丰富的多媒体显示、各种布局处理;易学易用不足:缺乏对结构化数据的表示能力;有限的标记不能满足众多Web应用的需要,缺乏可扩展性;其它如链路丢失后不能自动纠正、下载的内容太多、搜索不方便、时间长等;,(4)XML (Extensible Markup Language,扩展置标语言)实质:Web中的新一代标记语言,同HTML相比没有太多固定的标签,允许用户根据需要自我创建自定义标签,只需要在样式表中利用规划进行说明就可以;特点 可扩展性:用户可以自行扩
22、展功能集; 可分析性:文档的自解释性,方便信息搜索和组织; 简单性:在非常小的核心集上开始工作; 开放性:免费获得、随意分析和校验。,三、HTML简介1、HTML基本结构:HTML文件标题 HTML文件内容 ,文件头部,文件主体,一个HTML的实例:HTTP响应示例Hello HTTP!,2、HTML标记(1)标记格式:标记符/标记符,如table/table等;(2)单标记与双标记:如字体标记font/font为双标记,换行标记br为单标记;(3)标记属性:标记符 属性1 属性2 ,如body bgcolor=”#FFFF” text=”#0000”/body等,(4)常用的HTML标记头和
23、标题标记:head/head、title/title段落标记:p align=”left/center/right”/p字体标记:font face=”face_value” size=”n” color=”color_value” /font图像标记:img src=”filepath”超级链接标记:a herf=”filename”link/a,表格标记:table border=”n” width=”n1” height=”n2”/table表单标记:form/form换行标记:br水平线标记:hr size=”n” width=”n%” align=”left/center/right
24、” noshade注释标记:!- remark -3、思考与练习:编写一个包含常用标记的HTML文件并上机测试。,四、XML简介 1、什么是XML?XML代表EXtensible Markup Language(可扩展标记语言),作为一种标记语言与HTML非常相似;XML是用于定义数据的;XML标记不是预先定义的,使用者必须自己定义标记;XML具有“自我描述”的特点,使用DTD(Document Type Definition)或XML Schema来描述数据;XML是W3C推荐使用的标准。 2、XML和HTML的主要差别:HTML侧重于显示信息,而XML则侧重于描述信息;也就是说XML用于描
25、述数据,侧重于数据本身(如数据类型和数据结构)的定义,而HTML用于显示数据,侧重于数据的显示形式。,3、XML的特点 (1)XML是不用于“干事”的:XML只是用来架构信息、储存信息以及传送信息的。XML文件只是将信息包裹在XML标记里,使用者必须书写一个指令才能发送、接受或显示它。 (2)XML可自由扩展:XML标签不是预先定义的,它允许使用者自定义标签和文档结构。 (3)XML是HTML的补充:XML不是HTML的替代品,在将来的互联网中,XML很可能只用于定义数据,而HTML则用于格式化数据和显示数据。 (4)XML适应未来网络的需要:XML可以被理解为一个交互式平台,它是一种独立于软
26、硬件的数据传输工具;XML对未来网络的重要性决不亚于当初HTML对网络架构的重要性,并且,XML将成为数据处理和数据传输的最普遍工具。,4、XML的用途 (1)XML可以从HTML中分离出数据:用HTML形式显示数据时,数据存储在HTML中;而用XML形式时,数据可以储存在其它的单独的XML文件中,因此不用担心由于潜在数据的改变会改变HTML,从而可以一心一意的用HTML进行数据的排版和显示。XML数据可以作为“数据岛”(Data Islands)储存在HTML页面中,程序员可以专注于只用HTML进行数据的格式化和显示。 (2)XML可以用来交换数据:用XML形式,数据可以在不兼容的系统中进行
27、交换;将数据转换成XML形式可以极大的减少由于计算机系统和数据库数据格式不兼容所带来的复杂性,而且造出的数据可以被很多不同种应用软件读取。,(3)XML与 B2B:XML将成为商业界在英特网上交换金融信息的主要语言,目前有大量基于XML的B2B应用软件正在开发之中。 (4)XML可用于数据共享:XML用“软硬件分离” 的方式共享数据,这样做可以非常容易地制造出能被不同应用软件处理的数据,系统也可以非常容易地扩展或升级为新的操作系统、服务器、应用软件和新的浏览器等。 (5)XML可用于存储数据:XML数据以普通文本格式储存,也可以存储在文件或数据库中;一般的应用软件都可以轻松地展示数据。 (6)
28、XML可以创造新的语言:XML 是WAP和WML之母。,5、XML语法规则(结合以下实例分析)网页设计 王大名 590 ,(1)XML声明: version属性:用于注明版本(目前广泛应用的版本是1.0); encoding属性:用于说明字符编码(强制支持UTF-8和UTF-16编码,其余可由软件厂商自行决定支持与否); standalone属性:定义是否可以在不读取其他文件的情况下处理该文档(默认为no)。,(2)根元素:单一的元素且包含所有文本和其它元素(上例中的根元素为); (3)元素要配对:HTML中的单标记在XML中可以表示为; (4)元素不能重叠或交叉:诸如“电子商务技术基础无名氏
29、”这样的标记就不符合规则,会被解析程序删除; (5)所有属性值都必须用引号括起来:不同于HTML的属性值“可有可无”的引号用法; (6)大小写有区别:不同于HTML的“大小写无所谓” ; (7)一空二空有区别:不同于HTML的“多空等同于一空” ; (8)文档注释:与HTML的注释方式相同,例如 ;,(9)处理指令:格式为,例如表示有一个用于Cocoon的处理指令PI,它会寻找以cocoon-process开头的处理指令,然后相应地处理XML文档,type=”sql”属性告诉Cocoon(来自Apache软件基金会的XML处理框架)XML文档包含一个SQL语句; (10)实体:用于定义实体(实
30、体可用作一种简略表示,它使你将文本块,甚至完整的文档和文件嵌入XML文档中,使得在网络上更新文档易如反掌,实体还允许表达特殊字符如标记,在DTD中使用实体可以减少代码),例如,6、名称空间/名域(namespace) (1)为什么需要名称空间?假设建立了XML文档A,其中定义了一个名为sample的元素,如果该文档A要与XML文档B打交道,而文档B恰好也包含一个名为sample的元素,这样一来就会产生元素冲突;要解决同名但作用方式不同的元素冲突的办法就是利用名称空间。 (2)名称空间的作用:确定一个名称空间后,就能创建对该名称空间是惟一的元素,可以对这些元素赋予希望的含义。 (3)名称空间的格
31、式:,(4)名称空间的实例新祥发 . . . . . . . , 同仁堂 . . . . . . . ,(5)名称空间的作用范围:名称空间的作用范围是其所在的目录树,当文档目录树发生改变的时候名称空间的作用范围也会有所改变;上例改动后名称空间也发生了变化:新祥发 . . . . . . . ,(6)URL、URN和URI的区别 URI/Uniform Resource Identifier,即通用资源标识/统一资源标识符:用于标识抽象资源或物理资源的简洁字符串,唯一地标识元素或属性的数字或名称;URI 包括统一资源名称(URN)和统一资源定位器(URL);网络上的所有资源包括HTML文档、图片
32、、视频剪辑、程序等都有一个能够被URI编码的地址。URI包含三个部分:被用来访问资源的统一命名规则分配体系 + 资源宿主机器的名称 + 以路径的形式给出的资源名称。 URI的语法:scheme: scheme-specific-part 例如:http:/,其中http是scheme,/是 scheme-specific-part;scheme与scheme-specific-part被冒号分开了。,URL/Uniform Resource Locator,统一资源定位器:互联网文件在网上的地址,好比一个街道在城市地理上地址,URL使用数字和字母按一定顺序排列以确定一个地址。例如一个URL:h
33、ttp:/,第一部分http:/表示的是访问协议,第二部分是主机的名字,表示要访问的文件存放在名为www的服务器里,该服务器登记在域名之下。 URL主要用于定位客户端连接到服务器所需要的信息,比如http:/:8080/servlet/logon?name=zhangsan&addr=tttt;其完整构成格式为: /:port/?query-string, URI与URL的区别:URI是在Internet上定位资源的常规方案,它的着重点在于资源,而不是位置;理论上说,URI 可以查找镜像文档的最近的副本,或者定位从一个站点移动到另一个站点的文档;URL最大的缺点是当信息资源的存放地点发生变化时
34、,必须对其作相应的改变。URI目前还处在进一步的研究当中,研究的方向就是弥补URL目前存在的缺点。, URN/Uniform Resource Name,统一资源名称:唯一标识一个实体的标识符,但是不能给出实体的位置,主要用于标识持久性 Internet 资源。URN 可以提供一种机制,用于查找和检索定义特定命名空间的架构文件。尽管普通的URL可以提供类似的功能,但是在这方面,URN 更加强大并且更容易管理,因为URN可以引用多个 URL。与 URL所不同的是,URN与地址无关。,7、XML数据类型定义 (1)问题的提出:当遇到如下的实例:电子商务技术基础李立洪,李卫12090对于同一个对象(
35、名称为“电子商务技术基础”的书),同时存在两个作者和两个售价,XML标记该如何表示就会产生问题,究竟该如何表示数据呢?,(2)问题的解决措施: 文档类型定义(Document Type Definition,DTD):定义一套法则来规范XML文件,也就是对XML文件在格式上进行限定。对上例而言,用DTD可以清楚的定义和规范如下内容:“作者”这个元素到底是可以出现多次,还是在任何一个.中只能出现一次;一个元素能包含哪些属性;父子元素相互依存的关系如何;各个元素出现的顺序等。 XML模式(XML Schema):定义一份XML文档的合法组件群,就像DTD的作用一样,一份XML Schema定义了可
36、以出现在文档里的元素和属性,定义了哪些元素是子元素以及子元素的顺序和数量,定义了一个元素是空的还是能包含文本;定义了元素和属性的数据类型、默认值和固定值等。,DTD与XML Schema的区别:XML Schema是W3C定义的标准,是DTD的“接任者”,根据W3C的预测,XML Schema很快就会替代DTD被大多数的网络应用程序广泛使用;XML Schema针对将来的额外内容是可扩展的;XML Schema内容比DTD丰富,作用也更大;XML Schema是以XML语言编写而成的;XML Schema支持数据类型;XML Schema支持名称空间(namespaces)。,8、DTD简介
37、(1)DTD的实质:一个SGML或XML环境中的组件,它根据一个文档的组成定义语法规则。在DTD中定义的元素和属性,尽管在通常情况下其名字看起来与之有关联,事实上他们之间没有语义联系。使用DTD和XML处理器,一个文档可以验证是否违反了DTD规则,这意味着它能测试一个文档是否满足给定的DTD。 (2)DTD的实例:,XML文档:book.xml网页设计 张凡 590 电子商务技术基础 李立洪 120 ,与上述XML文档对应的DTD文件为Book.dtd,其内容如下:,(3)XML文件的组件群:从DTD来看,所有的XML文件(和HTML文件)都是由如下的简单组件群组成的:Elements元素+
38、Attributes属性+ Entities实体+ PCDATA被解析的字符数据(Parsed Character Data)+ CDATA字符数据值(Character Data) Elements元素:元素是XML和HTML文件的主组件群,元素可以包括文本、其它元素或者空值。 例如:body text in between、some message in between I、声明元素:在DTD中,元素的声明的语法为:或者,例如,II、根元素:声明根元素的语法,例如:; III、空元素:空元素是用类别关键字EMPTY来声明的,例如:对应的XML 元素为;IV、纯字符数据的元素:纯字符数据的元
39、素用圆括号中的#PCDATA来声明:,例如;V、以ANY内容声明的元素:以类别关键字ANY声明的元素能包括任何部分数据的结合体,例如;,VI、以child关键字声明的元素(按次序排列):包含若干个子类别的元素用圆括号中的子元素的名字来定义 例如:; 当子元素被逗号依次隔开声明时,子元素必须在文件中以相同的顺序出现;在一个完整的声明中,子元素必须也被声明,同时子元素也能有子元素。例如上例中“note“元素的完整声明应该是:,VII、给相同的元素声明一个发生事件:,例如 ,这个实例声明了子元素信息必须出现一次,并且在“note“元素中只出现一次。VIII、声明相同元素的最小发生事件:,例如 ,这个
40、实例中的加号声明了子元素信息必须在“note“元素中出现一次或几次。IX、声明0或更多相同元素的出现事件:,例如 ,这个实例中的*号声明了子元素信息可以在“note“元素中出现0或更多次数。,X、声明0或1次相同元素的发生事件:,例如 ,这个实例中的?声明了子元素信息可以在“note“元素中出现0或1次。XI、声明either/or内容:例如,这个实例声明了“note“元素必须包含一个”to”元素、一个”form”元素、一个”header”元素以及”message”或”body”元素。XII、声明混合内容:例如,这个实例声明了“note“元素可以包含0或更多分列字符(”to”、”from”、”
41、header”或”message”元素)。,Attributes属性:属性提供关于元素的额外信息,属性总是置于元素的开始标签里面;属性一般是以“名称(name)/值(value)”这样的形式成对的出现,例如在:中,元素名称是“img” ,属性名称是“src” ,属性值是“computer.gif”,因为元素是单标记,所以它是以“/”结束的。I、声明属性:在DTD中,属性是通过ATTLIST声明来声明的,属性声明的语法如下: 例如:(与之对应的XML实例为,II 、属性类型的值:,、缺省/默认的属性值:,指定一个默认的属性值:假如有DTD实例那么XML标签是有效的,在这个例子中,“square“
42、元素定义为含有CDATA类型的“width“属性的空元素。如果没有指定width值,那它默认为0。,#IMPLIED:语法为,假如有这样的DTD例子,那么XML标记和都是有效的。#REQUIRED:语法为,假如有这样的例子DTD:,那么XML标记是有效的,而XML标记是无效的。#FIXED:语法为 ,假如有这样的DTD例子,那么XML标记是有效的,而XML标记是无效的。,IV、列举属性值的方法:语法为,假如有这样的DTD例子,那么XML标记或都是有效的。Entities实体:实体是用于定义普通文本快捷方式的变量,实体参数就是反映实体特征的参数;实体可以声明为内部实体或外部实体;下面的实体是在X
43、ML中预定的:,I、Internal Entity Declaration,内部实体声明:语法为,假如有这样的DTD例子,那么对应的XML实例为PCDATA,Parsed Character Data,被解析的字符数据:把字符数据当作XML元素的开始标签与结束标签之间的文本;解析器会分析PCDATA文本,文本中的标签会被当作标示的字体,实体将会扩展。CDATA,Character Data,字符数据:解析器不会解析CDATA文本;文本中的标签不会作为标示字体,实体也将不会得到扩展。,(4)关联XML文档与DTD的方法:I、内嵌方式(Internal DOCTYPE declaration,内部
44、DOCTYPE声明):如果DTD是包含在XML源文件里面的,那么它应该预先包装在含有以下句法构造的DOCTYPE定义当中。一个含有DTD的实例XML文件实例:,Tove Jani Reminder Dont forget me this weekend ,上面的DTD文件的解释如下: !DOCTYPE note(位于第2行)定义了类型注释的文件;!ELEMENT note(位于第3行)定义了“to,from,heading,body”4个元素的note元素;!ELEMENT to(位于第4行)解释说明了成为“#PCDATA”类型之一的to元素;!ELEMENT from(位于第5行 )解释说明
45、了“#PCDATA“类型的from元素。,II、外接方式(External DOCTYPE declaration,外部DOCTYPE声明):如果DTD对于XML文件是外部而言,那么它会在含有以下句法构造的DOCTYPE声明中预先包装进去: 一个带有一份外接DTD的 XML文件实例:Tove Jani Reminder Dont forget me this weekend! ,与之对应的包含了DTD的“note.dtd”文件如下:该文件也可以使用文字编辑工具生成(5)DTD的作用:通过DTD,每一个XML文件都可以自身携带有关它自身格式的说明;不同群体的人们可以对使用普通的DTD来交换数据的
46、方法达成一致;应用程序可以通过标准的DTD来验证从外界接收到的数据是否有效;通过DTD可以检验自有的数据。,9、XML Schema简介(1)为什么要使用XML Schema?简而言之,XML Schema比DTD作用更加强大。XML Schema支持数据类型:其优势在于更易于描述被允许的文档内容;更易于检验数据的正确性;更易于与数据库中的数据一起协同工作;更易于定义数据的使用面(关于数据的限制);更易于定义数据样式(数据格式);更易于把数据转换成不同的数据类型。XML Schema使用XML的语法:其优势在于可以不需要再学一种新语言;可以用XML编辑器来编辑Schema文件;可以用XML解析
47、器解析Schema文件;可以用XML DOM 处理Schema;可以用XSLT转换Schema。,XML Schema使用安全数据通讯:在XML Schema里,发送者可以用接受者能够理解的方式描述数据,保证双方对“数据内容理解的一致性” ; 例如:日期数据“03-11-2004”,有些国家会解释成11月3日而有些国家会解释成3月11日,然而,要是使用如下的XML元素:2004-03-11,就确保了双方都能理解其内容,因为XML数据类型的“date”要求规定为“YYYY-MM-DD”的格式。XML Schema是可扩展的:可扩展意味着可以在别的Schema文件里再次用到所定义的Schema;可
48、以从标准的数据类型中派生出所需的数据类型;也可以在相同的文档中参考多种Schema。,(2)XML Schema实例假如有下面名为“note.xml“的一个简单的XML文档Tove Jani Reminder Dont forget me this weekend! ,与之对应的XML Schema文件可以命名为名为“note.xsd“,它可以定义上述XML文档“note.xml“中的元素,上述XML文档“note.xml“和XML Schema文件“note.xsd“相关:Tove Jani Reminder Dont forget me this weekend! ,(3)元素:元素是每份
49、XML Schema文件的根元素:XML Schema文件的一般形式为. 元素也可以含有一些属性,一个schema声明经常写成如下这样: 元素实例演示, .,上例注解:xmlns:xs=“http:/www.w3.org/2001/XMLSchema”指明了在schema中使用的元素和数据种类来自名称空间http:/www.w3.org/2001/XMLSchema,同时指定了来自“http:/www.w3.org/2001/XMLSchema“名称空间的元素和数据种类必须带前缀“xs:” ;targetNamespace=“http:/”暗示了由这份schema(note, to, from, heading, body)所定义的元素来自“http:/”名称空间;xmlns=“http:/“指明了默认的名称空间是http:/. elementFormDefault=“qualified“指明了由这份schema声明的XML实例文档里用到的任何元素,都必须是有效的名称空间。,