XML基础

XML 主页
XML 入门简介
XML 如何使用
XML 语法
XML 元素
XML 属性
XML 确认
XML 浏览器
XML 检视
XML 使用CSS
XML 使用XSL
XML 数据岛
XML 解析器
XML 应用

XML 高级部分
XML 命名空间
XML CDATA
XML 编码
XML 服务器
XML 应用
XML HTTP
XML 行为
XML 技术

实例/测验
XML 例子
XML 测验

资源
XML 书籍
XML 规范



XML 语法


XML的语法规则既简单又严格,非常容易学习和使用。

正因为如此,编写读取和操作XML的软件也是相对容易的事情。


一个XML文档的例子

XML文档使用了自描述的和简单的语法。

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Lin</to>
<from>Ordm</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

文档的第1行:XML声明——定义此文档所遵循的XML标准的版本,在这个例子里是1.0版本的标准,使用的是ISO-8859-1 (Latin-1/West European)字符集。

文档的第2行是根元素(就象是说“这篇文档是一个便条”):

<note>

文档的第3--6行描述了根元素的四个子节点(to, from, heading,和 body):

<to>Lin</to>
<from>Ordm</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>

文档的最后一行是根元素的结束:

</note>

你能从这个文档中看出这是Ordm给Lin留的便条么?难道能不承认XML是一种美丽的自描述语言么?


所有的XML文档必须有一个结束标记

在XML文档中, 忽略结束标记是不符合规定的。

在HTML文档中,一些元素可以是没有结束标记的。下面的代码在HTML中是完全合法的:

<p>This is a paragraph
<p>This is another paragraph

但是在XML文档中必须要有结束标记,象下面的例子一样:

<p>This is a paragraph</p>
<p>This is another paragraph</p> 

注意: 你可能已经注意到了,上面例子中的第一行并没有结束标记。这不是一个错误。因为XML声明并不是XML文档的一部分,他不是XML元素,也就不应该有结束标记。


XML标记都是大小写敏感的

这与HTML不一样, XML标记是大小写敏感的。

在XML中, 标记<Letter>与标记<letter>是两个不同的标记。

因此在XML文档中开始标记和结束标记的大小写必须保持一致。

<Message>This is incorrect</message>   //错误的
<message>This is correct</message>     //正确的


所有的XML元素必须合理包含

在XML中不允许不正确的嵌套包含。

在HTML中,允许有一些不正确的包含,例如下面的代码可以被浏览器解析:

<b><i>This text is bold and italic</b></i>

在XML中所有元素必须正确的嵌套包含,上面的代码应该这样写:

<b><i>This text is bold and italic</i></b>


所有的XML文档必须有一个根元素

XML文档中的第一个元素就是根元素。

所有XML文档都必须包含一个单独的标记来定义,所有其他元素的都必须成对的在根元素中嵌套。XML文档有且只能有一个根元素。

所有的元素都可以有子元素,子元素必须正确的嵌套在父元素中,下面的代码可以形象的说明:

<root>
<child>
<subchild>.....</subchild>
</child>
</root> 


属性值必须使用引号""

在XML中,元素的属性值没有引号引着是不符合规定的。

如同HTML一样,XML元素同样也可以拥有属性。XML元素的属性以名字/值成对的出现。XML语法规范要求XML元素属性值必须用引号引着。请看下面的两个例子,第一个是错误的,第二个是正确的。

<?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/99>
<to>Lin</to>
<from>Ordm</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/99">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

第一个文档的错误之处是属性值没有用引号引着。

正确的写法是: date="12/11/99". 不正确的写法: date=12/11/99.


使用XML,空白将被保留

在XML文档中,空白部分不会被解析器自动删除。

这一点与HTML是不同的。在HTML中,这样的一句话:

"Hello              my name is Ordm"将会被显示成:“Hello my name is Ordm”,

因为HTML解析器会自动把句子中的空白部分去掉。


使用XML, CR / LF 被转换为 LF

使用 XML, 新行总是被标识为 LF(Line Feed,换行)。

你知道打字机是什么么?呵呵,打字机是在上个世纪里使用的一种专门打字的机器。^&^

当你用打字机敲完一行字后,你通常不得不再把打字头移动到纸的左端。

在Windows应用程序中,文本中的新行通常标识为 CR LF (carriage return, line feed,回车,换行)。在Unix应用程序中,新行通常标识为 LF。还有一些应用程序只使用CR来表示一个新行。


XML中的注释

在XML中注释的语法基本上和HTML中的一样。

<!-- 这是一个注释 -->


XML并没有什么特别的哦

XML确实没有什么特别的地方。他只是一些用尖括号扩在一起的普通的纯文本。

编辑普通文本的软件也可以编辑XML文档。

然而在一个支持XML的应用程序中,XML标记往往对应着特殊的操作,有些标记可能是可见的,而有些标记则可能不会显示出来,而不会有什么特殊的操作。