关于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 &lt; 1000 then</message>
在XML中,有5个预定义的实体引用:
&lt; < 小于 &gt; > 大于 &amp; & 和号 &apos ' 单引号 &quot " 引号
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(一)。的更多相关文章

  1. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  2. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  3. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

  4. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  5. UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)

    最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...

  6. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  7. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  8. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  9. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  10. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”

    Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...

随机推荐

  1. 3d max export for unity3d

    3d max export for unity3d @by 广州小龙 1.单位问题 建模的时候,设置unity的Units Setup的单位是Meters,导出FBX文件的时候,单位为厘米(Centi ...

  2. Struts2 全局拦截器、result 的实现

    定义一个可以继承的包,在这个包里面写入自己常用的拦截器,于是就实现了全局拦截器的实现. 现在,我们定义一个专门用来继承的包: <!--专门提供前台继承的包--> <package n ...

  3. 14.5.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁

    14.5.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁 这个部分建立在概念信息关于deadlocks 在章节 14.5.5.2, "D ...

  4. ASP.NET 中Request.QueryString 中的key

    在ASP.net中 的Key是可能为null的,例如在如下的Url中 http://localhost:14546/Home/Index?a 有一个key=null 其value是a,以前一直以为ke ...

  5. DIP开放计算平台介绍

    随着平台业务的发展,依赖于Portal(Web)构建的服务架构已逐渐不能满足现有的一些复杂需求(如:使用Hive SQL无法完成计算逻辑),而且对于一些具备编程能力的程序员或数据分析师而言,能够自主控 ...

  6. Linux学习笔记11——文件I/O之二

    一.文件共享 内核使用三种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响. 1.每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述表 2.内 ...

  7. Windows进程

    一.Windows进程 1.进程 进程是一种容器,包含了应用程序实例的各种资源. 2.Windows进程的一些特点 2.1.进程中包含了执行代码等资源 2.2.进程都具有私有的地址空间 2.3.每个进 ...

  8. 【转】VSync Count 垂直同步

    原文:http://blog.csdn.net/yesy10/article/details/7794556 Unity3D中新建一个场景空的时候,帧速率(FPS总是很低),大概在60~70之间.一直 ...

  9. ubuntu错误解决。

    ubuntu中出现如下错误: W: Failed to fetch http://cn.archive.ubuntu.com/ubuntu/dists/precise-backports/main/i ...

  10. Show All Running Processes in Linux

    ps由于历史的原因,所以很奇特,有些命令必须加"-",比如: ps A 上面的写法是错误的 ********* simple selection ********* ******* ...