XML基本概念

简介

什么是XML

  1. 指可扩展标记语言(EXtensible Markup Language)
  2. 是一种很像HTML的标记语言
  3. 用于传输数据
  4. 标签没有被预定义,需要自行定义标签
  5. 被设计为具有自我描述性。
  6. 是 W3C 的推荐标准。

XML 和 HTML 之间的差异

  1. XML 被设计用来传输和存储数据,其焦点是数据的内容。
  2. HTML 被设计用来显示数据,其焦点是数据的外观。
  3. HTML 旨在显示信息,而 XML 旨在传输信息。

用途

  1. 把数据从HTML中分离出来。
  2. 简化数据共享:XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法,不同的应用程序来读取数据,也就降低了这种复杂性。
  3. 简化平台变更:数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新的应用程序或新的浏览器。
  4. 用于创建新的互联网语言

文档结构

  1. 文档必须包含根元素。该元素是所有其他元素的父元素。
  2. 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
    实例
<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

语法

  1. 文档必须有根元素。
  2. XML 声明文件的可选部分,如果存在需要放在文档的第一行。
  3. 所有元素都必须有一个关闭标签、
  4. 标签对大小写敏感
  5. 标签必须正确嵌套
  6. 属性值必须加引号
  7. 在xml中,空格会被保留

命名规则

  1. 名称可以包含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字母 xml(或者 XML、Xml 等等)开始
  4. 名称不能包含空格
  5. 可使用任何名称,没有保留的字词。

命名空间

XML 命名空间提供避免元素命名冲突的方法

命名冲突

在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
这个 XML 携带 HTML 表格的信息:

<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

这个 XML 文档携带有关桌子的信息(一件家具):

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的

元素,就会发生命名冲突。
XML 解析器无法确定如何处理这类冲突。

使用前缀来避免命名冲突

在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免。
该 XML 携带某个 HTML 表格和某件家具的信息:

<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

命名空间 - xmlns 属性

当在 XML 中使用前缀时,一个所谓的用于前缀的命名空间必须被定义。
命名空间是在元素的开始标签的 xmlns 属性中定义的。
命名空间声明的语法如下。xmlns:前缀=“URI”。

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>

CDATA的使用

CDATA 是不应该由 XML 解析器解析的文本数据。

像 “<” 和 “&” 字符在 XML 元素中都是非法的。
“<” 会产生错误,因为解析器会把该字符解释为新元素的开始。
“&” 会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA,CDATA 部分中的所有内容都会被解析器忽略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值