什么是XML?
web
XML是可扩展标记语言。相似于HTML,XML的宗旨是旨在传输数据,而非显示数据。其标签没有预约义,您须要自行定义标签。XML具备自我描述性,是W3C的推荐标准。浏览器
XML与HTML的区别。ide
XML被设计用来传输和存储数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。HTML旨在显示信息,而XML旨在传输信息。工具
XML不是对HTML的替代XML是对HTML的补充。XML不会替代HTML,理解这一点很重要。在大多数web应用程序中,XML用于传输数据,而XML用于格式化并显示数据。对XML最好的描述是:XML是独立于软件和硬件的信息传输工具。this
没有任何行为的XML。编码
XML是不做为的。
XML被设计用来结构化、存储以及传输信息。是不会作任何事情的。它仅仅是包装在XML标签中的纯粹的信息。咱们须要编写软件或者程序接收和显示出这个文档。spa
XML应用于web开发的许多方面,经常使用语简化数据的存储和共享。操作系统
XML把数据从HTML分离。(经过使用几行Javascript,你就能够读取一个外部XML文件,而后更新HTML中的数据内容。)设计
XML简化数据共享。(XML数据以纯文本格式进行存储,所以提供了一种独立于软件和硬件的数据存储方法。)code
XML简化数据传输。(经过XML,能够在不兼容的系统之间轻松地交换数据。)
XML简化平台的变动。(XML在不损失数据的状况下,更容易扩展或升级到新的操做系统、新应用程序或者新的浏览器。)
XML使您的数据更有用。(因为XML独立于硬件、软件以及应用程序,不一样的应用程序都可以访问您的数据,不单单在HTML页中,也能够从XML数据源中进行访问。)
XML用于建立新的Internet语言。(不少新的Internet语言是经过XML建立的:其中的例子包括:XHTML-最新的HTML版本WSDL-用于描述可用的web service)
例:
<?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中省略关闭标签是非法的。)
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元素是指从(且包括)开始标签知道(且包括)结束标签的部分。
元素可包含其余元素、文本或者二者的混合物。元素也能够拥有属性。
<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")。