XML是什么?
XML (Extensible Markup Language,可扩展标记语言),它与HTML一样,都是SGML (Standard
Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。
- 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用
HTML和XML比较
HTML | XML | |
---|---|---|
可扩展性 | 不具有扩展性 | 是元标记语言,可用于定义新的标记语言 |
侧重点 | 侧重于如何表现信息 | 侧重于如何结构化地描述信息 |
语法要求 | 不要求标记的嵌套、配对等,不要求标记之间具有一定的顺序 | 严格要求嵌套、配对,并遵循DTD的树状结构 |
可读性及可维护性 | 难于阅读和维护 | 结构清晰,便于阅读和维护 |
数据和显示的关系 | 内容描述与显示方式整合为一体 | 内容描述与显示方式相分离 |
保值性 | 不具有保值性 | 具有保值性 |
编辑及浏览工具 | 已有大量的编辑、浏览工具 | 编辑、浏览工具尚不成熟 |
结构描述 | 不支持深层的结构描述 | 文件结构嵌套可以复杂到任何程度 |
与数据库的关系 | 没有直接联系 | 与关系型和层状数据库均可对应和转换 |
超文本链接 | 单文件、书签链接 | 可以定义双向链接、多目标链接、扩展链接 |
大小写敏感性 | 不区分大小写 | 区分大小写 |
XML语法的基本点
XML要遵循W3C推荐规则规定的XML语法,这些语法的基本点有:
XML文档只能包含一个根元素。XML文档的根元素是包含所有被视为文档本身内容的单个元素。根元素是在文档的序言码部分后出现的第一个元素,它也称为文档元素。
所有XML元素必须包含结束标记。尽管结束标记对于某些HTML文档元素为可选标记,但是XML文档中的所有元素都必须具有结束标记。
元素的开始标记和结束标记的名称必须相同。XML区分大小写,因此结束标记名称必须与其伴随的开始标记名称完全匹配。
XML元素不能重叠。如果一个元素的开始标记出现在另一个元素中,则该元素的结束标记也必须包含在其中。
所有属性值都必须使用引号。属性值必须用单引号或双引号括起来。
在XML文档的文本中不能使用“<”、“>”、“&”3个字符,这些都是对于XML分析程序具有特定含义的特殊字符。如果需要在XML文档的文本中使用这些字符,则应使用预定义的字符或实体引用。
XML文档的结构
XML文档包含7个主要部分:序言码、处理指令、根元素、元素、属性、CDATA节和注释。XML 文档也可以不包含注释,有时也可以没有属性。这里仅对XML文档的各部分做简要说明,第3章将做详细介绍。
1. 序言码
序言码是XML文档的第一部分。序言码包含XML声明(表明该文档是XML文档)、处理指令(提供XML分析程序用于确定如何处理文档的信息)和架构声明(确定用于验证文档是否有效的XML架构)。以下是XML文档中序言码的示例:
<?xml version=”1.0” encoding=”gb2312”?>
2. 处理指令
处理指令是用来给处理XML文档的应用程序提供信息的,XML分析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:
<处理指令名 处理指令信息?>
如:
<?xml-stylesheet type=”text/xsl” href=”book.xsl”?>
3. 根元素
根元素是XML文档的主要部分,它包含文档的数据以及描述数据结构的信息。以下是XML文档中根元素部分的示例。
<books xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
…
</books>
根元素中的信息存储在两种类型的XML结构中:元素和属性。XML文档中使用的所有元素和属性都嵌套在根元素中。
4. 元素
元素是XML文档的基本构成单元,它用于表示XML文档的结构和XML文档中包含的数据。元素包含开始标记、内容和结束标记。由于XML区分大小写,所以,开始标记和结束标记必须完全匹配。以下是描述书籍信息的示例,publish元素下有3个有关出版社的子元素。
<bookinfo>
<title>计算机导论</title>
<author>丁跃潮等</author>
<publish>
<publisher>高等教育出版社</publisher>
<ISBN>7-04-014768-8</ISBN>
<pubdate>2004.6</pubdate>
</publish>
<price>19.7</price>
</bookinfo>
元素可以包含文本、其他元素、字符引用或字符数据部分。没有内容的元素称为空元素。空元素的开始标记和结束标记可以合并为一个标记,例如:
<sale/>
5.属性
属性是使用与特定元素关联的对应“名称—值”的XML构造。其中包含的有关元素内容的信息并非总是用于显示,而是用于描述元素的某种属性。使用等号分隔属性名称和属性值,并且包含在元素的开始标记中。属性值包含在单引号或双引号中。以下是与book元素关联的bookcategory等4个属性的示例。
<books>
<book id=”018” bookcategory=”计算机” amount=”560” remain=”200” discount=”8.2”>
</book>
</books>
6.CDATA
在标记CDATA下,所有的标识、实体引用都被忽略,而被XML处理程序一视同仁地作为字符数据看待。CDATA的形式如下。
<![CDATA[ 文本内容 ]] >
CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。
7. 注释
XML文档可以包含注释,也可以没有这项内容。注释并不由XML分析程序进行处理,但用于在文档的XML源代码中提供必要的说明。注释以“<!–”开始,并以“–>”结束。在这些字符之间的文本会被XML分析程序忽略。以下是XML文档中注释的示例。
<!– 这个文件是网上书店中关于书的描述文档 –> <document> </books> … </books> </document>