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文件:A. dtd<!ELEMENT成绩单(学生*) ><!ELEMENT学生(姓名咸绩)><! ELEMENT 姓名(#PCDATA)><!ELEMENT 成绩(#PCDATA)>请问,下列XML文件是有效的吗?如果不是有效的, 请将其修改为有效的。
B. xml<?xml version=n1.0n encoding=n UTF-8n ?><! DOCTYPE 成绩单SYSTEM H A.dtd H>v成绩单〉v学生〉V姓名〉张三V/姓名〉V成绩〉优秀V/成绩〉V/学生〉V学生〉V成绩〉良好V/成绩〉V姓名〉李四V/姓名〉V/学生〉</成绩单>11.请编写有效的XML文件,约束该XML文件的DTD文件如下:A:dtdFile.dtd<!ELEMENT商品信息(商品*)>CATTLIST p:名称xmlns:p CDATA #FIXED ”Beijing”〉<!ATTLIST q:名称xmlns:q CDATA #IMPLIED><!ELEMENT商品(p:名称,价钱,连锁店+) ><!ATTLIST 商品商标CDATA #REQUIRED > ・<!ATTLISTp:名称条形码ID#REQUIRED><!ELEMENT 价钱(#PCDATA) ><!ELEMENT连锁店(q:名称,地点)〉<!ELEMENT p:名称(#PCDATA) ><!ELEMENT q:名称(#PCDATA) ><!ELEMENT 地点(#PCDATA) >B:dtdFile.dtd<!ELEMENT电话薄(北京)〉<!ELEMENT北京(清华出版社,北京大学)〉<!ELEMENT清华岀版社EMPTY><!ELEMENT 北京大学EMPTY><!ATTLIST 北京区号ID#REQUIRED ><!ATTLIST 清华出版社区号IDREF #REQUIRED 号码CDATA # REQUIRED><!ATTLIST 北京大学区号IDREF #REQUIRED 号码CDATA #REQUIRED><!ATTLIST 配偶信息编号ID#REQUIRED > <!ATTLIST 酉己偶信息配偶编号 IDREF <!ATTLIST <!ATTLIST 个人信息 个人信息 性别 职业 (男I 女)”男CDATA #FIXED ”工程<!ATTLIST 编号 <!ATTLIST个人信息个人信息 ID #REQUIRED >配偶编号IDREFC:dtdF 订e. dtd<?xml version=n 1.0n encoding=n GB2312n ?><! ELEMENT 姓名(#PCDATA )><! ELEMENT 出生日期(#PCDATA )><!ELEMENT 配偶信息(姓名,出生日期)〉 <!ATTLIST 配偶信息 性别(男|女)#REQUIRED 〉<!ATTLIST 配偶信息 职业 CDATA #REQUIRED >#REQUIRED > <!ELEMENT 个人信息(姓名,出生日期,配偶信息)>#REQUIRED ><!ELEMENT 职员信息(个人信息*)> 12、为下面的XML 文件编写有效的DTD 文件。
<?xml version^111.0nencoding=t!GB2312" standalone=n yes n ?> V 个人信息性别二"男”出生日期="1977/10/18">v 姓名〉空心狼</姓名〉<职业〉歌手</职业〉<配偶信息性别二"女"出生日期="1970/08/06">v姓名〉小螃蟹</姓名〉v职业〉胸外科医生</职业〉</配偶信息〉V/个人信息〉答案如下:1•答:XML该当的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,有效的XML 文档肯定是格式良好的。
2•答:必须和其约束的XML文件编码相一致3•答:不完全相关4.答:可以使用外部DTD和XML文件相关联5.答:一定要用ATTLIST属性申明约束6.答:第一个是必选项,必须要有学号;第二个是固定项,表示学号的值必须是220123;第三个是可选项, 表示学号可以有也可以没有7•答:ID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接,ID类型属性的值不能相同。
8•不合理,因为如果没有ID,他就不能把一个元素的ID标识值作为该属性的取值9•答:1.3.4可以取10 答:应改为v?xml version二"1.0" encoding="GB2312" standalone=,,no ?><!DOCTYPE成绩单SYSTEM n A.dtd n><学生〉<姓名〉张三</姓名〉<成绩〉优秀</成绩〉V/学生〉V学生〉V姓名〉李四V姓名〉v成绩〉良好</成绩〉V/学生〉V/成绩单〉11.答:根据第一个DTD,编写出来有效的XML文件如下:<?xml version=n1.0!t encoding=n gb2312n?><!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:名称,地点)〉VELEMENTp:名称(#PCDATA) > VELEMENTq:名称(#PCDATA) ><! ELEMENT 地点(#PCDATA) >]>v商品信息〉v商品商标二”电脑”〉<p:名称xmlns:p="Beijing"条形码="al23">联想v/p: 名称〉<价钱>4000元</价钱〉<连锁店〉vq:名称〉华硕v/q:名称〉<地点〉成都</地点></连锁店〉<! DOCTYPE 电话薄[ <! ELEMENT 电话薄(北京)〉<! ELEMENT 北京(清华出版社,北京大学)〉<! ELEMENT 清华出版社EMPTY><! ELEMENT北京大学EMPTY></商品〉 </商品信息〉第二个XML 文件如下:<?xml version=n 1.0n encoding=n gb2312n?><!ATTLIST 北京 区号 ID#REQUIRED 〉 <!ATTLIST 清华出版社 区号 IDREF #REQUIRED 号码 CDATA #REQUIRED> <!ATTLIST 北京大学 区号 IDREF #REQUIRED 号 码 CDATA #REQUIRED> ]>v 电话薄〉V北京区号="al23456">v清华出版社区号="al23456"号码="123456"></清华出版社〉v北京大学区号="al23456"号码="456789"></北京大学〉</北京〉</电话薄〉第三个XML文件如下:<!ATTLIST配偶信息性别<!ATTLIST配偶信息职业<!ATTLIST配偶信息编号<!ATTLIST 酉己偶信息#REQUIRED > (男 | 女)#REQUIRED〉CDATA #REQUIRED > ID #REQUIRED ><?xml version=n1.0!t encoding=!t GB2312n ?> <! DOCTYPE职员信息[<! ELEMENT 姓名(#PCDATA)〉<! ELEMENT 岀生日期(#PCDATA)><!ELEMENT配偶信息(姓名,出生日期)〉<!ELEMENT个人信息(姓名,出生日期,配偶信息)〉<!ATTLIST个人信息性别(男|女)“男”〉<!ATTLIST 个人信息职业CDATA #FIXED ”工程师"><!ATTLIST 个人信息编号ID #REQUIRED ><!ATTLIST 个人信息酉己偶编号IDREF#REQUIRED ><!ELEMENT职员信息(个人信息*)>]><职员信息〉v个人信息性别二"男"职业二”工程师"编号="al"配偶编号="a2"><姓名〉张三</姓名〉 v岀生日期>1980.1.1</出生日期〉 v 配偶信息性别二”女“职业二”教师"编号="a2"配偶编号="al">v姓名〉李四v/姓名〉<出生日期>1982.6.4</出生日期〉</配偶信息〉</个人信息〉</职员信息〉12.答:<!ELEMENT个人信息(姓名,职业,配偶信息)〉<! ELEMENT 姓名(#PCDATA)><!ELEMENT 职业(#PCDATA)><!ELEMENT配偶信息(姓名,职业)〉<!ATTLIST配偶信息性别(男|女)”女”出生日期CDATA #FIXED "1970/08/06"><!ATTLIST个人信息性别(男|女)”男”出生日期CDATA #FIXED n1977/10/18n>。