实验二 网络计算 在XML文档中使用DTD 哈理工版本
- 格式:doc
- 大小:210.50 KB
- 文档页数:6
包含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)是用来定义一段合法的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文件)进行有效性验证。
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
姓名:
专业:
班级:
学号:
计算机科学与技术学院
实验教学中心
年月日
实验项目名称:在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>。