可扩展标记语言(eXtensibleMarkup Language,简称XML)。是一种标记语言。标记指计算机所能理解的信息符号。通过此种标记,计算机之间能够处理包括各种信息的文章等。
怎样定义这些标记,既能够选择国际通用的标记语言。比方HTML。也能够使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。
XML被设计用来传输和存储数据。HTML被设计用来显示数据。
用途:XML设计用来传送及携带数据信息。不用来表现或展示数据,HTML语言则用来表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。(1)、丰富文件:自己定义描写叙述并使其更丰富:属于文件为主的XML技术应用;标记是用来定义一份资料应该怎样呈现;(2)、元数据:描写叙述其他文件或网络资讯;属于资料为主的XML技术应用。标记是用来说明一份资料的意义;(3)、配置文档:描写叙述软件设置的參数。
结构:每一个XML文档都由XML序言開始,告诉解析器或浏览器这个文件应该依照XML规则进行解析。之后就是XML的根元素。不论什么XML文档都仅仅能有一个跟元素。
根元素里面,能够有子元素,子元素里面能够有子子元素,以此类推。根元素是由文档类型定义(DTD)或XML刚要定义的。XML文件的第二行并不一定要包括文档元素,假设有凝视或者其他内容,文档元素能够迟些出现。
1、XML简单介绍:XML指可扩展标记语言。
XML是一种标记语言,非常相似HTML。XML的设计宗旨是数据传输,而非显示数据。XML标签没有被提前定义,你须要自行定义标签。XML被设计为具有自我描写叙述性。
XML是W3C的推荐标准。
XML与HTML的主要差异:(1)、XML不是HTML的替代;(2)、XML和HTML为不同的目的而设计;(3)、XML被设计为传输和存储数据,其焦点是数据的内容;(4)、HTML被设计用来显示数据,其焦点是数据的外观;(5)、HTML旨在显示信息,而XML旨在传输信息。
没有不论什么行为的XML。
XML仅仅是纯文本。
通过XML你能够发明自己的标签。在HTML中使用的标签是提前定义的,HTML文档仅仅使用在HTML标准中定义过的标签。XML同意创作者定义自己的标签和自己的文档结构。
XML不是对HTML的替代。XML是对HTML的补充。XML是独立于软件和硬件的信息传输工具。
2、XML用途:XML应用与web开发的很多方面。经常使用于简化数据的存储和共享。
XML把数据从HTML分离:假设你须要在HTML文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑HTML。
通过XML,数据能够存储在独立的XML文件里。这样你就能够专注于使用HTML进行布局和显示。并确保改动底层数据不再须要对HTML进行不论什么的改变。
通过使用几行JavaScript,你就能够读取一个外部XML文件,然后更新HTML中的数据内容。
XML简化数据共享:XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序能够共享的数据变得更加easy。
XML简化数据传输:通过XML,能够在不兼容的系统之间轻松地交换数据。
XML简化平台的变更:XML数据以文本格式存储,这使得XML在不损失数据的情况下,更easy扩展或升级到新的操作系统、新应用程序和新的浏览器。
XML使你的数据更实用:不同的应用程序都能够訪问你的数据,不仅仅在HTML页中。也能够从XML数据源中进行訪问。通过XML,你的数据可供各种阅读设备使用。
XML用于创建新的Internet语言:非常多新的Internet语言是通过XML创建的。
3、XML数结构:XML文档形成了一种树结构,它从“根部”開始,然后扩展到“枝叶”。
XML使用简单的具有自我描写叙述性的语法。
XML文档形成一种树结构:XML文档必须包括根元素。
该元素是全部其他元素的父元素。XML文档中的元素形成了一颗文档数。这棵树从根部開始,并扩展到数的底端。全部元素均可拥有子元素。父、子以及同胞等术语用于描写叙述元素之间的关系。
父元素拥有子元素。
同样层级上的子元素成为同胞(兄弟或姐妹)。全部元素均可拥有文本内容和属性(相似HTML中)。
4、XML语法:XML的语法规则非常easy,且非常有逻辑。
全部XML元素都须有关闭标签。
在XML中,省略关闭标签是非法的。
全部元素都必须有关闭标签。在HTML,经常会看到没有关闭标签的元素。
XML声明没有关闭标签。
这不是错误。声明不属于XML本身的组成部分。它不是XML元素,也不须要关闭标签。
XML标签对大写和小写敏感。XML元素使用XML标签进行定义。必须使用同样的大写和小写来编写打开标签和关闭标签。打开标签和关闭标签通常被称为開始标签和结束标签。
XML必须正确地嵌套。
在HTML中。常会看到没有正确嵌套的元素。在XML中,全部元素都必须彼此正确地嵌套。
XML文档必须有根元素。
XML文档必须有一个元素是全部其他元素的父元素。该元素称为根元素。
XML的属性值须加引號。与HTML相似,XML也可拥有属性(名称/值的对)。
在XML中,XML的属性值须加引號。
实体引用:在XML中,一些字符拥有特殊的意义。假设你把字符”<”放在XML元素中,会错误发生,这是由于解析器会把它当作新元素的開始。为了避免这个错误,请用实体引用来取代”<”字符。
在XML中,有5个提前定义的实体引用:<(<),>(>), &(&), '(‘), "(“).在XML中。仅仅有字符”<”和”&”确实是非法的。
大于号是合法的。
可是用实体引用来取代它是一个好习惯。
XML中的凝视:在XML中编写凝视的语法与HTML中的语法相似。
在XML中,空格会被保留:HTML会把多个连续的空格字符裁减(合并)为一个。在XML中,文档中的空格不会被删节。
XML以LF存储换行。
5、XML元素:XML文档包括XML元素。
XML元素指的是从(且包括)開始标签直到(且包括)结束标签的部分。元素可包括其他元素、文本或者两者的混合物。元素也能够拥有属性。
XML命名规则:XML元素必须遵循下面命名规则:(1)、名称能够含字母、数字以及其他的字符;(2)、名称不能以数字或者标点符号開始;(3)、名称不能以字符”xml”(或者XML、Xml)開始。(4)、名称不能包括空格。
可使用不论什么名称。没有保留的字词。
最佳命名习惯:(1)、使名称具有描写叙述性,使用下划线的名称也非常不错;(2)、名称应当比較简短。(3)、避免”-”、”.”、”:”字符。XML文档经常有一个相应的数据库,当中的字段会相应XML文档中的元素。
有一个实用的经验,即使用数据库的名称规则来命名XML文档中的元素。
非英语的字母也是合法的XML元素名,只是须要留意软件开发商不支持这些字符时可能出现的问题。
XML元素是可扩展的。XML元素是可扩展,以携带很多其他的信息。XML的优势之中的一个,就是能够经常在不中断应用程序的情况下进行扩展。
6、XML属性:XML元素能够在開始标签中包括属性。相似HTML。
属性提供关于元素的额外(附加)信息。
在HTML中(以及在XML中)。属性提供有关元素的额外信息。属性通常提供不属于数据组成部分的信息。
XML属性必须加引號。
属性值必须被引號包围,只是单引號和双引號均可使用。
假设属性值本身包括双引號。那么有必要使用单引號包围它,或者能够使用实体引用。
XML元素vs.属性:没有什么规矩能够告诉我们什么时候该使用属性。而什么时候该使用子元素。
在HTML中。属性用起来非常便利,可是在XML中,你应该尽量避免使用属性。假设信息感觉起来非常像数据,那么请石永刚子元素吧。
使用属性而引起的一些问题:(1)、属性无法包括多重的值(元素能够)。(2)、属性无法描写叙述树结构(元素能够);(3)、属性不易扩展;(4)、属性难以阅读和维护。请尽量使用元素来描写叙述数据。而仅仅使用属性来提供与数据无关的信息。
针对元数据的XML属性:有时候会向元素分配ID引用。
这些ID索引可用于标识XML元素,它其作用的方式与HTML中ID属性是一样的。
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
7、XML验证:拥有正确语法的XML被称为“形式良好”的XML。通过DTD验证的XML是“合法”的XML。
“形式良好”或“结构良好”的XML文档拥有正确的语法。
验证XML文档:合法的XML文档是“形式良好”的XML文档。同样遵守文档类型定义(DTD)的语法规则。
DTD的作用是定义XML文档的结构。
它使用一系列合法的元素来定义文档结构。
XMLSchema:W3C支持一种基于XML的DTD取代者,它名为XML Schema。
8、XML验证器:XML错误会终止你的程序。
XML文档中的错误会终止你的XML程序。W3C的XML规范声明,假设XML文档存在错误,那么程序就不应当继续处理这个文档。
假设使用HTML。创建包括大量错误的文档是有可能的。当中一个基本的原因是HTML浏览器相当臃肿,兼容性也非常差,而且它们有自己的方式来确定当发现错误时文档应该显示为什么样子。
使用XML时,这样的情况不应当存在。
9、XML浏览器支持:差点儿全部的主流浏览器均支持XML和XSLT。
10、查看XML文件:在全部现代浏览器中。均能够查看原始的XML文件。
XML文档不会携带有关怎样显示数据的信息。由于XML标签由XML文档的作者”发明”。浏览器无法确定像<table>这样的一个标签到底描写叙述一个HTML表格还是一个餐桌。在没有不论什么有关怎样显示数据的信息的情况下,大多数的浏览器都会仅仅把XML文档显示为源码。
11、使用CSS显示XML:通过使用CSS,可为XML文档加入显示信息。
使用CSS来格式化XML文档是有可能的。
使用CSS格式化XML不是经常使用的方法。更不能代表XML文档样式化的未来。W3C推荐使用XSLT。
12、使用XSLT显示XML:通过使用XSLT,你能够向XML文档加入显示信息。
XSLT(eXtensibleStylesheet Language Transformations)远比CSS更加完好。
使用XSLT的方法之中的一个是在浏览器显示XML文件之前。先把它转换为HTML。
在server上通过XSLT转换XML。
在使用XSLT来转换XML时,不同的浏览器可能会产生不同结果。为了降低这样的问题。能够在server上进行XSLT转换。
13、XMLHttpRequest对象:XMLHttpRequest对象用于在后台与server交换数据。
XMLHtttpRequest对象是开发人员的梦想,由于你能够:(1)、在不又一次载入页面的情况下更新网页;(2)、在页面已载入后从server请求数据。(3)、在页面已载入后从server接收数据;(4)、咋后台向server发送数据。
全部现代的浏览器都支持XMLHttpRequest对象。
全部现代浏览器都内建了XMLHttpRequest对象。
通过一行简单的JavaScript代码。就能够创建XMLHttpRequest对象:xmlhttp =new XMLHttpRequest();
XML/ASP:你也能够把XML文档打开并发送到server上的ASP页面,分析此请求,然后传回结果。
不论什么W3C推荐标准均未规定XMLHttpRequest对象。
14、XML解析器:全部现代浏览器都内建了供读取和操作XML的XML解析器。
解析器吧XML转换为XML DOM对象----可通过JavaScript操作的对象。
解析器把XML载入内存,然后把它转换为可通过JavaScript訪问的XML DOM对象。
跨域訪问:出于安全方面的原因,现代的浏览器不同意跨域的訪问。这意味着,网页以及它试图载入的XML文件,都必须位于同样的server上。
15、XMLDOM:DOM(Document Object Model,文档对象模型)定义了訪问和操作文档的标准方法。DOM把XML文档作为树结构来查看。能够通过DOM树来訪问全部元素。
能够改动或删除它们的内容,并创建新元素。元素,它们的文本,以及它们的属性,都被觉得是节点。
HTMLDOM(HTML Document Object Model)定义了訪问和操作HTML文档的标准方法。
能够通过HTML DOM訪问全部HTML元素。
InternetExplorer使用loadXML()方法来解析XML字符串。而其他浏览器使用DOMParser对象。
16、XMLto HTML:在HTML中显示XML数据。
17、XML命名空间(XML Namespaces):XML命名空间提供避免元素命名冲突的方法。
在XML中,元素名称是由开发人员定义的,当两个不同的文档使用同样的元素名时。就会发生命名冲突。
XMLNamespace(xmlns)属性:XML命名空间属性被放置于元素的開始标签之中,并使用下面语法:xmlns:namespace-prefix=”namespaceURI”
当命名空间被定义在元素的開始标签中时,全部带有同样前缀的子元素都会与同一个命名空间相关联。用于表示命名空间的地址不会被解析器用于查找信息。
其唯一的作用是赋予命名空间一个唯一的名称。
只是。非常多公司经常会作为指针来使用命名空间指向实际存在的网页,这个网页包括关于命名空间的信息。
统一资源标识符(UniformResource Identifier(URI)):统一资源标识符是一串能够标识因特网资源的字符。最常见的URI是用来标示因特网域名地址的统一资源定位器(URL).还有一个不那么经常使用的URI是统一资源命名(URN)。
默认的命名空间:为元素定义默认的命名空间能够让我们省去在全部的子元素中使用前缀的工作,语法:xmlns=”namespaceURI”
18、XMLCDATA:全部XML文档中的文本均会被解析器解析。仅仅有CDATA区段(CDATA section)中的文本会被解析器忽略。
PCDATA值的是被解析的字符数据(ParsedCharacter Data)。XML解析器一般会解析XML文档中的全部的文本。
当某个XML元素被解析时,其标签之间的文本也会被解析。解析器之所以这么做是由于XML元素可包括其他元素。
转义字符:非法的XML字符必须被替换为实体引用(entityreference)。
CDATA指的是不应由XML解析器进行解析的文本数据(Unparsed Character Data)。CDATA部分中的全部内容都会被解析器忽略。CDATA部分由”<![CDATA[”開始,由”]]>”结束。CDATA部分不能包括字符串”]]>”,也不同意嵌套的CDATA部分。
标记CDATA部分结尾的”]]>”不能包括空格或折行。
19、XML编码:XML文档能够包括非ASCII字符。比方法语。
为了避免错误。须要规定XML编码,或者将XML文档存为Unicode。
编码属性应当被指定为文档被保存时所使用的编码。
避免错误的建议是:(1)、使用支持编码的编辑器;(2)、确定编辑器使用的编码;(3)、在你的XML文档中使用同样的编码属性。
20、server上的XML:XML文件是相似HTML文件的纯文本文件。
能够通过标准的webserver轻松地存储和生成XML。
XML文件在Internetserver上进行存储的方式与HTML文件全然同样。
通过ASP生成XML:XML可在不安装不论什么XML软件的情况下载server端生成。
通过PHP生成XML。
从数据库获取XML:XML可在不安装不论什么XML软件的情况下从数据库生成。
在server上通过XSLT转换XML。
通过ASP把XML保存为文件。
演示样例:
<?xml version="1.0" encoding="UTF-8"?
> <!-- 每一个XML文档都由XML序言開始。告诉解析器或浏览器这个文件应该依照XML规则进行解析 --> <!-- XML test --> <!-- XML文档必须有一个元素是全部其他元素的父元素,该元素称为根元素 --> <!-- 不论什么XML文档都仅仅能有一个跟元素。根元素里面,能够有子元素,子元素里面能够有子子元素。以此类推 --> <NOTE> <!1-- 查看XML文件 --> <!-- XML标签没有被提前定义,你须要自行定义标签。XML被设计为具有自我描写叙述性 --> <breakfast_menu> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description>light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> </breakfast_menu> <!-- 通过使用CSS。可为XML文档加入显示信息 --> <!-- XML和CSS --> <!-- 使用XSLT的方法之中的一个是在浏览器显示XML文件之前,先把它转换为HTML --> <!-- XML和XSLT --> <!-- 通过JavaScript来解析XML --> <!-- XML to HTML --> <!-- XMLHttpRequest对象用于在后台与server交换数据 --> <!-- 使用 XMLHttpRequest 对象 --> <!-- 使用命名空间:XML命名空间提供避免元素命名冲突的方法。针对多个文档 --> <Blog xmlns="http://blog.csdn.net/fengbingchun"> <Category> <Android>8</Andorid> <OpenCV>70</Andorid> </Category> </Blog> <!-- XML CDATA --> <!-- CDATA指的是不应由XML解析器进行解析的文本数据 --> <fun> <![CDATA[ funciton Add(a, b) { return a + b; } ]]> </fun> </NOTE>
以上内容摘自:http://www.w3school.com.cn/xml/index.asp