共计 7758 个字符,预计需要花费 20 分钟才能阅读完成。
XML 指可扩大标记语言(eXtensible Markup Language)。
XML 被设计用来传输和存储数据。
XML 很重要,也很容易学习。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 简介
XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。
。。。。。。。。。。。。。
什么是 XML?
XML 指可扩大标记语言(EXtensible Markup Language)。
XML 是一种很像 HTML 的标记语言。
XML 的设计主旨是传输数据,而不是显示数据。
XML 标签没有被预约义。您须要自行定义标签。
XML 被设计为具备自我描述性。
XML 是 W3C 的举荐规范。
。。。。。。。。。。。。。
XML 和 HTML 之间的差别
XML 不是 HTML 的代替。
XML 和 HTML 为不同的目标而设计:
XML 被设计用来传输和存储数据,其焦点是数据的内容。
http:/ /
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
。。。。。。。。。。。。
XML 不会做任何事件
兴许这有点难以了解,然而 XML 不会做任何事件。XML 被设计用来结构化、存储以及传输信息。
XML 不会做任何事件。它仅仅是包装在 XML 标签中的纯正的信息。咱们须要编写软件或者程序,能力传送、接管和显示出这个文档。
。。。。。。。。。。。。
通过 XML 您能够创造本人的标签
这是因为 XML 语言没有预约义的标签。
HTML 中应用的标签都是预约义的。HTML 文档只能应用在 HTML 规范中定义过的标签(如 <p>、<h1> 等等)。
XML 容许创作者定义本人的标签和本人的文档构造。
。。。。。。。。。。。。
XML 不是对 HTML 的代替
XML 是对 HTML 的补充。
XML 不会代替 HTML,了解这一点很重要。在大多数 Web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。
对 XML 最好的形容是:
XML 是独立于软件和硬件的信息传输工具。
。。。。。。。。。。。。
XML 是 W3C 的举荐规范
XML 于 1998 年 2 月 10 日成为 W3C 的举荐规范。
。。。。。。。。。。。。
XML 无所不在
目前,XML 在 Web 中起到的作用不会亚于始终作为 Web 基石的 HTML。
XML 是各种应用程序之间进行数据传输的最罕用的工具。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 用处
XML 利用于 Web 开发的许多方面,罕用于简化数据的存储和共享。
。。。。。。。。。。。。。
XML 把数据从 HTML 拆散
如果您须要在 HTML 文档中显示动态数据,那么每当数据扭转时将破费大量的工夫来编辑 HTML。
通过 XML,数据可能存储在独立的 XML 文件中。这样您就能够专一于应用 HTML/CSS 进行显示和布局,并确保批改底层数据不再须要对 HTML 进行任何的扭转。
通过应用几行 JavaScript 代码,您就能够读取一个内部 XML 文件,并更新您的网页的数据内容。
。。。。。。。。。。。。。
XML 简化数据共享
在实在的世界中,计算机系统和数据应用不兼容的格局来存储数据。
XML 数据以纯文本格式进行存储,因而提供了一种独立于软件和硬件的数据存储办法。
这让创立不同应用程序能够共享的数据变得更加容易。
。。。。。。。。。。。。。
XML 简化数据传输
对开发人员来说,其中一项最费时的挑战始终是在互联网上的不兼容零碎之间替换数据。
因为能够通过各种不兼容的应用程序来读取数据,以 XML 替换数据升高了这种复杂性。
。。。。。。。。。。。。。
XML 简化平台变更
降级到新的零碎(硬件或软件平台),总是十分费时的。必须转换大量的数据,不兼容的数据常常会失落。
XML 数据以文本格式存储。这使得 XML 在不损失数据的状况下,更容易扩大或降级到新的操作系统、新的应用程序或新的浏览器。
。。。。。。。。。。。。。
XML 使您的数据更有用
不同的应用程序都可能拜访您的数据,不仅仅在 HTML 页中,也能够从 XML 数据源中进行拜访。
通过 XML,您的数据可供各种浏览设施应用(掌上计算机、语音设施、新闻阅读器等),还能够供盲人或其余残障人士应用。
。。。。。。。。。。。。。
XML 用于创立新的互联网语言
很多新的互联网语言是通过 XML 创立的。
这里有一些实例:
XHTML
用于形容可用的 Web 服务 的 WSDL
作为手持设施的标记语言的 WAP 和 WML
用于新闻 feed 的 RSS 语言
形容资本和本体的 RDF 和 OWL
用于形容针针对 Web 的多媒体 的 SMIL
。。。。。。。。。。。。
如果开发人员都是感性的
如果他们都是感性的,就让将来的应用程序应用 XML 来替换数据吧。
将来兴许会呈现某种字处理软件、电子表格程序以及数据库,它们能够应用 XML 格局读取彼此的数据,而不须要应用任何的转换程序。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 树结构
XML 文档造成了一种树结构,它从 ” 根部 ” 开始,而后扩大到 ” 枝叶 ”。
。。。。。。。。。。。。
XML 文档造成一种树结构
XML 文档必须蕴含根元素。该元素是所有其余元素的父元素。
XML 文档中的元素造成了一棵文档树。这棵树从根部开始,并扩大到树的最底端。
所有的元素都能够有子元素
父、子以及同胞等术语用于形容元素之间的关系。父元素领有子元素。雷同层级上的子元素成为同胞(兄弟或姐妹)。
所有的元素都能够有文本内容和属性(相似 HTML 中)。
。。。。。。。。。。。
XML 将数据组织成为一棵树,DOM 通过解析 XML 文档, 为 XML 文档在逻辑上建设一个树模型, 树的节点是一个个的对象。这样通过操作这棵树和这些对象就能够实现对 XML 文档的操作, 为解决文档的所有方面提供了一个完满的概念性框架。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 语法规定
XML 的语法规定很简略,且很有逻辑。这些规定很容易学习,也很容易应用。
。。。。。。。。。。。
XML 文档必须有根元素
XML 必须蕴含根元素,它是所有其余元素的父元素
。。。。。。。。。。。
XML 申明
XML 申明文件的可选局部,如果存在须要放在文档的第一行
。。。。。。。。。。。
所有的 XML 元素都必须有一个敞开标签
在 HTML 中,某些元素不用有一个敞开标签
在 XML 中,省略敞开标签是非法的。所有元素都必须有敞开标签
。。。。。。。。。。。
XML 标签对大小写敏感
XML 标签对大小写敏感。标签 <Letter> 与标签 <letter> 是不同的。
必须应用雷同的大小写来编写关上标签和敞开标签
正文:关上标签和敞开标签通常被称为开始标签和完结标签。不管您喜爱哪种术语,它们的概念都是雷同的。
。。。。。。。。。。。
XML 必须正确嵌套
在 HTML 中,常会看到没有正确嵌套的元素:
在 XML 中,所有元素都必须彼此正确地嵌套
。。。。。。。。。。。
XML 属性值必须加引号
与 HTML 相似,XML 元素也可领有属性(名称 / 值的对)。
在 XML 中,XML 的属性值必须加引号。
。。。。。。。。。。。
实体援用
在 XML 中,一些字符领有非凡的意义。
如果您把字符 “<” 放在 XML 元素中,会产生谬误,这是因为解析器会把它当作新元素的开始。
这样会产生 XML 谬误
为了防止这个谬误,请用实体援用来代替 “<” 字符
在 XML 中,有 5 个预约义的实体援用:
<
<
less than
>
>
greater than
&
&
ampersand
‘ ‘
apostrophe
“
"
quotation mark
正文:在 XML 中,只有字符 “<” 和 “&” 的确是非法的。大于号是非法的,然而用实体援用来代替它是一个好习惯。
。。。。。。。。。。。
XML 中的正文,在 XML 中编写正文的语法与 HTML 的语法很类似。
。。。。。。。。。。。
在 XML 中,空格会被保留
HTML 会把多个间断的空格字符裁减(合并)为一个:
HTML:
Hello Tove
Output:
Hello Tove
在 XML 中,文档中的空格不会被删减。
。。。。。。。。。。
XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
在 Unix 和 Mac OSX 中,应用 LF 来存储新行。
在旧的 Mac 零碎中,应用 CR 来存储新行。
XML 以 LF 存储换行。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 元素
XML 文档蕴含 XML 元素。
。。。。。。。。。。。。
什么是 XML 元素?
XML 元素指的是从(且包含)开始标签直到(且包含)完结标签的局部。
一个元素能够蕴含:
其余元素
文本
属性
或混合以上所有 …
。。。。。。。。。。。。
XML 命名规定
XML 元素必须遵循以下命名规定:
名称能够蕴含字母、数字以及其余的字符
名称不能以数字或者标点符号开始
名称不能以字母 xml(或者 XML、Xml 等等)开始
名称不能蕴含空格
可应用任何名称,没有保留的字词。
。。。。。。。。。。。
最佳命名习惯
使名称具备描述性。应用下划线的名称也很不错:<first_name>、<last_name>。
名称应简短和简略,比方:<book_title>,而不是:<the_title_of_the_book>。
防止 “-” 字符。如果您依照这样的形式进行命名:”first-name”,一些软件会认为您想要从 first 里边减去 name。
防止 “.” 字符。如果您依照这样的形式进行命名:”first.name”,一些软件会认为 “name” 是对象 “first” 的属性。
防止 “:” 字符。冒号会被转换为命名空间来应用(稍后介绍)。
XML 文档常常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的教训,即应用数据库的命名规定来命名 XML 文档中的元素。
在 XML 中,éòá 等非英语字母是齐全非法的,不过须要注意,您的软件供应商不反对这些字符时可能呈现的问题。
XML 游戏元素是可扩大的
XML 元素是可扩大,以携带更多的信息。XML 的劣势之一,就是能够在不中断应用程序的状况下进行扩大。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 属性
XML 元素具备属性,相似 HTML。
属性(Attribute)提供无关元素的额定信息。
。。。。。。。。。。。。。
XML 属性
在 HTML 中,属性提供无关元素的额定信息:
<img src=”computer.gif”>
属性通常提供不属于数据组成部分的信息。在上面的实例中,文件类型与数据无关,然而对须要解决这个元素的软件来说却很重要:
<file type=”gif”>computer.gif</file>
。。。。。。。。。。。。。
XML 属性必须加引号
属性值必须被引号突围,不过单引号和双引号均可应用。比方一个人的性别,person 元素能够这样写:
<person sex=”female”>
或者这样也能够:
<person sex=’female’>
如果属性值自身蕴含双引号,您能够应用单引号,就像这个实例:
<gangster name=’George “Shotgun” Ziegler’>
或者您能够应用字符实体:
<gangster name=”George "Shotgun" Ziegler”>
。。。。。。。。。。。。
XML 元素 vs. 属性
没有什么规矩能够通知咱们什么时候该应用属性,而什么时候该应用元素。我的教训是在 HTML 中,属性用起来很便当,然而在 XML 中,您应该尽量避免应用属性。如果信息感觉起来很像数据,那么请应用元素吧。
。。。。。。。。。。。。
防止 XML 属性?
因应用属性而引起的一些问题:
属性不能蕴含多个值(元素能够)
属性不能蕴含树结构(元素能够)
属性不容易扩大(为将来的变动)
属性难以浏览和保护。请尽量应用元素来形容数据。而仅仅应用属性来提供与数据无关的信息。
不要做这样的蠢事(这不是 XML 应该被应用的形式)
。。。。。。。。。。。。
针对元数据的 XML 属性
有时候会向元素调配 ID 援用。这些 ID 索引可用于标识 XML 元素,它起作用的形式与 HTML 中 id 属性是一样的。
id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。
在此咱们竭力向您传递的理念是:元数据(无关数据的数据)该当存储为属性,而数据自身该当存储为元素。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 验证
领有正确语法的 XML 被称为 ” 模式良好 ” 的 XML。
通过 DTD 验证的 XML 是 ” 非法 ” 的 XML。
。。。。。。。。。。
模式良好的 XML 文档
“ 模式良好 ” 的 XML 文档领有正确的语法。
XML 文档必须有一个根元素
XML 元素都必须有一个敞开标签
XML 标签对大小写敏感
XML 元素必须被正确的嵌套
XML 属性值必须加引号
。。。。。。。。。。
验证 XML 文档
非法的 XML 文档是 ” 模式良好 ” 的 XML 文档,这也合乎文档类型定义(DTD)的规定
。。。。。。。。。。
XML DTD
DTD 的目标是定义 XML 文档的构造。它应用一系列非法的元素来定义文档构造
。。。。。。。。。。
XML Schema
W3C 反对一种基于 XML 的 DTD 代替者,它名为 XML Schema
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML 验证器
应用咱们的 XML 验证器来对您的 XML 文件进行语法查看。
为了帮忙您查看 XML 文件的语法,咱们创立了 XML 验证器,以便您对任何 XML 文件进行语法查看。
。。。。。。。。。。
XML 谬误会终止您的程序
XML 文档中的谬误会终止您的 XML 应用程序。
W3C 的 XML 标准申明:如果 XML 文档存在谬误,那么程序就不该当持续解决这个文档。理由是,XML 软件该当笨重,疾速,具备良好的兼容性。
如果应用 HTML,创立蕴含大量谬误的文档是有可能的(比方您遗记了完结标签)。其中一个次要的起因是 HTML 浏览器相当臃肿,兼容性也很差,并且它们有本人的形式来确定当发现错误时文档应该显示为什么样子。
应用 XML 时,这种状况不该当存在。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
查看 XML 文件
在所有支流的浏览器中,均可能查看原始的 XML 文件。
不要指望 XML 文件会间接显示为 HTML 页面。
。。。。。。。。。。。。。
XML 文档将显示为代码色彩化的根以及子元素。通过点击元素左侧的加号(+)或减号(–),能够开展或收起元素的构造。要查看原始的 XML 源(不包含 + 和 – 符号),抉择 ” 查看页面源代码 ” 或从浏览器菜单 ” 查看源文件 ”。
正文:在 Safari 中,只有元素的文本将被显示。要查看原始的 XML,您必须右键单击页面,抉择 ” 查看源文件 ”。
。。。。。。。。。。。。。
为什么 XML 显示这个样子?
XML 文档不会携带无关如何显示数据的信息。
因为 XML 标签由 XML 文档的作者 ” 创造 ”,浏览器无奈确定像 <table> 这样一个标签到底形容一个 HTML 表格还是一个餐桌。
在没有任何无关如何显示数据的信息的状况下,大多数的浏览器都会仅仅把 XML 文档显示为源代码。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
应用 CSS 显示 XML
通过应用 CSS(Cascading Style Sheets 层叠样式表),您能够增加显示信息到 XML 文档中。
。。。。。。。。。。。。。。
应用 CSS 显示您的 XML?
应用 CSS 来格式化 XML 文档是有可能的。
应用 CSS 格式化 XML 不是罕用的办法。
W3C 举荐应用 XSLT
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
应用 XSLT 显示 XML
通过应用 XSLT,您能够把 XML 文档转换成 HTML 格局。www.sangpi.com 应用 XSLT 显示 XML
XSLT 是首选的 XML 样式表语言。
XSLT(eXtensible Stylesheet Language Transformations)远比 CSS 更加欠缺。
XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTML
。。。。。。。。。。。。。
在服务器上通过 XSLT 转换 XML
在应用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同后果。为了缩小这种问题,能够在服务器上进行 XSLT 转换。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XMLHttpRequest 对象
XMLHttpRequest 对象用于在后盾与服务器替换数据。
XMLHttpRequest 对象是开发者的幻想,因为您可能:
在不从新加载页面的状况下更新网页
在页面已加载后从服务器申请数据
在页面已加载后从服务器接收数据
在后盾向服务器发送数据
。。。。。。。。。。。。。
创立一个 XMLHttpRequest 对象
所有古代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象。
创立 XMLHttpRequest 对象的语法:xmlhttp=new XMLHttpRequest();
旧版本的 Internet Explorer(IE5 和 IE6)中应用 ActiveX 对象:xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML Parser
所有古代浏览器都有内建的 XML 解析器。
XML 解析器把 XML 文档转换为 XML DOM 对象 – 可通过 JavaScript 操作的对象。
。。。。。。。
跨域拜访
出于平安方面的起因,古代的浏览器不容许跨域的拜访。
这意味着,网页以及它试图加载的 XML 文件,都必须位于雷同的服务器上。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
XML DOM
DOM(Document Object Model 文档对象模型)定义了拜访和操作文档的规范办法。
XML DOM
XML DOM(XML Document Object Model)定义了拜访和操作 XML 文档的规范办法。
XML DOM 把 XML 文档作为树结构来查看。
所有元素能够通过 DOM 树来拜访。能够批改或删除它们的内容,并创立新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。