好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第二部分XML语言.ppt

133页
  • 卖家[上传人]:cn****1
  • 文档编号:588963624
  • 上传时间:2024-09-09
  • 文档格式:PPT
  • 文档大小:1.50MB
  • / 133 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第二章 XML语言q第一节第一节 XMLXML概述概述q第二节第二节 XMLXML语法语法q第三节第三节 DTDDTDq第四节第四节 SchemaSchemaq第五节第五节 NamespaceNamespaceq第六节第六节 XSLXSLq第七节第七节 XMLXML的应用的应用q第八节第八节 其他其他 如何表示信息?序号序号书名书名出版社出版社出版日期出版日期售价售价1国民党研究续集国民党研究续集 中国友谊出版公司1999-01-0111.4 元2李敖议坛衰思录李敖议坛衰思录 中国友谊出版公司2009-01-0131.6 元3李敖作品精选李敖作品精选-为中国思想趋向为中国思想趋向求答案求答案 中国友谊出版公司2001-04-012.7 元4李敖送电集李敖送电集:李敖著李敖著 中国友谊出版公司2004-01-0111.4 元5李敖有话说李敖有话说.7 中国友谊出版公司2007-10-3019.3 元6李敖有话说李敖有话说6 中国友谊出版公司2007-07-0122.0 元7李敖有话说李敖有话说5 中国友谊出版公司2007-05-1117.3 元8李敖生死书李敖生死书:我们没有明天我们没有明天 中国友谊出版公司2006-12-0119.8 元9只爱一点点只爱一点点:从万宝囊到臭屎堆从万宝囊到臭屎堆 中国友谊出版公司2006-12-019.9 元10李敖有话说李敖有话说4 中国友谊出版公司2006-08-0124.6 元 如何表示信息? 如何表示信息? 计算机可读懂的信息表示TCP/IP格式 计算机与人均可读的信息表示         国民党研究续集     中国友谊出版公司     1999-01-01     11.4 元         李敖议坛衰思录     中国友谊出版公司     2009-01-01     31.6 元         李敖有话说     中国友谊出版公司     2007-01-01     11.4 元 演示演示: q 第一节、XML概述qXML介绍qXML的组成 XML介绍 XML: eXtensible Markup Language中文译为“可可扩扩展展标标记记语语言言”,是用于标记电子文件使其具有结构性的标记语言。

      是SGML(Standard generalized markup language) 的一子集.  q标记标记读书时,为了突出重点,可以用彩色笔把某些句子加亮,或者下划线文字编辑器借助置标来定义格式与外观通信程序依靠置标理解所传输信息的语意数据库通过置标来将数据字段与一定的含义相连,并表明字段之间的关系 q标记语言标记语言一种用来给文本添加标记的语言q置标用标记语言对数据进行编码的过程 qGMLGML((Generalized Markup LanguageGeneralized Markup Language))2 0世纪6 0年代,I B M公司创建了第一个标识文档的通用标记语言GML最初,GML只被用于IBM内部文档 qSGMLSGML随着众多企业采用GML,它被扩展为标准通用标记语言SGMLSGML (Standard Generalized Markup Language)1986年,国际标准化组织把SGML确定为ISOØhttp://www.iso.org/SGML特点ØSGML包含一系列的文档类型定义(简称DTD)ØSGML是可以扩展;ØSGML十分复杂,不易学习使用,计算机实现也十分困难。

      qHTML1989年,欧洲核子物理研究中心在SGML基础上提出HTML(HyperText Markup Language )HTML包含一组事先定义好的标签,每个标签表明一定的显示格式–例如:


      …被置标后的HTML文件,同时包含文本及文本显示格式信息HTML文件由专门处理工具进行读取、显示 qHTML特点ØHTML只使用SGML中很小一部分标签ØHTML规定的标签是固定的,不可扩展,它不需包含DTDØHTML简单、易学易用ØHTML使 Web 技术从计算机界走向千家万户从从从从SGMLSGML到到到到HTMLHTML,从,从,从,从MARCMARC到到到到DCDC,从,从,从,从Z39.50Z39.50到到到到SRUSRU qW3C推出精简SGML—XMLHTML过于简单的语法无法表现复杂的形式,不能满足不断增长的需求SGML太庞大,用户学、用不方便,且要全面实现SGML的浏览器又非常困难 qXMLXMLXML是一种比HTML更强大的标记语言XML同样依赖于描述一定规则的标签和能够读懂这些标签的处理工具XML是可扩展的标记语言Ø与HTML事先定义好固定标签不同,XML提供一个标签标准,用户可以根据实际需要自行定义新的标签。

      qXML目标目标在互联网上直接使用(类似于HTML) 支持各种不同的应用方式(浏览、内容分析) 与SGML兼容(SGML是XML的直接先驱) 处理XML文件的应用程序应该容易编写 XML文件具有良好的可读性(HTML的易读性很差) 用XML设计新的标记语言应该方便快捷(不必再去经历标准制定程序) XML文件应该容易编制(借助普通编辑工具就能编写) XML标记的简洁性并不重要(不必再去费尽心机减少标记)  qXMLXML19981998年年XML1.0XML1.0成为成为W3CW3C推荐标准推荐标准Øhttp://www.w3.org/TR/1998/REC-xml-19980210 XML 1.0 (Fifth Edition) XML 1.0 (Fifth Edition) Øhttp://www.w3.org/TR/REC-xml/ 第一节、XML概述qXML简史qXMLXML组成组成qXML的优点 XML文档组成q三部分三部分 标记描述标记描述 ——XML——XML数据文件数据文件(.XML)(.XML)置标语法置标语法 ——DTD/Schema——DTD/Schema文件文件(.DTD/.XSD)(.DTD/.XSD)置标含义置标含义 ——XSL——XSL文件文件(.XSL)(.XSL)XMLDTD/XSDXSL理解结构获得语义 XML标记描述q分两类一类偏重于语意描述ØXML看上去和HTML非常相象,但XML标签具有语义,支持相关工具的语义解析。

      一类偏重于显示方式描述,包括:Ø文本描述Ø矢量图形、图象、声音描述等  <联系人列表> <联系人>        <姓名>张三        001        <公司>A公司        zhang@        <>(010)62345678        <地址>            <街道>五街1234号            <城市>北京            <省份>北京            100001        …….XMLXML标记文档实例标记文档实例 置标语法qDTD(Document Type Definition)置标语法是通过文件类型定义DTD来描述的,即通过DTD来描述什么是有效的标签DTD语法定义文件与XML数据标记文件是分离的 DTDDTD文档文档: :contact.dtdcontact.dtd   <联系人>    <姓名>张三    001    <公司>A公司    zhang@    <>(010)62345678    <地址> <省份>北京 <城市>北京          <街道>五街1234号     XML标记文档标记文档:list.xml 置标含义q样式单样式单(Style Sheet)Style Sheet)为明确各个标签含义,XML使用样式单来向应用程序提供如何处理显示的指示说明。

         F公司的客户联系信息               

                  
      •           
                        
        • 用户ID:
        •               
        • 公司: 
        •               
        • EMAIL: 
        •               
        •           
                
          样式单实例q将XML文档中的<姓名>标签转换为HTML中的
        标签;q将XML文档中的 、<公司>、、<>等标签转换为HTML中的< LI>标签。

          XML核心内容核心内容• XML Specification: http://www.w3.org/TR/2006/REC-xml-20060816/    W3C推荐标准,定义XML基本语法规范•XML Namespace:  http://www.w3.org/TR/REC-xml-names/    提供一种统一命名XML文档中的元素和属性的机制,避免来自不同标记词汇表的元素和属性之间冲突 •XML Schema:http://www.w3.org/XML/Schema    用于定义和描述XML文档结构和内容模式,定义元素和元素之间的关系,定义元素和属性的数据类型XML SpecificationXML Schema((DTD))XPathXSLXLinkXML NamespaceDOMSAXDOM4JApplicationXML应用体系结构应用体系结构 第一节、XML概述qXML简史qXML组成qXML的优点 XML的优点q可以自由地制定自己的置标语言可以自由地制定自己的置标语言不必由有关的组织认可,不必开发专用的浏览器;允许各个组织、个人建立适合他们自己需要的标记库,并且,这个标记库可以迅速地投入使用。

        XML的优点q从语义层次进行描述从语义层次进行描述便于修改便于检索便于处理q遵循严格的语法要求遵循严格的语法要求便于书写、阅读便于借助工具自动化处理      XML的优点q便于不同系统之间信息传输便于不同系统之间信息传输可以标注多种信息类型Ø文字、图像、二进制文件等 XML的优点q具有较好的保值性具有较好的保值性XML的保值性来自SGML语言,SGML最初设计目标是要为文件提供50年以上寿命。

        电子文档的虽然能长期保存,但也存在隐患,处理软件升级导致打开文档的困难性Ø如五十年以后,人们可能没有工具去打开用Word97写的文档 XML与HTML的比较 比较内容比较内容HTMLXML可扩展性可扩展性不具有扩展性支持定义新的置标语言侧重点侧重点如何表现信息如何结构化地描述信息语法要求语法要求不要求标记的嵌套、配对等严格要求嵌套、配对,和遵循DTD的树形结构可读性及可维护性可读性及可维护性难于阅读、维护结构清晰,便于阅读、维护数据和显示的关系数据和显示的关系内容描述与显示方式整合为一体内容描述与显示方式相分离保值性保值性不具有保值性具有保值性编辑及浏览工具编辑及浏览工具比较多相对少 第二章 XML语言q第一节第一节 XMLXML概述概述q第二节第二节 XMLXML语法语法q第三节第三节 DTDDTDq第四节第四节 SchemaSchemaq第五节第五节 XMLXML命名空间命名空间q第六节第六节 XSLXSLq第七节第七节 XMLXML的应用的应用q第八节第八节 其他其他 第二节 XML语法qXML规则q逻辑结构q物理结构参考资料:参考资料: XML Specification ((http://www.w3.org/TR/REC-xml/) XML规则q基本规则基本规则XML文档是由 Unicode 字符集组成的纯文本文档。

        XML 文档具有良好结构 XML文档区分大小写标记之间信息构成字符数据XML处理器不关心字符数据XML可为各种对象、应用程序定义语法和文件格式 XML规则q格式良好性规则格式良好性规则XML 文档结构定义文档结构定义Ø遵循遵循XML 规范规范–基于XML Specification规范构建的 XML 文档被称为“具有良好格式的 XML文档”Ø自定义自定义–由文档作者自行创建结构文档 “DTD”或“XML  Schema”;–XML 处理器按照这个文档中的定义规则进行检验 XML规则q格式良好性规则格式良好性规则 ((1)有且仅有一个根元素有且仅有一个根元素 Ø根元素也称文档元素,整个 XML 文档的其他元素都包含在根元素中,并通过嵌套形成树型结构Ø除了根元素外,其他元素都是子元素2)每个元素必须有开始标记和结束标记)每个元素必须有开始标记和结束标记Ø开始标记的格式是:<标记名称标记名称>Ø 结束标记的格式是:Ø空元素标记:空元素标记:<元素元素/> XML规则q格式良好性规则格式良好性规则((3)元素必须正确嵌套)元素必须正确嵌套Ø元素嵌套时不允许交叉,最先出现开始标记的元素,其结束标记最后出现。

                           …      ((4)所有属性值必须放在双引号或单引号中所有属性值必须放在双引号或单引号中 –((5)如果文档没有)如果文档没有 DTD,,在缺省情况下,所有属性值的类型必在缺省情况下,所有属性值的类型必须是须是“CDATA”  q有效性规则有效性规则 如果 XML 文档中元素出现的个数、顺序以及元素包含的内容都符合 DTD或XML Shema规则,则该文档就是有效的一个 DTD 或 XML Shema 可以被多个XML 文档共享,既保证了 XML 文档结构的标准化,又大大减少编写代码的工作负担DTDXMLXMLXMLXML规则 q命名规则命名规则所有 XML命名都必需以字母、下划线或冒号开头用作命名空间时才以冒号做分隔符Ø如:  dc:title保留字用户不使用Ø如:“ XML”、“xml”XML规则 第二节、 XML的语法qXML规则q逻辑结构q物理结构 XML文件的逻辑结构qXML 文档组成文档头部文档头部Ø声明Ø注释Ø处理指令Ø文档类型定义文档主体文档主体Ø由一个或多个元素组成;Ø每个元素可以有子元素。</p> <p class='cssnone'><?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet href=“list.xsl"?> <联系人列表> <联系人>        <姓名>张三</姓名>        <ID>001</ID>        <公司>A公司</公司>        <email>zhang@</email>        <>(010)62345678</> …</联系人> …</联系人列表>                   XML实例 [1] <?xml version="1.0" encoding="GB2312" ?> [2]<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>[3] <专有名词列表>[4]     <专有名词>[5]         <名词>XML</名词> [6]         <解释>XML是一种可扩展的源置标语言,                         它可用以规定新的置标规则,并根                         据这个规则组织数据 </解释>[7]         <示例>[8]             <!-- 一个XML的例子 -->[9]             <![CDATA[[10]                <联系人>[11]                <姓名>张三</姓名>[12]                <EMAIL>zhang@</EMAIL>[13]                </联系人>  ]]>    [14]        </示例>[15]    </专有名词>[16]</专有名词列表>说明[1]-[2] 是序言[3]—[16] 是文件中的各个元素。</p> <p class='cssnone'>[5]行:“<名词>”“</名词>”是标记,“XML”是字符数据[8] 是注释[9]—[13] 是CDATA XML文档头部q文档头部可以包括声明注释处理指令文档类型定义 XML文档头部q((1 1))XML XML 声明声明一个 XML 文档通常以一个XML声明开始,它指明XML版本等信息,必须出现在XML文档的第一行XML声明的作用就是告诉XML处理程序:“当前文件是按照XML标准对数据进行置标的”<?xml version="1.0" encoding="UTF-8" ?> XML文档头部q((1 1))XMLXML声明声明语法格式 <?xml<?xml version= version=verIDverID encoding= encoding=codeIDcodeID standalone=value standalone=value ?>?> 实例<?xml version  = "1.0"standalone     = "no" encoding       = "GB2312"?> XML文档头部q((1 1))XMLXML声明声明属性ØVersionVersion:必备属性:必备属性–XML版本号,必须在属性列表中排在最前列。</p> <p class='cssnone'>由于当前的XML最新版本是1.0,所以:version = “1.0” ØStandaloneStandalone:可选属性:可选属性–表明该XML文件是否还有一个配套置标声明文件–Standalone=Standalone=“yes”:表示没有配套的DTD文件;–Standalone=Standalone=“no”,可能有这样一个文件(也可能没有) –缺省为: Standalone=Standalone=“no”ØEncodingEncoding:可选属性:可选属性–表明XML文档使用的字符编码标准,常见的有:    简体中文码:GB2312    繁体中文码:BIG5    西欧字符: UTF-8 q((2)处理指令)处理指令(PI,Processing  Instruction)指导应用程序如何处理XML文件,格式:〈?处理指令名 处理指令信息 ?〉用于连接CSS样式单的PI格式 <?xml-<?xml-stylesheetstylesheet href=“ type="text/css" ?> 用于连接XSL样式单的PI格式<?xml-<?xml-stylesheetstylesheet href=“ " type="text/xsl" ?>XML文档头部 q((3)注释)注释XML 中使用注释对文档进行解释说明,增加程序的可读性,处理程序不对注释标记的内容进行处理。</p> <p class='cssnone'>语法         <!-- 注释文字 -->XML文档头部 q((3)注释)注释使用注释规则Ø注释不能出现在声明之前Ø注释可以包容标记,使标记失去作用Ø注释不能出现在标记中Ø注释内容中不能包含“--”Ø以下是合法注释:  <!--<ElementType  name=“学生档案信息” content="eltOnly " model="closed"> -->XML文档头部 q((4)文档类型定义)文档类型定义语法:<!DOCTYPE …><!DOCTYPE …>要求:文档类型定义必须出现在根元素标记符前面实例:<?xml version=“1.0”?><!DOCTYPE 联系人列表 [     <!ENTITY A公司地址 “北京市五街1234号”>    <!ENTITY B公司地址 “上海南京路9876号”〉]> <联系人列表>    <联系人>        <姓名>张三</姓名>    </联系人></联系人列表>XML文档头部 文档主体q文档主体组成文档主体组成一个文档元素(根元素)多个子元素也可以有 PI 和注释 元素   qXMLXML元素元素一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。</p> <p class='cssnone'> < <标记标记〉〉数据内容数据内容〈〈/ /标记标记〉〉元素中还可以再嵌套子元素,例如:<联系人列表> <联系人> <姓名>张三</姓名> … </联系人> </联系人列表> 元素标记q元素标记元素标记基本形式< <标记名标记名 [ [属性名属性名=“=“属性取值属性取值””]>]>例如: <title language=“中文“> q 元素标记命名规则元素标记命名规则(1)以字母或下划线开头,后跟字母、数字、下划线、横线和圆点等,不能包含空格,不能以字符串“xml”作为开头Ø下面是合法的XML标记名称: –<city.stree> 、<myfile-name> 、<content_11> Ø下面是非法的XML标记名称: –<city street> 有空格有空格–<11_content> 以数字开头以数字开头 –<tody&one> 有非法字符有非法字符””&”&”(2)标记是大小写敏感的–<Character> –<character> –<CHARACTER> q 空元素标记空元素标记 Ø正常方式 <IMG <IMG srcsrc="="d:\direct\public\flawer.jpgd:\direct\public\flawer.jpg"></IMG>"></IMG> Ø简便方式<IMG <IMG srcsrc="="d:\direct\public\flawer.jpgd:\direct\public\flawer.jpg"/>"/> 元素属性qXML元素属性属性不影响元素树型结构、并提供附加的上下文。</p> <p class='cssnone'>属性格式: <元素标记名元素标记名 属性名属性名1=“属性值属性值1” 属性名属性名2=“属性值属性值2”…>例如: <title language=“<title language=“中文中文““> > 元素属性举例:<?xml version="1.0" encoding="gb2312"?> <计算机系学生登记表>        <学生    学号=“1236”  性别=“女”>王芳</学生>       <学生    学号=“0694”  性别=“男”>李奇</学生>       <学生    学号=“6288”  性别=“男”>黄昂扬</学生>       <学生    学号=“5864”  性别=“女”>文笛声</学生> </计算机系学生登记表>  q属性定义规则属性定义规则 标记中可以使用多个属性,但属性名称不得重复; 属性名是大小写敏感的; 属性只能出现在起始标记或空标记中; 属性值必须用引号(英文);少用属性,尽可能用子元素因为属性有以下缺陷:少用属性,尽可能用子元素因为属性有以下缺陷: Ø属性值不能包含多重数值,但是元素可以;Ø属性值很难扩展; Ø属性不能描述结构内容,但是元素可以;Ø属性值很难通过 DTD 进行测试。</p> <p class='cssnone'>  字符数据q字符数据字符数据  在起始和结束标记之间出现的字串信息为字符数据< <姓名姓名> >张三张三</</姓名姓名> >以下是两条不同的字符数据: <格式>一段文字</格式> 和: 〈格式>一段文字〈/格式> 后者的文本数据比前者多了两个换行符字符数据可以是任何合法的UNICODE字符,但不能包含“<”、 ”>”等特殊字符 q特殊字符数据表示法一:实体引用特殊字符数据表示法一:实体引用为了在字符数据和标记中使用一些特殊符号,XML提供了实体引用法:特殊字符实体引用>><<&&""’'字符数据 q举例举例数据中的特殊字符Ø字符数据内容:“加入A>B,则B一定是偶数”Ø正确XML表示形式:<示例>加入A>B,则B一定是偶数</示例>属性值中的特殊字符Ø错误写法:<STATEMENT VALUE = "She said, " "Don’’t go there!" "">Ø正确写法:<STATEMENT VALUE = "She said, "Don't go there!"">字符数据 q特殊字符数据表示方法二:特殊字符数据表示方法二:CDATACDATA格式< <!![CDATA[[CDATA[文本内容文本内容]]>]]>CDATA文本内容中是不能出现字符串“]]>”,因为它代表了CDATA数据块的结束标志。</p> <p class='cssnone'>CDATA下所有内容都被当作字符数据看待字符数据 qCDATA与实体引用比较CDATA表示方式<示例><![CDATA[<姓名>张三</姓名>]]></示例>实体引用表示方式<示例><姓名>张三</姓名></示例>字符数据 qXMLXML注释注释用“<!--”和“-->”引起来可以是多行,但不允许出现嵌套字符串“--”、“<”和“>”不能出现在注释中例子:<名词列表> <!--         <名词>HTML</名词>        <名词>XHTML</名词>        <名词>SGML</名词>--><名词>XML</名词></名词列表>注释 第二节、 XML的语法qXML基本规则q逻辑结构q物理结构 XML文件的物理结构q什么是实体什么是实体一个 XML 文件可能由一个或多个存储单元组成,它们被称为实体(entity),它们都具有内容并且都用名字进行标识Ø类似程序设计中的变量,每个变量可存放一定数据实体充当着和别名类似的角色,一个简单的实体名称可以用来代表一大段文本内容实体类型:Ø一般实体Ø参数实体 实体声明q一般实体声明—内部实体 <!ENTITY 实体名 “文本内容”〉 例如<!ENTITY lettersign“张三某网络公司销售部门北京市海淀区中关村88号,100000”〉 q一般实体声明—外部实体<!ENTITY 实体名 SYSTEM “地址”〉例如:<!ENTITY lettersignSYSTEM " 实体声明q参数实体参数实体参数实体的格式与一般实体很类似,只不过中间要加上“%”符。</p> <p class='cssnone'> <!ENTITY % 实体名 "文本内容"〉 参数实体既可以是内部的也可以是外部的,参数实体只用在DTD中 实体声明 q实体声明规则实体声明规则实体声明应该放在文件类型DOCTYPE中DOCTYPE一般放在文件头之后、XML元素之前例如:<?xml version=“1.0”?><!DOCTYPE 文件根元素名 [     <!ENTITY NSLAddress “北京北四环西路33号”>]> <文件根元素名>    … </文件根元素名> 实体引用 q指引用一个已经声明过的实体一般实体引用形式:& &实体名实体名;例如: <地址>&NSLAddress;</地址>参数实体引用形式:% %实体名;实体名;例如:例如:<![%short;[   <!ELEMENT memory (media | subdate | subject+)* > ]]>  实体引用q实体引用规则实体引用规则 被引用的实体必须已经在XML文件中声明过; 实体引用中不能出现空格: 错误引用:& & lettersignlettersign; ;和和& &lettersignlettersign ; ;在一个实体中可以再引用其它实体,但是不能出现循环引用。</p> <p class='cssnone'>实体引用不能在DOCTYPE声明中出现 一般实体声明和引用例子一般实体声明和引用例子<?xml version=“1.0”?><!DOCTYPE 联系人列表 [     <!ENTITY A公司地址 “北京市五街1234号”>    <!ENTITY B公司地址 “上海南京路9876号”〉]> <联系人列表>    <联系人>        <姓名>张三</姓名>        <公司>A公司</公司>>        <地址>&A公司地址;</地址>    </联系人>    <联系人>        <姓名>李四</姓名>        <公司>B公司</公司>        <地址>&B公司地址;〈/地址〉    </联系人></联系人列表>实体声明实体引用 参数实体声明与引用实例<!ENTITY % short "IGNORE"><!ELEMENT memories (memory)* ><!-- Short form --><![%short;[   <!ELEMENT memory (media | subdate | subject+)* >]]><!ATTLIST memory tapeid IDREF #REQUIRED><!ELEMENT subdate (#PCDATA) ><!ELEMENT subject (#PCDATA) ><!ELEMENT media EMPTY >实体声明实体引用 q实体引用规则实体引用规则实体引用不仅可以出现在字符数据中,还可以出现在标记的属性中。</p> <p class='cssnone'>Ø例如:<联系人 公司=“B公司” 地址=“&B公司地址;”> 属性中实体引用规则: Ø在标记属性中不能引用一个外部实体 Ø引用的文本中不能出现字符“<” 实体引用 第三节 DTD 第三节 DTDqDTD基本结构q定义元素及其后代q定义元素属性 DTD基本结构qDTDDocument Type Definition规定XML文档的逻辑结构,主要是来描述XML文件中元素的格式它可以定义文档的语法,以便支持XML语法分析程序根据DTD确认某个XML页面标记的合法性 qDTD特点特点 DTD描述了一个置标语言的语法和词汇表,即定义了XML文件的整体结构及语法 编辑工具根据 DTD中定义的结构创建XML文档XML解析器利用DTD定义验证文档的有效性DTD可以非常简单,仅仅列出所有有效的元素DTD也可以非常复杂,除元素,还可以指出元素之间的关系DTD基本结构 DTD的基本结构qDTD特点特点DTD中的关键字都必须是大写的Ø例如:ELEMENT、ATTLIST、#REQUIRED、#IMPLIED、NMTOKEN、ID等等DTD所定义的元素和属性名是大小写敏感Ø例如 “BOOKS”和“Books”并不相同。</p> <p class='cssnone'> DTD的基本结构qDTD类型类型内部DTD外部DTD公用DTD 内部DTDq内部内部DTDDTD定义的信息放在XML文档中,加在XML文件头部,结构如下: <?xml version = "1.0" encoding="GB2312" standalone = "yes"?> <?xml version = "1.0" encoding="GB2312" standalone = "yes"?><!DOCTYPE <!DOCTYPE 根元素名根元素名[ [        元素描述元素描述        ]>]><?xml-<?xml-stylesheetstylesheet type="text/ type="text/xslxsl" " hrefhref=""?>=""?> ..... ..... 内部DTD实例<?xml version = "1.0" encoding="GB2312" standalone = "yes"?><!DOCTYPE 联系人列表[        <!ELEMENT 联系人列表 (联系人)*>        <!ELEMENT 联系人 (姓名,公司, ,地址)>        <!ELEMENT 地址 (城市,街道)>        <!ELEMENT 姓名 (#PCDATA)>        <!ELEMENT 公司 (#PCDATA)>        <!ELEMENT (#PCDATA)> <!ELEMENT 城市 (#PCDATA)>         <!ELEMENT 街道 (#PCDATA)>    ]><?xml-stylesheet type="text/xsl" href="mystyle.xsl"?><联系人列表>  <联系人>    <姓名>张三</姓名>    <公司>A公司</公司>    <>(010)62345678</>    <地址> <城市>北京市</城市>       <街道>五街1234号</街道>          </地址>  </联系人> …</联系人列表> 外部DTDq什么是外部什么是外部DTDDTDDTD信息保存在XML文件之外的一个独立文件中。</p> <p class='cssnone'>优点Ø多个XML文件共享一个共用DTD文件Ø简化输入,改动DTD不用一一去改每个XML文件缺点Ø如果DTD的改动不是“向后兼容”的,这时原先写的那些XML文件可能就会出问题 外部DTDq外部外部DTDDTD引用引用XML声明中必须说明这个文件不是自成一体的,即standalone属性值应该是“no”<?xml version = "1.0"       encoding="GB2312"       standalone = "no"?>在DOCTYPE声明中,要加入SYSTEM属性:<!DOCTYPE 根元素名SYSTEM "外部DTD文件的URL"> 外部DTDq例子<!DOCTYPE 联系人列表 SYSTEM " URL可以是绝对路径,也可以是相对路径 <!DOCTYPE 联系人列表 SYSTEM "fclml.dtd"> 公共DTDq什么是公共什么是公共DTDDTD以关键字PUBLIC而不是SYSTEM来引用一个由权威机构制订的、提供给特定行业或公众使用的DTD,这个外部DTD还需要得到一个标识名公共DTD的引用形式<!DOCTYPE <!DOCTYPE 根元素根元素 PUBLIC "DTDPUBLIC "DTD名称名称" "" "外部外部DTDDTD的的URL">URL">Ø例如 <!DOCTYPE 联系人列表 PUBLIC "联系人DTD" " 第三节 DTDqDTD基本结构q定义元素及其后代q定义元素属性 qDTD 规范内容规范内容1.DTD 声明2.元素的定义规则及相关信息3.属性的种类及其使用 4.定义元素之间的关系、元素的排列方式 5.定义实体机制及其引用  元素类型声明q 声明XML文件的根元素、文件内容和结构使用元素类型声明( ETD)来声明所有元素。</p> <p class='cssnone'>Ø定义元素名字、类型Ø一个XML元素可以为空,也可以是一段纯文本,还可以有若干个子元素,而这些子元素同时又可以有它们的子元素DTD通过元素之间的父子关系,描述整个文件的结构关系 元素类型声明qETDETD格式格式<!ELEMENT 元素名 元素内容描述>例如: <?xml version = “1.0” encoding=“GB2312” standalone = “yes”?> <!DOCTYPE <!DOCTYPE 联系人列表联系人列表[ [    <!ELEMENT     <!ELEMENT 联系人列表联系人列表 ANY>ANY>    ]>    ]><联系人列表> 纯文本信息说明联系人信息 </联系人列表> 元素类型声明q其他元素其他元素为了使元素“联系人列表”中还可以包含其它元素,还需要定义元素“联系人”和“姓名”例如:<?xml version = “1.0” encoding=“GB2312” standalone = “yes”?><!DOCTYPE <!DOCTYPE 联系人列表联系人列表[ [    <!ELEMENT     <!ELEMENT 联系人列表联系人列表 ANYANY> >    <!ELEMENT     <!ELEMENT 联系人联系人( (姓名姓名)>)>    <!ELEMENT     <!ELEMENT 姓名姓名(#PCDATA)>    (#PCDATA)>        ]>    ]><联系人列表>    <联系人>        <姓名>张三</姓名>    </联系人></联系人列表>•根元素名为根元素名为“联系人列表联系人列表”;;•“联系人列表联系人列表”中可以包含子元中可以包含子元素素“联系人联系人”,也可以包含任何,也可以包含任何纯文本数据纯文本数据 (这即是(这即是ANY的含的含义)义) ;;•“联系人联系人”元素有且只有一个自元素有且只有一个自己的子元素己的子元素“姓名姓名”;;•“姓名姓名”元素只能包含纯文本数元素只能包含纯文本数据(即据(即(#PCDATA))) 元素类型声明q错误的例子:<?xml version = “1.0” encoding=“GB2312” standalone = “yes”?><!DOCTYPE 联系人列表[    <!ELEMENT 联系人列表 ANYANY>    ]><联系人列表>    <联系人>        <姓名>张三</姓名>    </联系人></联系人列表>“联系人”、“姓名”元素没有定义。</p> <p class='cssnone'> 元素类型声明q注意事项注意事项除了根元素外,在定义其它元素时使用关键字ANY都是不好的习惯,让人不知所措在定义元素时,ETD的顺序是无关紧要的因此:     <!ELEMENT 姓名(#PCDATA)>        <!ELEMENT 联系人列表 ANY>    <!ELEMENT 联系人(姓名)>和    <!ELEMENT 联系人列表 ANY>    <!ELEMENT 联系人(姓名)>    <!ELEMENT 姓名(#PCDATA)>    所定义的文件结构是完全相同的 元素类型声明q注意事项注意事项不能对不同的元素使用相同的元素名Ø例如:    <!ELEMENT 联系人列表 ANY>    <!ELEMENT 联系人(姓名)>    <!ELEMENT 联系人(EMAIL)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>在这个例子中,对“联系人”的重复定义,会引起错误 定义元素及其子元素q举例举例下例中,我们定义了一个名为“联系人”的元素,它包含一个单独的子元素“姓名”,“姓名”元素包含字符数据:<?xml version = “1.0” encoding=“GB2312” standalone = “yes”?><!DOCTYPE <!DOCTYPE 联系人列表联系人列表[ [    <!ELEMENT     <!ELEMENT 联系人列表联系人列表 ANY>ANY>    <!ELEMENT     <!ELEMENT 联系人联系人( (姓名姓名)>)>    <!ELEMENT     <!ELEMENT 姓名姓名(#PCDATA)>    (#PCDATA)>        ]>    ]><联系人列表>    <联系人>        <姓名>张三</姓名>    </联系人></联系人列表> 定义元素及其子元素qDTDDTD支持灵活的元素定义支持灵活的元素定义DTD可以对一个元素作如下任何一种类型的定义:Ø有一个子元素;Ø有一个或多个子元素Ø有零个或多个子元素Ø至少有一个子元素Ø有一个或多个子元素Y,或一个子元素Z。</p> <p class='cssnone'> 不要求顺序的子元素q空格分离的元素不限顺序如DTD:     <!ELEMENT 联系人(姓名姓名 EMAILEMAIL)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>有效的XML: <联系人>    <姓名>张三</姓名>    <EMAIL>zhang@</EMAIL></联系人>有效的XML: <联系人>    <EMAIL>zhang@</EMAIL>    <姓名>张三</姓名></联系人> 要求顺序的子元素 q逗号“,,”分隔元素要求顺序DTD:     <!ELEMENT 联系人(姓名姓名, EMAIL, EMAIL)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>有效XML: <联系人>    < <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL></联系人>无效XML:<联系人>    <EMAIL>  <EMAIL>zhang@zhang@</EMAIL></EMAIL>    <    <姓名姓名> >张三张三</</姓名姓名> ></联系人> 重复元素 q “+”:重复元素DTD:      <!ELEMENT 联系人(姓名,EMAIL+ +)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>说明Ø一个“联系人”元素中必须含有一个“姓名”元素,后面接一个或多个“EMAIL”元素。</p> <p class='cssnone'>有效XML <联系人>    <    <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL>    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL>    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL></联系人> 重复元素q““* *””:“:“零个或多个零个或多个””元素元素DTDDTD <!ELEMENT 联系人(姓名姓名,,EMAIL*EMAIL*)>)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>有效有效XMLXML <联系人>    < <姓名姓名> >张三张三</</姓名姓名> >  </联系人>或者 <联系人>    < <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL>    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL></联系人> 成组元素q括号:元素组括号:元素组  DTDDTD    <!ELEMENT 联系人( (姓名姓名,,EMAIL)+EMAIL)+> >    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>说明说明Ø子元素可以使用括号并为一组。</p> <p class='cssnone'>Ø上面DTD片段说明,一个“联系人”元素中可以有一个或多个“姓名/EMAIL”子元素对,并且在每个子元素对中,“姓名”都放在“EMAIL”之前有效有效XMLXML<联系人>    <    <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL>    <    <姓名姓名> >李四李四</</姓名姓名> >    <EMAIL>    <EMAIL>li@bbb.orgli@bbb.org</EMAIL></EMAIL>    <    <姓名姓名> >王五王五</</姓名姓名> >    <EMAIL>    <EMAIL>wang@ccc.orgwang@ccc.org</EMAIL>   </EMAIL>    </联系人> OR或 q符号“| |”:任选一DTD规定: <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL))|EMAIL))> >    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>Ø所有的“联系人”元素应该有一个“姓名”子元素,之后还应该有一个“”或一个“EMAIL”元素,但不能同时有“”和“EMAIL”两个元素。</p> <p class='cssnone'>下面是无效XML(因为缺少或EMAIL) <联系人>    <姓名>张三</姓名></联系人> OR或 q符号“| |”:任选一DTD规定: <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL))|EMAIL))> >    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>下面还是无效XML(因为不能同时有和EMAIL) <联系人>    <姓名>张三</姓名>    <>12345678</>    <EMAIL>zhang@</EMAIL> </联系人> OR或 q符号“| |”:任选一DTD规定: <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL))|EMAIL))> >    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>下面还是无效XML(姓名应放在EMAIL前) <联系人>    <EMAIL>zhang@</EMAIL>    <姓名>张三</姓名></联系人> OR或q符号“| |”:任选一DTD规定: <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL))|EMAIL))> >    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>有效XML文件 <联系人>    <  <姓名姓名> >张三张三</</姓名姓名> >    <    <>12345678</>12345678</> ></联系人>或者是: <联系人>    <    <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL></联系人> OR或q注意事项注意事项在一个组中,只允许使用一种连接符(例如“,”或“|”)。</p> <p class='cssnone'>下面DTD是不合法的: <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,|EMAIL)>|EMAIL)>要想使用多种连接符,只有通过创建子元素组的方式,例如:<!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL))>|EMAIL))> 可选子元素q符号符号““?”?”:可选子元素:可选子元素 例如:   <!ELEMENT 联系人( (姓名,姓名,( (|EMAIL)|EMAIL),,地址地址?)>?)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>    <!ELEMENT 地址(街道,城市,省份)>    <!ELEMENT 街道 (#PCDATA)>    <!ELEMENT 城市 (#PCDATA)>    <!ELEMENT 省份 (#PCDATA)>上面DTD定义: 每一个“联系人”都必须有一个“姓名”子元素,同时或者有一个“” 或者有一个“EMAIL”子元素,此外,它还可以包含一个“地址”子元素,也可以不包含这个元素。</p> <p class='cssnone'> 可选子元素q符号符号““?”?”:可选子元素:可选子元素   <!ELEMENT <!ELEMENT 联系人联系人( (姓名,姓名,( (|EMAIL)|EMAIL),地址,地址?)>?)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>    <!ELEMENT 地址(街道,城市,省份)>    <!ELEMENT 街道 (#PCDATA)>    <!ELEMENT 城市 (#PCDATA)>    <!ELEMENT 省份 (#PCDATA)>q有效有效XMLXML <联系人>    <姓名>张三</姓名>    <EMAIL>zhang@</EMAIL>    <  <地址地址> >        <        <街道街道> >五街五街12341234号号</</街道街道> >        <        <城市城市> >北京市北京市</</城市城市> >        <        <省份省份> >北京北京</</省份省份> >    </    </地址地址> ></联系人> 或者或者 <联系人>    <  <姓名姓名> >张三张三</</姓名姓名> >    <EMAIL>    <EMAIL>zhang@zhang@</EMAIL></EMAIL></联系人> 混合内容q在一个元素中既包含子元素,也包含纯文本。</p> <p class='cssnone'>例如:<?xml version = “1.0” encoding=“GB2312” standalone = “yes”?><!DOCTYPE 联系人列表 [     <!ELEMENT 联系人列表 ANY>        <!ELEMENT 联系人( (姓名姓名, ,,EMAIL,#PCDATA)*>,EMAIL,#PCDATA)*>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT (#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>    ]> <联系人列表>    <联系人>        <        <姓名姓名> >张三张三</</姓名姓名> >        <        <>(010)62345678</>(010)62345678</> >        <EMAIL>        <EMAIL>zhang@zhang@</EMAIL></EMAIL>                这是关于张三的信息这是关于张三的信息          </联系人></联系人列表>注意注意由于在“(姓名,,EMAIL,#PCDATA)”之外有“*”,所以在元素“联系人”中可以包含零个或多个“姓名”、、EMAIL和纯文本字段。</p> <p class='cssnone'> 空元素q空元素空元素一个元素中不包含任何子元素,也不包含纯文本格式: EMPTY    <!ELEMENT HR EMPTYEMPTY> 说明:在XML文件中可以使用一个元素: <HR/> 定义元素及其子元素q正则表达式正则表达式元元 字字 符符含含        义义+出现一次或多次*出现零次或多次?可选,不出现或出现一次()一组要共同匹配的表达式|OR,或,AND,要求严格遵从顺序要求元素A元素B元素C元素列表,无须遵从顺序要求 第三节 DTDqDTD的基本结构q定义元素及其后代q定义元素属性 如何定义元素的属性q属性实例属性实例 假如在XML文档中,“商品”元素有两个属性:“类型”、“颜色”:< <商品商品 类型类型 = “= “服装服装” ” 颜色颜色 = “= “黄色黄色””> > 如何定义元素的属性qDTDDTD属性定义格式属性定义格式:<!ATTLIST <!ATTLIST 元素名元素名 (属性名(属性名 属性类型属性类型 缺省值)缺省值)* *> >例子:例子: <!ATTLIST <!ATTLIST 商品商品       类型类型 CDATA #REQUIREDCDATA #REQUIRED        颜色颜色 CDATA #IMPLIEDCDATA #IMPLIED > >元素名:Ø属性所属的元素名字,上面例中元素名是“商品”属性名:Ø上例中属性名分别为“类型”、“颜色”属性类型:Ø指定该属性是属于十个有效属性类型中的哪种类型缺省值:Ø如果没有指定值,语法分析器默认它具有的取值 如何定义元素的属性q注意事项注意事项ATTLIST是一个属性的列表,它可以包含多个属性。</p> <p class='cssnone'>同一属性可以多次声明,首先执行第一个一些元素带有多个属性,通过多个声明实现 属性缺省值 q 属性的缺省值可分三类 REQUIRED:必须赋值的属性说明XML文件中必须为这个属性给出一个属性值IMPLIED:属性值可有可无的属性文法解释器不再强行要求你在XML文件中给该属性赋值,而且也无须在DTD中为该属性提供缺省值FIXED:固定取值的属性为一个特定的属性提供一个缺省值,并且不希望XML文件的编写者把缺省值替代掉 定义缺省值的属性如果不使用上面任何一种关键字来定义属性,需要在DTD中为它提供一个缺省值而在XML文件中可以为该属性给出新的属性值来覆盖事先定义的缺省值 属性定义实例<!ATTLIST 页面作者         姓名 CDATA #IMPLIED         年龄 CDATA #IMPLIED         联系信息 CDATA #REQUIRED         网站职务 CDATA #FIXED “页面作者”         个人爱好 CDATA "上网"> 属性类型q 属性类型可以是以下十种中的任意一种: ØCDATA ØEnumerated ØID ØIDREF ØIDREFS ØENTITY ØENTITIES ØNMTOKEN ØNMTOKENS ØNOTATION  属性类型—CDATA q纯文本纯文本,即由字符、符号“&”、小于号“<”和引号“””组成的字符串。</p> <p class='cssnone'>q例子:<?xml version = “1.0”       encoding=“GB2312”       standalone = “yes”?><!DOCTYPE 剧本 [    <!ELEMENT 剧本 ANY>    <!ELEMENT 对话 (#PCDATA)>    <!ATTLIST 对话 演员 CDATA>    ]> <剧本>    <对话 演员演员=“=“路人甲路人甲””>我可不这么认为!</对话>    <对话 演员演员=“=“路人乙路人乙" ">为什么呢?</对话></剧本> 属性类型—枚举类型q 属性也可以被描述为一组可接受的取值的列表,关键字ENUMERATED是不出现在DTD定义中的<?xml version = “1.0”       encoding=“GB2312”       standalone = “yes”?><!DOCTYPE 购物篮 [    <!ELEMENT 购物篮 ANY>    <!ELEMENT 肉 EMPTY>    <!ATTLIST 肉 类型( 鸡肉|牛肉|猪肉|鱼肉 ) “鸡肉”>    ]> <购物篮>    <肉 类型 = “鱼肉”/>    <肉 类型 = “牛肉”/> <肉/></购物篮>属性“类型”定义的缺省值是“鸡肉”,所以“购物篮”中的第三个元素的“类型”属性取值为“鸡肉” 属性类型— IDqID ID 类型类型元素的某些属性值是不能重复的ID的值必须是一个有效的XML名称注意Ø不要给ID类型的属性事先指定缺省值,这很容易引起不同的元素具有相同的标识的情况;ØID属性经常使用REQUIRED缺省类型,也可以使用IMPLIED缺省类型,但不能使用FIXED缺省值。</p> <p class='cssnone'> 实例实例<?xml version = "1.0" encoding="GB2312"   standalone = "yes"?> <!DOCTYPE 联系人列表[    <!ELEMENT 联系人列表 ANY>    <!ELEMENT 联系人(姓名,EMAIL)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>    <!ATTLIST 联系人 编号 ID #REQUIRED>    ]><联系人列表>    <联系人 编号="1">        <姓名>张三</姓名>        <EMAIL>zhang@</EMAIL>    </联系人>    <联系人 编号="2">        <姓名>李四</姓名>        <EMAIL>li@bbb.org</EMAIL>    </联系人></联系人列表>  属性类型— IDREF/IDREFS q允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值qIDREF/ IDREFS适用于多对一、一对多 实例<?xml version = "1.0" encoding="GB2312"    standalone = "yes"?><!DOCTYPE 联系人列表[    <!ELEMENT 联系人列表 ANY>    <!ELEMENT 联系人(姓名,EMAIL)>    <!ELEMENT 姓名(#PCDATA)>    <!ELEMENT EMAIL(#PCDATA)>    <!ATTLIST 联系人 编号 ID #REQUIRED>    <!ATTLIST 联系人 上司 IDREF #IMPLIED>    ]><联系人列表>    <联系人 编号=“2”>        <姓名>张三</姓名>        <EMAIL>zhang@</EMAIL>    </联系人>    <联系人 编号=“1” 上司=“2”>        <姓名>李四</姓名>        <EMAIL>li@</EMAIL>     </联系人></联系人列表> 属性类型—NMTOKEN/NMTOKENSq为XML数据处理操作指定一个操作方法(如一个java类),例如:DTD定义:<!ELEMENT 数据(#PCDATA)><!ATTLIST 数据     安全性 ( ON | OFF ) "OFF"><!ATTLIST 数据     授权用户 NMTOKENS #IMPLIED>XML文件:<数据 安全性="ON" 授权用户 = "IggieeB SelenaS GuntherB">blah blah blah</数据> 属性类型—NOTATIONqNOTATIONNOTATION类型类型允许属性值为一个允许属性值为一个DTDDTD中声明的符号中声明的符号,这个类型对于使用非XML格式的数据非常有用,如图象、声音、影象等等。</p> <p class='cssnone'>对于这些数据,XML应用通过为它设定NOTATION类型属性,可以向应用程序指定一个外部处理程序定义方法Ø使用MIME类型:< <!!NOTATION NOTATION 记号名记号名 SYSTEM “MIMESYSTEM “MIME类型类型””> >Ø使用一个URL路径(指定一个处理程序): < <!!NOTATION NOTATION 记号名记号名 SYSTEM “URLSYSTEM “URL路径名路径名””> > 实例 <?xml version = "1.0"   encoding="GB2312" standalone = "yes"?><!DOCTYPE 文件[    <!ELEMENT 文件 ANY>    <!ELEMENT 电影 EMPTY>    <!ATTLIST 电影 演示设备 NOTATION ( mp | gif ) #REQUIRED>    <!NOTATION mp SYSTEM "movPlayer.exe">    <!NOTATION gif SYSTEM "Image/gif">      ]><文件>    <电影 演示设备 = "mp"/></文件> 为“电影”元素指定了两种可选设备:movPlayer.exe用来播映.mov文件另一种则用来绘制GIF图象。</p> <p class='cssnone'> 属性类型— Entitiesq实体属性<!ATTLIST <!ATTLIST 元素名元素名 属性名属性名 ENTITY ENTITY 默认值默认值> >Ø实体–内部实体 <!ENTITY 实体名 "实体内容">–外部实体<!ENTITY 实体名 SYSTEM "外部文件名">–实体引用&实体名称; 实例<?xml version = "1.0" encoding="GB2312"    standalone = "yes"?> <!DOCTYPE 文件[    <!ELEMENT 文件 ANY>    <!ELEMENT 电影 EMPTY>    <!ATTLIST 电影 来源 ENTITY #REQUIRED>    <!ENTITY BladeRunner SYSTEM "dvds/BR/br.mov">    ]><文件>    <电影 来源 = "&BladeRunner;"/></文件> 。</p> </div> <div class="readmore readmore2" onclick="showmore2()"><span class="btn-readmore" style="background-color: transparent;"><em style="font-style: normal">点击</em>阅读更多内容<i></i></span></div> </ul> <ul id="c1"></ul> <ul id="c3" class="hidden"><a target="_blank" rel="nofollow" href="/info-0-23-1.html">点此查看常见问题</a></ul> </div> </div> <div class="blank15"></div> <div class="bq"> <div class="bg_title">相关文档</div> <div class="bq_list"> <a href="/shtml/ad31c170f053302973251e6641f22e9a.html" target="_blank" title="班主任工作计划 3篇.docx">班主任工作计划 3篇.docx</a> <a href="/shtml/4480fbb8c30b4eb4973920efda01c872.html" target="_blank" title="员工补助金给付办法.doc.docx">员工补助金给付办法.doc.docx</a> <a href="/shtml/7e08ee33711178f84ff6d23e36041be4.html" target="_blank" title="招聘管理制度与sop流程.docx">招聘管理制度与sop流程.docx</a> <a href="/shtml/31a20fdf56f52af692eef6e511ceba11.html" target="_blank" title="人资管理-HR招聘流程图及人员招录管理程序.doc.docx">人资管理-HR招聘流程图及人员招录管理程序.doc.docx</a> <a href="/shtml/60e8c829258d29498b64d033ab72255f.html" target="_blank" title="公司人才招聘与入职管理制度.docx">公司人才招聘与入职管理制度.docx</a> <a href="/shtml/7ed4039b6c6a9d4c66f4e3e35dd5e9db.html" target="_blank" title="离职补偿协议书范本.doc.docx">离职补偿协议书范本.doc.docx</a> <a href="/shtml/be9eade544569abfe8312373ae397c31.html" target="_blank" title="人资管理-招聘制度.docx">人资管理-招聘制度.docx</a> <a href="/shtml/f0ade01766ed5047e25a648fec6862e4.html" target="_blank" title="人资管理-招聘面试流程.docx">人资管理-招聘面试流程.docx</a> <a href="/shtml/07252ad5654c268d46cf4b136e0af303.html" target="_blank" title="招聘面试审批流程管理办法.docx">招聘面试审批流程管理办法.docx</a> <a href="/shtml/c81794799f3bda68a6460b4291352101.html" target="_blank" title="HR面试内容构成表企业招聘面试管理.doc">HR面试内容构成表企业招聘面试管理.doc</a> <a href="/shtml/5d1404bd1f005f73561808c592240812.html" target="_blank" title="招聘管理-员工甄选职责与权限流程图.doc.docx">招聘管理-员工甄选职责与权限流程图.doc.docx</a> <a href="/shtml/407dc1183bdc0bd8aa51a812a3c9ceb1.html" target="_blank" title="厨艺大赛新闻稿范文(精选3篇).doc">厨艺大赛新闻稿范文(精选3篇).doc</a> <a href="/shtml/45cdaec5aa04bd576133c13c4973cb9d.html" target="_blank" title="大班教师工作计划汇编3篇.doc">大班教师工作计划汇编3篇.doc</a> <a href="/shtml/2784a3df2f0e42ec261fabbc67ce844c.html" target="_blank" title="大客户经理个人工作计划模板五篇.doc">大客户经理个人工作计划模板五篇.doc</a> <a href="/shtml/c5e8ee4d6a7f018aaacf23093fed9643.html" target="_blank" title="大学歌唱比赛新闻稿汇编五篇.doc">大学歌唱比赛新闻稿汇编五篇.doc</a> <a href="/shtml/e871423550afdad1869367a16222d968.html" target="_blank" title="初三教师工作计划范文汇总五篇.doc">初三教师工作计划范文汇总五篇.doc</a> <a href="/shtml/9c9c8e2c21bdc632fd15d6d78f0804bb.html" target="_blank" title="大堂经理个人总结四篇.doc">大堂经理个人总结四篇.doc</a> <a href="/shtml/ce5189f222ff0cb216f48e3fdbd0fc02.html" target="_blank" title="文化中心项目阶段进度计划(18.5.1-6.30).xls">文化中心项目阶段进度计划(18.5.1-6.30).xls</a> <a href="/shtml/8709d222b86a588593f593978eb81ceb.html" target="_blank" title="小学生浙江文化春节作文10篇.doc">小学生浙江文化春节作文10篇.doc</a> <a href="/shtml/ad7ea90d7bf5839cc901c2a7aec6d201.html" target="_blank" title="小学生江苏文化春节作文10篇.docx">小学生江苏文化春节作文10篇.docx</a> <div class="clear"></div> </div> </div> <div class="blank15"></div> <div class="bq"> <div class="bg_title">猜您喜欢</div> <div class="bq_list"> <a href="/shtml/c3b626646ec28db5931a36e8420e2280.html" target="_blank" title="深圳DTZ圣莫丽斯执行报告.ppt">深圳DTZ圣莫丽斯执行报告.ppt</a> <a href="/shtml/0ffbf91fdc2e48ec976920c1d3d04f6c.html" target="_blank" title="科龙空调产品市场发展计划书.ppt">科龙空调产品市场发展计划书.ppt</a> <a href="/shtml/d09c152c2cd8327b7ee590ca6676dc6c.html" target="_blank" title="沪教牛津版二年级英语下册课件 unit9(7).ppt">沪教牛津版二年级英语下册课件 unit9(7).ppt</a> <a href="/shtml/14dc546de4719d8e6a9d0671d68d5a02.html" target="_blank" title="咨询顾问培训课件.ppt">咨询顾问培训课件.ppt</a> <a href="/shtml/d6b4e3764637e5c2341a63619cb42ac0.html" target="_blank" title="小学美术_画表情_我的喜怒哀乐.ppt">小学美术_画表情_我的喜怒哀乐.ppt</a> <a href="/shtml/32243167605a04a255a9c64bda489fd3.html" target="_blank" title="十章依赖于机器的优化.ppt">十章依赖于机器的优化.ppt</a> <a href="/shtml/74227988f7a7f0d2c9b766a5c7308e34.html" target="_blank" title="医学专题:新生儿金葡菌感染.ppt">医学专题:新生儿金葡菌感染.ppt</a> <a href="/shtml/2243e9c80fffda7c0cdb6ca17fec31c6.html" target="_blank" title="小学三年级下册美术课件-5.15秋天的落叶-岭南版(14张)ppt课件.ppt">小学三年级下册美术课件-5.15秋天的落叶-岭南版(14张)ppt课件.ppt</a> <a href="/shtml/9376b08fe68621cf862a5548307af11a.html" target="_blank" title="沈北道义地块前期策划调研报告79P.ppt">沈北道义地块前期策划调研报告79P.ppt</a> <a href="/shtml/084201cfe592215922d5d3312bec7f9b.html" target="_blank" title="小学语文五年级上册小苗与大树的对话课件a.ppt">小学语文五年级上册小苗与大树的对话课件a.ppt</a> <a href="/shtml/cc2ebb8ddf8f82a409f8f0647d2269b5.html" target="_blank" title="第10章-实现多态.ppt">第10章-实现多态.ppt</a> <a href="/shtml/cf2471ad04e86165136bbc9525bad0a4.html" target="_blank" title="六年级科学上册 弯弯的月亮课件4 青岛版[共25页].ppt">六年级科学上册 弯弯的月亮课件4 青岛版[共25页].ppt</a> <a href="/shtml/89cdf95bad0148e67498c51f7b9679dd.html" target="_blank" title="人教版高中地理必修一1.3.1地球、地球仪、经纬网教学课件.ppt">人教版高中地理必修一1.3.1地球、地球仪、经纬网教学课件.ppt</a> <a href="/shtml/48d93fc6979d1a48bf24ed3056670aa7.html" target="_blank" title="《原厂配件介绍》PPT课件.ppt">《原厂配件介绍》PPT课件.ppt</a> <a href="/shtml/a963bcd27d37ec5dfcf3dd712ed8fff3.html" target="_blank" title="统计学-统计指数ppt课件.ppt">统计学-统计指数ppt课件.ppt</a> <a href="/shtml/6c179e3455aa3c86a1009bc50266919c.html" target="_blank" title="邮票的意义和种类.ppt">邮票的意义和种类.ppt</a> <a href="/shtml/555ec5e40ac3e111a991fba2fb54a1b1.html" target="_blank" title="达标迎检护理准备资料.ppt">达标迎检护理准备资料.ppt</a> <a href="/shtml/c5081edd3f2e00a7aed5d970a43691bd.html" target="_blank" title="11从梯子的倾斜程度谈起1.ppt">11从梯子的倾斜程度谈起1.ppt</a> <a href="/shtml/49040f1aaa5eb45b1021399b8fe90338.html" target="_blank" title="金属材料的主要性能指标ppt课件.ppt">金属材料的主要性能指标ppt课件.ppt</a> <a href="/shtml/fdcbbf8124ae4cca36da0e8c6784c98f.html" target="_blank" title="第十四章_建筑地基基础课件.ppt">第十四章_建筑地基基础课件.ppt</a> <div class="clear"></div> </div> </div> </div> <div class="boxright" id="boxright" > <div class="fr detail-aside" id="Div11" style="width:320px;"> <div style="margin-bottom:10px;" id="relatebox0"> <div class="dpmc"><a rel="nofollow">进入店铺</a></div> <div class="dpnbr"> </div> <div class="dpscang">收藏店铺</div> </div> <div class="svd" id="relatebox"> <div class="svd_title">相似文档 <a rel="nofollow" href="javascript:void(0)" onclick="searchWord('第二部分XML语言')" class="rmore">更多></a></div> <div id="xgwendang" style=" text-align:center;height:460px;border-radius:3px;" > <div style="padding-top:140px; "> <div>正为您匹配相似的精品文档</div> <div><img src="//img.jinchutou.com/static_www/images/jdt.gif" style=" width:220px; margin: 10px 0px" /></div> </div> </div> </div> <div class="blank15"></div> <div class="sdown"> <div class="sd_title">最近下载</div> <div class="sd_list"> <li><img alt="医疗卫生人才供需分析-详解洞察" class="docx" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/e5d727705d6d1fd60dd9fa1c93aed26d.html" target="_blank" title="医疗卫生人才供需分析-详解洞察">医疗卫生人才供需分析-详解洞察.docx</a></li> <li><img alt="血液制品管理条例(2016修订)培训解读课件" class="pptx" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/3c4fc8137f86f6d541eca270285e9fda.html" target="_blank" title="血液制品管理条例(2016修订)培训解读课件">血液制品管理条例(2016修订)培训解读课件.pptx</a></li> <li><img alt="2024年1月浙江省高考英语真题试卷含答案" class="pdf" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/c65f3fe151c78861b1e55e7eab2a0dba.html" target="_blank" title="2024年1月浙江省高考英语真题试卷含答案">2024年1月浙江省高考英语真题试卷含答案.pdf</a></li> <li><img alt="岗位价值评估工具-美世2.0PPT课件" class="ppt" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/8f7f1006a34335d72c42d8b23d08c3a8.html" target="_blank" title="岗位价值评估工具-美世2.0PPT课件">岗位价值评估工具-美世2.0PPT课件.ppt</a></li> <li><img alt="2023-2024学年秋季小学三年级上册语文部编版课时练第4课《古诗三首》01(含答案)" class="doc" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/2645a7ef67dccafeded22144d9e3d412.html" target="_blank" title="2023-2024学年秋季小学三年级上册语文部编版课时练第4课《古诗三首》01(含答案)">2023-2024学年秋季小学三年级上册语文部编版课时练第4课《古诗三首》01(含答案).doc</a></li> <li><img alt="税收会统核算及相关操作.ppt" class="ppt" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/4be834bbb0963a75ae13ff3b3eba3a6e.html" target="_blank" title="税收会统核算及相关操作.ppt">税收会统核算及相关操作.ppt</a></li> <li><img alt="LNG储罐施工关键控制点总结" class="ppt" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/6c0738ccc1094968192ca553adaf9452.html" target="_blank" title="LNG储罐施工关键控制点总结">LNG储罐施工关键控制点总结.ppt</a></li> <li><img alt="影视视听语言3色彩光线影调" class="ppt" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/35e3748159c70c6703163f402824095d.html" target="_blank" title="影视视听语言3色彩光线影调">影视视听语言3色彩光线影调.ppt</a></li> <li><img alt="高级无损检测技术资格人员超声检测培训复习题汇编.docx" class="docx" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/f49e8688ffb820a74b6feee8e360367f.html" target="_blank" title="高级无损检测技术资格人员超声检测培训复习题汇编.docx">高级无损检测技术资格人员超声检测培训复习题汇编.docx</a></li> <li><img alt="2024年江苏省南京市建邺区小升初语文试卷(原卷全解析版)" class="docx" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/c0319a5fc3cbc4423967d61abfd16e06.html" target="_blank" title="2024年江苏省南京市建邺区小升初语文试卷(原卷全解析版)">2024年江苏省南京市建邺区小升初语文试卷(原卷全解析版).docx</a></li> <li><img alt="电路图与实物图的相互转化课件" class="ppt" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/c98f8c8af586ff020d1d7ca2714875cb.html" target="_blank" title="电路图与实物图的相互转化课件">电路图与实物图的相互转化课件.ppt</a></li> <li><img alt="医疗影像数据的加密传输与存储-详解洞察" class="docx" src="//img.jinchutou.com/static_www/Images/s.gif" /><a href="/shtml/2fdb7f1f7dba4b69f49519da135ddf27.html" target="_blank" title="医疗影像数据的加密传输与存储-详解洞察">医疗影像数据的加密传输与存储-详解洞察.docx</a></li> </div> </div> </div> <input name="hiddenCategoryID" type="hidden" id="hiddenCategoryID" /> </div> </div> </div> </div> </div> </div> <script type="text/javascript">$(document).ready(function () { xg(); }); function jubao() { $.dialog({ titleText: '非法内容有奖举报', type: 'confirm', contentHtml: jubaohtml, buttonText: { ok: '提交', cancel: '取消' }, onClickOk: function () { if (tid == 0) { alert("请先选择举报原因"); return false; } else { $.get("https://im.jinchutou.com/api/tools.ashx?jbid=" + tid + "&uid=0&url=rkm56XE%2bmSRR%2f13qk63ut9cuuieNj2mF7jxABT8lFTKVoQhMjCibPJBcZ5AZXwbxL018q3kygOXS1uOGoLDhuq4K4kyKSmcz84aFy%2f6HJ64%3d&id=a1dfdb011c8437f11ab64d980586d82d", function (data) { alert("提交成功"); $.dialog.close(); }); } }, onClickCancel: function () { $.dialog.close(); } }); } var tid = 0; function getjbid(tsid) { tid = tsid; } </script> <script type="text/javascript" src="//img.jinchutou.com/static_www/static/view.js"></script> <div class="getwximg_div" style="display: none;"> </div> <div class="bg_100 foot_nav_bg" style="min-width: 1200px;"> <div class="foot_nav"><a target="_blank" href="/h-33.html">关于金锄头网</a> - <a target="_blank" href="/h-59.html">版权申诉</a> - <a target="_blank" href="/h-34.html">免责声明</a> - <a target="_blank" href="/h-225.html">诚邀英才</a> - <a target="_blank" href="/h-38.html">联系我们</a></div> </div> <div class="bg_100 siteInner_bg" style="min-width: 1200px;"> <div class="siteInner"> <center><a title="金锄头文库" href="https://m.jinchutou.com/" target="_blank">手机版</a><span style="color: rgb(153, 153, 153);"> | </span>川公网安备 51140202000112号<span style="color: rgb(153, 153, 153);"> | </span>经营许可证(蜀ICP备13022795号)<br/>©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.</center> </div> </div> <script type="text/javascript" charset="utf-8">var isloginto = false;var isindex = "0";var navstyle = "23"; var ispachong = "0";var isIM = "0";var urlroot = "https://www.jinchutou.com/";var urlroot_so = "https://so.jinchutou.com/search.html";</script> <script src="//img.jinchutou.com/static_www/static/init.js"></script> <script>$(document).ready(function () { browserRedirect("https://m.jinchutou.com", "https://www.jinchutou.com"); }); </script> <script src="//img.jinchutou.com/static_www/static/tongji.js"></script> <script type="text/javascript" src="//img.jinchutou.com/static_www/js/jquery.lazyload.js"></script> <script type="text/javascript" charset="utf-8">$("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" });</script> <div class="kefuside"> <ul> <li class="sideewm"><i class="bgs1"></i>QQ咨询 <div class="ewBox son"><img src="//img.jinchutou.com/static_www/static/kefu/images/jctqq.png" style="width:215px; height:215px;"></div> </li> <li class="sideewm"><i class="bgs3"></i>微信客服 <div class="ewBox son"><img src="//img.jinchutou.com/static_www/static/kefu/images/wxkefu.png" style="width:215px; height:215px;"></div> </li> <li class="sidetop" onClick="goTop()"><i class="bgs6"></i>返回顶部</li> </ul> </div> </body> </html>