欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    XML基础及相关技术.ppt

    • 资源ID:6524016       资源大小:477.50KB        全文页数:154页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    XML基础及相关技术.ppt

    XML基础及相关技术,杨德婷中科院网络中心,2002-8-16,XML基础及相关技术,2,提 纲,山重水复疑无路,柳暗花明又一村 XML的诞生没有规矩,不成方圆XML语法海纳百川,有容乃大DTD与Schema花想衣裳云想容XML文件的显示江山如画,一时多少豪杰XML标准体系框架千帆竟发,百舸争流关于XML的编辑与浏览工具问苍茫大地,谁主沉浮XML的应用和发展前景,2002-8-16,XML基础及相关技术,3,山重水复疑无路,柳暗花明又一村 XML的诞生,何谓XML为什么要XMLXML的来龙去脉XML实例,2002-8-16,XML基础及相关技术,4,何谓XML(eXtensible Markup Language)什么是置标语言(Markup Language),超文本置标语言HTML(HyperText Markup Language)XML和HTML同属一个大家族置标语言家族“置标”的一个精确定义是:就数据本身的信息对数据进行编码的方法。E.g.用黄色荧光笔把课本上的 某些句子 加亮,或者干脆在 这些句子 下面划线HTMLBOLDBOLD,2002-8-16,XML基础及相关技术,5,何谓XML 什么是置标语言(cont.),HTML代码显示了一个客户联系信息列表:张三用户ID:001公司:A公司EMAIL:电话:(010)62345678地址:五街1234号城市:北京市省份:北京李四ID:002公司:B公司EMAIL:libbb.org电话:(021)87654321地址:南京路9876号城市:上海市省份:上海,这段HTML置标数据在浏览器中的显示效果如下:张三 ID:001 公司:A公司 EMAIL:电话:(010)62345678 地址:五街1234号 城市:北京市 省份:北京 李四 ID:002 公司:B公司 EMAIL:libbb.org 电话:(021)87654321 地址:南京路9876号 城市:上海市 省份:上海,2002-8-16,XML基础及相关技术,6,何谓XML 什么是XML,eXtensible Markup LanguageeXtensible:XML是一种可扩展的元置标语言,它可用以规定新的置标规则,并根据这个规则组织数据。数据置标:一类偏重于语意描述;一类偏重于显示方式的描述置标的语法:DTD,Schema置标的含义:CSS,XSL,2002-8-16,XML基础及相关技术,7,何谓XML 什么是XML(cont.),数据置标:一类偏重于语意描述;一类偏重于显示方式的描述(SVG,SMIL)FCLML(F_company s Client List Markup Language)F公司的客户列表置标语言(语义描述)张三 001 A公司(010)62345678 五街1234号 北京市 北京,李四 002 B公司 libbb.org(021)87654321 南京路9876号 上海 上海,2002-8-16,XML基础及相关技术,8,何谓XML 什么是XML(cont.),置标的语法、句法和结构:DTD,Schemafclml.dtd:,置标的含义,向应用程序,比如浏览器,提供如何处理显示的指示说明。XSL,CSS每当看到一个联系人标签,用一个UL标签显示它。同样,/联系人转换为一个/UL标签。所有的姓名标签被转换为LI标签加以显示。同样,/姓名转换LI标签。所有的EMAIL标签被转换为LI标签加以显示。同样,/EMAIL转换为/LI标签。,2002-8-16,XML基础及相关技术,9,为什么要XML 仍从HTML说起,“从网络使用之初,我们一直在所有文件中都使用近乎相同的格式,HTML格式.使用具有固定语法的固定标记集具有一定的好处,即简单性。但是,HTML非常有限,网页设计者希望能够对页面的表现能力具有更多的控制,这就需要求助于XML。”专门为描述网页的表现形式而设计的,疏于对信息语意及其内部结构的描述。对形式的描述能力实际也还是非常不够的,无法描述矢量图形、科技符号和一些其它的特殊显示效果。IE和Netscape都给HTML加入了一些特殊的标记,以便为自己的浏览器增加一些特殊的显示效果。HTML的标记日益臃肿,文件结构混乱而缺乏条理,导致浏览器的设计越来越复杂,还降低了不同浏览器之间的兼容性。搜索时间长.动态内容需要下载的部件太多。HTML可扩展性差.,2002-8-16,XML基础及相关技术,10,为什么要XMLXML的第一大优势自由民主的网上世界,自由地制定你自己的标记语言。允许各个组织、个人建立适合他们自己需要的标记库,并且,这个标记库可以迅速地投入使用允许各个不同的行业根据自己独特的需要制定自己的一套标记,但它并不强迫所有浏览器都能处理这些成千上万个千奇百怪的标记,同样也不要求标记语言的制定者制定出一个非常详尽非常全面的语言从而适合各个行业各个领域的应用。现在许多行业、机构都利用XML定义了自己的标记语言。比较早而且比较典型的是下面两个实例:化学标记语言CML(Chemistry Markup Language)数学标记语言MathML(Mathematical Markup Language),2002-8-16,XML基础及相关技术,11,为什么要XML XML的第二大优势超越于格式之上,在HTML中,显示方式内嵌于数据之中在这些数据中寻找信息非常困难数据自身的逻辑不得不屈服于HTML语言规范的逻辑张三用户ID:001公司:A公司EMAIL:电话:(010)62345678地址:五街1234号城市:北京市省份:北京ZIP:100001,在XML中,显示样式从数据信息中抽取出来,放在样式单文件中在XML中数据搜索可以简单高效地进行XML是自我描述语言 张三 001 A公司(010)62345678 五街1234号 北京市 北京 100001。,2002-8-16,XML基础及相关技术,12,为什么要XML XML的其它优点,XML遵循严格的语法要求(与HTML相比)不但要求标记配对、嵌套,而且还要求严格遵守DTD的规定提供较好的可读性和可维护性减轻了浏览器开发人员的负担,也提高了浏览器的时间空间效率XML便于不同系统之间信息的传输各种不同的系统之间可以采用XML作为交流媒介。XML不但简单易读,而且可以标注各种文字、图像甚至二进制文件XML具有较好的保值性,2002-8-16,XML基础及相关技术,13,为什么要XML XML的一点缺陷?,XML固然好,但也有它不足的一面,阻碍了它的发展。而其中最大的不足,便是至今都没有什么能够充分支持它的应用处理程序。随着越来越多的用户看到将他们的数据用XML组织的好处后,相信XML的分析算法和相应的工具也会逐渐完善起来,XML的后端支持将变得越来越简单。从IE和Netscape所提供的内置XML分析工具中,我们还是看到了无限希望嘛!,2002-8-16,XML基础及相关技术,14,为什么要XML XML与HTML的比较,2002-8-16,XML基础及相关技术,15,XML的来龙去脉 XML之发展史,XML的两个先驱SGML和HTMLSGML(Standard Generalized Markup Language)它为语法置标提供了异常强大的工具,同时具有极好的扩展性,因此在分类和索引数据中非常有用。目前,SGML多用于科技文献和政府办公文件中。SGML非常复杂,而且非常昂贵。HTMLHTML是一个非常简单的SGML语言,免费;获得了广泛的支持。HTML有许多致命的弱点,正如前面所分析的那样。XML国际互联网论坛W3C(World Wide Web Consortium):为World Wide Web的发展开发通用的协议和标准。既具有SGML的强大功能和可扩展性,同时又具有HTML的简单性。SGML中所有非核心的、未被使用的和含义模糊的部分都被删除,剩下的就成为短小精干的置标工具XMLW3C于1998年2月批准了XML的1.0版本,2002-8-16,XML基础及相关技术,16,XML的来龙去脉 置标语言家族一览,2002-8-16,XML基础及相关技术,17,XML实例,为置标语言FCLML制定的DTD fclml.dtd,2002-8-16,XML基础及相关技术,18,XML实例(cont.),关于客户联系信息的标准XML文件 client.xml,张三 001 A公司(010)62345678,五街1234号 北京市 北京 李四 002 B公司 libbb.org(021)87654321 南京路9876号 上海 上海,2002-8-16,XML基础及相关技术,19,XML实例(cont.),为client.xml制定一个样式单mystyle.xsl,F公司的客户联系信息,用户ID:公司:EMAIL:电话:街道:城市:省份:,2002-8-16,XML基础及相关技术,20,XML实例(cont.),XML文件被样式单转换为下面的HTML文件,F公司的客户联系信息 张三用户ID:001公司:A公司EMAIL:电话:(010)62345678地址:五街1234号城市:北京市省份:北京,李四ID:002公司:B公司EMAIL:libbb.org电话:(021)87654321地址:南京路9876号城市:上海市省份:上海,2002-8-16,XML基础及相关技术,21,XML实例(cont.),所看到的显示结果,实际上同上面这个HTML文件的显示结果是相同的,张三 用户ID:001 公司:A公司 EMAIL:电话:(010)62345678 地址:五街1234号 城市:北京市 省份:北京 李四 ID:002 公司:B公司 EMAIL:libbb.org 电话:(021)87654321 地址:南京路9876号 城市:上海市 省份:上海,2002-8-16,XML基础及相关技术,22,提 纲,山重水复疑无路,柳暗花明又一村XML的诞生没有规矩,不成方圆XML语法海纳百川,有容乃大DTD与Schema花想衣裳云想容XML文件的显示江山如画,一时多少豪杰XML标准体系框架千帆竟发,百舸争流关于XML的编辑与浏览工具问苍茫大地,谁主沉浮XML的应用和发展前景,2002-8-16,XML基础及相关技术,23,没有规矩,不成方圆 XML语法,什么是“形式良好的”XML文件XML文件的逻辑结构XML文件的整体结构用XML声明作为开头XML文件的精髓XML元素XML元素字符数据标记CDATA注释处理指示XML文件的物理结构实体实体的两种类型实体的使用方式,2002-8-16,XML基础及相关技术,24,什么是“形式良好的”XML文件,XML是一个元置标语言,可以看作是用来产生置标语言的工具。因此,XML并没有预定义一个特定的标记集,而是描述了一个用来定义标记集的方法。当我们用这个方法规定好一个标记集,并根据这些规定填入文本内容后,这些标记就和纯文本一起构成了一个XML文件。XML文件实际上是广义的文件,更准确的叫法应该是一个“数据对象”,但是为了简便起见,我们仍称它为“文件”。在XML中,“形式良好”(well-formed)有着明确的标准,即是要遵守XML1.0规范中的语法规则。无论是从物理结构上讲,还是从逻辑结构上讲,XML都必须符合规范,才能被正确解释处理。XML创建之初的目标就是希望XML文件既容易被人阅读,又容易被机器理解。所以,确保你的文件是“形式良好的”,这是一个最低标准,符合了这个标准,就能保证连最笨的机器也能阅读你的XML文件了。保证了XML严密的条理性、逻辑性和良好的结构性,XML的优点也正是依靠它们体现出来的。,2002-8-16,XML基础及相关技术,25,没有规矩,不成方圆 XML语法,什么是“形式良好的”XML文件XML文件的逻辑结构XML文件的整体结构用XML声明作为开头XML文件的精髓XML元素XML元素字符数据标记CDATA注释处理指示XML文件的物理结构实体实体的两种类型实体的使用方式,2002-8-16,XML基础及相关技术,26,XML文件的逻辑结构 XML的整体结构,1 2 3 4 5 XML 6 XML是一种可扩展的源置标语言,它可用以规定新的置标规则,并根据这个规则组织数据7 8 9 11 张三12 13 14 15 16 17,XML文件最基本的构成XML声明:1处理指示(可选):12XML元素:317标记:e.g.5 字符数据:e.g.5“XML”CDATA:914注释:8,2002-8-16,XML基础及相关技术,27,XML文件的逻辑结构 用XML声明作为开头,当写一个XML文件时,最好以一个XML声明作为开始。XML声明在文件中是可选内容,但W3C推荐加入这一行声明。因此,作为一个良好的习惯,我们通常把XML声明作为XML文件的第一行。XML声明是处理指示的一种。它的作用就是告诉XML处理程序:“下面这个文件是按照XML文件的标准对数据进行置标的”。一个完整的XML声明是:XML声明由“”结束。在“?”后面紧跟着处理指示的名称“xml”。,2002-8-16,XML基础及相关技术,28,XML文件的逻辑结构 用XML声明作为开头(cont.),三个属性version属性在一个XML的处理指示中必须包括version属性指明所采用的XML的版本号,而且,它必须在属性列表中排在第一位。当前的XML最新版本是1.0.standalone属性(可选)这个属性表明该XML文件是否和一个独立的置标声明文件配套使用。因此,如果该属性置为“yes”,说明没有另外一个配套的DTD文件来进行置标声明。相反,如果这个属性置为“no”,则有可能有这样一个文件。encoding属性(可选)所有的XML语法分析器都要支持8位和16位的编码标准。几个常见的编码:简体中文码(GB2312)、繁体中文码(BIG5)、西欧字符(UTF-8),2002-8-16,XML基础及相关技术,29,XML文件的逻辑结构 XML元素,元素的形式:数据内容元素中还可以再嵌套别的元素所有的XML文件都至少包含一个形式良好的根元素。根元素,又称为文件标记,紧跟在XML声明之后,如果该XML文件中还内嵌了DTD,则这个根标记紧跟在DTD之后。根标记必须是一个非空的标记,其中包含了整个文件的数据内容。XML中开始和结束标记之间的文字称作“字符数据”,而把置标内的标示文字称作“标记”。,2002-8-16,XML基础及相关技术,30,XML文件的逻辑结构 字符数据,一对标记之间出现的字符数据可以是任何合法的UNICODE字符为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些有用的实体引用。当在字符数据中需要使用这些特殊符号时,我们采用它的实体引用来代替。在“示例”这个标记中出现文本:“张三”示例,2002-8-16,XML基础及相关技术,31,XML文件的逻辑结构 标记,XML的标记和HTML的标记在模样上大体相同,除了注释和CDATA部分以外,所有符号“”和符号“”之间的内容都称为标记。其基本形式为:标记名(属性名=“属性取值”)*XML对于标记的语法规定比HTML要严格得多标记必不可少大小写有所区分要有正确的结束标记。结束标记除了要和开始标记在拼写和大小写上完全相同,还必须在前面加上一个斜杠“/”。如果开始标记是HELLO,结束标记应该写作/HELLO。当一对标记之间没有任何文本内容时,可以不写结束标记,而在开始标记的最后惯以斜杠“/”来确认。这样的标记称为“空标记”。如:标记要正确嵌套,2002-8-16,XML基础及相关技术,32,XML文件的逻辑结构 标记(cont.),标记命名要合法标记应该以字母、下划线“_”或冒号“:”开头,后面跟字母、数字、句号“.”、冒号、下划线或连字符“-”,但是中间不能有空格,而且任何标记不能以“xml”起始。另外,最好不要在标记的开头使用冒号,尽管它是合法的,但可能会带来混淆。在XML1.0标准中允许使用任何长度的标记,不过,现实中的XML处理程序可能会要求标记的长度限制在一定范围内。有效使用属性标记中可以包含任意多个属性。在标记中,属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号“=”分隔,且取值用引号引起来。如:属性命名的规范与标记命名规范大体相似,需要注意有效字母、大小写等一系列问题。不过,在必要的时候,属性中也可以包含空白符,标点和实体引用。需要特别注意的是,在XML中属性的取值必须用引号引起来,但在HTML中这一点并不严格要求。属性的所有赋值都被看作是字符串。如:圆柱体 半径=“10”高=“13”程序应该能够把字符串“10”和“13”转化为它们所代表的数字。,2002-8-16,XML基础及相关技术,33,XML文件的逻辑结构 CDATA,在一个特殊的标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:!CDATA 文本内容 CDATA的文本内容中是不能出现字符串“”,当你的文本数据中包含大量特殊符号时,你不得不通篇地使用实体引用,把本来很清晰的一段文字搞得乱七八糟。,为了避免这种不便,你可以把这些字符数据放在一个CDATA数据块中,这样不管它看上去是一个标记还是一个实体引用,这些数据统统被当作字符照单全收。张三,2002-8-16,XML基础及相关技术,34,XML文件的逻辑结构 注释,在HTML中,注释是用“!-”和“-”引起来的。在XML中,注释的方法完全相同。如:XML处理器对于注释中的一切内容都会视而不见,注释中出现的标记也一同被忽略。在XML文件中使用注释时,同样要遵守几个规则在注释文本中不能出现字符“-”或字符串“-”不要把注释文本放在标记之中,否则,它就不是一个“形式良好的”XML文件了。类似地,不要把注释文本放在实体声明中,也不要放在XML声明之前。注释不能被嵌套。,2002-8-16,XML基础及相关技术,35,XML文件的逻辑结构 处理指示,处理指示是用来给处理XML文件的应用程序提供信息的。也就是说,XML分析器可能对它并不感兴趣,而把这些信息原封不动地传给XML应用程序。然后,这个应用程序来解释这个指示,遵照它所提供的信息进行处理,或者再把它原封不动地传给下一个应用程序。正如我们前面看到的,XML声明就是一个处理指示。所有的处理指示应该遵循下面的格式:?处理指示名 处理指示信息?一个处理指示来指定与这个XML文件配套使用的样式单的类型及文件名:,2002-8-16,XML基础及相关技术,36,没有规矩,不成方圆 XML语法,什么是“形式良好的”XML文件XML文件的逻辑结构XML文件的整体结构用XML声明作为开头XML文件的精髓XML元素XML元素字符数据标记CDATA注释处理指示XML文件的物理结构实体实体的两种类型实体的使用方式,2002-8-16,XML基础及相关技术,37,XML文件的物理结构 实体,从物理结构上讲,XML文件归根结底是由一组“实体”构成的。实体充当着和别名类似的角色。即,一个简单的实体名称可以用来代表一大段文本内容。象任何计算机别名系统一样,实体引用简化了你的录入工作,因为每当你要使用那一大段文本时,你只须使用它的别名就可以了,处理器会自动为你把这个别名替换为相应的文本。所有的XML文件都包含了一个“根实体”,又称作“文件实体”。这个实体是由XML本身给出的,无须显式定义就可以使用,它指的其实就是整个文件的内容。,假如你为你的信件署名定义了一个实体lettersign,它代表下面这一大段文本:张三 某网络公司销售部门 北京市海淀区中关村88号,100000,信件 收件人李四/收件人 主题hello/主题 正文hello!&lettersign;/正文/信件,2002-8-16,XML基础及相关技术,38,XML文件的物理结构 实体的两种类型,一般实体定义一般实体的格式!ENTITY 实体名“文本内容”也可以指定一个实体代替一个外部文件的内容,此时要使用SYSTEM这个关键字。参数实体参数实体既可以是内部的也可以是外部的。不过,参数实体只用在DTD中。参数实体的格式与一般实体很类似,只不过中间要加上“%”符。!ENTITY%实体名 文本内容,!ENTITY lettersign张三某网络公司销售部门北京市海淀区中关村88号,100000,!ENTITY lettersignSYSTEM http:/,2002-8-16,XML基础及相关技术,39,XML文件的物理结构 实体的使用方式,实体声明对于实体的声明应该放在文件类型DOCTYPE中。DOCTYPE一般放在文件头(即XML声明和DTD)之后,XML元素之前。实体引用一般实体&实体名;参数实体%实体名;,实体引用的几点规则在引用XML实体之前,必须已经在XML文件中对此实体进行过声明;在实体引用中不能出现空格。也就是说,的用法都会引起错误。尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说,一个实体不能引用它自己;同样,也不能出现实体A引用实体B,然后实体B再反过来引用实体A的情况。实体引用不能在DOCTYPE声明中出现。实体引用的文本必须是形式良好的XML。,具体数据内容,2002-8-16,XML基础及相关技术,40,XML文件的物理结构 实体的使用方式,实体引用不仅可以出现在字符数据中,还可以出现在标记的属性中。如:如果在属性中出现实体引用,不但要遵守前面所述的实体引用的种种规则,还要注意以下两点:在标记属性中不能引用一个外部实体。引用的文本中不能出现字符“”,否则替换后就不再是一个“形式良好的”XML文件了。,张三 A公司/地址,2002-8-16,XML基础及相关技术,41,提 纲,山重水复疑无路,柳暗花明又一村XML的诞生没有规矩,不成方圆XML语法海纳百川,有容乃大DTD与Schema花想衣裳云想容XML文件的显示江山如画,一时多少豪杰XML标准体系框架千帆竟发,百舸争流关于XML的编辑与浏览工具问苍茫大地,谁主沉浮XML的应用和发展前景,2002-8-16,XML基础及相关技术,42,海纳百川,有容乃大 DTD与Schema,DTD 的定义Schema的定义XML命名空间,2002-8-16,XML基础及相关技术,43,DTD的定义,DTD的基本结构DTD引入“有效的”XML文件中内部DTD外部DTD公用DTD定义元素及其后代元素类型声明定义元素及其子元素有顺序的子元素重复元素成组元素OR或,可选子元素混合内容空元素定义元素属性定义有效的元素属性属性缺省值属性类型CDATA类型枚举类型ID和IDREFNMTOKEN和NMTOKENSNOTATION类型实体属性类型与参数实体Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,44,DTD的基本结构 DTD引入“有效的”XML文件中,一个“有效的”(valid)文件首先应该是“形式良好”(well-formed)的。还必须遵守文件类型描述DTD(Document Type Definition)中定义的种种规定。DTD实际上是“元标记”这个概念的产物,它描述了一个置标语言的语法和词汇表,也就是定义了文件的整体结构以及文件的语法。简而言之,DTD规定了一个语法分析器为了解释一个“有效的”XML文件所需要知道的所有规则的细节。为了说明特定的语法规则,DTD采用了一系列正则式,语法分析器将这些正则式与XML文件内部的数据模式相匹配,从而判别一个文件是否是有效的。一个“有效的”XML文件就是一个“形式良好的”SGML文件,也就是说,符合DTD中定义的语法是SGML文件的基本要求。从这个意义上说,XML把合法文件的范围扩大了,既包括“有效的”XML,也可包括“形式良好的”XML。,2002-8-16,XML基础及相关技术,45,DTD的基本结构 内部DTD,最简单的使用DTD的方法是在XML文件的序言部分加入一个DTD描述,加入的位置是紧接在XML处理指示之后。一个包含DTD的XML文件的结构为:文件体.,client.xml 张三 001 A公司(010)62345678 五街1234号 北京市 北京 李四,2002-8-16,XML基础及相关技术,46,DTD的基本结构 外部DTD,外部DTD的好处是:它可以方便高效地被多个XML文件所共享。当许多组织需要统一它们的数据交换格式时,它们就是通过外部DTD来完成的。这样做不仅简化了输入工作,还保证当你需要对DTD做出改动时,不用一一去改每个引用了它的XML文件,只要改一个公用的DTD文件就足够了。引用一个外部DTD,必须修改XML声明和DOCTYPE声明。举例,2002-8-16,XML基础及相关技术,47,DTD的基本结构 外部DTD,张三001A公司(010)62345678五街1234号北京市北京100001李四002B公司libbb.org(021)87654321南京路9876号上海上海200002,2002-8-16,XML基础及相关技术,48,DTD的基本结构 公用DTD,SYSTEM不是引用外部DTD的唯一方法,这个关键字主要用于引用一个作者或组织所编写的众多XML文件中通用的DTD。还存在一种外部DTD,它是一个由权威机构制订的,提供给特定行业或公众使用的DTD。因此,另一个引用外部DTD的办法是使用关键字PUBLIC,引用这一类公开给公众使用的DTD。当使用关键字PUBLIC进行引用时,这个外部DTD还需要得到一个标识名。引用公共DTD的形式为,2002-8-16,XML基础及相关技术,49,DTD的基本结构 公用DTD(cont.),DTD名称只能包含字母、数字、空格和下面的符号:_%$#()+:=/!*;?。同时,DTD名称还必须符合一些标准的规定。例如,ISO标准的DTD以“ISO”三个字母开头;被改进的非ISO标准的DTD以加号“+”开头;未被改进的非ISO标准的DTD以减号“-”开头。无论是哪一种情况,开始部分后面都跟着两个斜杠“/”及DTD所有者的名称。在这个名称之后又是两个斜杠“/”,再然后是DTD所描述的文件的类型。最后,在又一对斜杠之后是语言的种类(参见ISO 639)。,2002-8-16,XML基础及相关技术,50,DTD的定义,DTD的基本结构DTD引入“有效的”XML文件中内部DTD外部DTD公用DTD定义元素及其后代元素类型声明定义元素及其子元素有顺序的子元素重复元素成组元素OR或,可选子元素混合内容空元素定义元素属性定义有效的元素属性属性缺省值属性类型CDATA类型枚举类型ID和IDREFNMTOKEN和NMTOKENSNOTATION类型实体属性类型与参数实体Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,51,定义元素及其后代 元素类型声明(ETD),ETD不但说明了每个文件中可能存在的元素,给出了元素的名字,而且给出了元素的具体类型。一个XML元素可以为空,也可以是一段纯文本,还可以有若干个子元素,而这些子元素同时又可以有它们的子元素。DTD正是通过元素之间的父子关系,描述了整个文件的结构关系。ETD应该采用如下的结构:,张三,2002-8-16,XML基础及相关技术,52,定义元素及其后代 元素类型声明(cont.),注意除了根元素外,在定义其它元素时使用关键字ANY都是不好的习惯。一个定义明确的DTD,实际上会使你在书写XML文件时有规可循,方便了你的工作和语法分析器的工作。在定义元素时,ETD的顺序是无关紧要的。不能对不同的元素使用相同的元素名,即便这些元素的内容、包含的子元素不同也不行,因为它只会引起文件各个元素的混淆,使文件的可读性大打折扣。元素名的第一个字母必须是字母、或下划线(_)、或冒号(:),后跟字母、数字、句号(.)、冒号、下划线、连结号(-)的组合,并且不能包含空白符,不能以“xml”开头。尽管XML1.0标准允许使用任何长度的文件名,但是实际的XML处理器常常会限制标记名的长度。,2002-8-16,XML基础及相关技术,53,定义元素及其后代 定义元素及其子元素,元素定义是由它们的元素内容模型(ECM)来描述的,也就是说,是由紧跟元素后面的括号中的内容来定义的。ECM中的内容采取一组正则表达式的形式。,2002-8-16,XML基础及相关技术,54,定义元素及其后代 有顺序的子元素,一个元素的各个子元素之间可以以任意顺序出现,也可以强制遵循一定的顺序。不要求顺序的子元素:用空格分隔子元素要求顺序的子元素:用逗号“,”分隔两个子元素,张三,张三,2002-8-16,XML基础及相关技术,55,定义元素及其后代 重复元素,张三,张三,2002-8-16,XML基础及相关技术,56,定义元素及其后代 成组元素,子元素可以使用括号并为一组。,张三 李四 libbb.org 王五 wangccc.org,2002-8-16,XML基础及相关技术,57,定义元素及其后代 OR或,张三,张三 12345678,张三,张三 12345678,张三,在一个组中,只允许使用一种连接符(例如“,”或“|”)。,2002-8-16,XML基础及相关技术,58,定义元素及其后代 可选子元素,张三 五街1234号 北京市 北京,张三,2002-8-16,XML基础及相关技术,59,定义元素及其后代 混合内容,张三(010)62345678 这是关于张三的信息,2002-8-16,XML基础及相关技术,60,定义元素及其后代 空元素,还有一种情况是,一个元素中不包含任何子元素,也不包含纯文本。对于这种情况,我们可以定义一个空标记。当然,定义这样一个标记很简单,你只需要使用关键字EMPTY就可以了,例如:这样,在你的XML文件中,就可以使用一个空元素。,2002-8-16,XML基础及相关技术,61,DTD的定义,DTD的基本结构DTD引入“有效的”XML文件中内部DTD外部DTD公用DTD定义元素及其后代元素类型声明定义元素及其子元素有顺序的子元素重复元素成组元素OR或,可选子元素混合内容空元素定义元素属性定义有效的元素属性属性缺省值属性类型CDATA类型枚举类型ID和IDREFNMTOKEN和NMTOKENSNOTATION类型实体属性类型与参数实体Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,62,定义元素属性 定义有效的元素属性,在DTD中定义属性时,我们使用下面的格式:元素名是属性所属的元素的名字;属性名是属性的命名;缺省值说明在XML文件中,如果没有特别说明属性的取值,语法分析器默认它具有的取值;属性类型则用来指定该属性是属于十个有效属性类型中的哪种类型。注意:由于ATTLIST是一个属性的列表,它可以包含很多属性,在实际应用中,一个元素也经常有多个属性。,2002-8-16,XML基础及相关技术,63,定义元素属性 属性缺省值,必须赋值的属性 REQUIRED不用提供缺省值。属性值可有可无的属性 IMPLIED文法解释器不再强行要求你在XML文件中给该属性赋值,而且也无须在DTD中为该属性提供缺省值。可以说,这是对属性值有无的最低要求,现实中经常用到。固定取值的属性 FIXED提供一个缺省值,并且不希望XML文件的编写者把你的缺省值替代掉。定义缺省值的属性不使用上面任何一种关键字的话,该种属性就是属于这种类型。对于这种属性,你需要在DTD中为它提供一个缺省值。而在XML文件中可以为该属性给出新的属性值来覆盖事先定义的缺省值,也可以不另外给出属性值,后一种情况下它就默认为采用DTD中给出的缺省值。,2002-8-16,XML基础及相关技术,64,定义元素属性 属性类型,一个元素属性可以为以下十种类型中的任意一种:CDATA Enumerated ID IDREF IDREFS ENTITY ENTITIES NMTOKEN NMTOKENS NOTATION,2002-8-16,XML基础及相关技术,65,定义元素属性 CDATA类型,CDATA指的是纯文本,即由字符、符号“&”、小于号“我可不这么认为!为什么呢?,2002-8-16,XML基础及相关技术,66,定义元素属性 枚举类型,属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字ENUMERATED是不出现在DTD定义中的。,2002-8-16,XML基础及相关技术,67,定义元素属性 ID类型,ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程序或脚本语言使用。ID的值必须是一个有效的XML名称,它由字母、数字或下划线开始,名字中不能出现空白符。另外一般而言,不要给ID类型的属性事先指定缺省值,这很容易引起不同的元素具有相同的标识的情况,更不能使用FIXED型的缺省值。此类属性经常使用REQUIRED缺省类型,当然,这也不是必须的。有的应用并不要求每个元素都有自己的标识,所以,也可以使用IMPLIED缺省类型。,张三 李四 libbb.org,2002-8-16,XML基础及相关技术,68,定义元素属性 IDREF类型,IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。,张三 李四,2002-8-16,XML基础及相关技术,69,定义元素属性 NMTOKEN和NMTOKENS,类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的名字。当需要把一个元素和其它的元件,例如一个JAVA类或一个安全算法,相联系时,可以让它们助你一臂之力。关于元素的定义:授权用户 NMTOKENS#IMPLIEDXML文件:blah blah blah,2002-8-16,XML基础及相关技术,70,定义元素属性 NOTATION类型,现实世界中存在着很多无法或不易用XML格式组织的数据,例如图象、声音、影象等等。对于这些数据,XML应用程序常常并不提供直接的应用支持。通过为它们设定NOTATION类型的属性,可以向应用程序指定一个外部的处理程序。例如,当你想要为一个给定的文件类型指定一个演示设备时,可以用NOTATION类型的属性作为触发。要使用NOTATION类型作为属性的类型,首先要在DTD中为可选用的记号作出定义。定义的方式有两种,一种是使用MIME类型,形式是:再有一种是使用一个URL路径,指定一个处理程序的路径。,2002-8-16,XML基础及相关技术,71,定义元素属性 实体属性类型,内部实体定义:外部实体定义:引用方式:&实体名;使用关键字ENTITY,则声明一个属性是实体类型,它的取值为已定义的实体。,2002-8-16,XML基础及相关技术,72,定义元素属性 参数实体,参数实体专门用在DTD中。定义方式引用方式为:%实体名;,2002-8-16,XML基础及相关技术,73,Dublin Core Metadata DTD,Eric Miller Dan Brickley Based on Dublin Core Metadata Element Set,Version 1.1:Reference Description http:/dublincore.org/documents/1999/07/02/dces/This DTD is for information only and NON-NORMATIVE.-,2002-8-16,XML基础及相关技术,74,Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,75,Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,76,Dublin Core Metadata DTD,2002-8-16,XML基础及相关技术,7

    注意事项

    本文(XML基础及相关技术.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开