XML标准文件结构

前端之家收集整理的这篇文章主要介绍了XML标准文件结构前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一个XML文件通常包含文件头和文件体两大部分@H_502_3@

1.文件头@H_502_3@

XML文件头由XML声明与DTD文件类型声明组成。其中DTD文件类型声明是可以缺少的,关于DTD声明将在后续的内容中介绍,而XML声明是必须要有的,以使文件符合XML的标准规格。@H_502_3@

在前面的Flowers.xml文件中的第一行代码即为XML声明:@H_502_3@

<?xml version="1.0" encoding="gb2312"?>@H_502_3@

其中:@H_502_3@

“<?”代表一条指令的开始,“?>”代表一条指令的结束;@H_502_3@

“xml”代表此文件是XML文件;@H_502_3@

“version="1.0"”代表此文件用的是XML1.0标准;@H_502_3@

“encoding="gb2312"”代表此文件所用的字符集,默认值为Unicode,如果该文件中要用到中文,就必须将此值设定为gb2312。@H_502_3@

@H_502_3@

注意:XML声明必须出现在文档的第一行。@H_502_3@

2.文件体@H_502_3@

文件体中包含的是XML文件内容,XML元素是XML文件内容的基本单元。从语法讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。@H_502_3@

XML元素与HTML元素的格式基本相同,其格式如下:@H_502_3@

<标记名称属性名1="属性值1"属性名1="属性值1"……>内容</标记名称>@H_502_3@

所有的数据内容都必须在某个标记的开始和结束标记内,而每个标记又必须包含在另一个标记的开始与结束标记内,形成嵌套式的分布,只有最外层的标记不必被其他的标记所包含。最外层的是根元素(Root),又称文件(Document)元素,所有的元素都包含在根元素内。@H_502_3@

在前面的Flowers.xml文件中,根元素就是<Flowers>,根元素必须而且只能有一个,在该文件有三个<Flower>子元素,这样的元素可以有多个。@H_502_3@

4.1.2XML的基本语法

1.注释@H_502_3@

XML的注释与HTML的注释相同,以“<!--”开始,以“-->”结束。@H_502_3@

2.区分大小写@H_502_3@

在HTML中是不区分大小写的,而XML区分大小写,包括标记属性,指令等。@H_502_3@

3.标记@H_502_3@

XML标记与HTML标记相同,“<”表示一个标记的开始,“>”表示一个标记的结束。XML中只要有起始标记,就必须有结束标记,而且在使用嵌套结构时,标记之间不能交叉。@H_502_3@

在XML中不含任何内容标记叫做空标记,格式为:<标记名称/>@H_502_3@

4.属性@H_502_3@

XML属性的使用与HTML属性基本相同,但需要注意的是属性值要加双引号。@H_502_3@

5.实体引用@H_502_3@

实体引用是指分析文档时会被字符数据取代的元素,实体引用用于XML文档中的特殊字符,否则这些字符会被解释为元素的组成部分。例如,如果要显示“<”,需要使用实体引用“&lt;”否则会被解释为一个标记的起始。@H_502_3@

XML中有5个预定义的实体引用,如表4.1所示。@H_502_3@

表4.1XML预定义的实体引用@H_502_3@

&lt;@H_502_3@

<@H_502_3@

&gt;@H_502_3@

>@H_502_3@

&quot;@H_502_3@

"@H_502_3@

&apos;@H_502_3@

'@H_502_3@

&amp;@H_502_3@

&@H_502_3@

6.CDATA@H_502_3@

在XML中由一个特殊的标记CDATA,在CDATA中所有文本都不会被XML处理器解释,直接显示在浏览器中,使用方法如下:@H_502_3@

<![CDATA[@H_502_3@

这里的内容可以直接显示。@H_502_3@

]]>@H_502_3@

7.处理指令@H_502_3@

处理指令使用来给处理XML文件的应用程序提供信息的,处理指令的格式如下:@H_502_3@

<?处理指令名称处理指令信息?>@H_502_3@

例如,XML声明就是一条处理指令:@H_502_3@

其中,“xml”是处理指令名称,version="1.0" encoding="gb2312"是处理指令信息。@H_502_3@

4.2XML与CSS

利用CSS可以用来设定XML文件显示方式,即在XML文件的头部,XML声明的下面加入下面一条语句:@H_502_3@

<?xml:stylesheet type="text/css" href="css文件的URL"?>@H_502_3@

下面我们通过例子来介绍如何利用CSS来显示XML文件。首先建立一个css文件代码如下:@H_502_3@

flowers.css:一个显示XML文件的CSS样式@H_502_3@

flower{font-size:24px; display:block}@H_502_3@

vendor{font-size:36px;color:red}@H_502_3@

price{display:block}@H_502_3@

然后,在flowers.xml文件中使用这个css样式,即在flowers.xml文件中的XML声明下面加入以下语句:@H_502_3@

<?xml:stylesheet type="text/css" href="flowers.css"?>@H_502_3@

完整的程序代码如下:@H_502_3@

ex4_3_01.xml:利用CSS显示XML文件@H_502_3@

<?xml:stylesheet type="text/css" href="Flowers.css"?>@H_502_3@

<Flowers>@H_502_3@

<Flower>@H_502_3@

<Vendor>shop1</Vendor>@H_502_3@

<Name>iris</Name>@H_502_3@

<Price>$4.00</Price>@H_502_3@

</Flower>@H_502_3@

<Vendor>shop2</Vendor>@H_502_3@

<Price>$4.30</Price>@H_502_3@

<Vendor>shop3</Vendor>@H_502_3@

<Price>$3.50</Price>@H_502_3@

</Flowers>@H_502_3@

此例在浏览器中的显示效果如图4.2所示。@H_502_3@

@H_502_3@

利用CSS显示XML文件@H_502_3@

用CSS来显示XML文件时,不具备任何选择性,也就是说,根元素之下的所有数据都会被全部显示,不能改变原文件的结构和内容的顺序。另外,CSS并不支持中文标记,因为CSS不是专门为XML开发的样式语言,而下面要介绍到的XSL就可以,XSL是特别为XML设计的,它比CSS更为复杂。@H_502_3@

4.3XSL

在上一节介绍的用CSS显示XML文件效果不是很理想,实际上,CSS主要是适合HTML文件,对于XML这种数据文件,CSS就不适合了,尤其是对那些需要按照不同的条件将文件内容重新排列显示的情况,而用XSL就可以。@H_502_3@

XSL是当前最强大和灵活的样式语言,是特别为应用XML而设计的,它比CSS要复杂的多。但是,目前它还未被很好的支持,也还没有最后完成。@H_502_3@

利用XSL来设定XML文件显示方式,即在XML文件的头部,XML声明的下面加入下面一条语句:@H_502_3@

<?xml:stylesheet type="text/xsl" href="xsl文件的URL"?>@H_502_3@

下面我们通过例子来介绍如何利用XSL来显示XML文件。首先建立一个xsl文件代码如下:@H_502_3@

flowers.xsl:用来显示XML文件的xsl文件@H_502_3@

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">@H_502_3@

<xsl:template match = "/">@H_502_3@

<table border="1">@H_502_3@

<tr align="center">@H_502_3@

<th width="100">Vendor</th>@H_502_3@

<th width="100">Flower</th>@H_502_3@

<th width="100">Price</th>@H_502_3@

</tr>@H_502_3@

<xsl:for-each select="//Flowers/Flower">@H_502_3@

<td><xsl:value-of select="Vendor"/></td>@H_502_3@

<td><xsl:value-of select="Name"/></td>@H_502_3@

<td><xsl:value-of select="Price"/></td>@H_502_3@

</xsl:for-each>@H_502_3@

</table>@H_502_3@

</xsl:template>@H_502_3@

</xsl:stylesheet>@H_502_3@

我们可以看出:一个XSL文件就如一个空的HTML文件,通过填充一个XML文件产生一个传统的HTML文件。@H_502_3@

一个XSL文件首先必须有一个XML声明(即第一行),因为XSL实际上是一种特殊的XML文件。XSL的根元素是xsl:stylesheet,即一个XSL文件必须以<xsl:stylesheet>标记开始,以</xsl:stylesheet>标记结束,xmlns:xsl属性用于设定XSL的命名域。@H_502_3@

XSL的根元素通常是由一个或多个样板元素所组成,在此例中只包含单一样板,它是由<xsl:template>标记开始,以<xsl:template>标记结束,使用match属性可以在XML文件中选取符合条件的节点,即设定样板名称,对于最上层样板,match设为“/”,代表整个XML文件的根元素。@H_502_3@

然后是从XML文件中取得所需的数据,取得数据最简单的方法是:@H_502_3@

<xsl:value-of select="模式"/>@H_502_3@

如果要取得多个元素,则要使用xsl:for-each元素,格式如下:@H_502_3@

<xsl:for-each select="模式">@H_502_3@

…..@H_502_3@

接下来,我们要在flowers.xml文件中使用这个xsl文件,即在flowers.xml文件中的XML声明下面加入以下语句:@H_502_3@

<?xml:stylesheet type="text/xsl" href="flowers.xsl"?>@H_502_3@

ex4_4_01.xml:利用XSL显示XML文件@H_502_3@

</Flowers>@H_502_3@

猜你在找的XML相关文章