XML基础及实践开发教程唐琳主编习题标准答案.docx
《XML基础及实践开发教程唐琳主编习题标准答案.docx》由会员分享,可在线阅读,更多相关《XML基础及实践开发教程唐琳主编习题标准答案.docx(29页珍藏版)》请在冰豆网上搜索。
XML基础及实践开发教程唐琳主编习题标准答案
习题1答案
1.XML参考答案:
<?
xmlversion=”1.0”encoding=”gb2312”?
>
<title>静夜思
李白</author>
<content>
床前明月光</line>
<line>疑是地上霜
<line>举头望明月
低头思故乡line>content>
</poem>
2. 判断下列元素的内容是否合法
&</data>ﻩ 错
<data>/ﻩ对
<data>/>
<ﻩﻩ 错
<data>]]>
3.//错误元素中不允许使用]]>
4.<?
xmlversion="1.0" encoding="UTF-8"?
>
<teams>
ﻩ<team>
ﻩﻩ<teamid>1</teamid>
北京xx
ﻩ
2</teamid>
ﻩ大连yyteamname>
team>
<teamid>3
ﻩﻩ上海zz</teamname>
5.XML文件的分类:
无效的XML文档、格式良好的XML文档、有效的XML文档
6.XML文件的逻辑构成,并简述各部分内容
逻辑构成包括:
(1)XML必要声明
(2)DTD声明(3)PI(处理指令)(4)元素(5)注释
ﻩ1)XML必要声明
语法:
?
>
ﻩ位置:
必须位于第一行
ﻩ可以包含的属性及含义
ﻩversion 必须的XML版本1.0|1.1
ﻩencoding 可选的编码方式
ﻩﻩstandalone可选的XML文档是否独立yes|no
2)DTD声明
ﻩ语法:
DOCTYPE....>
内置的DTD声明
1)PI
语法:
?
>
位置:
通常位于第一个元素之前
如果需要使用的时候给出,否则不写
PIvsxml必要声明的相同点和不同点?
ﻩ(1)位置
ﻩ
(2)出现次数
(3)作用
4)注释
ﻩ语法:
---->
ﻩ需要注意的问题:
1)不能位于必要声明之前
ﻩ2)不能嵌套在标记中
3)本身不能嵌套
ﻩ4)中间内容不能出现--
ﻩ5)不能以--->
5)元素
分类:
空元素、带属性的、带内容的、带内容且带属性的
习题2答案
1.分为3种方式:
1)内部DTD
<!
DOCTYPE根元素名称[
元素描述
]>
2)外部DTD:
外部DTD的引用须事先已有一个dtd文件,将DTD的约束写到文件中,然后在XML文档中按以下语法格式添加:
DOCTYPE(根元素名称)SYSTEM“外部DTD的URL地址”>
ﻩSYSTEM关键字表示文档使用的是私有DTD文件,“外部DTD文件的URI”可以是相对URI或者绝对URI,相对URI是相对于文档类型声明所在文档的位置。
“外部DTD文件的URI”这部分也被称为系统标识符(systemidentifier)。
3)公用DTD:
公用DTD与外部DTD类似,但是该DTD引用公用的DTD的语法格式如下:
<!
DOCTYPE (根元素名称)PUBLIC “DTD的标识名”“公用DTD的URL地址”>
2. DTD划分的元素类型及其含义
元素类型
含义
EMPTY
空元素,即该元素不包括任何内容
(#PCDATA)
字符串类型,即该元素内容中可以为任意字符串
ANY
任意类型,即该元素内容任意无限制
子元素
子元素类型,即该元素嵌套子元素
混合类型
混合内容类型,即该元素内部即包含字符串又包含子元素
3.属性类型及其含义
属性类型
说明
CDATA
单纯的字符数据,大部分属性都设置为该类型
ID
具有唯一性的属性值,需要注意的是该属性值必须以字母开头
IDREF
引用其它ID属性的值,该值必须在其它ID属性中存在
IDREFS
引用多个其它ID属性的值,中间使用空格间隔
ENTITY
未解析的外部实体类型,
ENTITIES
多个未解析的外部实体类型,中间使用空格间隔
NMTOKEN
是NameToken,就是关键字的名字。
可以包含字母、数字、[.]、[-]、[_]、[:
]组合的名字
NMTOKENS
多个NMTOKEN,中间使用空格间隔
NOTATION
标记名称
Enumerated
枚举类型的属性,只能从已有的属性中选取,不能填入新项目
1.<!
ENTITYmedium"中等">&big;
5.
xml version="1.0"encoding="UTF-8"?
>
DOCTYPETVSCHEDULE[
<!
ELEMENTTVSCHEDULE(CHANNEL*)>
ELEMENTCHANNEL(BANNER,DAY+)>
ELEMENTBANNER(#PCDATA)>
<!
ELEMENTDAY(DATE,HOLIDAY?
PROGRAMSLOT?
)>
<!
ELEMENT DATE (#PCDATA)>
<!
ELEMENTHOLIDAY (#PCDATA)>
ELEMENTPROGRAMSLOT(TIME,TITLE,DESCRIPTION?
)>
<!
ELEMENTTIME(#PCDATA)>
ELEMENTTITLE (#PCDATA)>
ELEMENTDESCRIPTION(#PCDATA)>
ATTLISTTVSCHEDULENAMECDATA#IMPLIED>
<!
ATTLISTCHANNEL CHAN CDATA#REQUIRED>
<!
ATTLIST PROGRAMSLOTVTRCDATA#IMPLIED>
ATTLISTTITLE
RATINGCDATA #IMPLIED
LANGUAGE CDATA#IMPLIED>
ENTITYcopyright"XXXXXXX">
]>
<CHANNELCHAN="01">
ﻩBANNERContent</BANNER>
ﻩ<DAY><DATE>1990-10-10DATE>11</HOLIDAY>
</CHANNEL>
ﻩ<BANNER>111BANNER>
ﻩ<DAY><DATE>1990-10-10</DATE>
ﻩﻩ<PROGRAMSLOTVTR="net">
ﻩﻩﻩ00</TIME>
ﻩtitlename1990-10-10</DATE>11
ﻩﻩ<TIME>12:
00</TIME>
ﻩﻩtitlename
ﻩﻩﻩ<DESCRIPTION>©right;
</PROGRAMSLOT></DAY>
ﻩ</CHANNEL>
6.答案
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPECATALOG[
ENTITYAUTHOR"JohnDoe">
<!
ENTITYCOMPANY"JDPower Tools, Inc.">
ENTITYEMAIL"jd@jd-tools.com">
<!
ELEMENT CATALOG (PRODUCT+)>
<!
ELEMENTPRODUCT
(SPECIFICATIONS+,OPTIONS?
PRICE+,NOTES?
)>
ATTLISTPRODUCT
NAME CDATA#IMPLIED
CATEGORY (HandTool|Table|Shop-Professional)"HandTool"
PARTNUMCDATA #IMPLIED
PLANT(Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY(InStock|Backordered|Discontinued) "InStock">
ELEMENTSPECIFICATIONS (#PCDATA)>
<!
ATTLISTSPECIFICATIONS
WEIGHTCDATA #IMPLIED
POWERCDATA#IMPLIED>
ELEMENTOPTIONS (#PCDATA)>
ATTLISTOPTIONS
FINISH(Metal|Polished|Matte) "Matte"
ADAPTER(Included|Optional|NotApplicable)"Included"
CASE(HardShell|Soft|NotApplicable)"HardShell">
<!
ELEMENTPRICE(#PCDATA)>
ATTLISTPRICE
MSRPCDATA #IMPLIED
WHOLESALECDATA#IMPLIED
STREETCDATA#IMPLIED
SHIPPING CDATA#IMPLIED>
ELEMENT NOTES(#PCDATA)>
]>
<CATALOG>
<PRODUCT NAME="sss" CATEGORY="Table"PARTNUM="xxx"PLANT="Milwaukee"INVENTORY="Backordered">
ﻩﻩ&COMPANY;
ﻩ<OPTIONS>ddd
ﻩddd
ﻩ<NOTES></NOTES>
</PRODUCT>
ﻩ<PRODUCT>
ﻩﻩ
ﻩ<PRICE>
PRODUCT>
习题3答案
1.<?
xmlversion="1.0" encoding="UTF-8"?
>
DOCTYPE class[
<!
ELEMENTclass(aa:
major,students)*>
ELEMENTaa:
major (aa:
name)*>
ELEMENTaa:
name(#PCDATA)>
ELEMENTstudents(bb:
student)*>
ELEMENT bb:
student(bb:
name+,bb:
age+)>
<!
ELEMENTbb:
name(#PCDATA)>
<!
ELEMENTbb:
age(#PCDATA)>
ATTLIST classxmlns:
aa CDATA#REQUIRED
xmlns:
bbCDATA#REQUIRED
xmlnsCDATA #REQUIRED>
<!
ATTLISTbb:
student
sn CDATA#REQUIRED>
]>
aa=""
xmlns:
bb=""
xmlns="">
major>
ﻩ<aa:
name>软件工程
name>
</aa:
major>
<students>
student sn="01">
ﻩname>张三
name>
ﻩage>18
age>
ﻩ
student>
studentsn="02">
ﻩ
name>李四
name>
ﻩ<bb:
age>120
age>
ﻩ
student>
students>
2.<?
xml version="1.0"encoding="UTF-8"?
>
<!
DOCTYPE library[
ELEMENT library(books,records)*>
ELEMENTbooks(book*)>
ELEMENT book(#PCDATA)>
ATTLISTbookaa:
bookid CDATA#REQUIRED>
<!
ELEMENT records(item*)>
ELEMENTitem(date+,person+)>
ELEMENTdate(#PCDATA)>
ELEMENTperson(#PCDATA)>
ATTLISTperson bb:
nameCDATA#REQUIRED>
ATTLISTpersonborrowed CDATA #REQUIRED>
<!
ATTLISTlibraryxmlns:
aa CDATA#REQUIRED
xmlns:
bbCDATA #REQUIRED>
]>
<libraryxmlns:
aa=""
xmlns:
bb="">
ﻩ<books>
<bookaa:
bookid="b-1-1">XML详解</book>
ﻩ<bookaa:
bookid="b-1-2">Servlet从入门到精通
ﻩﻩbookid="b-1-3">JSP实例编程
</books>
ﻩ
<item>
ﻩﻩ2012-08-01</date>
ﻩﻩ<personbb:
name="张三"borrowed="b-1-1b-1-2"/>
ﻩ
ﻩﻩﻩ2012-08-02</date>
ﻩﻩﻩname="李四"borrowed="b-1-1 b-1-3"/>
ﻩ
ﻩrecords>
</library>
习题4答案
1.
<?
xmlversion="1.0"encoding="UTF-8"?
>
<xs:
schema xmlns:
xs=""elementFormDefault="qualified"attributeFormDefault="unqualified">
<xs:
element name="学生名册">
ﻩﻩcomplexType>
ﻩﻩﻩ<xs:
sequenceminOccurs="1"maxOccurs="unbounded">
ﻩﻩﻩ<xs:
elementname="学生" type="studenttype"/>
sequence>
complexType>
element>
complexType name="studenttype">
sequence>
ﻩelementname="姓名" type="xs:
string"/>
ﻩ<xs:
elementname="性别">
ﻩsimpleType>
ﻩrestrictionbase="xs:
string">
ﻩﻩﻩenumerationvalue="男"/>
ﻩﻩﻩﻩenumerationvalue="女"/>
ﻩﻩ
restriction>
xs:
simpleType>
ﻩﻩ
element>
ﻩ<xs:
element name="年龄">
ﻩﻩﻩﻩsimpleType>
ﻩﻩﻩﻩﻩrestrictionbase="xs:
integer">
ﻩﻩminExclusivevalue="0"/>
ﻩ<xs:
maxExclusivevalue="100"/>
ﻩ</xs:
restriction>
ﻩﻩﻩ
simpleType>
</xs:
element>
sequence>
ﻩﻩattribute name="学号"type="xs:
integer"/>
complexType>
schema>
2.
xmlversion="1.0" encoding="UTF-8"?
>
<xs:
schemaxmlns:
xs="" elementFormDefault="qualified"attributeFormDefault="unqualified">
ﻩﻩ<xs:
simpleTypename="bookIDType">
ﻩﻩrestrictionbase="xs:
string">
ﻩpatternvalue="b-\d{1}-\d{1}"/>
ﻩﻩﻩﻩ</xs:
restriction>
ﻩﻩ</xs:
simpleType>
elementname="book">
complexType>
ﻩsimpleContent>
ﻩﻩﻩextensionbase="xs:
string">
ﻩﻩattributename="bookid" type="bookIDType">
ﻩﻩﻩﻩ</xs:
attribute>
ﻩﻩﻩ
extension>
ﻩﻩ
simpleContent>
ﻩxs:
complexType>
element>
elementname="books">
ﻩﻩ<xs:
complexType>
ﻩsequencemaxOccurs="unbounded">
ﻩﻩﻩ<xs:
elementref="book"></xs:
element>
ﻩﻩﻩ
sequence>
</xs:
complexType>
</xs:
element>
ﻩelementname="person" nillable="true">
ﻩ<xs:
complexType >
ﻩ<xs:
simpleContent>
ﻩﻩﻩextensionbase="xs:
string">
ﻩﻩ<xs:
attributename="name"type="xs:
string">
ﻩﻩ
attribute>
ﻩﻩﻩﻩ<xs:
attribute name="borrowed">
ﻩﻩﻩ<xs:
simpleType>
ﻩﻩﻩﻩﻩlistitemType="bookIDType">
ﻩﻩﻩﻩ
list>
ﻩﻩﻩﻩ</xs:
simpleType>
ﻩﻩ
attribute>
ﻩﻩ
extension>
ﻩﻩxs:
simpleContent>
ﻩ
complexType>
ﻩ
element>
ﻩelementname="item">
ﻩﻩcomplexType>
ﻩsequence>
ﻩﻩﻩelement name="date"type="xs:
date">xs:
element>
ﻩelementref="person">
element>
ﻩ</xs:
sequence>
ﻩﻩ
complexType>
element>
<xs:
elementname="records">
complexType>
ﻩsequencemaxOccurs="unbounded">
ﻩﻩﻩelementref="item">
element>
ﻩﻩ
sequence>
ﻩ
complexType>
</xs:
element>
elementname="library">
ﻩﻩ<xs:
complexType>
ﻩ<xs:
sequence>
ﻩﻩelement ref="books">
ﻩ</xs:
element>
ﻩ<xs:
elementref="records"></xs:
element>
ﻩﻩ
sequence>
ﻩxs:
complexType>
ﻩ
element>
schema>
ﻬ习题5答案
1. <?
xmlversion="1.0"encoding="UTF-8"?
>
<xs:
schemaxmlns:
xs=""elementFormDefault="qualified"attributeFormDefault="unqualified"targetNamespace=""xmlns="">
<xs:
element name="welcome-">
ﻩﻩ<xs:
complexType>
ﻩﻩﻩsequence>
ﻩﻩﻩﻩelementname="welcome-file"minOccurs="1"maxOccurs="unbounded"/>
ﻩﻩxs:
sequence>
</xs:
complexType>
ﻩxs:
element>
ﻩ<xs:
elementname="servlet">
ﻩcomplexType>
ﻩ<xs:
sequence>
ﻩﻩ<xs:
element name="description"type="xs:
string"minOccurs="0"maxOccurs="1">
element>
ﻩﻩ<xs:
elementname="display-name"type="xs:
string" minOccurs="0"maxOccurs="1">
element>
ﻩﻩﻩﻩ<xs:
element name="servlet-name" type="xs:
string"minOccurs="1"maxOccurs="1">xs:
element>
ﻩﻩﻩelementname="servlet-class" type="xs:
string" minOccu