实验二 网络计算 在XML文档中使用DTD 哈理工版本
xml 《DTD》模式简介
DTD 的局限性
由于 DTD 本身并不是专门面向 XML 的数据 模式语言,所以在对 XML 数据进行建模时, 也存在一定的局限性。
DTD 没 有 采 用 XML 的 语 法 形 式 (examples/xslt2/book.dtd)。 DTD 并不能完全满足 XML 自动化处理的要求,例 如不支持 XML 中的命名空间、不能很好实现应用 程序不同模块间的相互协调,缺乏对文档结构、属 性、数据类型等约束的足够描述能力等等。
不受限制的词汇表:可以随意地使用任何元 素、属性名称。 没有任何语法规则:每个元素中都可以包含 任意的内容(混合内容、子元素、文本、或 者为空)。 对于属性没有任何限制:每个元素都可以包 含任意的属性。
数据模式的用途 2
XML 树型模型的表达能力更强,对于相同的 数据可能采取各种不同的表示方式,为信息的 交换和处理带来极大的困难。 需要通过某种方式,定义 XML 数据的词汇表 (可能是针对某个领域),包括元素和属性的 名称、甚至取值,并且需要通过语法规则控制 XML 元素的结构,而实现这项任务的过程, 通常将其称为“XML 文档的数据模式设计”。
(4). 只包含子元素的元素
要声明一个只包含子元素的元素,其语法为:
<!ELEMENT element-name (child1,child2,...)>
其中,(child1,child2,...) 表示一个序列,即内 容模型。 <!ELEMENT student (stu_name, stu_no, stu_bak)> 。这项声明表示 student 元素中必 须包含 stu_name、stu_no、stu_bak 三个子 元素,并且它们的次序不能颠倒。
包含dtd的xml文件课程设计
包含dtd的xml文件课程设计一、课程目标知识目标:1. 学生理解XML的基本概念和用途,掌握XML文档结构。
2. 学生掌握DTD(文档类型定义)的作用和用法,能正确使用DTD定义XML文档的结构。
3. 学生了解XML命名空间的概念,并能在XML文件中使用命名空间。
技能目标:1. 学生能运用所学知识编写符合DTD规范的XML文件。
2. 学生能通过分析XML文件和DTD,判断其有效性,并能进行基本的错误修正。
3. 学生能运用XML解析器对XML文件进行解析,提取所需信息。
情感态度价值观目标:1. 培养学生对计算机编程和信息技术课程的兴趣,提高学习积极性。
2. 培养学生合作学习、探究问题的能力,增强团队协作精神。
3. 培养学生严谨、认真的学习态度,养成规范编写代码的习惯。
课程性质分析:本课程为信息技术课程,旨在帮助学生掌握XML及其DTD的知识,提高学生在实际应用中处理数据的能力。
学生特点分析:学生处于高年级阶段,具备一定的计算机操作和信息处理能力,对编程有一定了解,但可能对XML及其DTD较为陌生。
教学要求:1. 注重理论与实践相结合,通过实例让学生更好地理解XML和DTD的概念。
2. 鼓励学生积极参与课堂讨论,培养学生的独立思考能力和解决问题的能力。
3. 强化实践操作,让学生在实践中掌握XML和DTD的知识,提高应用能力。
二、教学内容1. XML基本概念:介绍XML的定义、作用和与HTML的区别,使学生理解XML在数据交换和存储中的重要性。
教材章节:第一章 XML基础2. XML文档结构:讲解XML文档的结构,包括元素、属性、注释等,让学生掌握编写规范XML文件的基本方法。
教材章节:第二章 XML文档结构3. DTD概述:介绍DTD的概念、作用和基本语法,使学生了解如何使用DTD 定义XML文档的结构。
教材章节:第三章 DTD基础4. DTD定义元素和属性:详细讲解如何使用DTD定义XML元素和属性,包括实体和符号声明等。
DTD(文档类型定义)语法
一简介文档类型定义(DTD)是用来定义一段合法的XML文档块。
它用来验证你的XML 文档是以一系列合法的元素构成的。
DTD可以在XML文档内部定义,也可以在通过外部文件的方式引入1 内部声明方式如果要把DTD包含在你的XML的内部,需要以以下的语法包含一个“DOCTYPE”声明:<!DOCTYPE 根元素 [子元素声明]>下面是一个包含DTD的XML例子:<?xml version="1.0"?><!DOCTYPE note [<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>]><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend</body></note>The DTD above is interpreted like this:以上的DTD声明解释如下:第二行!DOCTYPE note声明这是一个note类型的文档第三行!ELEMENT note声明note元素包含四个子元素:to,from,heading,body 第四行的!ELEMENT to声明to元素的类型是“#PCDATA”第五行的!ELEMENT from声明from元素的类型是“#PCDATA”以此类推... ...2 外部DOCTYPE声明If the DTD is external to your XML source file, it should be wrapped in a DOCTYPE definition with the following syntax:如果DTD是在XML源文件的外部,就需要在XML文件内用以下的语法声明DOCTYPE <!DOCTYPE 根元素 SYSTEM "文件名">以下是一个使用外部DOCTYPE声明的XML例子<?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body>以下是note.dtd 文件的内容:<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>3 为什么要使用DTDWith DTD, each of your XML files can carry a description of its own format with it.使用DTD,有以下好处:1,你的每一个XML文件可以描述自身的结构2,使不相关的人对于某种用于交流的数据达成统一的共识3,你的应用程序可以通过一个标准(DTD)对来自于外部的数据(XML文件)进行有效性验证。
第3章 有效的XML文件—DTD
<!ELEMENT bookname(#PCDATA)> 上述bookname可以是空元素也可以包含数据内容,但是一定不能 包含子元素。如果在XML文档中定义子元素,则是非法的,例如:
<bookname> <author>张三</author> <name>XML教程</name>
DTD定义了置标语言、文档结构的语法和词汇表,实际
上是定义了一个语法分析器。
XML基础教程
第3章 有效的XML文件-DTD
第6页
DTD的分类
外 部 DTD 可 以 单 独 形 成 文 件 , 后 缀 名 为.dtd,该文件可以被多个XML文档共享和 DTD调用。 内部DTD是在XML文档中直接定义DTD, 该DTD只能被当前XML文档使用。
XML基础教程
第3章 有效的XML文件-DTD
第12页
DTD基本结构模板
DTD的基本结构包括XML声明、元素声明、属性声明、
实体声明等,DTD基本结构模板如下所示:
<!ELEMENT …> <!ELEMENT …> … <!ATTLIST …> <!ATTLIST …> … <!ENTITY…> … <!NOTATION…> XML基础教程...
XML基础教程
第3章 有效的XML文件-DTD
第17页
Unrestricted元素
Unrestricted 元素表示在XML文档中可以包含任 何在DTD中定义的元素内容。一般情况下,只把 文档的根元素定义为此类型,这样设定后,元素 出现的次数和顺序不受限制。
XML DTD(文档类型定义)
来自 </dtd/dtd_building.asp>
DTD - 元素
例子: <!ELEMENT note (to,from,header,(message|body))> 上面的例子声明了:"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
声明混合型的内容
例子: <!ELEMENT note (#PCDATA|to|from|header|message)*>
<!DOCTYPE 根元素 SYSTEM "文件名">
这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD:(在 IE5 中打开,并选择“查看源代码”命令。) <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
第三章 XML语法检 查DTD
DTD的属性声明
2、枚举类型 枚举类型并不需要使用一个关键字,它只 是将所有的属性列举出来,并以竖线分隔。枚 举类型的每一个可能值都必须遵循XML的名称 命名规则,然后就可以从这些值中选出一个作 为属性值。 例:<!- - DTD部分 - - > <!ATTLIST PET HOTSELL (TRUE|FALSE) “FALSE” > <!- - 文件元素部分- - > <PET HOTSELL = “TRUE”>热卖中!</PET>
DTD的属性声明
3、NMTOKEN类型 NMTOKEN规定属性值必须是正确的XML名称 (即必须以字母或下划线开头,后面的字符可 以为字母、数字、下划线、连字符和点号,但 不可包含空格)。 如: <!- - DTD部分 - - > <!ATTLIST CUSTOMER COUNTRY NMTOKEN #REQUIRED > <!- - 文件元素部分- - > <CUSTOMER COUNTRY=“CHN”>…… </CUSTOMER>
DTD的元素声明
3、声明空元素的声明格式: <!ELEMENT 元素名 EMPTY> • 该结构当声明的XML文档元素的内容为空时, 有效。如: <!- - DTD部分 - - > <!ELEMENT 位置 EMPTY> <!- - 文件元素部分- - > <位置></位置>
DTD的元素声明
4、声明自由类型元素的格式: <!ELEMENT 元素名 ANY> • 元素的内容可以是任何数据: 任何被声明过的元素,元素出现的顺序和次数不 受限制; 文本内容或CDATA段 例:example3.xml 5、混合类型 若某元素既包含子元素又包含已编译的字符数据,则 该元素具有混合内容。其声明的语法如下: <! ELEMENT pick (#PCDATA | one | two | three)*>
2 有效的XML文档-DTD
1. DTD基本概念
什么是有效的XML文档 文档 什么是有效的
结构良好的XML文档 文档(well-formed) 结构良好的 文档 符合XML基本语法的XML文档; 有效的XML文档 文档(valid) 有效的 文档 符合标记定义的XML文档 DTD(Document Type Definition) 用于为XML文档定义标记集; 是一套不同与XML语法的置标语言。
出现一次或多次 出现零次或多次 可选,不出现或出现一次 OR,只能是其中的一种 AND,要求严格遵从顺序要 求 一组要共同出现的子元素组
成组元素
子元素列表内可以使用括号进一步分组。例如: <!ELEMENT 联系人 (姓名,(HomePage,EMAIL)*)> , , <!ELEMENT 姓名(#PCDATA)> <!ELEMENT EMAIL(#PCDATA)> 例1: <联系人> <姓名>张三</姓名> <HomePage></HomePage> <EMAIL>zhang@</EMAIL> </联系人> 例2: <联系人> <姓名>张三</姓名> </联系人> 例3: <联系人> <姓名>张三</姓名> <HomePage></HomePage> </联系人>
而XML文档client.xml中申明使用上 面的外部DTD的方式为:
<?xml version = "1.0" standalone = "no"?>
<!DOCTYPE 联系人列表 SYSTEM “client.dtd">
第2章 使用DTD规范XML文档
在一个DTD中,具体规定了引用该DTD的XML 文档可使用哪些标记、父元素中能够包括哪些 子元素、各个元素出现的先后顺序、元素可包 含的属性、元素和属性值的数据类型,以及可 使用的实体及符号规则等。 DTD由许多约定和声明语句构成,这些语句可 以包含在XML文档内部,被称为内部DTD;也 可以独立保存为一个文件,而称为外部DTD。
6.空元素的声明
<!ELEMENT Element EMPTY> <!ELEMENT 别名 EMPTY> <别名/>
7.混合型元素的声明
既可以包含字符数据,有可以以任意的 顺序包含指定的一个或多个子元素,也 可以不包含任何内容。 <!ELEMENT Element (#PCDATA| Child_Elenment|…..)*> • <!ELEMENT 学生 ((#PCDATA|姓名|电话 |EMAIL)*>
2.1.2 DTD的基本结构
在一份DTD中,包含了对XML文档所使用 的元素、元素间的关系、元素可用的属 性、可使用的实体等的定义规则。一份 DTD实际上是若干条有关元素、属性、 实体等定义和声明语句的集合。
在DTD中可以包含下列各种声明语句:
DTD声明开始语句 元素类型声明语句 属性列表声明语句 实体声明语句 注释语句
2.ID类型
ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作 用类似于HTML文件中的内部链接。在大多数情况下,ID由处理文件的程 序或脚本语言使用。 <?xml version = "1.0" encoding="GB2312" standalone = "yes"?> <!DOCTYPE 联系人列表[ <!ELEMENT 联系人列表 ANY> <!ELEMENT 联系人(姓名,EMAIL)> <!ELEMENT 姓名(#PCDATA)> (#PCDATA)> <!ELEMENT EMAIL(#PCDATA)> <!ATTLIST 联系人 编号 ID #REQUIRED> ]> <联系人列表> <联系人 编号="1"> <姓名>张三</姓名> <EMAIL>zhang@</EMAIL> </联系人> <联系人 编号="2"> <姓名>李四</姓名> <EMAIL>li@</EMAIL> </联系人> </联系人列表>
XML实验报告(XML,DTD,SCHEMA,XPATH,XSLT,利用JAVA对XML进。。。
XML实验报告(XML,DTD,SCHEMA,XPATH,XSLT,利⽤JAVA对XML进。
⽬录1).选取某⼀场景,描述该场景下的实体、实体属性以及实体之间的关系;注意选取实体最好体现出分解层次,以便于呈现XML,XML本⾝遵循层次数据模型;该部分⽂本描述要详尽,并⽤表格呈现出来。
(10分)2).采⽤XML对上述实体、实体属性及关系进⾏描述,要求体现出系统预定义实体,保证XML语法正确。
(10分)3).依据实例化XML⽂档写出组织模板⽂件DTD和SCHEMA,要求DTD与SCHEMA要保持映射,同时证明XML⽂件为有效的⽂档,同时组织模板要具有较⾼的抽象层次和较宽泛的约束能⼒。
(40分)4).提出4个查询题设,要求⾄少两个要结合XPATH标准函数,写出XPATH求解路径。
(20分)5).利⽤XSLT显⽰模板将XML⽂件展⽰为表格,与1⼀致。
(10分)6).利⽤JAVA或PYTHON等⼯具对XML⽂件节点进⾏属性值读写操作。
(10分)1).任务1-5为必做,任务6为选做;如果任务6不做,则相应分值分配给任务3和4各5分,如果做则任务6按照现有10分来评分。
请在提交课程设计开始就说明是否完成任务6。
2).每个任务评分均分为四个等级,优良中差,各任务合计之后为最终课程设计分数。
3.课程设计格式和任务之间的衔接也作为课程设计考察的⼀部分。
场景描述以学院为例,⼀个学院拥有多个专业,⼀个专业拥有多个班级和多个教师。
⼀个班级拥有多个学⽣和⼀个(唯⼀)班长,⼀个⽼师可以教授多个课程。
例如,信息管理学院有三个专业,分别是信息资源管理、电⼦商务和信息管理与信息系统。
(假设)每⼀个专业都有两个班级和两个教师,每⼀个班级都有⼀名班长和⼀名学⽣,每⼀名教师教授两门课程。
层次数据模型3.⽤表格表⽰⽂档代码<?xml version="1.0" encoding="UTF-8"?><!-- edited with XMLSpy v2014 () by () --><!-- 以下数据都是虚拟出来的数据,并不真实--><School ID="IOS001" name="信息管理学院"><Major ID="M001" name="信息资源管理"><Teacher TID="T001"><pname>陈思考</pname><sex>男</sex><professionalpost>教授</professionalpost><Course CNO="C001"><cname>⽂献信息资源检索</cname><credit>2</credit><period>32</period></Course><Course CNO="C002"><cname>管理信息系统</cname><credit>4</credit><period>48</period></Course></Teacher></Teacher><Teacher TID="T002"><pname>张简单</pname><sex>⼥</sex><professionalpost>副教授</professionalpost> <Course CNO="C003"><cname>⾼等数学B</cname><credit>2</credit><period>32</period></Course><Course CNO="C004"><cname>管理统计学</cname><credit>2</credit><period>32</period></Course></Teacher><Class CID="1901" name="信资1班"><Classpresident SID="S001"><pname>戴⼆刚</pname><sex>男</sex></Classpresident><Student SID="S002"><pname>江福</pname><sex>⼥</sex></Student></Class><Class CID="1902" name="信资2班"><Classpresident SID="S003"><pname>刘欢</pname><sex>⼥</sex></Classpresident><Student SID="S004"><pname>严⼏</pname><sex>男</sex></Student></Class></Major><Major ID="M002" name="电⼦商务"><Teacher TID="T003"><pname>王得</pname><sex>男</sex><professionalpost>教授</professionalpost> <Course CNO="C005"><cname>数据挖掘</cname><credit>3</credit><period>36</period></Course><Course CNO="C006"><cname>经济学基础</cname><credit>2</credit><period>32</period></Course></Teacher><Teacher TID="T004"><pname>王默默</pname><sex>男</sex><professionalpost>副教授</professionalpost> <Course CNO="C007"><cname>管理运筹学</cname><credit>2</credit><period>32</period></Course><Course CNO="C008"><cname>管理统计学</cname><credit>2</credit><period>32</period><period>32</period></Course></Teacher><Class CID="1903" name="电商1班"><Classpresident SID="S005"><pname>陈凡</pname><sex>男</sex></Classpresident><Student SID="S006"><pname>⽯发</pname><sex>男</sex></Student></Class><Class CID="1904" name="电商2班"><Classpresident SID="S007"><pname>吴宇</pname><sex>⼥</sex></Classpresident><Student SID="S008"><pname>葛⼀萨</pname><sex>男</sex></Student></Class></Major><Major ID="M003" name="信息管理与信息系统"> <Teacher TID="T005"><pname>刘⽟</pname><sex>⼥</sex><professionalpost>教授</professionalpost><Course CNO="C009"><cname>Java:⾯向对象程序设计</cname> <credit>4</credit><period>48</period></Course><Course CNO="C010"><cname>数据结构(C/C++)</cname><credit>3</credit><period>36</period></Course></Teacher><Teacher TID="T006"><pname>史丹</pname><sex>⼥</sex><professionalpost>副教授</professionalpost> <Course CNO="C011"><cname>XML</cname><credit>2</credit><period>32</period></Course><Course CNO="C012"><cname>UML</cname><credit>2</credit><period>32</period></Course></Teacher><Class CID="1905" name="信管1班"><Classpresident SID="S009"><pname>得得</pname><sex>男</sex></Classpresident><Student SID="S010"><pname>陈⽣</pname><sex>⼥</sex></Student></Class><Class CID="1906" name="信管2班"><Class CID="1906" name="信管2班"><Classpresident SID="S011"><pname>储梦</pname><sex>⼥</sex></Classpresident><Student SID="S012"><pname>撒⽅法</pname><sex>男</sex></Student></Class></Major></School>格式良好验证视图部分数据的效果展⽰。
第二章 XML之DTD
引入DTD的方式
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root SYSTEM "F:\新书\XML\代码\
第二章\demodtd.dtd"> <root param1="PIC"> <sub1>&NAME1;</sub1> <sub2>any word</sub2> </root>
文本内容1 </第一个子元素> <第二个子元素>
文本内容1 </第二个子元素> </根元素名称>
DTD介绍
DTD( Document Type Definition)文档类型定义 。在XML标准中,描述了如何创建DTD,以及如 何将它与根据它的规则所编写的XML文档相关联 ,并且还定义了XML处理器应该如何对DTD进行 处理,有了DTD就可以检测XML文档的结构是否 正确。
引入DTD的方式
一个DTD文件可以是一个独立的文档,文 档扩展名为.dtd,也可以存在于XML文档内 部。
内部DTD
使用DTD的最简单的方式,内部DTD就是指将 语义约束与XML文档的内容放在同一个XML文 档中。紧跟在XML声明和处理指令之后,以 <!DOCTYPE[开始,以]>结束,语法格式如下:
<!DOCTYPE 根元素名称 [ 元素描述 ]>Fra bibliotek入DTD的方式
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root[ <!--root元素中包含了2个子元素--> <!ELEMENT root (sub1,sub2)> <!ELEMENT sub1 (#PCDATA)> <!ELEMENT sub2 (#PCDATA)> <!ATTLIST root param1 CDATA #REQUIRED param2 CDATA #IMPLIED> <!ENTITY NAME1 "ENTITY VALUE"> <!ENTITY PIC SYSTEM "Sunset.jpg" NDATA jpr> <!NOTATION jpr SYSTEM "mspaint.exe"> ]> <root param1="PIC"> <sub1>&NAME1;</sub1> <sub2>any word</sub2> </root>
DTD
DTD
空元素:
<!ELEMENT 元素名称 EMPTY> 比如: <!ELEMENT student EMPTY> 使用: <students> <student></student> </students>
带有任意内容的元素 :
<!ELEMENT 元素名称 ANY> 比如: <!ELEMENT student ANY> 使用: <students> <student></student> </students>
DTD缺点
DTD不遵守XML语法; DTD不可扩展; DTD不支持命名空间的应用; DTD没有提供强大的数据类型支持,只能 表示很简单的数据类型。
DTD
DTD验证XML文档有很多局限。 微软提出了Schema(模式)的方案来改 进DTD。 Schema本身也是XML文档 Schema简单易懂 采用Schema已成为XML发展的一个趋势 Schema 是 DTD 替代者 XML Schema 是 W3C 标准(XML Schema 在 2001 年 5 月 2 日成为 W3C 标准)
3、Type表明该属性的类型 4、Default表明该属性的特点
DTD
DTDΒιβλιοθήκη Default属性特点可以有四种形式:
#REQUIRED(必须包含), #IMPLIED(可以忽略), #FIXED value(固定值), Default value (默认值)
DTD
实体声明:
XML实验二 基于DTD实现XML文档的有效性验证(淮海工学院)
淮海工学院计算机工程学院实验报告书课程名: XML开发技术题目:基于DTD实现XML文档的有效性验证班级:*******学号:201*******姓名:***一.实验目的(1)通过实验,掌握DTD的定义、引用(2)通过实验,掌握DTD中各要素的定义(3)通过实验,熟悉并掌握使用DTD验证XML文档的有效性(4)能够编写一个有效的XML文档二.实验要求(1)在网络没有联通的情况下,打开XMLSPY环境;(2)编写XML文档(受DTD约束)(3)验证XML文档的有效性三、实验内容1、如图所示,为其系统设计XML文档及其对应的DTD,分别命名为student.xml、student.dtd。
注:student具有三个属性:(1)sex 默认值为"男";(2)email 取值为文本内容且必须取值;(3)cellphone 取值为可选的文本内容。
2、教材习题2中的第5题:编写约束XML文档的DTD文档。
要求XML文档命名为tv-学号.xml,DTD文档命名为tv-学号.dtd。
3、教材习题2中的第6题:编写符合DTD约束的XML文档。
要求XML文档命名为学号.xml,DTD文档命名为学号.dtd。
4、为已编写好的XML文档poems.xml,编写DTD文档验证XML文档的有效性,命名为学号.dtd。
四.实验结果1. student.dtd:<?xml version="1.0" encoding="UTF-8"?><!ELEMENT ENTER_NAME_OF_ROOT_ELEMENT_HERE EMPTY><!ELEMENT students (student+)><!ELEMENT student (sno, sname, sclass, birthday, sex, email, cellphone)><!ELEMENT sno (#PCDATA)><!ELEMENT sname (#PCDATA)><!ELEMENT sclass (#PCDATA)><!ELEMENT birthday (#PCDATA)><!ELEMENT sex (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT cellphone (#PCDATA)><!ATTLIST studentsex CDATA #FIXED "男"email CDATA #REQUIREDcellphone CDATA #IMPLIED>student.xml:<?xml version="1.0" encoding="UTF-8"?><!--Sample XML file generated by XMLSpy v2011 ()--> <!DOCTYPE students SYSTEM "E:\student.dtd"><students><student email="123@"><sno>2011122XXX</sno><sname>小明</sname><sclass>软件111</sclass><sbirthday>19920101</sbirthday><sex>男</sex><cellphone>183528XXXXX</cellphone></student></students>2. tv-2011122605.dtd:<?xml version="1.0" encoding="UTF-8"?><!--DTD generated by XMLSpy v2011 ()--><!ENTITY copyright ""><!ELEMENT TVSCHEDULE ((CHANNEL+))><!ATTLIST TVSCHEDULENAME CDATA #FIXED "name"><!ELEMENT TITLE (#PCDATA)><!ATTLIST TITLELANGUAGE CDATA #FIXED "zh"RATING CDATA #FIXED "rat"><!ELEMENT TIME (#PCDATA)><!ELEMENT PROGRAMSLOT ((TIME, TITLE, DESCRIPTION?))><!ATTLIST PROGRAMSLOTVTR CDATA #FIXED "net"><!ELEMENT HOLIDAY (#PCDATA)><!ELEMENT DESCRIPTION (#PCDATA)><!ELEMENT DAY ((DATE, (PROGRAMSLOT | (HOLIDAY, PROGRAMSLOT?))))> <!ELEMENT DATE (#PCDATA)><!ELEMENT CHANNEL ((BANNER, DAY+))><!ATTLIST CHANNELCHAN (02 | 01) #REQUIRED><!ELEMENT BANNER (#PCDATA)>3. 2011122605.dtd:<?xml version="1.0" encoding="UTF-8"?><!ELEMENT ENTER_NAME_OF_ROOT_ELEMENT_HERE EMPTY><!ENTITY AUTHOR "John Doe"><!ENTITY COMPANY "JD Power Tools, Inc."><!ENTITY EMAIL "jd@"><!ELEMENT CATALOG (PRODUCT+)><!ELEMENT PRODUCT(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)><!ATTLIST PRODUCTNAME CDATA #IMPLIEDCATEGORY (HandTool|Table|Shop-Professional) "HandTool" PARTNUM CDATA #IMPLIEDPLANT (Pittsburgh|Milwaukee|Chicago) "Chicago" INVENTORY (InStock|Backordered|Discontinued) "InStock"><!ELEMENT SPECIFICATIONS (#PCDATA)><!ATTLIST SPECIFICATIONSWEIGHT CDATA #IMPLIEDPOWER CDATA #IMPLIED><!ELEMENT OPTIONS (#PCDATA)><!ATTLIST OPTIONSFINISH (Metal|Polished|Matte) "Matte"ADAPTER (Included|Optional|NotApplicable) "Included" CASE (HardShell|Soft|NotApplicable) "HardShell"><!ELEMENT PRICE (#PCDATA)><!ATTLIST PRICEMSRP CDATA #IMPLIEDWHOLESALE CDATA #IMPLIEDSTREET CDATA #IMPLIEDSHIPPING CDATA #IMPLIED><!ELEMENT NOTES (#PCDATA)>2011122605.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE CATALOG SYSTEM "2011122605.dtd"><CATALOG><PRODUCT><SPECIFICATIONS>0</SPECIFICATIONS><PRICE>0</PRICE></PRODUCT></CATALOG>4. poems-2011122605.dtd:<?xml version="1.0" encoding="UTF-8"?><!--DTD generated by XMLSpy v2011 ()--><!ELEMENT title (#PCDATA)><!ELEMENT poem3 ((title, author, content))><!ELEMENT poem2 ((title, author, content))><!ELEMENT poem1 ((title, author, content))><!ELEMENT poem ((poem1, poem2,poem3))><!ELEMENT line4 (#PCDATA)><!ELEMENT line3 (#PCDATA)><!ELEMENT line2 (#PCDATA)><!ELEMENT line1 (#PCDATA)><!ELEMENT content ((line1, line2, line3, line4))><!ELEMENT author (#PCDATA)>五.实验体会************************************************************************************************************************************** ********************************************************************* ********************。
XML实验二
《XML技术》实验报告实验序号:试验二实验项目名称: DTD网络工程学号1207022103 姓名陈华荣专业、班实验地点指导教师实验时间2014.9.26一、实验目的及要求二、实验设备(环境)及要求三、实验内容与步骤1.安装XMLsys软件:2.2.编写DTD外部文件XML 文件DTD 文件:<?xml version="1.0" encoding="UTF-8"?><!ELEMENT 老师(老师*)><!ELEMENT 姓名(#PCDATA)><!ELEMENT 性别(#PCDATA)><!ELEMENT 年龄(#PCDATA)><!ELEMENT 地址(#PCDATA)>运行结果:3根据DTD写XML文件: 效果:XML代码:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE 所有学生SYSTEM "3.dtd"><所有学生><学生信息学号="10001" 所属班级编号="200902"><姓名>王军</姓名><性别>男</性别><出生日期>1988.10.8</出生日期><通讯地址>湖南省长沙市</通讯地址><邮编>5213322</邮编><照片src="aaa.jpg"/></学生信息><学生信息学号="10002" 所属班级编号="200901"><姓名>张怡</姓名><性别>女</性别><出生日期>1996.21.2</出生日期><通讯地址>火星太空街厦门路</通讯地址><邮编>438438</邮编><照片src="bbb.img"/></学生信息></所有学生>DTD代码:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE 所有学生[<!ELEMENT 所有学生(学生信息+)><!ELEMENT 学生信息(姓名,性别,出生日期,通讯地址,邮编,照片)> <!ELEMENT 姓名(#PCDA TA)><!ELEMENT 性别(#PCDA TA)><!ELEMENT 出生日期(#PCDA TA)><!ELEMENT 通信地址(#PCDA TA)><!ELEMENT 邮编(#PCDA TA)><!ELEMENT 照片EMPTY><!ATTLIST 学生信息学号CDATA #REQUIRED所属班级编号CDA TA #REQUIRED> <!ATTLIST 照片src ENTITY #REQUIRED><!ENTITY src SYSTEM "pboto.jpg" NDA TA jpg><!NOTATION jpg PUBLIC "img">]>4 添加外部DTD修改后的XML文件代码:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE 老师[<!ELEMENT 老师(老师*)><!ELEMENT 姓名(#PCDATA)><!ELEMENT 性别(#PCDATA)><!ELEMENT 年龄(#PCDATA)><!ELEMENT 地址(#PCDATA)>]><老师><姓名>王海</姓名><性别>男</性别><年龄>34</年龄><地址>北京市海淀区8888888号</地址><姓名>张真</姓名><性别>女</性别><年龄>33</年龄><地址>上海市海淀区438438号</地址></老师>运行结果:5 根据XML添加两个外部DTD Xml文件代码:Book.dtd 文件代码:DVD.dtd文件:6.效果:Xml代码:7.编写外部dtd 效果:Xml文件Dtd文件:8.由DTD编写xml 效果:Xml文件:9.添加数据效果:Xml代码:10.经验证,以上DTD,XML均有效!!课本第79页1-2题1.DTD文件编码问题:效果图:DTD文件:XML 文件:2.声明属性的基本成分四、实验结果与数据处理五、分析与讨论六、教师评语成绩签名:日期:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩:实验报告
课程名称:网络计算
实验项目:在XML文档中使用DTD
姓名:
专业:
班级:
学号:
计算机科学与技术学院
实验教学中心
年月日
实验项目名称:在XML文档中使用DTD ( 2学时)
一、实验目的
(1)通过本实验,使学生能够了解并掌握XML DTD的定义方法及其用途(2)了解并掌握DTD元素声明的基本语法
(3)了解并掌握DTD属性声明的基本语法
(4)了解并掌握DTD实体声明的基本语法
(5)了解并掌握DTD标记声明的基本语法
(6)了解并掌握XMLSpy中基于DTD的XML文件输入
二、实验内容
一 XML DTD是对XML结构进行定义的机制
二XML DTD本身不符合XML语法
三、实验步骤
(1)对以下“个人信息.xml”进行DTD定义(设DTD文件名为“个人信息.dtd”)
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是一个用XML描述的例子 -->
<bookcase
xmlns:xsi="/2001/XMLSchema-instance" > <book type="教育">
<b-name>XML实用培训教程</b-name>
<author>
<name>张健飞</name>
<E-mail>zjf@</E-mail>
</author>
<price>27元</price>
<publishing-house>
<p-name>科学出版社</p-name>
<address>北京东皇城根北街16号</address>
<zipcode>100717</zipcode>
<E-mail>yanmc@</E-mail>
</publishing-house>
</book>
<book type="科技">
<b-name> XML网页制作彻底研究</b-name>
<author>
<name>陈会安</name>
<E-mail>cha@</E-mail>
</author>
<price>47元</price>
<publishing-house>
<p-name>中国铁道出版社</p-name>
<address>北京市宣武区右安门西街8号</address>
<zipcode>100054</zipcode>
<E-mail>bjb@</E-mail>
</publishing-house>
</book>
</bookcase>
(2)书写XML DTD定义头部
<?xml version="1.0" encoding="UTF-8"?>
(3)书写XML DTD元素定义
<!ELEMENT bookcase (book*)>
<!ELEMENT book (b-name,author,price,publishing-house)>
<!ELEMENT b-name (#PCDATA)>
<!ELEMENT author (name,E-mail)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT E-mail (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT publishing-house (p-name,address,zipcode,E-mail)> <!ELEMENT p-name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT zipcode (#PCDATA)>
(4)添加XML DTD属性定义(添加在book元素定义之后)
<!ATTLIST book type (edu|tech) "tech">
(5)XMLSpy中新创建一个基于“个人信息.dtd”的XML文件,体会该方法的方便快捷
(6)在IE中打开带有DTD定义的“个人信息.xml”,观察符合DTD定义及不符合DTD定义的XML文件显示(带DTD定义的XML文件头部如下所示)
四、实验结果
(1)为什么要定义DTD?
为了验证XML文档的良构性,方便规格化XML文档。
(2)DTD不符合XML语法有什么缺点?
DTD不遵守XML语法,写XML一个语法,DTD又一个语法,这样就加大了XML开发的复杂度。
在写复制的XML时,DTD的开发成为一种累赘。
五、程序代码
.dtd文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT bookcase (book*)>
<!ELEMENT book (b-name,author,price,publishing-house)>
<!ELEMENT b-name (#PCDATA)>
<!ELEMENT author (name,E-mail)>
<!ELEMENT name (#PCDA TA)>
<!ELEMENT E-mail (#PCDATA)>
<!ELEMENT price (#PCDA TA)>
<!ELEMENT publishing-house (p-name,address,zipcode,E-mail)>
<!ELEMENT p-name (#PCDA TA)>
<!ELEMENT address (#PCDA TA)>
<!ELEMENT zipcode (#PCDA TA)>
.xml文件代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookcase SYSTEM "C:\Documents and Settings\Administrator\桌面\Untitled7.dtd"> <bookcase xmlns:xsi="/2001/XMLSchema-instance">
<book type="教育">
<b-name>XML实用培训教程</b-name>
<author>
<name>张健飞</name>
<E-mail>zjf@</E-mail>
</author>
<price>27元</price>
<publishing-house>
<p-name>科学出版社</p-name>
<address>北京东皇城根北街16号</address>
<zipcode>100717</zipcode>
<E-mail>yanmc@</E-mail>
</publishing-house>
</book>
<book type="科技">
<b-name> XML网页制作彻底研究</b-name>
<author>
<name>陈会安</name>
<E-mail>cha@</E-mail>
</author>
<price>47元</price>
<publishing-house>
<p-name>中国铁道出版社</p-name>
<address>北京市宣武区右安门西街8号</address>
<zipcode>100054</zipcode>
<E-mail>bjb@</E-mail>
</publishing-house>
</book>
</bookcase>。