XML基础XML 指可扩展标记语言 W3C 指万维网联盟(World Wide Web Consortium) XSL 指扩展样式表语言(Extensible Stylesheet Language)。XSLT 指 XSL 转换 一、XML 概念XML 可扩展标记语言(Extensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准 XML 与 HTML 的主要差异XML 被设计用来传输和存储数据。其焦点是数据的内容。 HTML 被设计用来格式化和显示数据。其焦点是数据的外观。 XML 不是 HTML 的替代。目的不同。 HTML 旨在显示信息,而 XML 旨在传输信息。 XML 是不作为的XML 被设计用来结构化、存储以及传输信息。XML 不会做任何事情。 下面是 John 写给 George 的便签,存储为 XML:
<note> 上面的这条便签具有自我描述性。拥有标题以及留言,同时包含了发送者和接受者的信息。 但是,这个 XML 文档仍然没有做任何事情。 它仅仅是包装在 XML 标签中的纯粹的信息。 需要编写软件或者程序,才能传送、接收和显示出这个文档。 XML 仅仅是纯文本有能力处理纯文本的软件都可以处理 XML。 不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。 标签的功能性意义依赖于应用程序的特性。 通过 XML 可以发明自己的标签上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。 这是因为 XML 没有预定义的标签。 在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。 XML 允许创作者定义自己的标签和自己的文档结构。 XML 是 W3C 的推荐标准可扩展标记语言 (XML) 于 1998 年 2 月 10 日成为 W3C 的推荐标准。 对 XML 最好的描述是:XML 是独立于软件和硬件的信息传输工具。 二、XML 的用途XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。 XML 把数据从 HTML 分离问题:在HTML 文档中显示动态数据,但是每当数据改变时,将花费大量的时间来编辑 HTML。 解决:通过 XML,将数据存储在独立的 XML 文件中。 这样就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。 通过使用JavaScript,就可以读取一个外部 XML 文件,然后更新 HTML 中的数据内容。 XML 简化数据共享XML 数据以纯文本格式进行存储,提供了一种独立于软件和硬件的数据存储方法。 使创建不同应用程序可以共享的数据变得更加容易。 XML 简化数据传输通过 XML,可以在不兼容的系统之间轻松地交换数据。 XML 简化平台的变更问题:升级到新的系统(硬件或软件平台),很费时,而且转换大量的数据,不兼容的数据经常会丢失。 解决:XML 数据以文本格式存储。使 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。 XML 使数据更有用不同的应用程序不仅仅在 HTML 页中,也可以从 XML 数据源中访问数据。 通过 XML,数据可供各种阅读设备使用(手持的计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。 XML 用于创建新的 Internet 语言包括: XHTML - 最新的 HTML 版本 WSDL - 用于描述可用的 web service WAP 和 WML - 用于手持设备的标记语言 RSS - 用于 RSS feed 的语言 RDF 和 OWL - 用于描述资源和本体 SMIL - 用于描述针针对 web 的多媒体 三、XML 树结构XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。 一个 XML 文档实例XML 使用简单的具有自我描述性的语法: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。 下一行描述文档的根元素(像在说:“本文档是一个便签”): 接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body): 最后一行定义根元素的结尾: 从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。 XML 文档形成一种树结构XML 文档必须包含根元素。该元素是所有其他元素的父元素. <root> </root> 所有元素均可拥有文本内容和属性(类似 HTML 中)。 实例表示XML 中的一本书:
<bookstore>
<book category="COOKING"> </book>
<book category="CHILDREN">
</book> <book category="WEB"> </book> </bookstore> 例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中。 <book> 元素有 4 个子元素:<title>、< author>、<year>、<price>。 四、XML 语法规则XML 元素都须有关闭标签在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签: <p>This is a paragraph</p> <p>This is another paragraph</p> 注释: XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。 XML 标签对大小写敏感XML 中,标签 <Letter> 与标签 <letter> 是不同的。 XML 中,必须使用相同的大小写来编写打开标签和关闭标签: <Message>这是错误的。</message> <message>这是正确的。</message> 注释:打开标签和关闭标签通常被称为开始标签和结束标签。 XML 必须正确地嵌套XML 文档必须有根元素XML 的属性值须加引号与 HTML 类似,XML 也可拥有属性(名称/值的对)。 错误的: <note date=08/08/2008></note> 正确的:<note date="08/08/2008"></note> 实体引用XML 中,一些字符拥有特殊的意义。 问题:把字符 "<" 放在 XML 元素中,会发生错误,解析器会把它当作新元素的开始。产生 XML 错误: <message>if salary < 1000 then</message> 解决:使用实体引用来代替 "<" 字符: <message>if salary < 1000 then</message> XML 中, 5 个预定义的实体引用:
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。 XML 中的注释与 HTML 的语法很相似: <!-- This is a comment --> XML 中空格会被保留HTML 会把多个连续的空格字符裁减(合并)为一个: HTML:
输出: XML 中,文档中的空格不会被删节。 XML 以 LF 存储换行在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。 在 Unix 应用程序中,新行以 LF 字符存储。 而 Macintosh 应用程序使用 CR 来存储新行。 |
|
来自: herowuking > 《XML》