`
txf2004
  • 浏览: 7028266 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

XML作为一种通用的数据交换格式,应用越来越广泛。目前许多系统的配置文件都使用XML格式,本书中所涉及到的众多配置文件都是XML格式的,新的JSP规范也推出了采用XML语法的JSP文档,因此,要深入学习和掌握Java Web开发技术,必须有一些基本的XML语言知识。由于XML的通用性和广泛应用,在读者以后实际项目开发和应用中,很多地方都要用到XML方面的知识,所以,对XML知识的了解和掌握,已经是从事电子商务网站和相关系统开发的编程人员所必须掌握的基本知识。

F指点迷津:什么是配置文件

配置文件就是记录应用程序的配置信息的文件。例如,某个程序要连接网络上的数据库系统时,需要指定数据库服务器的ip地址、服务器的网络监听端口号、数据库的名称、用户名和密码等信息,这些信息可以作为应用程序的配置信息来对待,即不要将这些信息写死在源程序中,而是写在一个文本文件中。应用程序要连接数据库系统时,从该文本文件中读取所需要的信息,如果连接的数据库系统的信息发生了改变,则只需要修改该文本文件,而不用修改源程序,这个文本文件就是应用程序的配置文件。传统的配置文件通常采用如下格式:

#Db.Properties

DBServer=192.168.0.100

Port=1443

Database=emp

Username=zxx

Password=123

上面这种格式的配置文件只能表述一些简单的信息,而很难表达具有层次结构和数据项目要动态增加的信息。例如,如果要在一个文件中表达出“一个国家中的每个省及省长的名称、每个省下面的每个市及市长的名称、每个市下面的每个镇及镇长名称”,使用上面的格式就很难表达。采用XML格式的配置文件很容易表达出这种层次结构,具体细节请参看本章后面部分的讲解。

文档声明

在一个完整的XML文档中必须包含一个XML文档声明,该声明必须位于文档的第一行。这个声明表示该文档是一个XML文档,以及遵循的是哪个XML版本的规范。最简单的XML文档声明语法如下:

<?xml version="1.0" ?>

在“<”和“?”之间、“?”和“>”之间以及第一个“?”和xml之间不能有空格,这就是XML语法严格性的一个体现。在第二个“?”之前可以没有、也可以有一个或多个空格。声明语句中的version属性表示XML的版本,因为解析器对不同的版本的解析肯定会有区别,尽管目前只有1.0版本,但在声明中必须指定version属性。

由于人们可以采用不同的字符编码集来书写一个字符内容完全相同的XML文档,所以,XML软件工具(包括分析器)就需要知道该XML文档所使用的字符编码方式。这可以通过在XML文档声明中指定encoding属性来说明,例如,使用下面的语句来指明文档中的字符编码方式为GB2312编码。

<?xml version="1.0" encoding="GB2312" ?>

W3CXML1.0规范里规定,所有的XML解析器必须接受UTF-8UTF-16编码的Unicode字符,所以,符合 XML 规范的软件工具一定都支持这两种Unicode编码。如果XML声明中没有设置encoding属性来明确指定文档所用的字符编码方式,则一律以Unicode编码看待。XML解析器通过寻找XML文档开始处的字节顺序标记,能够自动检测出文档中的Unicode编码是UTF8,还是UTF16。也就是说,encoding属性默认的设置是Unicode编码,如果文档中的字符是以UTF-8或者是UTF-16作为编码,则可以不设置这个属性。

XML文档声明语句中,还可以指定另外一个可选属性:standalone,例如:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

standalone属性用于说明文档是否是独立的,如果将其设置为“yes”,则表示该文档没有依赖外面的任何文件而可以独立存在,即不需要DTD文件来验证其中的标识是否有效,也不需要XSLCSS文件来控制其显示外观;将standalone属性设置为“no”时,则表示该文档依赖于外面的某个文件,例如,依赖于某个DTD文件或XSLCSS文件。standalone属性的默认值为“yes”。

注意:如果同时设置了encodingstandalone属性,standalone属性要位于encoding属性之后。

:动手体验:加深对encoding属性的理解

对于含有中文字符的XML,其中的字符可以采用unicode来编码或GB2312(简体中文字符编码)编码来表示,如果文档中的字符使用的是GB2312编码,则必需设置为encoding属性为GB2312,下面通过一个实验来说明这个问题。

1)用Windows自带的记事本程序创建一个名为book.xml的文件,文件内容如例程1-1所示。

例程1-1 book.xml

<wrap side="left"><font face="Times New Roman" size="3"></font></wrap>


<?xml version="1.0" ?>

<书架>

<>

<书名>Java就业培训教程</书名>

<作者>张孝祥</作者>

<售价>39.00</售价>

</>

<>

<书名>JavaScript网页开发</书名>

<作者>张孝祥</作者>

<售价>28.00</售价>

</>

</书架>

<wrap side="left"><font size="3"></font></wrap>


2)用IE5.0以上的浏览器打开book.xml文件,看到的结果如图1.2所示。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 351pt; HEIGHT: 237pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cgaocao%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.png"></imagedata></shape>

错误提示的信息是“文本内容中发现无效字符”,这就是因为在book.xmlXML文档声明语句中没有明确指定文档中的字符编码方式,浏览器就会用默认的Unicode编码来解析该文档,而该文档中的字符实际上使用的是GB2312编码,而非Unicode编码。

3)单击浏览器的“查看”à“源文件”菜单,将打开的book.xml文件内容中的第一行修改成如下形式:

<?xml version="1.0" encoding="GB2312" ?>

保存修改后,刷新显示book.xml文件的浏览器窗口,看到的结果如图1.3所示。单击某个标签前面的减号(-),嵌套在该标签中的所有内容将被折叠起来,标签前面的减号(-)也将变成加号(+)。单击某个标签前面的加号(+),嵌套在该标签中的所有内容将被展开,标签前面的加号(+)也将变成减号(-)。

<shape id="_x0000_i1026" style="WIDTH: 351pt; HEIGHT: 237pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cgaocao%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image004.png"><font size="3"></font></imagedata></shape>

4)在上面打开book.xml文件的记事本程序中,单击“文件”à“另存为”菜单,在打开的“另存为”对话框中,选择“保存类型”为“所有文件”,编码为“UTF-8”,如图1.4所示。

<shape id="_x0000_i1027" style="WIDTH: 423.75pt; HEIGHT: 312.75pt" type="#_x0000_t75"><imagedata o:title="⺀⺈X" src="file:///C:%5CDOCUME~1%5Cgaocao%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image006.png"></imagedata></shape>

UTF-8编码保存book.xml文件后,尽管在记事本程序窗口中显示的效果没有任何变化,但是book.xml文件内部存储的数据已经改变,这通过比较book.xml保存前后的文件大小就可以看出来。刷新显示book.xml文件的浏览器窗口,看到的结果如图1.5所示。

<shape id="_x0000_i1028" style="WIDTH: 351pt; HEIGHT: 237pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5Cgaocao%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image008.png"></imagedata></shape>

因为现在的book.xml文件的字符编码已经转换为UTF-8,而文档的起始声明中指定encoding属性为GB2312,所以,浏览器在解析book.xml文件时会发生错误。

5)将book.xml文档起始声明的encoding属性修改为UTF-8,保存后刷新显示book.xml文件的浏览器窗口,就又可以看到类似图1.3所示的正常显示效果了。
分享到:
评论

相关推荐

    XML基础教程与实验指导

    学习XML基础教程与实验指导,应掌握以上基本概念,并通过实践操作加深理解。PPT.rar 文件可能包含了关于这些主题的演示文稿,可以帮助深入学习和讲解XML的相关知识。通过实际编写和解析XML文档,以及使用XPath进行...

    XML基础及实践开发教程(唐琳-主编)习题答案.doc

    XML 基础及实践开发教程习题答案 XML 基础及实践开发教程是学习 XML 的基础知识和实践开发的课程,本文档提供了习题答案,涵盖了 XML 的基础知识、DTD 声明、PI 声明、元素、注释、元素分类、DTD 的分类、属性类型...

    Xml基础教程 高怡新 ppt 源码

    在本教程中,"Xml基础教程 高怡新 ppt 源码",我们将深入探讨XML的基本概念、语法以及它在IT领域的应用。 首先,XML的全称“可扩展标记语言”意味着它允许用户自定义标签,这与HTML(超文本标记语言)不同,HTML...

    xml基础.pdf

    ### XML基础知识详解 #### 一、XML概述 **XML**(可扩展标记语言,Extensible Markup Language)是一种标记语言,其设计目的是为了传输和存储数据。与HTML相比,XML更侧重于数据的描述而非展示。XML的核心优势在于...

    xml基础教程(ppt)

    通过这个“xml基础教程”PPT,你将能够学习到XML的基础语法、数据组织方式以及如何利用相关技术处理XML文档。实践是检验真理的唯一标准,建议结合提供的源码进行实际操作,以巩固理论知识。同时,持续学习和理解XML...

    xml基础教程ppt

    在本“XML基础教程PPT”中,我们将深入探讨XML的基本概念、语法以及它在IT领域的广泛应用。 首先,让我们了解XML的起源。XML是从HTML发展而来的,但与HTML的主要区别在于XML不包含任何预定义的标签。在XML中,你...

    XML基础教程电子书(XML学习)

    XML,全称为eXtensible Markup Language,可扩展标记语言,是互联网上数据交换与存储的重要..."XML基础教程"电子书将涵盖这些内容,帮助初学者掌握XML的使用,从而能够有效地在各种项目中利用XML进行数据管理和交换。

    XML基础教程(自己整理的)

    通过学习这个XML基础教程,你可以掌握XML的基本概念、结构和使用方法,为更深入的XML应用,如Web服务、数据交换和配置文件等奠定基础。实际操作中的例子能帮助你更好地理解和运用这些知识。记得实践是检验真理的唯一...

    学习XML基础的课件

    在本套“学习XML基础的课件”中,你将深入理解XML的核心概念及其在不同领域的应用。 首先,让我们从基础开始。`ch01_1.doc`可能涵盖XML的基本介绍,包括XML的起源、它与HTML的区别,以及XML文档的基本结构。XML文档...

    xml基础教程|源码

    在这个“XML基础教程|源码”中,我们将深入探讨XML的基本概念、语法以及如何通过源码来学习和操作XML。 1. XML基本概念: - **定义**:XML是一种自描述性的标记语言,允许用户自定义标签来描述数据。 - **结构**...

    XML基础教程源码-code

    在提供的"范春梅-XML基础教程源码-code"中,你可以找到关于XML处理的实例代码,可能包括创建、解析、修改XML文档等操作。通过这些源码,你可以更好地理解XML在实际开发中的应用。 总之,XML作为一种数据交换和存储...

    Xml基础教程 高怡新版 源代码 ppt(传错了 勿下载)

    高怡新版的XML基础教程是针对初学者设计的,旨在帮助读者快速掌握XML的基本概念、语法和应用。 XML的基础部分包括以下几个方面: 1. **XML概述**:XML的设计目标是为了传输和存储数据,而不是为了显示数据。与HTML...

    xml基础教程(xml入门绝佳实例)

    **第一章 XML基础** XML的设计目标是传输和存储数据,而不是显示数据。它强调的是结构和语义,而不是外观。XML文档由元素、属性、实体、注释等构成。元素是XML文档的基本构建块,它们以尖括号包围,如`&lt;element&gt;`。...

    XML基础教程-电子教案

    在本“XML基础教程”中,我们将深入探讨XML的基本概念、语法、验证以及它在网络应用中的作用。 首先,让我们从“第1章 XML概述.ppt”开始。这一章将介绍XML的基本理念,包括为什么需要XML,它与HTML的区别,以及XML...

    xml基础教程PPT

    学习XML基础教程PPT,你将掌握XML的基本语法和应用,了解如何利用XML增强PPT的功能,以及如何进行数据的导入和导出。通过实践和源代码的学习,你能够更好地理解XML在实际项目中的作用,并能灵活地应用于各种场景。

    高职高专《XML基础》课件

    在高职高专的计算机应用、网络和数据库等专业中,XML基础课程是重要的知识模块,因为它在数据交换、数据存储、配置文件、Web服务等领域有着广泛的应用。 XML的主要特点包括: 1. **可扩展性**:XML的设计允许用户...

    XML基础教程第2版教学课件

    耿祥义教授编写的《XML基础教程》第二版,旨在深入浅出地介绍XML的基本概念、语法规范及其应用技术。下面将根据提供的压缩包文件名,详细阐述各个章节的知识点。 第一章:XML简介 这一章会介绍XML的起源,作为HTML...

    XML基础及实践开发教程(唐琳-主编)习题答案

    在本教程“XML基础及实践开发教程”中,唐琳主编结合丰富的教学经验,为学习者提供了深入浅出的XML理论知识与实践操作指导。以下是该教程可能涵盖的关键知识点: 1. **XML基本概念**:XML起源于HTML,但更注重结构...

    xml基础知识文档

    xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。

Global site tag (gtag.js) - Google Analytics