WebServices应用开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-14 22:23:14

点击下载

作者:青岛东合信息技术有限公司

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

WebServices应用开发

WebServices应用开发试读:

前言

随着IT产业的迅猛发展,企业对应用型人才的需求越来越大。“全面贴近企业需求,无缝打造专业实用人才”是目前高校计算机专业教育的革新方向。

该系列教材是面向高等院校软件专业方向的标准化教材。教材研发充分结合软件企业的用人需求,经过了充分的调研和论证,并充分参照多所高校一线专家的意见,具有系统性、实用性等特点。旨在使读者在系统掌握软件开发知识的同时,着重培养其综合应用能力和解决问题的能力。

该系列教材具有如下几个特色。1.以应用型人才为导向来培养学生

强调实践:本系列教材以应用型软件及外包人才为培养目标,在原有体制教育的基础上对课程进行了改革,强化“应用型”技术的学习。使学生在经过系统、完整的学习后能够达到如下要求:● 具备软件开发工作所需的理论知识和操作技能,能熟练进行编码

工作,并掌握软件开发过程的规范;● 具备一定的项目经验,包括代码的调试、文档编写、软件测试等

内容;● 相当于一年的软件开发经验。2.以实用技能为核心来组织教学

二八原则:遵循企业生产过程中的“二八原则”,即企业生产过程中80%的时间在使用20%的核心技术,强调核心教学,即学生在学校用80%的学习时间来掌握企业中所用到的核心技术,从而保证对企业常用技术的掌握。教材内容精而专,同时配以知识拓展和拓展练习,以满足不同层次的教学和学习需求。3.以新颖的教材架构来引导学习

自成体系:本系列教材采用的教材架构打破了传统的以知识为标准编写教材的方法,采用“全真案例”和“任务驱动”的组织模式。●

理论篇

:即最小教学集,包含了“二八原则”中提到的常用技术,

以任务驱动引导知识点的学习,所选任务不但典型、实用,而且

具有很强的趣味性和可操作性,引导学生循序渐进地理解和掌握

这些知识和技能,培养学生的逻辑思维能力,掌握利用开发语言

进行程序设计的必备知识和技巧。● 实践篇:多点于一线,以完整的具体案例贯穿始终,力求使学生

在动手实践的过程中,加深课程内容的理解,培养学生独立思考

和解决问题的能力,并配备相关知识的拓展讲解和拓展练习,拓

宽学生的知识面。● 结构灵活:本系列教材在内容设置上借鉴了软件开发中“低耦合

高内聚”的设计理念,组织架构上遵循软件开发中的MVC理

念,即在课程的实施过程中各高校可根据自身的实际情况(课程

配比、时间安排、学生水平、教学情况等),在保证最小教学集

的前提下可对整个课程体系进行横向(章节内容)、纵向(章

节)裁剪。4.提供全面的教辅产品来辅助教学实施

为充分体现“实境耦合”的教学模式,方便教学实施,另外还开发了可配套使用的项目实训教材和全套教辅产品,可供各院校选购:

项目篇:多线于一面,以辅助教材的形式,提供适应当前课程(及先行课程)的综合项目,遵循软件开发过程,进行讲解、分析、设计、指导,注重工作过程的系统性,培养学生解决实际问题的能力,是实施“实境”教学的关键环节。

立体配套:为适应教学模式和教学方法的改革,本系列教材提供完备的教辅产品,主要包括教学指导、实验指导、电子课件、习题集、实践案例等内容,并配以相应的网络教学资源。教学实施方面,提供全方位的解决方案(课程体系解决方案、实训解决方案、教师培训解决方案和就业指导解决方案等),以适应软件开发教学过程的特殊性。

本系列教材由青岛东合信息技术有限公司和青岛海尔软件有限公司共同研制,历时两年,参与编著的有韩敬海、丁春强、赵克玲、高峰、张幼鹏、张旭平、孙更新、宾晟、胡芳、邵峰晶、于忠清、张磊、曹宝香、崔文善、王成端等。本书的特约策划人为吕蕾女士。参与本书编写工作的还有:青岛农业大学、潍坊学院、青岛大学、山东科技大学、曲阜师范大学、济宁学院、中国海洋大学、济宁医学院等高校,期间得到了各合作院校专家及一线教师的大力支持和协作。在此技术丛书出版之际要特别感谢给予我们开发团队大力支持和帮助的领导及同事,感谢合作院校的师生给予我们的支持和鼓励,更要感谢开发团队每一位成员所付出的艰辛劳动。如有意见或建议,请发邮件至dh_iTeacher@126.com。@iTeacher 教研组2011年6月理论篇第1章XML概述本章目标● 了解XML的历史● 了解XML的特点● 了解XML的基本特征● 掌握XML的文档结构● 掌握XML文档的组成要素及其使用● 掌握格式良好的XML文档规则● 了解有效XML文档的实现方式● 掌握基本XML文档的编写学习导航任务描述【描述1.D.1】

使用XML描述学生信息,并使用IE浏览器查看数据结果。【描述1.D.2】

创建含有中文字符的XML文件,并使用IE浏览器查看数据结果。【描述1.D.3】

创建XML文档并使用字符引用,在IE浏览器中查看数据结果。【描述1.D.4】

创建XML文档并使用实体引用,在IE浏览器中查看数据结果。【描述1.D.5】

创建XML文档并使用CDATA节,在IE浏览器中查看数据结果。【描述1.D.6】

创建XML文档并使用处理指令(PI)。【描述1.D.7】

使用DTD定义有效的XML文档。1.1 XML概述

XML(eXtensible Markup Language,可扩展标记语言)是一种元标记语言,是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。1.1.1 XML的历史

XML有两个先驱:SGML和HTML,这两个语言都是非常成功的标记语言,但是都具有一些与生俱来的缺陷。XML正是为了解决它们的不足而诞生的。1.SGML

早在Web未发明之前,SGML(Standard Generalized Markup Language,标准通用标记语言)就已存在,正如它的名称所言,SGML是国际上定义电子文件结构和内容描述的标准。SGML具有非常复杂的文档结构,主要用于大量高度结构化数据的访问和其他各种工业领域,在分类和索引数据中非常有用。

虽然SGML的功能很强大,但是它不适用于Web数据描述,而且SGML软件的价格非常昂贵;另外,SGML十分庞大,既不容易学,也不容易使用,在计算机上实现也十分困难;不仅如此,几个主要的浏览器厂商都明确拒绝支持SGML,这无疑是SGML在网上传播遇到的最大障碍。鉴于这些因素,Web的发明者——欧洲核子物理研究中心的研究人员根据当时(1989年)的计算机技术,开发了HTML。2.HTML

1989年HTML诞生,它抛弃了SGML的复杂庞大的缺点,继承了SGML很多优点。HTML最大的特点是简单和跨平台。

HTML是一种界面技术,它只使用了SGML中很少的一部分标记,例如HTML 4.0中只定义了70余种标记。为了便于在计算机上实现,HTML规定的标记是固定的,即HTML语法是不可扩展的。HTML这种固定的语法使它易学易用,在计算机上开发HTML的浏览器也十分容易。正是由于HTML的简单性,使得基于HTML的Web应用得到极大的发展。3.XML的产生

随着Web应用的不断发展,HTML的局限性也越来越明显地体现了出来,如HTML无法描述数据、可读性差、搜索时间长等。人们又把目光转向SGML,再次改造SGML使之适合现在的网络需求。随着先辈的努力,在1998年2月10日,W3C(World Wide Web Consortium,万维网联盟)公布XML 1.0标准,XML诞生了。

XML最初的设计目的是为了EDI(Electronic Data Interchange,电子数据交换),确切地说是为电子数据交换提供一个统一的标准数据格式。

在EDI应用过程中,XML展现了如下优势。● 低成本,XML不需要VAN(Value-Added Network,增值网络)

的高额费用,中小企业也负担得起。● 定制商业规则,XML允许用户创建自己的商业规则和格式。● 容易解释,EDI需要使用翻译软件来得到贸易伙伴的信息格式,

而XML通过免费下载的解析器就可以很容易地解释。● 平台独立,XML是跨平台的语言,不管是什么平台,都能进行数

据交换。

当前的一些内容建设者们已经开始开发各种各样的XML扩展,比如数学标记语言MathML、化学标记语言CML等。此外,一些著名的IT公司,如Oracle、IBM以及微软等都积极地投入人力与财力研发XML相关软件与服务支持,这无疑确定了XML在IT产业的重要地位。1.1.2 XML的基本特征

XML是一个精简的SGML子集,它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能,这使XML从根本上有别于HTML。XML要比HTML强大得多,它不再是固定的标记,而是允许定义不限数量的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML则提供了一个直接处理Web数据的通用方法。

XML具有以下一些特点。● XML可以从HTML中分离数据,即能够在HTML文件之外将数据

存储在XML文档中,这样可以使开发者集中精力使用HTML做好

数据的显示和布局,并确保数据改动时不会导致HTML文件也需

要改动,从而方便维护页面。XML也能够将数据以“数据岛”的

形式存储在HTML页面中,开发者依然可以把精力集中到使用

HTML格式化和显示数据上去。● XML可用于交换数据。基于XML可以在不兼容的系统之间交换数N

据,计算机系统和数据库系统所存储的数据有N种形式,对于

开发者来说,最耗时间的工作就是在遍布网络的系统之间交换数

据。把数据转换为XML格式存储将大大减少交换数据时的复杂性,

还可以使这些数据能被不同的程序读取。● XML可应用于B2B中。例如在网络中交换金融信息,目前XML正

成为在遍布网络的商业系统之间交换信息所使用的主要语言,许

多与B2B有关的完全基于XML的应用程序正在开发中。● 利用XML可以共享数据。XML数据以纯文本格式存储,这使得

XML更易读、更便于记录、更便于调试,使不同系统、不同程序

之间的数据共享变得更加简单。● XML可以充分利用数据。XML是与软件、硬件和应用程序无关的,

数据可以被更多的用户、设备所利用,而不仅仅限于基于HTML

标准的浏览器。其他客户端和应用程序可以把XML文档作为数据

源来处理,就像操作数据库一样,XML的数据可以被各种各样的“阅读器”处理。● XML可以用于创建新的语言。比如,WAP和WML语言都是由

XML发展来的。WML(Wireless Markup Language,无线标记语

言)是用于标识运行于手持设备上(比如手机)的Internet程序

的工具,它就采用了XML的标准。

总之,XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。但是,XML并非是用来取代HTML的。HTML着重于如何描述将文件显示在浏览器中,而XML与SGML相近,着重于如何将数据以结构化方式表示。就网页显示功能来说,HTML比XML强,但就文件的应用范畴来说,XML比HTML超出很多。XML和HTML在各个方面上的对比如表1-1所示。表1-1 XML和HTML对比对比项XMLHTML可扩展,能够定义新的不可扩展,标记元素都可扩展性标记元素是固定的侧重于结构化地描述数侧重点侧重于如何显示数据据语法严格,要求标记嵌不要求标记的嵌套、配语法套、配对和遵循DTD树对等,不要求标记之间形结构具有一定的顺序可读性结构清晰、易于阅读难于阅读可维护性易于维护难于维护数据和显数据描述与显示方式相数据和显示整合为一示关系分离,具有保值性体,不具保值性1.1.3 XML定义

XML是元标记语言,定义了用于定义与其他特定领域有关的、语义的、结构化的标记语言句法的语言。可以从以下几个方面来定义XML。● XML是一种类似于HTML的标记语言。● XML是用来描述数据的。● XML的标记不是在XML中预定义的,用户可以自定义标记。● XML使用文档类型定义(DTD)或者模式(Schema)来描述数

据。

下述代码用于实现任务【描述1.D.1】,使用XML描述学生信息,并使用IE浏览器查看数据结果。【描述1.D.1】student.xml Tom 14 88889999 Rose 16 66667777 Jack 15

上述代码只能让读者感性地认识XML,并不能实现什么具体应用,它只是用XML标记存储信息的文件。

对于XML文件,可以用IE 5.0或以上版本的浏览器来查看其内容,如果在IE浏览器中打开一个XML文档,它将用颜色显示文档编码的根和子元素,如图1-1所示。图1-1 用IE浏览器查看XML文件结果

可以单击元素左边的加号(+)或减号(-)来展开或收缩元素的结构,如果想查看原始的XML源文件,就必须从浏览器菜单中选择“查看源文件”(View Source)命令,如果打开的XML文件是错误的,IE浏览器就会报告错误,如图1-2所示。图1-2 出错时的显示结果

XML是自由的、可以扩展的,XML标记(tag)并不是事先定义好的。在XML中,用户可以根据需要定义自己的标记以及文档结构。比如,上面例子中等标记都是这个XML文档的作者创建出来的。而在HTML文档中必须使用HTML规范中定义好的标记,比如


等。

XML可以从HTML中分离数据,即能够在HTML文件之外将数据存储在XML文档中,这样可以使开发者集中精力使用HTML做好数据的显示和布局,并确保数据改动时不会导致HTML文件也需要改动,从而方便维护页面。XML也能够将数据以“数据岛”的形式存储在HTML页面中,开发者依然可以把精力集中到使用HTML格式化和显示数据上去。1.2 XML文档结构

XML的语法规则既简单又严格,非常容易学习和使用。XML文档使用了自描述的简单语法,如果熟悉HTML,就会发现它的文档和HTML非常相似。

XML文档有两个主要组成部分:序言(prolog)和文档元素(document element,即根元素)。

序言出现在XML文档的顶部,其中包含关于该文档的一些信息,有点儿像HTML文档中的部分。在【描述1.D.1】的XML文档student.xml中,序言包含了一个XML声明。序言也可以包含其他的元素,如注释、处理指令或是DTD(文档类型定义)。

任何XML文档必须有且只有一个文档元素(或称根元素),用来包含可能有的其他内容。XML文档中的所有内容都应该出现在根元素的内部。在遵守XML命名规则的前提下,用户可以为元素和属性选择任何名字(命名应遵循简单易懂的原则)。图1-3显示了XML文档的结构。图1-3 XML文档的结构1.2.1 序言

XML序言由两行组成:

其中:● 第一行是XML声明,表明这是一个XML文档,并且遵循的是

XML 1.0版的规范。● 第二行是注释。引入注释可以增强文档的可读性,XML文档的注

释是可选的。

XML声明由“”结束。“”之间,以及第一个“?”和“xml”之间不能有空格。在第二个“?”之前可以没有、也可以有一个或多个空格。

XML声明语句中通常可以有如下属性。● version:该属性是必需的,且必须要小写,用于表明XML的版本,

解析器对不同的版本的解析会有区别。● encoding:该属性是可选的,用于表明该文档所使用的字符编码

方式。XML支持多种字符集类型,例如,使用下面的语句指明文

档中的字符编码方式为GB2312编码。● standalone:该属性定义了是否可以在不读取任何其他文件的情

况下处理该文档,其属性值可以是yes或no,如果XML文档没有

引用任何其他文件,则可以指定standalone="yes",否则

standalone="no"。standalone的默认值是no。

注意 如果同时设置了encoding和standalone属性,standalone属性要位于encoding属性之后。

对于含有中文字符的XML,可以采用“Unicode”或“GB2312”等支持中文字符的编码来表示,如果文档中的字符使用的是GB2312编码,则必须设置encoding属性值为GB2312。

下述代码用于实现任务【描述1.D.2】,创建含有中文字符的XML文件,并查看数据结果。【描述1.D.2】student_gb2312.xml<学生花名册> <学生 性别 = "男"> <姓名>汤米 <年龄>14 <电话>88889999 <学生 性别 = "女"> <姓名>罗斯 <年龄>16 <电话>66667777 <学生 性别 = "男"> <姓名>杰克 <年龄>15

上述XML代码中,由于存在中文字符,需要在XML声明中引入encoding属性,并设置属性值为“GB2312”,否则将会显示字符编码错误,如图1-4所示。图1-4 字符编码错误

错误提示的信息是“文本内容中发现无效字符”,这是因为在XML文档声明语句中没有明确指定文档中的字符编码方式,浏览器就会用默认的Unicode编码来解析该文档,而该文档中的字符实际上使用的是GB2312编码,而非Unicode编码。

注意 XML支持多种字符集类型。但一般常用的编码有如下几种:简体中文码(GB2312)、繁体中文码(BIG5)、UTF-8。

另外,序言部分还可以包括下列可选组成部分。● 文档类型声明(DTD),它定义了文档的类型和结构。● 一个或多个处理指令,它提供了XML处理器传递给应用的信息。1.2.2 文档元素

XML文档的第二个主要部分是文档元素(根元素)。在XML文档中,元素指出了文档的逻辑结构,并且包含了文档的信息内容(在示例文档中是学生的信息,例如姓名、年龄和电话)。一个典型的元素有起始标签、元素内容和结束标签。元素的内容可以是字符数据、其他(嵌套的)元素或者两者的组合。

整个XML文档就是由标记和字符数据混合成的。标记是用来描述文档结构的定界文本,即元素的起始标签、元素的结束标签、空元素标签、注释、文档类型声明、处理指令、CDATA节定界符、实体引用和字符引用等。

在示例文档中,文档元素是students。其起始标签是,结束标签是,其内容是两个嵌套的student元素,每个student元素同样包括一系列的嵌套元素。

注意 XML文档中的文档元素类似于HTML页中的元素,但XML文档元素可以具有任意合法的名称。1.3 XML文档内容

XML文档必须有一个根元素,用来包含可能有的其他内容。XML文档中的所有内容都应该出现在根元素的内部。在遵守XML命名规则的前提下,用户可以为元素和属性选择任何名字。XML文档内容的主体部分一般由根元素、子元素、属性、注释和内容组成。

XML文档的内容结构如图1-5所示。图1-5 XML内容结构图1.3.1 XML元素

元素是XML文档的基本组成部分。它们可以包含其他的元素、字符数据、字符引用、实体引用、PI(Processing Instruction,处理指令)、注释或CDATA部分——这些合在一起被称做元素内容(element content)。所有的XML数据(除了注释、PI和空白)都必须包容在元素中。

XML文档中其他所有元素都是根元素的后代(子元素),student.xml中的根元素是,而都是它的子元素。

在XML文档中,元素有很多作用,它们可以标记内容;为它们标记的内容提供一些描述;为数据的顺序和相对重要性提供信息;展示数据之间的关系。

XML中元素使用标记进行分隔,标记由一对尖括号(“<>”)围住元素名称(一个字符串)构成。每一个元素都必须由一个起始标记和一个结束标记分隔开。

在XML中,基本上没有什么保留字,可以用任何字符串来作为元素名称,但是XML元素的命名必须遵守下列规范。● 元素的名字可以包含字母、数字和其他合法字符,且区分大小写。● 元素的名字不能以数字或者标点符号开头。● 元素的名字不能以XML(或者xml、Xml、xMl等)开头。● 元素的名字不能包含空格,并且避免使用“-”、“.”、“:”等特

殊字符。● 元素的命名应该遵循简单易读的原则。● 如果XML文档与数据表对应,应尽量让XML文档中元素的命名和

数据库中字段的命名保持一致,这样可以方便数据变换。● 非英文字符、字符串也可以作为XML元素的名字,例如<姓名

>、<年龄>等,但为了得到更好的支持,建议使用英文字母来进

行命名。1.起始标记

一个元素开始的分隔符被称做起始标记。起始标记是一个包含在尖括号(“<>”)里的元素名称。可以把起始标记看做是“打开”了一个元素。下面是一些合法的起始标记:。需要特殊说明的是,元素名称可以使用任何合法字母,而不一定是ASCII码字符。2.结束标记

一个元素最后的分隔符被称做结束标记。结束标记由一个斜杠(“/”)和元素名称组成,被括在一对尖括号(“<>”)中。每一个结束标记都必须与一个起始标记相匹配,可以把结束标记理解为关闭了一个由起始标记打开的元素。下面是一些合法的结束标记,它们与前面列举的起始标记相对应:

,,。

带有完整的起始、结束标记的元素应该是如下形式:<自定义标记>包含的内容3.元素分类

XML文档中一共有四类元素:空元素,仅含文本的元素,仅含子元素的元素,含子元素、文本或混合元素的元素。(1)空元素

如果元素中不包含任何文本或子元素,那么它就是一个空元素。对于空元素,可以只加入起始标记和结束标记而不在其中包含任何内容,如下述代码所示:

空元素的精简表示方式是:由一个元素名称紧跟一个斜杠(“/”)组成,并括在一对尖括号(“<>”)中。下面的代码与上述代码的功能是一致的。(2)仅含文本的元素

有些元素含有文本内容。下述代码中都是含有文本的元素:Rose16(3)仅含子元素的元素

一个元素可以包含其他的元素。容器元素称为父(parent)元素,被包含的元素称为子(child)元素。例如元素就是一个包含子元素的元素: Tom 14 88889999(4)混合元素

混合元素既含有文本也含有子元素。下面的代码片段显示了一个混合元素:大一四班 Tom 14 888899994.元素嵌套

XML对元素有一个非常重要的要求——它们必须正确地嵌套。也就是说,如果一个元素(通过起始标签和结束标签来分隔)在另一个元素内部开始,那么也必须在同一个元素内部结束。例如,下列这些元素的是格式良好的: Tom 14 88889999

而下列这些元素的格式是不正确的: Tom 14 88889999

当遇到没有被正确使用的嵌套标记时,XML解析器会立刻报告一个“not well-formed(非格式良好的)”错误报告,在IE浏览器中的错误信息如图1-6所示。图1-6 元素嵌套错误

综上所述,在XML文档中使用元素时应注意以下几点要求。● 元素必须含有起始标签和结束标签。● 在没有内容(空元素)的情况下,建议使用省略写法。● 标签名称必须符合XML命名规则。● 元素必须正确地嵌套。1.3.2 XML属性

XML元素可以拥有属性。属性是对标记进一步的描述和说明,一个标记可以有多个属性。XML中的属性与HTML中的属性是一样的,每个属性都有它自己的名字和数值,属性是标记的一部分。例如:

XML中的属性也是由用户自己定义的,属性由“名称/值”对组成,其中的值是包含于单引号或双引号中的;一个元素可以有多个属性,它的基本格式为:<元素名 属性名="属性值">

特定的属性名称在同一个元素标记中只能出现一次;属性值不能包括“<”、“>”、“&”。

例如student元素中可以使用属性表示学生的性别:

也可以这样写:

上面的两种写法在一般情况下是没有区别的,双引号的写法更普遍一些。

当元素包含属性时,常称为复合类型(complex type)元素,在书写XML模式文档时是常见的应用模式。

在XML中,可以将属性改写为嵌套的子元素。例如,对于下列代码: Rose 16 66667777

可以改写为: female Rose 16 66667777

上述两种写法都能够正确地描述数据,哪种写法更好并没有一个明确的规则,两种写法都是可接受的。

属性在HTML中可能十分便利,但在XML中,最好避免使用属性。因为使用属性时会引发以下一些问题。● 属性不能包含多个值(而子元素可以)。● 属性不容易扩展。● 属性不能够描述结构(而子元素可以)。● 在使用程序代码进行处理时,属性比子元素要难解析。● 属性值很难通过DTD进行测试。● 使用属性来存储数据,XML文档比较难以阅读和操作。

注意 在XML定义中经常用到属性,但在描述数据时建议尽量使用元素,仅在描述那些与数据关系不大的额外信息时使用属性。1.3.3 注释

XML中,注释以“”结束,除了在XML声明之前,注释可以出现在XML文档的其他任何位置。在进行XML解析时,注释内的任何标记都被忽略,如果希望除去XML文档的一块较大部分,只需用注释标记括住那个部分即可。

XML中,注释的语法如下所示。

例如:

加入注释通常是为了便于阅读和理解,注释并不影响XML文档的处理。在添加注释时需要遵循以下规则。● 注释里不能包含文本“--”。● 注释不能包含于标记内部。● 元素中的开始标签或结束标签不能被单独注释掉。1.3.4 字符引用和实体引用

与SGML和HTML一样,XML为显示非ASCII码字符集中的字符提供了两种方法:字符引用和实体引用。1.字符引用

实际处理过程中,不在键盘上的字符或是图形字符是无法直接输入的,这种情况下,可以使用Unicode码将它们以字符引用的形式加入。比如,可以将版权符号“©”编码成“©”。以“&#”开始并以“;”结束的引用都是字符引用。中间的数字是所需字符的Unicode编码,如果编码写成十六进制形式,应该使用一个“x”作为前缀,比如“©”也可表示为“©”。下述代码是两个示例:&#AAAAA;&#XXXXX;</p><p>上面的字符串“AAAAA”和“XXXXX”可能是一个或多个数字,对应着任何XML允许的Unicode字符值,可以是十进制数字或十六进制数字。</p><p>下述代码用于实现任务【描述1.D.3】,演示了如何使用字符引用。【描述1.D.3】chars.xml<?xml version="1.0" ?><chars> <ch>&#169;</ch> <ch>&#xA9;</ch> <ch>&#174;</ch> <ch>&#xAE;</ch></chars></p><p>通过IE浏览器查看结果如图1-7所示。图1-7 字符引用演示2.实体引用</p><p>实体引用允许在元素内容或属性值中插入任何字符串,这就为字符引用提供了一种助记的替代方式。实体引用方式是在一个合法的XML名字前面加上一个“&”符号,后面加上一个分号“;”,如下所示:&name;</p><p>有五个实体被定义为XML的固有部分,它们通常作为XML标记分隔符号的转义序列,如表1-2所示。表1-2 XML的转义字符实体用途&lt;通常用来替换小于号(<)&gt;通常用来替换大于号(>)&amp;通常用来替换字符(&)&quot;通常用来替换双引号(")&apos;通常用来替换单引号(')</p><p>下述代码用于实现任务【描述1.D.4】,演示了如何使用实体引用。【描述1.D.4】chars2.xml<?xml version="1.0" ?><chars> <ch>&lt;</ch> <ch>&gt;</ch> <ch>&amp;</ch> <ch>&quot;</ch> <ch>&apos;</ch></chars></p><p>通过IE浏览器查看结果,如图1-8所示。图1-8 实体引用演示1.3.5 CDATA节</p><p>一般情况下,为了能在元素内容的字符数据中插入特殊字符(如<、>、&等),可使用字符引用或者一个预定义的通用实体引用。但如果存在大量的特殊字符,使用这种方式就很笨拙而且使数据难以阅读。在这种情况下,可以将包含限制字符的文本放在CDATA节中。</p><p>CDATA节以“<![CDATA[”开始,并以“]]>”结束。在这两个限定字符组之间,可以输入除了“]]>”之外(因为它会被解释为CDATA节的结束)的任意字符。CDATA节中的所有字符都会被当做元素字符数据的常量部分,而不是XML标记。</p><p>下述代码用于实现任务【描述1.D.5】,演示了CDATA节的使用。【描述1.D.5】CDATA.xml<?xml version="1.0" encoding="GB2312"?><files> <file> <name>special.txt</name> <!--使用CDATA节可以输入除]]外的任何字符 --> <content><![CDATA[some special charactor " ' <> & ]]></content> </file> <file> <name>special.txt</name> <!--不使用CDATA节需要使用字符引用或实体引用来输入特殊字符 --> <content>some special charactor &quot; &apos; &lt; &gt; &amp; </content> </file></files></p><p>通过IE浏览器查看结果如图1-9所示。图1-9 CDATA演示</p><p>在使用CDATA节时,应注意以下几个细节。● CDATA节可以在任何出现字符数据的地方使用,但不能出现在</p><p>XML标记中。● CDATA节必须包含在元素中。● CDATA节之间不能再包含CDATA节(不能嵌套)。</p><p>如下示例是格式不正确的。<?xml version="1.0" encoding="GB2312"?><files> <file> <!--包含在标记中 --> <name <![CDATA[some description]]>>special.txt</name> <!--CDATA嵌套 --> <content><![CDATA[outer <![CDATA[inner]]> ]]></content> </file></files>1.3.6 处理指令</p><p>XML并不预先假设元素或者其内容的处理办法,这是XML的优势之处。在实际开发过程中,经常需要把某些信息通过文档传递给应用程序,处理指令(Processing Instruction,PI)正是XML为此目的提供的一种机制。</p><p>处理指令的语法形式如下:<? target instruction ?></p><p>具体介绍如下。● target:指令所指向的应用的名称,是必需的部分,而且必须是</p><p>有效的XML名称。● instruction:一个字符串表示,它可能包含任何有效的字符(除</p><p>了“?>”)。</p><p>可以把处理指令插入到XML文档中除其他标记之外的任何地方,也就是说,可以把它插入到与插入注释相同的地方:在文档的序言中、在文档元素的后面或者在元素的内容中。一个几乎随处可见的PI的用途就是将一个样式单和XML数据对象关联起来:<?xml-stylesheet ...?></p><p>下述代码用于实现任务【描述1.D.6】,演示了处理指令的使用。【描述1.D.6】PI.xml<?xml version="1.0" encoding="GB2312"?><!-- 序言中的处理指令 --><?xml-stylesheet type="text/css" href="student.css" ?><students> <!-- 元素内部的处理指令 --> <?ScriptA level="A" ?> <student sex = "male"> <name>Tom</name> <age>14</age> <tel>88889999</tel> </student> <student sex = 'female'> <name>Rose</name> <age>16</age> <tel>66667777</tel> </student></students></p><p>该XML文档关联了一个student.css文件,用于设置XML文档中元素的样式。代码如下所示。【描述1.D.6】student.cssstudent{ display:block; margin-top:12pt; font-size:10pt}name{ font-style:italic; font-size:20pt}age{ font-weight:bold}tel{ font-size:20pt}</p><p>通过IE浏览器查看结果如图1-10所示。图1-10 处理指令演示</p><p>在XML中使用PI有如下好处。● 可以作为脚本或服务端包含文件的挂钩(避免类似HTML语法中“<!-- -->”注释语法的泛滥成灾)。● 可以作为扩展模式的机制(否则它们就不能被修改)。● 它是一种无须改变DTD认证就可以扩展文档的方法。● 在不影响文档结构的情况下,通过在XML文件中嵌入处理指令,</p><p>将信息以文档的形式传递给应用程序。</p><p>注意 处理指令不能放入XML标记中声明。1.4 XML文档规则</p><p>XML语法虽然简单,但要遵循“良好格式”的规则才能编写合法的XML应用。1.4.1 格式良好的XML文档规则1.必须有声明语句</p><p>XML声明是XML文档的第一句,其格式如下:<?xml version="1.0" standalone="yes/no" encoding="UTF-8"?></p><p>XML声明的作用是告诉浏览器或者其他处理程序:这个文档是XML文档。2.注意大小写</p><p>在XML文档中,大小写是有区别的。“<P>”和“<p>”是不同的标记。注意在写元素时,前后标记大小写要保持一致。例如:<Author>TOM</Author>,写成<Author>TOM</author>是错误的。</p><p>最好养成一种习惯,在输入标记时或者全部大写,或者全部小写,或者第一个字母大写,这样可以减少因为大小写不匹配而产生的文档错误。3.XML文档有且只有一个根元素</p><p>良好格式的XML文档必须有一个根元素,也就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在其他所有元素的起始标记之前;根元素的结束标记要放在其他所有元素的结束标记之后。4.属性值使用引号</p><p>在HTML代码里面,属性值加不加引号都可以。例如:“<font color=red>word</font>”和“<font color="red">word</font>”都可以被浏览器正确解释。但是XML中规定所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。5.所有的标记必须有相应的结束标记</p><p>在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个起始标记,就必须有一个结束标记,否则将被视为错误。6.所有的空标记也必须被关闭</p><p>空标记就是标记对之间没有内容的标记。比如“<img>”等标记。在XML中,规定所有的标记必须有结束标记。7.标记必须正确嵌套</p><p>标记之间不得交叉。在HTML文件中,可以这样写:<B><H>Today is Saturday.</B></H></p><p><B>和<H>标记之间有相互重叠的区域,而在XML中是严格禁止这样标记交错的写法,标记必须以规则性的次序出现。8.处理特殊字符</p><p>在XML文档中,如果要用到特殊字符,必须用相应符号代替,如“<”已作为标签使用,不能出现在XML文档中,应以相应的实体引用代替。</p><p>对于空白字符,XML的处理方式和HTML不一样。HTML标准规定,不管有多少个空格,都当做一个空格来处理。例如在HTML中,“Today is Saturday.”将会被显示成“Today is Saturday.”,HTML解析器会自动把句子中多余的空格部分去掉。</p><p>而在XML中规定,所有标记以外的空格,解析器都要全部交给应用程序处理,即解析器会保留内容中所有的空格字符并不加修改地传递给应用程序。1.4.2 格式良好的XML文档</p><p>一个遵守XML语法规则,并遵守XML规范的文档称之为格式良好的XML(Well-formed XML)。XML必须是格式良好的,才能够被解析器正确地解析出来。一个格式良好的XML文档需满足下列条件。● 语法合乎XML规范。● 元素构成一个层次树,只有一个根结点。● 除非提供了DTD,否则没有对外部实体的引用。1.4.3 有效的XML文档</p><p>在XML文档中,用的大多都是自定义的标记。但是如果两个同行业的公司A和B要用XML文档相互交换数据的话,他们之间必须有一个约定——即可以用哪些标记,父元素中能够包括哪些子元素,各个元素出现的顺序,元素中的属性怎样定义等,这样双方在用XML交换数据时才能够畅通无阻。这种约定规则可以用DTD(Document Type Definition,文档格式定义)或XML Schema(XML模式)来表述。</p><p>注意 XML Schema是基于XML的DTD的替代品,W3C使得DTD和Schema可以相互替代。关于DTD和Schema,将在后续章节详细介绍。</p><p>一个有效的XML文档首先应该是一个格式良好的XML文档,其次还必须符合DTD或是XML模式所定义的规则。所以说格式良好的XML文档不一定是有效的XML文档,但有效的XML文档一定是格式良好的XML文档。</p><p>下述代码用于实现任务【描述1.D.7】,基于DTD,演示有效XML文档的定义。【描述1.D.7】product.dtd<?xml version="1.0" encoding="GB2312"?><!ELEMENT PRODUCTS (PRODUCT)+><!ELEMENT PRODUCT (PRODUCTNAME,DESCRIPTION,PRICE,QUANTITY)><!ELEMENT PRODUCTNAME (#PCDATA)><!ELEMENT DESCRIPTION (#PCDATA)><!ELEMENT PRICE (#PCDATA)><!ELEMENT QUANTITY (#PCDATA)><!ATTLIST PRODUCT PRODUCTID ID #REQUIRED CATEGORY (BOOKS|TOYS) "TOYS"></p><p>下面的XML是一个应用上述DTD文档的有效的XML文档。【描述1.D.7】product.xml<?xml version="1.0" encoding="GB2312"?><!DOCTYPE PRODUCTDATA SYSTEM "product.dtd"><PRODUCTS> <PRODUCT PRODUCTID="P001" CATEGORY="TOYS"> <PRODUCTNAME>乱世佳人</PRODUCTNAME> <DESCRIPTION>以美国内战为背景进行叙事</DESCRIPTION> <PRICE>26.80</PRICE> <QUANTITY>60</QUANTITY> </PRODUCT></PRODUCTS></p><p>通过IE浏览器查看结果如图1-11所示。图1-11 DTD演示</p><p>DTD定义了XML文档中可用的合法元素。它通过定义一系列合法的元素决定了XML文档的内部结构。小结</p><p>通过本章的学习,学生应该能够学会:● XML是一种类似于HTML的标记语言,是一种元标记语言。● XML是用来描述数据的,不是HTML的替代品。● XML的标记不是在XML中预定义的,用户可以自定义标记。● XML有两个先驱:SGML和HTML,XML正是为了解决它们的不</p><p>足而诞生的,XML是一个精简的SGML子集。● XML文档有两个主要组成部分:序言和根元素。● XML文档内容的主体部分一般由根元素、子元素、属性、注释和</p><p>内容组成。● 元素是XML文档的基本组成部分。它们可以包含其他的元素、字</p><p>符数据、字符引用、实体引用、PI、注释或CDATA部分。● 字符引用和实体引用是XML处理特殊字符的两种方式。● 引入CDATA节可以描述除了“]]>”之外的任意字符串。● 处理指令可以把某些信息以文档的形式传递给应用程序。● XML必须是格式良好的,才能够被解析器正确地解析。● 一个有效的XML文档应该既是格式良好的,同时还必须是符合</p><p>DTD或是XML Schema所定义规则的XML文档。练习</p><p>1.属性_____用来表示XML文档所使用的字符集。A.versionB.encodingC.standaloneD.language</p><p>2.含有简体中文字符的XML文档中,encoding属性值可设为_____。(多选)A.UTF-8B.BIG5C.GB2312D.ISO-8859-1</p><p>3.实体引用前面带有一个符号_____。A.&B.#C.+D.;</p><p>4.下述关于XML文档的描述正确的是_____。(多选)A.XML不区分大小写B.任何XML文档有且只有一个根元素C.XML中的标记可以没有结束标记D.在合适的位置,引入CDATA节可以描述除了“]]>”之外的任意字符串</p><p>5.每个XML文档都分为两个部分:_____和_____;</p><p><?xml version="1.0" encoding="gb2312"?>是一个_____。</p><p>6.XML中一共有四类元素,分别是_____、_____、_____和_____。</p><p>7.XML文档内容的主体部分,一般由_____、_____、_____、注释和内容组成。</p><p>8.XML是从_____扩展来的。</p><p>9.使用XML的优点是什么?</p><p>10.相对于EDI的结构化信息技术而言,XML的优势有哪些?</p><p>11.简要描述XML的命名规范。</p><p>12.简要描述格式良好的XML文档应遵循的规则。第2章XML文档类型定义本章目标● 了解DTD的作用● 掌握内部DTD的使用● 掌握外部DTD的使用● 掌握DTD的文档结构● 掌握DTD中不同类型元素的定义及使用● 掌握DTD中各种属性的定义及使用● 掌握DTD中实体的定义及使用学习导航任务描述【描述2.D.1】</p><p>创建并使用内部DTD规范XML文档。【描述2.D.2】</p><p>创建并使用外部DTD规范XML文档。【描述2.D.3】</p><p>创建并使用带属性的DTD,演示CDATA的使用。【描述2.D.4】</p><p>创建并使用带NMTOKEN属性的DTD,演示NMTOKEN的使用。【描述2.D.5】</p><p>创建并使用带ID属性的DTD,演示ID的使用。【描述2.D.6】</p><p>创建并使用带IDREF(IDREFS)属性的DTD,演示IDREF的使用。【描述2.D.7】</p><p>创建并使用带枚举类型属性的内部DTD,演示枚举类型的使用。【描述2.D.8】</p><p>创建并使用带自定义实体的内部DTD,演示自定义实体的使用。2.1 DTD概述</p><p>XML的精髓在于“无障碍”数据交换和数据共享,编写格式良好的XML文档,使其他用户能够理解符合我们创建的XML词汇表(包括元素及属性等)的文档结构,须通过某种通用的方式说明词汇表的语法规则。为此,XML1.0提供了一种机制——文档类型定义(Document Type Definition,DTD),并将其作为规范的一部分。DTD使用正式的语法定义XML文档的结构和允许值。2.1.1 DTD简介</p><p>XML的最大灵活性在于允许用户制定基于信息描述、体现数据之间逻辑关系的自定义标记,确保文档具有较强的易读性、清晰的语义和易检索性。因此,一个完全意义上的XML文档不仅仅是“Well Formed”(格式良好的),而且还应该是使用了一些自定义标记的“Validating XML”(有效的)文档,即它必须遵守文档类型定义DTD中已声明的各种规定。文档类型定义DTD,用来描述XML文档的结构。DTD定义了XML文档中可用的合法元素,并且定义了可以在文档中存在的元素、元素可以具有的属性、元素的层次结构,以及元素在整个文档中出现的顺序。简而言之,DTD规定了一个语法分析器以解释一个“Validating XML”文档所需要知道的所有规则的细节。</p><p>DTD可以看做是一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素(标记)是根据应用的实际情况来创建的。想要创建一份完整性高、适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:生产、医学、工商、金融。DTD定义的元素涵盖范围越广泛,它就越复杂。</p><p>引入DTD的优势如下所示。● 引入DTD,每个XML文件可以携带一个自身格式的描述。● 引入DTD,不同组织的人可以使用一个通用DTD交换数据,应用</p><p>程序可以使用一个标准DTD校验从外部世界接收来的XML数据是</p><p>否有效。● 引入DTD,便于在网络上进行数据的共享和交互。例如,两个相</p><p>同行业不同地区的人使用同一个DTD文件作为文档的创建规范,</p><p>那么他们的数据就很容易交换和共享。网络上其他用户补充的数</p><p>据,只需要根据公用的DTD规范来建立即可。</p><p>目前,针对不同的行业和应用,已经有数量众多的写好的DTD文件可以利用,这些DTD文件已经建立了通用的元素和标签规则。用户无须重新创建,只要在这些DTD文件的基础上加入特定的新元素即可。当然,用户也可以创建自己的DTD。2.1.2 DTD声明</p><p>DTD是与XML文档相关的。通常,XML文档中通过DOCTYPE声明将XML与DTD建立关联的指令,当验证有效性的解析器读到该指令时,它获取相应的DTD,并根据其中定义的规则对文档进行校验。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载