XML习题1.什么叫有效的XML文件?2.DTD文件的编码必须和其约束的XML文件的编码相一致吗?3.DTD文件中元素的作用与其在DTD文件中的书写位置有关吗?4.XML文件怎样和一个DTD文件关联?5.对于一个有效的XML文件,标记中的属性一定要有ATTLIST声明约束吗?6.下列ATTLIST声明有何不同?(1)<!ATTLIST 张三学号 CDATA #REQUIRED>(2)<!ATTLIST 张三学号 CDATA #FIXED "220123">(3)<!ATTLIST 张三学号 CDATA ##IMPLIED >7.ID类型的属性有什么特点?8.假如XML文件中没有标记的属性是ID类型,那么将某个属性的类型约束为IDREF类型是否合理?9.如果一个属性的类型是NMTOKEN,下列哪个字符串是该属性可以取的属性值?(1) hello (2)How are you(3) _Good (4)2002-12-2210.假如有如下的DTD文件:<!ELEMENT 成绩单 (学生*) ><!ELEMENT 学生 (姓名,成绩) ><!ELEMENT 姓名 (#PCDATA)><!ELEMENT 成绩 (#PCDATA)>请问,下列XML文件是有效的吗?如果不是有效的,请将其修改为有效的。
<?xml version="" encoding="UTF-8" ?><!DOCTYPE 成绩单 SYSTEM ""><成绩单><学生><姓名> 张三 </姓名><成绩> 优秀 </成绩></学生><学生><成绩> 良好 </成绩><姓名> 李四 </姓名></学生></成绩单>11.请编写有效的XML文件,约束该XML文件的DTD 文件如下:A:<!ELEMENT 商品信息 (商品*) ><!ATTLIST p:名称 xmlns:p CDATA #FIXED "Beijing"><!ATTLIST q:名称 xmlns:q CDATA #IMPLIED><!ELEMENT 商品 (p:名称,价钱,连锁店+) ><!ATTLIST 商品商标 CDATA #REQUIRED > -<!ATTLIST p:名称条形码 ID #REQUIRED ><!ELEMENT 价钱 (#PCDATA) ><!ELEMENT 连锁店 (q:名称,地点) ><!ELEMENT p:名称 (#PCDATA) ><!ELEMENT q:名称 (#PCDATA) ><!ELEMENT 地点 (#PCDATA) >B:<!ELEMENT 电话薄 (北京) ><!ELEMENT 北京 (清华出版社,北京大学)><!ELEMENT 清华出版社 EMPTY><!ELEMENT 北京大学 EMPTY><!ATTLIST 北京区号 ID #REQUIRED ><!ATTLIST 清华出版社区号IDREF #REQUIRED 号码CDATA #REQUIRED><!ATTLIST 北京大学区号IDREF #REQUIRED 号码CDATA #REQUIRED>C:<?xml version="" encoding="GB2312" ?><!ELEMENT 姓名 (#PCDATA)><!ELEMENT 出生日期 (#PCDATA)><!ELEMENT 配偶信息 (姓名, 出生日期)><!ATTLIST 配偶信息性别 (男|女) #REQUIRED ><!ATTLIST 配偶信息职业 CDATA #REQUIRED ><!ATTLIST 配偶信息编号 ID #REQUIRED ><!ATTLIST 配偶信息配偶编号 IDREF #REQUIRED > <!ELEMENT 个人信息 (姓名,出生日期,配偶信息)><!ATTLIST 个人信息性别 (男|女) "男"><!ATTLIST 个人信息职业 CDATA #FIXED "工程师" > <!ATTLIST 个人信息编号 ID #REQUIRED ><!ATTLIST 个人信息配偶编号 IDREF #REQUIRED > <!ELEMENT 职员信息 (个人信息*)>12、为下面的XML文件编写有效的DTD文件。
<?xml version="" encoding="GB2312" standalone="yes" ?><个人信息性别="男" 出生日期="1977/10/18"> <姓名>空心狼</姓名><职业>歌手</职业><配偶信息性别="女" 出生日期="1970/08/06"> <姓名>小螃蟹</姓名><职业>胸外科医生</职业></配偶信息></个人信息>答案如下:1.答:XML该当的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,有效的XML文档肯定是格式良好的。
2.答:必须和其约束的XML文件编码相一致3.答:不完全相关4.答:可以使用外部DTD和XML文件相关联5.答:一定要用ATTLIST属性申明约束6.答:第一个是必选项,必须要有学号;第二个是固定项,表示学号的值必须是220123;第三个是可选项,表示学号可以有也可以没有7.答:ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接,ID类型属性的值不能相同。
8.不合理,因为如果没有ID,他就不能把一个元素的ID标识值作为该属性的取值9.答:可以取10答:应改为<?xml version="" encoding="GB2312" standalone="no ?><!DOCTYPE 成绩单SYSTEM ""><成绩单><学生><姓名> 张三 </姓名><成绩> 优秀 </成绩></学生><学生><姓名> 李四 </姓名><成绩> 良好 </成绩></学生></成绩单>11.答:根据第一个DTD,编写出来有效的XML文件如下:<?xml version="" encoding="gb2312"?><!DOCTYPE 商品信息 [<!ELEMENT 商品信息 (商品*) ><!ATTLIST p:名称 xmlns:p CDATA #FIXED "Beijing"> <!ATTLIST q:名称 xmlns:q CDATA #IMPLIED><!ELEMENT 商品 (p:名称,价钱,连锁店+) ><!ATTLIST 商品商标 CDATA #REQUIRED ><!ATTLIST p:名称条形码 ID #REQUIRED ><!ELEMENT 价钱 (#PCDATA) ><!ELEMENT 连锁店 (q:名称,地点) ><!ELEMENT p:名称 (#PCDATA) ><!ELEMENT q:名称 (#PCDATA) ><!ELEMENT 地点 (#PCDATA) >]><商品信息><商品商标="电脑"><p:名称 xmlns:p="Beijing" 条形码="a123">联想</p:名称><价钱>4000元</价钱><连锁店><q:名称>华硕</q:名称><地点>成都</地点></连锁店></商品></商品信息>第二个XML文件如下:<?xml version="" encoding="gb2312"?><!DOCTYPE 电话薄 [<!ELEMENT 电话薄 (北京)><!ELEMENT 北京 (清华出版社,北京大学)><!ELEMENT 清华出版社 EMPTY><!ELEMENT 北京大学 EMPTY><!ATTLIST 北京区号 ID #REQUIRED ><!ATTLIST 清华出版社区号 IDREF #REQUIRED 号码CDATA #REQUIRED><!ATTLIST 北京大学区号 IDREF #REQUIRED 号码CDATA #REQUIRED>]><电话薄><北京区号="a123456"><清华出版社区号="a123456" 号码="123456"></清华出版社><北京大学区号="a123456" 号码="456789"></北京大学></北京></电话薄>第三个XML文件如下:<?xml version="" encoding="GB2312" ?><!DOCTYPE 职员信息 [<!ELEMENT 姓名 (#PCDATA)><!ELEMENT 出生日期 (#PCDATA)><!ELEMENT 配偶信息 (姓名, 出生日期)><!ATTLIST 配偶信息性别 (男|女) #REQUIRED ><!ATTLIST 配偶信息职业 CDATA #REQUIRED ><!ATTLIST 配偶信息编号 ID #REQUIRED ><!ATTLIST 配偶信息配偶编号 IDREF #REQUIRED > <!ELEMENT 个人信息 (姓名,出生日期,配偶信息)> <!ATTLIST 个人信息性别 (男|女) "男"><!ATTLIST 个人信息职业 CDATA #FIXED "工程师" ><!ATTLIST 个人信息编号 ID #REQUIRED ><!ATTLIST 个人信息配偶编号 IDREF #REQUIRED ><!ELEMENT 职员信息 (个人信息*)>]><职员信息><个人信息性别="男" 职业="工程师" 编号="a1" 配偶编号="a2"><姓名>张三</姓名><出生日期>出生日期><配偶信息性别="女" 职业="教师" 编号="a2" 配偶编号="a1"><姓名>李四</姓名><出生日期>出生日期></配偶信息></个人信息></职员信息>12.答:<!ELEMENT 个人信息 (姓名,职业,配偶信息)><!ELEMENT 姓名 (#PCDATA)><!ELEMENT 职业 (#PCDATA)><!ELEMENT 配偶信息 (姓名, 职业)><!ATTLIST 配偶信息性别 (男|女)"女" 出生日期CDATA #FIXED "1970/08/06"><!ATTLIST 个人信息性别 (男|女) "男" 出生日期CDATA #FIXED "1977/10/18">。