什么是 XML?

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

XML与HTML的主要差异

1)XML不是HTML的替代。XML是对HTML的补充。理解这一点很重要。在大多数web应用程序中,XML用于传输数据,而HTML用于格式化并显示数据。
2)XML和HTML为不同的目的而设计。XML被设计为传输和存储数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。

下面是 John 写给 George 的便签,存储为 XML:
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
    这个标签有标题以及留言。它也包含了发送者和接受者的信息。但是,这个XML文档仍然没有做任何事情。它仅仅是包装在XML标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

XML仅仅是纯文本,XML没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理XML。不过,能够读懂XML的应用程序可以有针对性地处理XML的标签。标签的功能性意义依赖于应用程序的特性。通过XML您可以发明自己的标签。上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。这是因为 XML 没有预定义的标签。在HTML中使用的标签(以及HTML的结构是预定义的。HTML文档只使用在HTML标准中定义过的标签(比如 <p> 、<h1> 等等)。XML允许创作者定义自己的标签和自己的文档结构。

XML特点/作用

1)XML是不作为的
也许这有点难以理解,但是 XML不会做任何事情。XML被设计用来结构化、存储以及传输信息。

2)XML应用于web开发的许多方面
常用于简化数据的存储和共享。XML把数据从HTML分离, 如果你需要在HTML文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑HTML。通过XML,数据能够存储在独立的XML文件中。这样你就可以专注于使用HTML进行布局和显示,并确保修改底层数据不再需要对HTML进行任何的改变。通过使用几行JavaScript,你就可以读取一个外部XML文件,然后更新HTML中的数据内容。

3)XML简化数据共享
在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。

4)XML简化数据传输
通过XML,可以在不兼容的系统之间轻松地交换数据。对开发人员来说,其中一项最费时的挑战一直是在因特网上的不兼容系统之间交换数据。由于可以通过各种不兼容的应用程序来读取数据,以XML交换数据降低了这种复杂性。

5)XML简化平台的变更
升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。XML数据以文本格式存储。这使得XML在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。

6)XML使您的数据更有用
由于XML独立于硬件、软件以及应用程序,XML使您的数据更可用,也更有用。不同的应用程序都能够访问您的数据,不仅仅在HTML页中,也可以从XML数据源中进行访问。通过 XML,您的数据可供各种阅读设备使用(手持的计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。

7)XML用于创建新的Internet语言
很多新的Internet语言是通过XML创建的。其中的例子包括:
· XHTML - 最新的 HTML 版本
· WSDL - 用于描述可用的 web service
· WAP 和 WML - 用于手持设备的标记语言
· RSS - 用于 RSS feed 的语言
· RDF 和 OWL - 用于描述资源和本体
· SMIL - 用于描述针针对 web 的多媒体
  假如开发人员都是理性的,假如他们都是理性的,就让未来的应用程序使用 XML 来交换数据吧。未来也许会出现某种字处理软件、电子表格程序以及数据库,它们可以使用纯XML。

浅谈XML的更多相关文章

  1. C#基础笔记---浅谈XML读取以及简单的ORM实现

    背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...

  2. C#基础---浅谈XML读取以及简单的ORM实现

    背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...

  3. 浅谈XML涉及到的常见技术(编写+解析)

    xml:即可扩展标记语言,用于描述关系型数据,也经常用作软件的配置文件:     1,编写xml文档一般基于一个约束文档,该文档用于规定xml的书写规范,常用的约束技术有        (1)XML ...

  4. 浅谈 Java 主流开源类库解析 XML

    在大型项目编码推进中,涉及到 XML 解析问题时,大多数程序员都不太会选用底层的解析方式直接编码. 主要存在编码复杂性.难扩展.难复用....,但如果你是 super 程序员或是一个人的项目,也不妨一 ...

  5. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  6. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  7. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

  8. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  9. Android安全开发之浅谈密钥硬编码

    Android安全开发之浅谈密钥硬编码 作者:伊樵.呆狐@阿里聚安全 1 简介 在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码.文件中,这样做会引起很大风 ...

随机推荐

  1. 免费电子书:微软Azure基础之Azure Automation

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") Azure Automation是Azure内置的一项自动化运维基础功能,微软为了让大家更快上手使用这项功能,特意推 ...

  2. JAVA 正则表达式、汉字正则、 java正则代码

    转自于:http://blog.csdn.net/q326527970/article/details/7513974 (一)字母.数字.下划线.汉字正则表达式 1. 只有字母.数字和下划线且不能以下 ...

  3. 在IIS上创建FTP服务

    1 在IIS上创建 ftp站点, 然后设定端口号. 2 设定权限: 追加Everyone,IIS_IUSRS,并设定可读可写. 3 设定FTP授权规则:

  4. android 定时器的实现

    在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了. 实验1:使用Java.util.Timer. 在onStart()创创建Time ...

  5. HeapByteBuffer和DirectByteBuffer以及回收DirectByteBuffer

    由于HeapByteBuffer和DirectByteBuffer类都是default类型的,所以你无法字节访问到,你只能通过ByteBuffer间接访问到它,因为JVM不想让你访问到它. 分配Hea ...

  6. 配置JDKAndroid 2D游戏引擎AndEngine

    配置JDKAndroid 2D游戏引擎AndEngine JDK全称为Java Development Kit(也即Java开发包),是用于支持Java 编程的基础.无论是什么编程,只要用到了Java ...

  7. DFS ZOJ 1002/HDOJ 1045 Fire Net

    题目传送门 /* 题意:在一个矩阵里放炮台,满足行列最多只有一个炮台,除非有墙(X)相隔,问最多能放多少个炮台 搜索(DFS):数据小,4 * 4可以用DFS,从(0,0)开始出发,往(n-1,n-1 ...

  8. stack UVA 442 Matrix Chain Multiplication

    题目传送门 题意:给出每个矩阵的行列,计算矩阵的表达式,如果错误输出error,否则输出答案 分析:表达式求值,stack 容器的应用:矩阵的表达式求值A 矩阵是a * b,B 矩阵是b * c,则A ...

  9. 移动WEBAPP开发常规CSS样式总结

    我所使用到的HTML页面标签: Section,div,artical,p,ol,ul,li,header,footer,span,form,input,label,h1,h2,h3 :详细说明我就不 ...

  10. 【BZOJ】1087: [SCOI2005]互不侵犯King(状压dp)

    http://www.lydsy.com:808/JudgeOnline/problem.php?id=1087 状压dp是第一次写啊,我也是才学TAT.状压dp一般都用一个值表示集合作为dp的一个状 ...