XML技术应用第二版习题附答案.docx
《XML技术应用第二版习题附答案.docx》由会员分享,可在线阅读,更多相关《XML技术应用第二版习题附答案.docx(27页珍藏版)》请在冰豆网上搜索。
XML技术应用第二版习题附答案
第1章XML概述
1.1什么是SGML?
什么是XML?
1.2XML有哪些特性和优点?
1.3简述XML的处理过程。
1.4XML有哪些设计目标?
1.5创建一个简单的XML文档,并为该文档添加一个简单的样式表。
第2章XML语法
2.1XML声明都包含哪些内容?
哪些是必需的?
哪些是可选的?
2.2XML的属性与HTML的属性在语法上有什么区别?
2.3XML预定义了哪些实体引用?
2.4找出下面代码中的错误:
XMLversion="1.0"?
>
Germany
JoachimLoew
--Notsureabout<--assistant-->-->
ManuelNeuer
PhilippLahm
ThomasMuller
MiroslavKlose
第3章文档类型定义
3.1什么是DTD?
谈谈对DTD的理解。
3.2DTD的声明方式有哪些?
3.3元素的内容可以分为哪几类?
3.4属性设置的默认值有哪些?
它们的含义各是什么?
3.5使用外部DTD的声明,为例2.8创建一个DTD文档。
3.6为一个XML文档创建外部DTD。
该XML文档的结构要求如下:
(1)根元素名称为Library。
(2)Library必须包含2个元素:
Book和Member,分别表示书的详细信息和发行人。
(3)Book必须包含一个BookId属性。
所有其它的元素,例如Title、Author、Price、Publisher和Cost都只能作为Book的子元素。
(4)元素Member包含Name和Address两个子元素。
元素Name包含FirstName、MiddleName和LastName三个子元素。
元素Address包含HouseNumber、Street、City三个子元素。
第4章命名空间和XMLSchema
4.1用xmlns属性定义命名空间时,前缀有什么作用?
4.2怎样定义和使用默认的命名空间?
4.3XMLSchema相比DTD有哪些优势?
4.4XMLSchema提供哪两种方式来实现数据类型的定义?
怎样实现?
4.5为下面的XML文档创建XMLSchema描述文档。
xmlversion="1.0"encoding="UTF-8"?
>
<网上书城xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns="xsi:
schemaLocation="bookstore.xsd"
elementFormDefault="qualified">
<图书集合>
<图书类别uid="TECH">
<名称>科技类名称>
<描述>关于科学技术方面的书籍描述>
<书>
9787302392644
<名称>人月神话名称>
<作者>小弗雷德里克·布鲁克斯著;汪颖译作者>
<页数>392页数>
书>
<书>
9787535732309
<名称>时间简史名称>
<作者>史蒂芬·霍金著;许明贤,吴忠超译作者>
<页数>243页数>
书>
图书类别>
<图书类别uid="ESSAY">
<名称>散文类名称>
<描述>关于人文精神思想类方面的书籍描述>
<书>
9787515405582
<名称>季羡林散文精选名称>
<作者>季羡林作者>
<页数>216页数>
书>
图书类别>
图书集合>
网上书城>
第5章文档对象模型
5.1什么是DOM?
简述DOM的结构和工作方式。
5.2Node接口的appendChild()和insertChild()方法有什么不同?
5.3如何删除XML文档的节点?
5.4考虑下面的XML文件,文件名为5.4.xml。
xmlversion="1.0"?
>
DOCTYPERoot[
ENTITYFirst"DOM">]>
&First;
SAX
建立一个使用DOMAPI的Java程序。
该程序可以解析上面的XML文档,并且得到如下所示的结果。
xmlversion="1.0"?
>
DOM
SAX
5.5用DOM接口生成如下内容并且把它们写到一个新的XML文档中。
xmlversion="1.0"encoding="UTF-8"?
>
第6章可扩展的样式语言
6.1什么是XSL?
它包含哪几部分?
6.2xsl:
value-of和xsl:
for-each元素有什么异同?
6.3如何用XPath选择上下文节点中除第一个以外的所有para子元素?
写出其完整形式。
6.4fo:
simple-page-master页面模板包含哪几个区?
6.5下面是有关个人简历的XML文档,请写出可以将其转换为HTML的XSLT文档,以表格的方式显示为数据。
转换的结果如图所示。
xmlversion="1.0"encoding="UTF-8"?
>
SoftwareDevelopmentEngineer
KirinCo.
ZhangSan
male
25
SoftwareEngineering
BUAA
123456
654321 |
MasterDegree
SoftwareEngineering
SchoolofComputerScienceandEngineering
BUAA
ManagementInformationSystem
SchoolofEconomicsandManagement
BUAA
6.6为例2.8编写一个XSLT样式表,尽量使用本章所介绍的内容。
第7章XQuery查询语言
7.1什么是XQuery?
它与XPath、XSLT有什么关系?
7.2什么是FLWOR表达式?
7.3XQuery中预声明的命名空间限定前缀有哪些?
7.4XQuery更新功能能够对节点执行那些操作?
7.5针对例2.7的XML文档,假设其保存为match.xml,请写出以下代码的运行结果。
xqueryversion"1.0"encoding"utf-8";
declarevariable$xasxs:
string:
="Team";
for$teamat$posindoc("match.xml")/Matches/Match/Team
orderby$posdescending
return(string-join((string($x),string($pos)),"-"),$team)
第8章在XML中使用链接
8.1XML中的链接分为哪个两部分?
它们有什么区别?
8.2在设计XLink时应该注意哪些问题?
8.3使用简单链接修改下面的XML文档片段,使其Title元素包含指向link元素内容的链接。
德国胜阿根廷夺第4冠格策替补加时绝杀北京时间7月14日3时(巴西时间12日16时),第20届世界杯决赛在里约热内卢马拉卡纳球场打响,德国加时1比0绝杀阿根廷,24年来首度夺冠,第4次夺冠追平意大利,成为首支在南美登顶的欧洲球队。
上半时,伊瓜因单刀射偏,此后他打进一球,但越位在先。
德国中卫赫韦德斯头球中柱。
加时赛,德国替补格策上演绝杀。
体育
2014-07-14
8.4在上一题所给的XML文档片段的基础上进行修改,用包含本地资源和远程资源的扩展链接代替Title元素和link元素。
(链接元素的名称可以自定)
8.5XPointer提供了哪些定位轴?
第9章XMLWebServices
9.1什么是WebServices?
它包括了哪些协议?
9.2简述WebService的体系结构。
9.3什么是WSDL?
9.4什么是SOAP?
9.5什么是UDDI?
第1章XML概述
1.1答案:
SGML代表StandardGeneralizedMarkupLanguage,即标准通用标记语言。
XML代表eXtensibleMarkupLanguage,即可扩展标记语言。
XML是标准通用标记语言的子集。
1.2答案:
XML的特性为:
XML的核心是数据,它的数据具有自我描述性,并且支持Unicode字符集。
XML的优点为:
XML可以实现异构数据之间的数据转换,具有良好的保值性,并且遵循严格的语法要求。
1.3答案:
首先通过编辑器或应用程序创建一个XML文档,然后通过语法分析和处理程序对文档进行检测并且转化为元素的树状结构,最后传送给用户端应用程序进行处理。
1.4答案:
XML的设计目标包括:
(1)XML应该可以直接应用于Internet。
(2)XML应该支持各种应用程序。
(3)XML应该与SGML兼容。
(4)编写处理XML文档的应用程序应该很轻松。
(5)XML中可选特性的数目应该尽可能少,最理想的情况是零个。
(6)XML文档应该便于人阅读而且相当清晰。
(7)XML设计标准应当能够很快形成。
(8)XML的设计应该正式而且简洁。
(9)XML文档应该易于创建。
(10)XML标记的简洁性是最不重要的。
1.5答案略。
第2章XML语法
2.1答案:
XML声明包括版本信息、编码信息和文档独立性信息。
其中版本信息是必不可少的,编码信息和文档独立性信息都是可选的。
2.2答案:
XML的属性名称区分大小写,属性值必须用双引号或单引号括起。
HTML的属性名称不区分大小写,属性值不必用引号括起。
2.3答案:
XML预定义了5个实体引用,如下表所示:
实体引用
对应字符
&
&
<
<
>
>
"
"
'
'
2.4答案:
正确的XML文档如下(注释内容为错误说明):
xmlversion="1.0"?
>
--声明处的xml不能为大写-->
Germany
JoachimLoew
--Notsureaboutassistant-->
--在注释中不能包含双横线-->
ManuelNeuer--用“”+元素名称+“>”表示结束标记-->
PhilippLahm
ThomasMuller
MiroslavKlose
--结束标记必须和开始标记保持一致-->
第3章文档类型定义
3.1答案:
DTD代表DocumentTypeDefinition,即文档类型定义,它定义了某种文档类型的规则。
对于XML来说,它可以控制元素、属性、实体等的格式,也可以规定哪些可以在文档中出现而哪些不可以。
3.2答案:
DTD的声明包括内部声明(即在XML文档的内部声明DTD)和外部声明(即在XML文档中引用已经编写好的独立的DTD文件),也可以两种方式同时使用。
3.3答案:
元素的内容可以分为可解析的文本(#PCDATA)、空元素、子元素、任意内容以及混合型内容等。
3.4答案:
属性的默认设置可以包含4种方式,除了设定默认值之外,还包括对属性取值的要求,这些要求可以分为3类:
#REQUIRED、#IMPLIED、#FIXED。
其中#REQUIRED表示该属性在元素中必不可少,#IMPLIED表示该属性在包含它的元素中可以出现,也可以不出现,#FIXED表示该属性的取值保持不变,而且必须指定该属性的默认取值,如果在包含它的元素的实例中没有出现该属性,元素就自动将该默认值作为属性值。
3.5答案略。
3.6答案:
xmlversion="1.0"encoding="UTF-8"?
>
ELEMENTLibrary(Book+,Member+)>
ELEMENTBook(Title,Author,Price,Publisher,Cost)>
ELEMENTMember(Name,Address)>
ATTLISTBookBookIdCDATA"">
ELEMENTName(FirstName,MiddleName,LastName)>
ELEMENTAddress(HouseNumber,Street,City)>
ELEMENTTitle(#PCDATA)>
ELEMENTAuthor(#PCDATA)>
ELEMENTPrice(#PCDATA)>
ELEMENTPublisher(#PCDATA)>
ELEMENTCost(#PCDATA)>
ELEMENTFirstName(#PCDATA)>
ELEMENTMiddleName(#PCDATA)>
ELEMENTLastName(#PCDATA)>
ELEMENTHouseNumber(#PCDATA)>
ELEMENTStreet(#PCDATA)>
ELEMENTCity(#PCDATA)>
第4章命名空间和XMLSchema
4.1答案:
在使用xmlns属性定义命名空间时,使用前缀可以在多个来源中混合使用不同命名空间中的名称。
4.2答案:
默认命名空间声明是一个属性声明,该属性声明的名称是xmlns。
其值是作为命名空间名称的命名空间URI。
默认命名空间声明指定其作用域中所有不带前缀的元素名称都来自声明的命名空间。
4.3答案:
与DTD相比,XMLSchema具有以下优势:
1)XMLSchema本身是XML文档。
它继承了XML的自描述性和可扩展性。
许多XML编辑工具、API开发包、XML语法分析器可以直接的应用到XMLSchema,而不需要修改。
用户也可以很方便的理解XMLSchema的内容,而不像DTD那样需要学习一种新的语法规则。
同时,由于XML本身严格的语法要求,使得XMLSchema也有着同样的合法性验证机制。
2)XMLSchema支持更丰富的数据类型。
DTD提供的数据类型只有CDATA、NMTOKEN、NMTOKENS等。
而XMLSchema内置了多种数据类型,如string、long、int、double等常用的数据类型,还支持用户自定义类型。
3)XMLSchema可以引入命名空间,这更增强了XMLSchema的通用性。
4)XMLSchema的应用范围比DTD要广。
总之,XMLSchema比DTD更具有表现力,能够更好地满足不同领域的应用需求。
4.4答案:
XMLSchema提供了两种方式实现数据类型的定义:
一种是简单类型(simpleType),即在XMLSchema内置的数据类型基础上,或其它由XMLSchema内置的数据类型继承或定义所得到的简单类型基础上,定义新的数据类型。
另一种是复杂类型(complexType),该方法提供了一种功能强大的复杂数据类型定义机制,可以实现包括结构描述在内的复杂的数据类型。
4.5答案:
xmlversion="1.0"encoding="UTF-8"?
>
schemaxmlns:
xsd="http:
//www.w3.org/2001/XMLSchema"
targetNamespace="xmlns="
elementFormDefault="qualified">
elementname="网上书城">
complexType>
sequence>
elementname="图书集合"type="图书集合类型"/>
sequence>
complexType>
element>
complexTypename="书类型">
sequence>
elementname="ISBN"type="xsd:
string"/>
elementname="名称"type="xsd:
string"/>
elementname="作者"type="xsd:
string"/>
elementname="页数"type="xsd:
short"/>
sequence>
complexType>
complexTypename="图书类别类型">
sequence>
elementname="名称"type="xsd:
string"/>
elementname="描述"type="xsd:
string"/>
elementname="书"type="书类型"maxOccurs="unbounded"/>
sequence>
attributename="uid"use="required">
simpleType>
restrictionbase="xsd:
string">
enumerationvalue="ESSAY"/>
enumerationvalue="TECH"/>
restriction>
simpleType>
attribute>
complexType>
complexTypename="图书集合类型">
sequence>
elementname="图书类别"type="图书类别类型"maxOccurs="unbounded"/>
sequence>
complexType>
schema>
第5章文档对象模型
5.1答案:
DOM代表DocumentObjectModel,即文档对象模型,它是一组独立于语言和平台的应用程序编程接口,它能够描述如何访问和操纵存储在结构化XML和HTML文档中的信息。
DOM为树状结构,元素、属性、注释、文本内容等都是DOM树状结构的节点。
DOM的工作方式是:
首先将XML文档一次性的装入内存,然后对文档进行解析,根据文档中定义的元素、属性、注释、处理指令等不同的内容进行分解,以“节点树”的形式在内存中创建XML文件的表示,即文档对象模型。
文档中每个节点对应着模型中一个对象。
然后根据对象提供的编程接口,在应用程序中来访问XML文档进而操作XML文档。
5.2答案:
Node接口的appendChild()方法是在该节点的所有子节点之后追加一个子节点,而insertChild()方法是在该节点的所有子节点前插入一个子节点。
5.3答案:
删除节点可以使用Node接口的removeChild()方法。
它将删除该节点的指定子节点,指定子节点的所有子节点也将从文档中删除。
该方法实际上并没有从内存中删除(Delete)指定节点,而只是移除(Remove)。
5.4答案:
解析该XML文件的Java代码如下,命名为ParseSimpleXml.java