学院:
专业:
学号:
姓名:
计算机与信息技术学院综合性、设计性实验报告
专业:            年级/班级:                        学年第  学期
课程名称
XML基础
指导教师
本组成员
学号姓名
实验地点
实验时间
项目名称
个人通讯薄一的设计与实现
实验类型
综合性
一、 实验目的
1、掌握XML文档的基本语法,能够得到格式良好的XML文档;
2、能够了解并掌握XML DTD的定义方法及其用途;
3、能够熟练使用XMLSPY来创建DTD文件及对应的有效的XML文件,并进行验证;
二、 实验仪器或设备
学院提供公共机房,1台学生微型计算机。
三、 总体设计(设计原理、设计方案及流程等)
设计原理:按照XMLDTD的语法规则来编写、保存文件XMLDTD文件。
设计方案及流程:
利用XML文档作为存储载体来存储个人通讯薄,按照以下要求设计并实现该通讯薄:
杜甫诗全集1、内含同学(classmate)、朋友(friend)、家人(home)等人员。每条通讯录至少包含以下信息:
a姓名(name):必须有一个,其中包含一个枚举类型的性别(sex)属性;
b性别(sex):必须有一个;
c、(tel):必须有一个;
dQQ号:一个或多个;
e、地址(address):一个或多个;
f、备注(other):一个或多个;
  g、根据需要可添加    其它字段。
2、为该XML文档,编写DTD文档。
四、 实验步骤(包括主要步骤、代码分析等)
1、 按照以上设计编写一个规范的XML文档
<?xml version="1.0" encoding="UTF-8"?>
这句话放为XML文件的声明,作为文件的第一行,在前面不能有空白、其他处理指令或注释。XML声明以<?xml标识开始、以?>标识结束。在该XML声明中,属性version的值为1.0,指出了该XML文件使用的XML版本,目前该属性的值只可以取1.0。属性encoding
写给父亲催泪的话简短定XML文件采用哪种字符集进行编码,在这encoding的值为“UTF-8”,那么标记的名字以及标记包含的文本内容中就可以使用汉字、日文、英文等。最后,文件在保存的时候必须选择UTF-8编码来保存,否则会出错。
如果在XML声明中没有指定encoding的值,那么该属性的默认值为UTF-8
XML文档中,有且仅有一个根标记,其他标记都必须封装在根标记中如图所示:
    在该XML文件中,根标记的名字为“txl”,在根标记中封装了一个或多个名字为“title”、“classmate”、“friend”、“home”的标记。在名为“classmate”、“friend”、“home”的标记下,又都包含了名为“name”、“sex”、“tel”、“QQ”、“address”、“other”的子标记,他们分别包含了姓名、性别、、QQ号、地址、备注这些信息。至此,该XML文件可以称为一个规范的XML文件。
使用XMLSpy,使用按钮检验XML文件的规范性,所得结果为:
2、 为该XML文档编写DTD文档,使其成为一个有效的XML文档
一个有效的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称为有效的XML
DTD通过其中的元素来限制XML文件中的标记。下列元素:<!ELEMENT txl (title,classmate+,friend+,home+)>约束XML文件的根标记“txl”可以有一个名为“title”的子标记,一个或多个名为“classmate”、“friend”、“home”的子标记,不可以有任何其他名称的子标记。
下列元素:<!ELEMENT classmate (name,sex,tel,QQ+,address+,other+)>
<!ELEMENT friend (name,sex,tel,QQ+,address+,other+)>
杨紫评论张雪迎<!ELEMENT home (name,sex,tel,QQ+,address+,other+)>
约束了XML文件中名称为“classmate”、“friend”、“home”的标记恰好顺序地包含有名称分别为“name”、“sex”、“tel”、“QQ”、“ address”和“other”子标记,而且约束名称为“classmate”、“friend”、“home”的标记包含的内容不可以有可显示的字符(允许含有空格、回行等空白字符)。
下列元素:<!ELEMENT title (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT QQ (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT other (#PCDATA)>
分别约束了XML文件中名称为“name”、“sex”、“tel”、“QQ”、“ address”和“other”的标记所包含的内容只可以是文本数据,不可以包含有子标记。
在该XML市盈率是什么意思文档中,namesex属性是枚举类型,那么该属性只可以是枚举给出的值,即属性可以取的值是用符号“|”分隔的几个字符串中的任何一个。下列元素:<!ATTLIST name sex (|演员王琳的老公女) #REQUIRED>约束了约束了sex属性值可以是男/女。
在保存DTD文件时,要选择“UTF-8”编码方式保存(在保存DTD文件时所选择的编码必须和它要约束的XML文件保持一致)。
XML文件中,可以使用“文档类型声明”使当前XML文件与一个DTD文件相关联。如:<!DOCTYPE txl SYSTEM "TXL.dtd">  其中txlXML文件的根标记,“TXL.dtd”是与该XML文件相关连的DTDURI,即使用SYSTEM文档类型声明的格式为:<!DOCTYPE 根标记的名称 SYSTEM DTD文件的URI>
使用XMLSpy,用按钮检验XML文件的有效性,所得结果为:,所以,现在得到的XML文件是一个有效的XML文件。
五、 结果分析与总结
一个规范的XML文件,应当满足以下语法规则:XML文件用“XML声明”开始;XML文件有且仅有一个根标记;XML的非根标记必须封装在根标记中;非空标记必须由“开始标签”和“结束标签”构成;空标记没有“开始标签”和“结束标签”;XML文件中的全体标记必须形成树形结构,即标记不允许出现交叉。
在编写的十年一品温如言讲的什么故事XML文件中,如果选择的编码方式为“UTF-8”,XML文件必须选择UTF-8编码来保存;如果选择的编码方式为“gb2312”或“ISO-8859-1”,XML文件必须选择ANSI编码保存。如果不按以上方式保存,会出错。
如果在要XML文档中使用特殊字符,可以使用字符引用或CDATA段。如以下代码(CDATA段)
在浏览器中显示效果如下:
以下代码(实体引用):
显示如下:
             
DTD文件中,元素的定义以“<!ELEMENT”开始,以“>”结束,其中,“<!ELEMENT”中的“<”、“!”和“ELEMENT”之间不能有空格。在DTD文件中,用关键字ELEMENT定义一个元素(<!ELEMENT 标记名称 标记的约束条件>)时,“<!ELEMENT”、“标记名称”和“标记的约束条件”之间必须有空格,若没有,则会报错。如:把以上DTD文件中的<!ELEMENT other (#PCDATA)>改为<!ELEMENTother(#PCDATA)>,打开XML文件时,会出现以下结果:
除此之外,DTD文件中元素的作用与其在DTD文件中的书写位置无关,DTD文件中不允许使用多个元素约束同一个标记。。。。。。
需要特别注意的是:DTD文件是由元素构成的文本文件,需要使用文本编辑器编写、保存,在保存DTD文件时,选择的编码必须和它要约束的XML文件保持一致。如不一样,检验有效性时会报错,例如本应该以“UTF-8”编码保存的,用“ANSI”编码保存,在有汉字的地方会报错:
要想完成一个规范的、有效的XML文件,必须要按照XMLDTD的语法规则来编写、保存文件,这样才能避免出错。
师签名: