XML是一个源置标语言,可以看作是用来产生置标语言的工具,所谓置标语言,就好比html的<br>表示回车一样。
从一开始起,我们就一直在讲XML“文件”如何如何,不过需要指出,使用“文件”这个词可能会造成误导。XML标记语言除了能够放在通常意义的文件中以外,还能够按照数据流、数据库结果集、以及由应用程序动态产生的结果而进行传送。因此,我们所说的XML文件实际上是广义的文件,更准确的叫法应该是一个“数据对象”,但是为了简便起见,我们仍称它为“文件”。
今后我们还会看到xml在数据方面应用的技巧。
XML文件应该是“形式良好的”(well-formed)
下面我们看一段XML
[1] <?xml version="1.0" encoding="GB2312" standalone="no"?>
[2] <?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
[3] <专有名词列表>
[4] <专有名词>
[5] <名词>XML</名词>
[6] <解释>XML是一种可扩展的源置标语言,它可用以规定新的置标规则,并根据这个规则组织数据</解释>
[7] <示例>
[8] <!-- 一个XML的例子 -->
[9] <![CDATA[
[10] <联系人>
[11] <姓名>张三</姓名>
[12] <EMAIL>zhang@aaa.com</EMAIL>
[13] </联系人>
[14] ]]>
[15] </示例>
[16] </专有名词>
[17]</专有名词列表>
一个XML文件最基本的构成是
XML声明 处理指示(可选) XML元素 |
在本例中,[1] 是一个XML声明,[3]——[17] 是文件中的各个元素。
除此以外,上面例子中出现的其它逻辑要素还有:
[1][2] 是处理指示
[8] 是注释
[9]——[14] 是CDATA
在[5]行的“<名词>XML</名词>”中,“<名词>”“</名词>”是标记,“XML”是字符数据。
xml申明
<?xml version = "1.0" standalone = "no" encoding = "GB2312"?> |
下面,就让我们来看看这几个属性的具体含义:
- version属性
刚才我们提到,在一个XML的处理指示中必须包括version属性指明所采用的XML的版本号,而且,它必须在属性列表中排在第一位。由于当前的XML最新版本是1.0,所以我们看到的无一例外的都是:version = "1.0"。 - standalone属性
这个属性表明该XML文件是否和一个独立的置标声明文件配套使用。因此,如果该属性置为“yes”,说明没有另外一个配套的DTD文件来进行置标声明。相反,如果这个属性置为“no”,则有可能有这样一个文件。(注意,也可能没有。) - encoding属性
所有的XML语法分析器都要支持8位和16位的编码标准。不过,XML可能支持一个更庞大的编码集合。在XML规范的4.3.3节中,列出了一大堆编码类型。但一般我们用不到这么多编码,只要知道下面几个常见的编码就可以了:
简体中文码:GB2312
繁体中文码:BIG5
西欧字符: UTF-8
采用哪种编码取决于你文件中用到的字符集。尤其要注意的是,在前面的例子中,我们看到标签是可以用中文来写的,这时你务必要在声明中加上encoding = "GB2312"的属性噢。