java第一章XML基础

上传人:xu****iu 文档编号:246072774 上传时间:2024-10-12 格式:PPT 页数:50 大小:226KB
返回 下载 相关 举报
java第一章XML基础_第1页
第1页 / 共50页
java第一章XML基础_第2页
第2页 / 共50页
java第一章XML基础_第3页
第3页 / 共50页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章,XML基础,学习目标,了解 XML 的相关概念,理解它产生的原因。,精通利用XML进行数据的表示和交换。,了解文件类型描述 DTD。,了解 XML Schema 大纲。,XML概述 - 1,XML,称之为“可扩展标记语言”,是,Web,应用的一种技术,是万维网联盟,(W3C),制定的标准。,XML,简化了网络中数据交换和表示,使得代码、数据和表示可以分离,可以作为数据交换的标准格式。就这点而言,,XML,被称为智能数据文档。,1、XML的定义:World Wide Web Consortium,(,W3C,)对,XML,进行了如下描述:,eXtensible Markup Language,,缩写为,XML,,描述了一类被称为,XML,文档的数据,XML概述 - 2,2、XML的优点:,XML,允许各种不同的领域开发与自己的特定领域有关的标记语言。这就使得该领域中的人们可以交换数据和信息,可以按照更通用得规则交换数据。,(1),XML,文档是纯文本,(2),基于内容的数据标识,因而可被不同程序用于不同用途,(3),可格式化,(4),易于处理,XML概述 - 3,对象,并部分描述了处理它们的计算机程序的行为。,XML,是,SGML,(,Standard Generalized Markup Language ISO 8879,)的一个应用实例或一种受限形式。从结构上说,,XML,文档顺从,SGML,文档标准。,XML,并非像,HTML,那样提供了一套事先已经定义好了的标记,而是提供了一个标准,利用这个标准,我们可以根据实际需要定义自己的新的标记。利用这个标准,我们可以制定各种各样的标记。,XML概述 - 4,3、XML文档的结构:,每个,XML,文档都有一个逻辑结构和物理结构。从物理结构角度来看,文档由实体单元组成,一个实体也可以在其他文档的实体中被引用。一个文档以一个根元素或文档实体来开始。从逻辑上讲,文档由声明(,declaration,)、元素(,element,)、注释(,comment,)、字符引用(,character reference,)和处理说明(,processing instruction,)组成。,XML概述 - 5,例如:我们用,XML,定义一个学校学生的花名册,内容如下。,张三,辽宁,25,XML概述 - 6,zhangsan,李四,北京,22,lisi,XML概述 - 7,4,、,XML,文档的编写规则,(1)标记:,XML,的标记和,HTML,的标记大体上相同,除了注释和,CDATA,部分之外,所有符号“,”之间的内容都称为标记。,基本形式:,(2)CDATA:,以,结束的字符数据段,(CDATA Section),凌驾于解析器之上,其中的内容将不被解析。字符数据段中除了不能有结束标志, ,外,可以包括任意字符序列。,XML概述 - 8,(,3,)注释:,在,HTML,中,注释是用“,”引起来的。在,XML,中,注释的方法完全相同。不过,在,XML,文件中使用注释时,同样要遵守几个规则:在注释文本中不能出现字符“,-,”或字符串“,-,”、不要把注释文本放在实体声明中,也不要放在,XML,声明之前、注释不能被嵌套。,DTD - 1,在,XML,中,“文档类型定义,(DTD),”可以伴随文档,且文档类型定义实质上定义文档的规则,例如哪些元素可被显示以及元素之间的结构关系。当接收应用程序没有传入数据的内部描述时,,DTD,将帮助验证该数据。然而,在,XML,中,,DTD,是可选的。,与,DTD,一起发送的数据称为有效,XML,。此时,,XML,语法分析程序应对照,DTD,中定义的规则校正传入的数据,以确保该数据被正确构造。没有与,DTD,一起发送的数据称为结构良好的,XML,。,DTD - 2,1、DTD分类,(1)内部DTD,是,最简单的使用,DTD,的方法,在,XML,文档中加入一个,DTD,描述,加入的位置是紧接在,XML,处理指示之后。,(2),外部,DTD,的好处是:它可以方便高效地被多个,XML,文件所共享。我们只要编写一个,DTD,文件,就可以被多个,XML,文件所引用。事实上,当许多组织需要统一它们的数据交换格式时,它们就是通过外部,DTD,来完成的。这样做不仅简化了输入工,DTD - 3,作,还保证当我们需要对,DTD,做出改动时,不用去改每个引用了它的,XML,文件,只要修改一个公用的,DTD,文件就可以了。,在,DOCTYPE,声明中,应该加入,SYSTEM,属性,格式为:,(3),使用外部,DTD,时,要在,DOCTYPE,中使用关键字,SYSTEM,。,SYSTEM,不是引用外部,DTD,的唯一方法,这个关键字主要,DTD - 4,用于引用一个作者或组织所编写的众多,XML,文件中通用的,DTD,。还存在另外一种外部,DTD,,它是一个由权威机构制订的,提供给特定行业或公众使用的,DTD,。因此,另一个引用外部,DTD,的办法是使用关键字,PUBLIC,。,当使用关键字,PUBLIC,进行引用时,这个外部,DTD,还需要得到一个标识名。引用公共,DTD,的形式为:,DTD - 5,2、DTD文档定义规则,(1)元素类型声明,,一个,DTD,不仅要告诉语法分析器它所关联的,XML,文档的根元素是什么,而且还要告诉语法分析器文件的内部和结构,说清文件结构的每一个细节。为了定义这些细节,我们必须使用元素类型(,ETD,)来声明所有有效的文件元素。,元素类型声明(,ETD,)的格式如下:,DTD - 6,(2)定义元素及其子元素,,通常情况下,很少只有一个根元素,基本上都会包含若干个子元素,而子元素还可以包含子子元素。那么,我们可以通过“正则表达式”来描述父元素与子元素之间的这种关系。,例如,使用正则表达式可以这样描述父子元素的关系:元素有一个子元素,有一个或多个子元素,有零个或多个子元素,至少有一个子元素。,元素定义是由元素内容模型(,ECM,)来描,DTD - 7,述的,所以在描述“联系人”和“姓名”、“,EMAIL,”关系可以用以下方式描述。,DTD - 8,(3)定义元素的属性,,我们已经知道如何定义一个元素以及它的内容,如何描述父元素与子元素之间错综复杂的关系,下面我们讲述如何定义元素的属性。,定义属性时,我们使用下面的格式:,XML Schema 1(附加),1、XML Schema的定义:,XML Schema,如同,DTD,一样是负责定义和描述,XML,文档的结构和内容模式。它可以定义,XML,文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。,XML Schema,本身是一个,XML,文档,它符合,XML,语法结构。可以用通用的,XML,解析器解析它。,2、使用XML Schema的原因:XML Schema比DTD具有更强的描述性,、拥有更,XML Schema 2(附加),多的应用环境、能做出更细致的语义限制、结构化明显、重用代价低等等。,3、一个简单的XML Schema文档,XML Schema 3(附加),4、Schema中的类型:Schema,中主要包括三种部件:元素,(element),、属性,(attribute),、注释,(notation),。这三种基本的部件还能组合成以下的部件:类型定义部件( 简单类型和复合类型 )、组部件 、属性组部件。,5、简单类型:XML Schema,中 定义了一些内建的数据类型,这些类型可以用来描述元素的内容和属性值。一个元素中如果仅仅包含数字、字符串或其他数据,但不包括子元素,这种被称为简单类型。,XML Schema 4(附加),6、内建的简单类型:包括原始类型,string, boolean,等近,20,种,还有,language(tonken),,,normalizedString(string),等几十种衍生类型。,7、创建简单类型:,XML Schema 5(附加),在上例中,我们首先创建了一个简单类型,:quantityType,,它是从,integer,继承过来的,,minInclusive,和,maxInclusive,定义了它的最小值,2,和最大值,5,。,XML Schema 6(附加),最后我们定义元素,quantity,的类型为,quantityType,。,正确:,3,8、列表类型,XML Schema 7(附加),list,可以用来定义列表类型,,listOfIntType,这个类型被定义为一个,Integer,的列表,,元素,listOfMyInt,的值可以几个整数,他们之间用空格隔开。,正确:,1 5 15037 95977 95945,9、联合类型,XML Schema 8(附加),上例中,我们用,union,来定义了一个联合类型,里面的成员类型包括,USState,和,listOfMyIntType,应用了联合类型的元素的值可以是这些原始类型或列表类型中的一个类型的实例,但是一个元素实例不能同时包含两个类型。,10、匿名类型的定义,XML Schema 9(附加),XML Schema 10(附加),前面我们在定义元素类型时总是先定义一个数据类型,然后再把元素的,type,设成新定义的数据类型。如果这个新的数据类型只会用一次,我们就可以直接设置在元素定义里面,而不用另外来设置。如上面元素,quantity,的类型就是一个从,1,到,99,的整数。这种新的类型没有自己的名字的定义方法我们称之为匿名类型定义。,11、复合类型,XML Schema 11(附加),XML Schema 12(附加),在上面的代码中,我们用,complexType,表示这是一个复合类型(这里我们是用匿名类型定义的)。,simpleContent,表示这个元素下面不包括子元素,,extension,表示这个元素值是,decimal,的,,attribute,来设置它的一个属性,currency,,类型为,string,。,正确:,423.46,XML Schema 13(附加),12、混合内容,XML Schema 14(附加),同样,我们采用了匿名类型方式来定义一个元素,salutation,。我们注意到在,complexType,后面多了一个,mixed=true,,这表明这是一个混合类型:里面既有元素本身的内容,又有其它子元素。,name,元素就是,salutation,的子元素。,13、空内容,XML Schema 15(附加),XML Schema 16(附加),有的时候元素根本没有内容,它的内容模型是空。为了定义内容是空的类型,我们可以通过这样的方式:首先我们定义一个元素,它只能包含子元素而不能包含元素内容,然后我们又不定义任何子元素,依靠这样的方式,我们就能够定义出内容模型为空的元素。,14、any type,XML Schema 17(附加),一个,anyType,类型不以任何形式约束其包含的内容。我们可以象使用其他类型一样使用,anyType,,如上面代码第一个语句,这个方式声明的元素是不受约束的。所以元素的值可以为,423.46,,也可以为任何其他的字符序列,或者甚至是字符和元素的混合。实际上,,anyType,是默认类型,所以上面的可以被重写为第二个语句。,15、注释,XML Schema 18(附加),element declared with anonymous type,XML Schema 19(附加),element anonymous type with 2 attributes,XML Schema 20(附加),上面代码中,我们在,documentation,元素中放置了一个基本的模式描述和版权信息,这是放置适合人阅读的信息的推荐位置。推荐大家在任何的,documentation,元素中使用,xml:lang,属性来表示这些描述信息使用的语言。,XML Schema 21(附加),16,、构造内容类型,XML Schema 22(附加),XML Schema 23(附加),在上面代码中,我们在,purchaseOrderType,定义中引入两个元素组定义,购买订单就可以有两种选择来描述地址:一是包含彼此独立的送货地址和收款地址,第二种情况则是仅,XML Schema 24(附加),包含一个简单的地址,这个地址即是送货地址也是收款地址。,17、属性组,XML Schema 25(附加),XML Schema 26(附加),XML Schema 27(附加),我们可以建立一个被命名的属性组来包含所有,item,元素所期望的属性,并且在,item,元素声明中通过名字来引用这个属性组,ItemDeleivery,。,18、空值,XML Schema 28(附加), Lawnmower,1,148.95,Confirm this is electric,Baby Monitor,XML Schema 29(附加),1,39.98,1999-05-21,XML Schema,空值机制包括一个空值信号。换句话说,作为元素内容而言,并没有真正的空值,代之的是一个说明元素的内容是空值的属性。为了显示这点,我们修改,shipDate,元素的声明,这样空值就能够被明确地告知用户了。,XML Schema 30(附加),XML Schema,提供了一种比,DTD,更强大、更灵活的语法机制。与,DTD,相比,,Schema,的最大好处是它本身就是,XML,,具有与其他,XML,文档一样的可移植特性,可以使用标准工具对其进行处理的能力(如进行,XSL,转换)。对于所约束的,XML,结构的类型,它们比,DTD,更具表达性、更为灵活。,小结,Java,语言已经成为,Internet,的主流编程语言,而,XML,则是数据描述的优秀工具,本章主要讲述了,XML,语言的基础知识,如,XML,文档的基本结构,以及,XML,的优点,还有文档类型定义(,DTD,)以及,XML,大纲(,Schema,)等相关的知识。,谢 谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!