关于XML(一)。
关于XML
什么是XML?
XML是可扩展标记语言。类似于HTML,XML的宗旨是旨在传输数据,而非显示数据。其标签没有预定义,您需要自行定义标签。XML具有自我描述性,是W3C的推荐标准。
XML与HTML的区别。
XML被设计用来传输和存储数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。HTML旨在显示信息,而XML旨在传输信息。
XML不是对HTML的替代XML是对HTML的补充。XML不会替代HTML,理解这一点很重要。在大多数web应用程序中,XML用于传输数据,而XML用于格式化并显示数据。对XML最好的描述是:XML是独立于软件和硬件的信息传输工具。
没有任何行为的XML。
XML是不作为的。
XML被设计用来结构化、存储以及传输信息。是不会做任何事情的。它仅仅是包装在XML标签中的纯粹的信息。我们需要编写软件或者程序接收和显示出这个文档。
XML的用途
XML应用于web开发的许多方面,常用语简化数据的存储和共享。
XML把数据从HTML分离。(通过使用几行Javascript,你就可以读取一个外部XML文件,然后更新HTML中的数据内容。)
XML简化数据共享。(XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。)
XML简化数据传输。(通过XML,可以在不兼容的系统之间轻松地交换数据。)
XML简化平台的变更。(XML在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或者新的浏览器。)
XML使您的数据更有用。(由于XML独立于硬件、软件以及应用程序,不同的应用程序都能够访问您的数据,不仅仅在HTML页中,也可以从XML数据源中进行访问。)
XML用于创建新的Internet语言。(很多新的Internet语言是通过XML创建的:其中的例子包括:XHTML-最新的HTML版本WSDL-用于描述可用的web service)
XML树结构
例:
<?xml version="1.0" encoding="utf-8" ?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行XML声明。它定义XML的版本(1.0)和所使用的编码(utf-8)。
下一行描述文档的根元素。(像在说:“本文档是一个便签”)<note>
接下来4行描述根的4个子元素。(to、from、heading、body)
最后一行定义根元素的结尾。</note>
XML文档必须包含根元素,该元素是所有其他元素的父元素。
XML文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
所有元素均可拥有子元素。
父元素拥有子元素。相同层级上的子元素成为同胞,所有元素均可拥有文本内容和属性。
XML语法规则
所有XML元素都必须有关闭标签。(在XML中省略关闭标签是非法的。)
note:XML声明没有关闭标签,它不是XML本身的组成部分,不是XML元素,并且也不需要关闭标签。
XML标签对大小写敏感。
XML必须正确地嵌套。例:<b><i>hello world</b></i>
XML文档必须有根元素。(XML文档必须有一个元素是所有其他元素的父元素,该元素称为根元素。)
XML的属性值必须加引号。
实体引用。
在XML中,一些字符拥有特殊的意义。
如果你把字符“<”放在XML元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
错误XML:
<message>if salary < 1000 then</message>
正确XML:
<message>if salary < 1000 then</message>
在XML中,有5个预定义的实体引用:
< < 小于 > > 大于 & & 和号 &apos ' 单引号 " " 引号
note:在XML中,只有字符"<"和"&"确实是非法的。大于号是合法的。
XML中的注释
<!--this is a commont-->
在XML中,空格会保留
HTML会把多个连续的空格字符裁剪(合并)为一个,但是XML不会删节。
XML以LF存储换行
在Windows应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。这对字符与打字机设置新行的动作有相似之处。在Unix应用程序中,新行以LF字符存储。而Macintosh应用程序使用CR来存储。
XML元素
XML文档包含XML元素。
什么是XML元素?
XML元素是指从(且包括)开始标签知道(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。
在上例中,只有 <book> 元素拥有属性 (category="CHILDREN")。
关于XML(一)。的更多相关文章
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
- .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
- XML技术之DOM4J解析器
由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...
- UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)
最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...
- PHP中遍历XML之SimpleXML
简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...
随机推荐
- Cow Contest
poj3660:http://poj.org/problem?id=3660 题意:一些奶牛之间进行编程比赛,每头牛都有一个编程能力.如果a的能力比b的能力高,则a总能打败b .现在给你一些牛之间的比 ...
- codeforces D. Multiplication Table
http://codeforces.com/contest/448/problem/D 题意:一个n×m的矩阵,a[i][j]=i*j; 然后把a数组排序,找出第k个数. 思路:1-n×m二分枚举,然 ...
- 一起啃PRML - 1 Introduction 绪论
一起啃PRML - 1 Introduction @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 这一部分主要是介绍一下Pattern Recogni ...
- [CA]一个证书两个域名
一般一个证书是绑定一个Common name,出于某种测试的需要,我们可能要求一个Site的证书可以是针对2个域名的. 操作如下: 1.CA上CMD输入下面命令,回车: Certutil –setre ...
- (转载)ubuntu安装pyton-pip问题解决
一.问题描述 root@ubuntu:/home/chao# apt-get install python-pip 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... ...
- GPUImage实现过程
GPUImage就是一个函数的类库,用于对图片实现滤镜的效果. 下面是实现一个最简单的GPUImage的程序和讲解: 首先新建一个项目,导入GPUImage类库(导入过程在我的另一个博客里面有写). ...
- 使用devpartner的blockchecker检查c++内存错误
在仿写stl的过程中,被一处内存错误卡了很久.当内存池需要多次malloc时会出现堆损坏的错误,初步判断是数组越界,但总是检查不出来.一开始用Dr.Memory检查不出来,就试了一下devpartne ...
- MFC去掉win7玻璃效果
在MainFrame的OnCreate中添加以下代码 if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; HINSTANCE hInstance ...
- ios新特性
@import 在xcode 5 下,为了更易于开发,增加了modules和 auto-linking 这两个新特性: 在以前,如果你要使用MapKit这个框架,你要这样做 1) 使用语句 #imp ...
- MenuDrawer的使用
---恢复内容开始--- MenuDrawer框架是一个可以实现上下左右滑动的框架,在使用中可以在xml文件中配置也可以在java代码中实现效果的配置 可以以jar的形式或依赖的形式存在 用 ...