XMPP(一)XML

作者: 苏永茂 | 来源:发表于2016-07-22 16:38 被阅读137次

XML

XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。

什么是XML

  • XML 指可扩展标记语言(EXtensible Markup Language)。
  • XML 是一种很像HTML的标记语言。
  • XML 的设计宗旨是传输数据,而不是显示数据。
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准。

XML的树形结构

XML 文档使用简单的具有自我描述性的语法:

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <note>
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
        </note>
  • 第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1/西欧字符集)。

  • 下一行描述文档的根元素(像在说:"本文档是一个便签"):

      <note>
    
  • 接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):

  • 最后一行定义根元素的结尾:

      </note>
    

总结:

  • XML 文档必须包含根元素。该元素是所有其他元素的父元素。

  • 所有的元素都可以有文本内容和属性(类似 HTML 中)。

      <title lang="en">Harry Potter</title>
    

    节点元素名 title 他有一个属性 lang = en

  • 所有的 XML 元素都必须有一个关闭标签

      <to>Tove</to>
    

    标签名是 <to> 那么关闭标签就是 </to>

  • XML 标签对大小写敏感

  • XML 属性值必须加引号

  • 在 XML 中,空格会被保留

  • XML 以 LF 存储换行

  • XML 中的注释

  • 实体引用

      在 XML 中,一些字符拥有特殊的意义。
      如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
      这样会产生 XML 错误:
      <message>if salary < 1000 then</message>
      为了避免这个错误,请用实体引用来代替 "<" 字符:
    
      
      &lt;    <   less than
      &gt;    >   greater than
      &amp;   &   ampersand
      &apos;  '   apostrophe
      &quot;  "   quotation mark
    

XML 命名规则

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格

可使用任何名称,没有保留的字词。

属性

属性(Attribute)提供有关元素的额外信息。

属性通常提供不属于数据组成部分的信息。在下面的实例中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:

<file type="gif">computer.gif</file>

避免 XML 属性

  • 属性不能包含多个值(元素可以)
  • 属性不能包含树结构(元素可以)
  • 属性不容易扩展(为未来的变化)
  • 属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

XML 命名空间 - xmlns 属性

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

当在 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>

在上面的实例中,<table> 标签的 xmlns 属性定义了 h: 和 f: 前缀的合格命名空间。
当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
命名空间,可以在他们被使用的元素中或者在 XML 根元素中声明:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">

<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>

</root>     

注意

  • 命名空间 URI 不会被解析器用于查找信息。
  • 其目的是赋予命名空间一个惟一的名称

统一资源标识符(URI)是一串可以标识因特网资源的字符。
最常用的 URI 是用来标识因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。
在我们的实例中,我们仅使用 URL。

XML解析

  • PCDATA - 被解析的字符数据
  • CDATA - (未解析)字符数据

相关文章

  • XMPP(一)XML

    XML XML 被设计用来传输和存储数据。HTML 被设计用来显示数据。 什么是XML XML 指可扩展标记语言(...

  • 02-即时通讯-XMPP 简单介绍

    XMPP是什莫 1.XMPP:可扩展通讯和表示协议 2.XMPP是一种基于XML的即时通讯 3.XMPP的官方文档...

  • XMPP详解

    1. xmpp简介 XMPP 是一组基于 XML 的技术。用于实时应用程序。最初。XMPP 作为一个框架开发。目标...

  • XMPP (小明屁屁?) 麦盖鬼?

    一. 麦盖系XMPP? 1.XMPP (可扩展通讯和表示协议) 2.XMPP是一个机遇XML的及时通讯协议, 官方...

  • XMPP协议(IM)

    XMPP概念(可扩展通讯和表示协议) XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中...

  • 聊天功能了解

    即时通讯 1.XMPP(http://xmpp.org) 1.概念 XMPP是一种基于标准通用标记语言的子集XML...

  • Android XMPP实现即时通讯

    XMPP一种基于标准通用标记语言的子集XML的协议,继承了在XML环境中灵活的发展性,XMPP的前身是Jabber...

  • XMPP(二)XML流-概述

    XML流 -概述 XMPP,在本质上,是一种XML流技术。当你准备开始和XMPP服务器会话,你打开一个长时间在线...

  • XMPP简介

    即时通讯——XMPP XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因...

  • XMPP之Smack 介绍

    XMPP简介 原理 概述XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(I...

网友评论

    本文标题:XMPP(一)XML

    本文链接:https://www.haomeiwen.com/subject/mcpijttx.html