本文最后更新于:2024年5月7日 下午
XML 指可扩展标记语言,被设计用来传输和存储数据。本文记录XML基础知识。
教程参考w3school。
简介
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
- XML 是没有任何行为的纯文本,仅编码保存数据
用途
- XML 把数据从 HTML 分离
- XML 简化数据共享
- XML 简化数据传输
- XML 简化平台的变更
XML 树结构
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
-
XML 文档必须包含根元素。该元素是所有其他元素的父元素
-
XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端
-
所有元素均可拥有子元素
实例
1 |
|
这段代码表示了具有如下元素框架的三本书。
语法规则
-
所有 XML 元素都须有关闭标签(声明不是XML元素,恰好他又不需要关闭)
-
XML 标签对大小写敏感,必须使用相同的大小写来编写打开标签和关闭标签:
1 |
|
- XML 必须正确地嵌套
1 |
|
- XML 文档必须有根元素
XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。
1 |
|
- XML 的属性值须加引号
1 |
|
- 实体引用
在 XML 中,有 5 个预定义的实体引用:
< | < | 小于 |
---|---|---|
> | > | 大于 |
& | & | 和号 |
' | ’ | 单引号 |
" | " | 引号 |
- 注释
语法与 HTML 的语法很相似:
1 |
|
-
在 XML 中,空格会被保留
-
XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。在 Unix 应用程序中,新行以 LF 字符存储。而 Macintosh 应用程序使用 CR 来存储新行。
XML 元素
XML 元素
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
1 |
|
XML 命名规则
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
最佳命名习惯
-
使名称具有描述性。使用下划线的名称也很不错。
-
名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
-
避免 “-” 字符。如果您按照这样的方式进行命名:“first-name”,一些软件会认为你需要提取第一个单词。
-
避免 “.” 字符。如果您按照这样的方式进行命名:“first.name”,一些软件会认为 “name” 是对象 “first” 的属性。
-
避免 “:” 字符。冒号会被转换为命名空间来使用(稍后介绍)。
XML 属性
XML 元素可以在开始标签中包含属性,类似 HTML。属性 (Attribute) 提供关于元素的额外(附加)信息。
- XML 属性必须加引号,单引号和双引号均可使用。
1 |
|
或
1 |
|
XML 元素 vs. 属性
1 |
|
上述代码表示了同样的信息,也就是说XML中,属性携带的信息量可以被子元素取代。没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
XML属性的缺点
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护
XML 验证
拥有正确语法的 XML 被称为“形式良好”的 XML。通过 DTD 验证的 XML 是“合法”的 XML。
“形式良好”(Well Formed)的 XML 文档
- XML 文档必须有根元素
- XML 文档必须有关闭标签
- XML 标签对大小写敏感
- XML 元素必须被正确的嵌套
- XML 属性必须加引号
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付