共计 1326 个字符,预计需要花费 4 分钟才能阅读完成。
XML 是可扩展标记语言(eXtensible Markup Language)的缩写,它是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。
例如,一个描述书籍的 XML 文档可能如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE note SYSTEM "book.dtd">
<book id="1">
<name>Java 核心技术</name>
<author>Cay S. Horstmann</author>
<isbn lang="CN">1234567</isbn>
<tags>
<tag>Java</tag>
<tag>Network</tag>
</tags>
<pubDate/>
</book>
XML 有几个特点:一是纯文本,默认使用 UTF- 8 编码,二是可嵌套,适合表示结构化数据。如果把 XML 内容存为文件,那么它就是一个 XML 文件,例如book.xml
。此外,XML 内容经常通过网络作为消息传输。
XML 的结构
XML 有固定的结构,首行必定是 <?xml version="1.0"?>
,可以加上可选的编码。紧接着,如果以类似<!DOCTYPE note SYSTEM "book.dtd">
声明的是文档定义类型(DTD:Document Type Definition),DTD 是可选的。接下来是 XML 的文档内容,一个 XML 文档有且仅有一个根元素,根元素可以包含任意个子元素,元素可以包含属性,例如,<isbn lang="CN">1234567</isbn>
包含一个属性 lang="CN"
,且元素必须正确嵌套。如果是空元素,可以用<tag/>
表示。
由于使用了 <
、>
以及引号等标识符,如果内容出现了特殊符号,需要使用 &???;
表示转义。例如,Java<tm>
必须写成:
<name>Java<tm></name>
常见的特殊字符如下:
字符 | 表示 |
---|---|
< | < |
> | > |
& | & |
“ | " |
‘ | ' |
格式正确的 XML(Well Formed)是指 XML 的格式是正确的,可以被解析器正常读取。而合法的 XML 是指,不但 XML 格式正确,而且它的数据结构可以被 DTD 或者 XSD 验证。
DTD 文档可以指定一系列规则,例如:
- 根元素必须是
book
book
元素必须包含name
,author
等指定元素isbn
元素必须包含属性lang
- …
如何验证 XML 文件的正确性呢?最简单的方式是通过浏览器验证。可以直接把 XML 文件拖拽到浏览器窗口,如果格式错误,浏览器会报错。
和结构类似的 HTML 不同,浏览器对 HTML 有一定的“容错性”,缺少关闭标签也可以被解析,但 XML 要求严格的格式,任何没有正确嵌套的标签都会导致错误。
XML 是一个技术体系,除了我们经常用到的 XML 文档本身外,XML 还支持:
- DTD 和 XSD:验证 XML 结构和数据是否有效;
- Namespace:XML 节点和属性的名字空间;
- XSLT:把 XML 转化为另一种文本;
- XPath:一种 XML 节点查询语言;
- …
实际上,XML 的这些相关技术实现起来非常复杂,在实际应用中很少用到,通常了解一下就可以了。
小结
XML 使用嵌套结构的数据表示方式,支持格式验证;
XML 常用于配置文件、网络消息传输等。