app教程网 综合百科 xml的结构(xml基本语法结构)

xml的结构(xml基本语法结构)

让我们暂时使用记事本来创建我们的XML文件。首先看一个XML文件:

例1

〈?xml版本='1/uploadfile/2023/1102/0 '编码='gb2312 ' XML简介 张三 20/uploadfile/2023/1102/00 XML语法!-本书即将出版-> <作者>李斯 <价格货币单位=' RMB ' > 18/uploadfile/2023/1102/00

这是一个典型的XML文件。编辑后,它将保存为一个带有。xml作为后缀。我们可以把这个文件分成两部分:序言和正文。本文档的第一行是文档的前言。

这一行是XML文件必须声明的内容,并且必须位于XML文件的第一行。它主要告诉XML解析器如何工作。其中version是表示该XML文件中使用的标准的版本号,

必须有;编码表示这个XML文件中使用的字符类型,可以省略。省略此语句时,后面的字符代码必须是Unicode字符代码(建议不要省略)。因为我们在这个例子中使用了GB2312字符代码,

因此,不能省略编码的语句。在文件的序言中有一些陈述,我们将在后面介绍。

文件的其余部分属于文件体,XML文件的内容信息存储在这里。我们可以看到文档的主体由开始引用和结束引用控制标记组成。

这被称为XML文件的“根元素”;Book是直接位于根元素下的“子元素”;在Books下,有名字、作者、价格等子元素。货币单位是价格元素中的一个属性,人民币是一个属性值。

〈!-这本书即将出版->和HTML一样,这句话是评论。在XML文件中,注释部分放在“<!-"和"-> "标记。

如您所见,XML文件非常简单。像HTML一样,XML文件由一系列标签组成。但是,XML文件中的标签是我们自己定制的标签,有明确的含义。我们可以解释标签中内容的含义。

对XML文件有了初步的印象之后,我们再来详细说说XML文件的语法。在讲语法之前,我们必须了解一个重要的概念,那就是XML解析。

1/uploadfile/2023/1102/XML解析器

解析器的主要功能是检查XML文件中是否存在结构错误,剥离XML文件中的标签,读取正确的内容供下一个应用程序处理。XML是一种用于结构化文件信息的标记语言。

XML规范中有一个关于如何标记文件结构的详细规则,解析器就是根据这些规则编写的软件(大多用Java编写)。就像HTML一样,浏览器中必须有HTML解析器。

只有这样,浏览器才能“读懂”各种由HTML标签组成的网页,并展现在我们面前。如果有一个标签是浏览器的HTML解析器无法读取的,它会返回一个错误信息给我们。

因为现在的HTML标签其实相当混乱,有大量的非标准标签(有些网页用IE可以正常显示,用网景导航器就不行),所以从一开始,XML设计者就严格规定了XML的语法和结构。

我们写的XML文件必须遵循这些规则,否则XML解析器会毫不留情的给你看错误信息。

有两种类型的XML文件,一种是格式良好的XML文件,另一种是验证XML文件。

如果一个XML文件满足XML规范中的一些相关规则,并且不使用DTD(详见文件格式定义——后),则可以称之为结构良好。如果XML文件是格式良好的,

并且正确使用了DTD,DTD中的语法也是正确的,那么这个文件就是有效的。有两种XML解析器对应于两种XML文件,一种是格式良好的解析器,另一种是验证解析器。

IE 5包含一个验证解析器,它也可以用来解析格式良好的XML文件。

检查它是否满足格式良好的条件。我们可以用IE 5以上的浏览器打开刚编辑的第一个XML文件。

你可能会问为什么浏览器里的显示和我的源文件一样。没错,因为对于XML文档来说,我们就是内容,它的展现形式交给了CSS或者XSL。这里,

我们没有为这个XML文件定义它的CSS或XSL文件,所以它以原始形式显示。事实上,对于电子数据交换,只需要一个XML文件。如果要以某种形式显示,

我们必须编辑CSS或XSL文件(这个问题将在后面讨论)。

2/uploadfile/2023/1102/ Well-formed extensible markup language files/uploadfile/2023/1102/

我们知道XML必须是格式良好的,这样它才能被解析器正确解析并显示在浏览器中。那么什么是格式良好的XML文件呢?主要有以下指导原则。当我们创建一个XML文件时,

他们必须满意。

首先,XML文件的第一行必须声明该文件是一个XML文件以及它使用的XML规范版本。文件前面不能有其他元素或注释。

其次,XML文件中只能有一个根元素。在我们的第一个例子中,“资源”/uploadfile/2023/1102/是这个XML文档的根元素。

第三,XML文件中的标签必须正确关闭,即在XML文件中,控制标签必须有相应的关闭标签。例如,标记必须有相应的结束标记,与HTML不同,某些标记的结束标记是可选的。

如果您在XML文件中遇到一个单独的标记,类似于在HTML中,当没有结束标签时,XML称之为“空元素”,必须这样写: <空元素名称/>,

如果一个元素包含一个属性,那么书写规则是: <空元素名称属性名称="属性值"/>。

第四,标记不能交叉。在前面的HTML文件中,您可以编写:

例如:H>XXXXXXX/H >,B >和H

标签之间有重叠的区域,但是在XML中,严格禁止以这种交错的方式写标签,标签必须以规则的顺序出现。

第五,属性值必须用""括起来。如第一个例子中的“1/uploadfile/2023/1102/0”、“gb2312”、“人民币”。它们都用""括起来,所以不能省略。

第六,控制标记、指令、属性名等英文要区分大小写。与HTML不同的是,在HTML中,像“b”和“b”这样的标签有着相同的含义,而在XML中,

像<名称>、<名称>或<名称>这样的标签是不同的。

第七,我们知道,在一个HTML文件中,如果我们希望浏览器原封不动地显示我们输入的内容,我们可以将这些内容放在〈 pre 〉或〈xmp〉或〈xmp〉标记中间。

这对于我们创建HTML教学的网页是必不可少的,因为网页中要显示HTML的源代码。在XML中,要实现这个功能,必须使用CDATA标记。CDATA标记中的信息由解析器原封不动地传递给应用程序,

并且不解析该条信息中的任何控制标签。CDATA区域由:" <![CDATA["是开始标记," > "是结束标记。比如例2中的源代码,除了“<![CDATA["和" > "符号,

其余的内容解析器将原封不动地移交给下游应用程序,即使CDATA区域开头和结尾的空格以及换行符也将被移交(注意,CDATA是一个大写字符)。

例2

〈![CDATA[飞翔的XML,-)oooo

第八,XML和HTML在处理空白字符方面不同。HTML标准规定,不管有多少个空格,都要当作一个空格来处理。但是,在XML中,规定除了标签之外的所有空白都应该由解析器忠实地交给下游应用程序。这样一来,

有时候我们在编写HTML文件的时候必须改掉缩进的习惯,因为缩进的空格必须由解析器来处理。比如:

〈作者〉张三〈/作者〉 和 〈作者〉 张三 〈/作者〉

上述内容对于解析器来说是不同的(后者在〈作者〉〈/作者〉标记之内除了张三这个字符以外,还包括两个换行记号以及“张三”前的文字缩排符号)。所以解析器在去掉标记后将信息传给应用程序将有不同的处理结果。

如果我们想明确地告诉XML程序,标记中的空白有明确的含义,不要随便去掉(如在一些诗中,空格有它具体的意义),则可在标记中加入一个XML内置的属性——xml:space 。

如(注意属性名称和值的大小写):

〈诗歌xml:space='preserver'〉 祖国啊! 祖国! 我的祖国! 〈/诗歌〉

 另外,在XML文件中,如果要用到表1的特殊字符,必须用相应符号代替。

 表1

特殊字符替代符号 it; ' ' ' apos;

在此做个小结:符合上述规定的XML文件就是Well-Formed的XML文件。这是编写XML文件的最基本要求。可以看到XML文件的语法规定比HTML要严格多了。由于有这样的严格规定,

软件工程师编写XML的解析器就容易多了,不像编写HTML语言的解析器,必须费尽心思去适应不同的网页写法,提高自己浏览器的适应能力。实际上,这对于我们初学者来说,也是一件好事。该怎样就怎样,

不必像原来那样去疑惑各种HTML的写法。

我们看到,在XML文件中,用的大多都是自定义的标记。但是大家考虑一下,如果两个同行业的公司A和B要用XML文件相互交换数据,A公司用〈价格〉标记来表示他们产品的价格信息,

而B公司可能用〈售价〉来表示价格信息。如果一个XML应用程序来读取他们各自的XML文件中的信息时,如果它只知道〈价格〉标记里表示的是价格信息,那么B

本文来自网络,不代表本站立场,转载请注明出处:https: