1、2022-12-262022-12-26第05讲 实体的定义和使用主讲:郭永洪主讲:郭永洪E-mailE-mail:yh_yh_2022-12-262022-12-26目标 知识目标通用实体和参数实体的概念 能力目标学会使用DTD实体定义XML文档2022-12-262022-12-26 任务 任务1:通用实体的定义和使用 任务2:参数实体的定义和使用2022-12-262022-12-26实体概念概念:概念:包含包含XMLXML文档片段的虚拟存储单元,用来存储文档片段的虚拟存储单元,用来存储XMLXML声明、声明、DTDDTD或各种元素的数据,它是一个事先定义或各种元素的数据,它是一个事先定
2、义好的数据。好的数据。通用实体(一般实体):通用实体(一般实体):用于载入数据到用于载入数据到XMLXML文档的基文档的基本元素中本元素中 。参数实体:参数实体:用于载入数据到文档的用于载入数据到文档的DTDDTD中。中。2022-12-262022-12-26实体分类按实体包含内容分类:按实体包含内容分类:字符和数字实体:字符和数字实体:用于描述非用于描述非ASCII字符。字符。文本实体:文本实体:在文档中经常出现的文本串或块。在文档中经常出现的文本串或块。二进制实体:二进制实体:保存非文本数据,如图像、声音等,是一保存非文本数据,如图像、声音等,是一种不可析实体。种不可析实体。按实体存在形
3、式分类:按实体存在形式分类:内部实体:内部实体:完全在文档内部定义的实体。完全在文档内部定义的实体。外部实体:外部实体:存在于一个外部独立文件中的实体。存在于一个外部独立文件中的实体。2022-12-262022-12-26任务1:使用通用实体任务任务1-11-1:内部通用实体的定义和使用:内部通用实体的定义和使用定义:定义:在文档中引用在文档中引用:&实体名实体名;2022-12-262022-12-26案例1-1DTD中实体定义:中实体定义:2022-12-262022-12-26案例1-1XML文档中实体引用:文档中实体引用:&Content;软件工程介绍软件工程理论.邓良松,刘海岩西安
4、电子科技大学出版社2001年6月20.002022-12-262022-12-26案例1-1浏览器中运行的结果:浏览器中运行的结果:2022-12-262022-12-26实训1-1定义包含实体的定义包含实体的DTD2022-12-262022-12-26任务1:使用通用实体任务任务1-11-1:外部通用实体的定义和使用:外部通用实体的定义和使用“外部实体外部实体”在文档中必须通过在文档中必须通过URLURL才能定位,外部实体为独立才能定位,外部实体为独立的文件,可以被多个文档所引用,具有更为广泛的共享性。的文件,可以被多个文档所引用,具有更为广泛的共享性。XMLXML通过对外部实体的引用,可
5、以在一个通过对外部实体的引用,可以在一个XMLXML文档中嵌入另一个文档中嵌入另一个XMLXML文档,或者将多个文档组合为一个文档。文档,或者将多个文档组合为一个文档。定义:定义:文档中引用:文档中引用:&实体名实体名;2022-12-262022-12-26外部通用实体使用外部通用实体要注意的问题:使用外部通用实体要注意的问题:(1 1)由于要引用外部文件,所以文档声明中)由于要引用外部文件,所以文档声明中standalone属性的值属性的值不再是不再是“yes”,而必须是,而必须是“no”。(2 2)作为外部实体的文档,如果使用的是)作为外部实体的文档,如果使用的是XML默认字符集,如默认
6、字符集,如UTF-8,则可以没有,则可以没有XML声明;声明;如果使用了默认字符集以外的如果使用了默认字符集以外的字符集,如字符集,如“GB2312”字符集,则必须有字符集,则必须有XML声明,且在声明声明,且在声明中说明中说明encoding属性属性。2022-12-262022-12-26案例1-2DTD中定义外部通用实体中定义外部通用实体2022-12-262022-12-26案例1-2软件工程介绍软件工程理论.邓良松,刘海岩西安电子科技大学出版社2001年6月20.00Data1.xml片段片段2022-12-262022-12-26案例1-2软件系统开发技术(修订版)介绍软件系统的开
7、发技术.潘锦平,施小英西安电子科技大学出版社2001年1月12.30Data2.xml片段片段2022-12-262022-12-26案例1-2&data1;&data2;XML中应用外部通用实体中应用外部通用实体2022-12-262022-12-26训练1-2新闻一般包含“标题”、“内容”、“作者”、“版权”等要素,请编写一个描述新闻信息的DTD和XML,新闻数据存放在外部文件中,浏览时,使用外部实体引用方式将信息载入XML。2022-12-262022-12-26任务2:使用参数实体内部参数实体是指在独立的外部内部参数实体是指在独立的外部DTD文档的内部定义的参数实体文档的内部定义的参数
8、实体。任务任务2-12-1:内部参数实体的定义和使用:内部参数实体的定义和使用定义:定义:引用:引用:%实体名实体名;2022-12-262022-12-26案例2-1 内部参数实体定义:内部参数实体定义:内部参数实体引用:内部参数实体引用:!ELEMENT;!ELEMENT;!ELEMENT;2022-12-262022-12-26训练2-1请举一个使用内部参数实体的例子,写出DTD文档和XML文档。2022-12-262022-12-26任务2:使用参数实体在独立的外部在独立的外部DTD文档中,可以引用其他独立文档中,可以引用其他独立DTD文档中的定义,文档中的定义,这种引用通过外部参数实
9、体来实现。这种引用通过外部参数实体来实现。任务任务2-12-1:外部参数实体的定义和使用:外部参数实体的定义和使用定义:定义:引用:引用:%实体名实体名;每一个外部每一个外部DTD文档都必须有一个声明,说明文档所使用的字符集。文档都必须有一个声明,说明文档所使用的字符集。2022-12-262022-12-26案例2-2基本信息基本信息2022-12-262022-12-26案例2-2综合信息综合信息2022-12-262022-12-26案例2-2外部外部DTD文档引用文档引用%基本信息;%综合信息;2022-12-262022-12-26训练2-2用外部参数实体改写“网上订单程序的DTD文
10、档”,简化定义过程。并编写XML文档,进行XML文档有效性验证。网上订单程序的DTD文档中客户基本信息和商品信息分开处理。2022-12-262022-12-26比较1参数实体与一般实体的不同点:参数实体与一般实体的不同点:在定义参数实体时,实体名前必须加一个在定义参数实体时,实体名前必须加一个“”号。号。参数实体引用以参数实体引用以“”开始,而不是一般实体引用的开始,而不是一般实体引用的“”。参数实体的内容不仅可以包含文本,还可以包含标记。参数实体的内容不仅可以包含文本,还可以包含标记。参数实体只能应用于参数实体只能应用于DTDDTD,而不能在文档本体中引用。即参数实,而不能在文档本体中引用
11、。即参数实体只能用来构成体只能用来构成DTDDTD的内容,而不能构成文档内容。的内容,而不能构成文档内容。参数实体只能在外部参数实体只能在外部DTDDTD文档中使用,无法应用于内部文档中使用,无法应用于内部DTDDTD。2022-12-262022-12-26比较2外部参数实体与外部一般实体的区别如下外部参数实体与外部一般实体的区别如下:外部参数实体应用于独立的外部参数实体应用于独立的DTDDTD文档,外部一般实体应用于文档,外部一般实体应用于XMLXML文档。文档。外部参数实体应用于将多个独立的外部参数实体应用于将多个独立的DTDDTD文档组合为一个大的文档组合为一个大的DTDDTD文档,外部一般实体用于将多个独立的文档,外部一般实体用于将多个独立的XMLXML文档组合成一文档组合成一个大的个大的XMLXML文档。文档。2022-12-262022-12-26