关于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树结构

例:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <note>
  3. <to>George</to>
  4. <from>John</from>
  5. <heading>Reminder</heading>
  6. <body>Don't forget the meeting!</body>
  7. </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元素是指从(且包括)开始标签知道(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

  1. <bookstore>
  2. <book category="CHILDREN">
  3. <title>Harry Potter</title>
  4. <author>J K. Rowling</author>
  5. <year>2005</year>
  6. <price>29.99</price>
  7. </book>
  8. <book category="WEB">
  9. <title>Learning XML</title>
  10. <author>Erik T. Ray</author>
  11. <year>2003</year>
  12. <price>39.95</price>
  13. </book>
  14. </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. 转-Python optionParser模块的使用方法

    Python  有两个内建的模块用于处理命令行参数: 一个是  getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是  optparse,它功 ...

  2. hOAuth2.0认证和授权原理

    原文地址: http://www.6zou.net/tech/what_is_oauth.html http://www.phpddt.com/%E4%BA%8C%E6%AC%A1%E5%BC%80% ...

  3. HTTP之Content-Length

    在HTTP协议中,有Content-Length的详细解读.Content-Length用于描述HTTP消息实体的传输长度the transfer-length of the message-body ...

  4. Oracle“不等于号”与Nulls的情况(转)

    今天突然才发现,Oracle中的“不等于操作符”是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的 ...

  5. WordPress ‘get_allowed_mime_types’函数安全漏洞(2)

    漏洞名称: WordPress ‘get_allowed_mime_types’函数安全漏洞 CNNVD编号: CNNVD-201309-169 发布时间: 2013-09-13 更新时间: 2013 ...

  6. 许令波老师的java的IO机制分析文章

    深入分析 Java I/O 的工作机制 I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动.这个流动的过程中都涉及到 I/O 问题,可 ...

  7. 搜索(剪枝优化):HDU 5113 Black And White

    Description In mathematics, the four color theorem, or the four color map theorem, states that, give ...

  8. 深入理解jvm之内存区域与内存溢出

    文章目录 1. Java内存区域与内存溢出异常 1.1. 运行时数据区域 1.1.1. 程序计数器 1.1.2. java虚拟机栈 1.1.3. 本地方法栈 1.1.4. Java堆(Java Hea ...

  9. 真机测试---iOS证书(.p12)和描述文件(.mobileprovision)

    iOS证书和描述文件: 证书类型 使用场景 开发(Development)证书和描述文件 用于开发测试,在starain中打包后可在真机环境通过Safari调试 发布(Distribution)证书和 ...

  10. android 随手记 倒计时

    class CountDownUtils extends CountDownTimer { public CountDownUtils(long millisInFuture, long countD ...