先附上一张XML 大概图:详解见博客内容。
一、定义
XML(EXtensible Markup Language) :可扩展标记语言。
设计的用途:用来描述,存储,传输数据信息。
二、特色
1、单纯的XML只具有描述性作用。
XML被设计用来结构化、存储以及传输信息,看这个例子:
下面是wyx 写给john 的email,存储为 XML:
<email>
<to>john</to>
<from>wyx</from>
<heading>greeting</heading>
<body>hello,you are a good man!</body>
</email>
上面的这条便签具有自我描述性。它拥有标题以及内容,同时包含了发送者和接受者的信息。
但是,这个XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。
需要编写软件或者程序,才能传送、接收和显示出这个文档。
2、与Html不同
同:都是标记语言
不同:
用途不同
htmL:关注数据的显示。
Xml :关注的是数据内容,用来传输,包含数据。
标签
HTML:预定义的标签
XML:自行定义标签。
上例中的标签没有在任何XML 标准中定义过的标签,比如 <to> 和 <from>。这些标签是由编写者自己发明的哦!
在HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p>、<h1> 等等)。XML 允许创作者定义自己的标签和自己的文档结构。
3、与数据库不同
数据库:存储数据,且强大的分析数据能力
XML:只是存储数据
三、用途:(跨平台)
为什么会出现XML?
答:XML 把数据从 HTML 分离
如果你需要在HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。
通过XML,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。
通过使用几行JavaScript,你就可以读取一个外部 XML 文件,然后更新 HTML 中的数据内容。
围绕这个核心,XML运用到一下方面,而且在发展的过程中,完善和增加了更多功能。
作为系统的配置文件
传输数据Web Services ,Ajax.
异构平台的数据交换与整合。
四、语法
1、大多数以 XML声明开始
例:<? Xml version="1.0" encoding="utf-8">
Encoding :字符编码方式。——跟保存形式有关
2、结构
格式良好的XML。
拥有正确语法的XML
通过DTD验证的XML是“合法”的XML
遵循:
必须要根元素,只有一个。必须有
必须有开始,关闭标签
标记对大小写敏感
必须被正确的嵌套
属性的值必须加引号
树状结构
上图表示下面的XML 中的一本书:
<bookstore>
<bookcategory="COOKING">
<title lang="en">EverydayItalian</title>
<author>Giada DeLaurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<bookcategory="CHILDREN">
<title lang="en">HarryPotter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<bookcategory="WEB">
<title lang="en">LearningXML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
3、实体引用:——为了解决编写一些特殊字符的方法。
4、属性
必须有值。引号要一直(单,双)
5、CDATA与注释。
CDATA:<![CDATA[文本内容]]>
注释:<!--注释内容-->
五、处理指示(PI=processinginstruction)
指示当前的XML文件的内容,如何被显示或者处理。
语法:<?target arg*?> <?target value?>
一个Xml文档可以包含多个针对不同应用程序的处理指令。处理指令由两部分组成,target和value。target的角色类似于“名称”,紧随target之后的字符串就是value,value可以包含多个标记。
例子:使用XSLT处理当前的XML文件实例
<?xml-stylesheet type="text/xsl"href="book.xsl"?>