XML可扩展标记语言

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等,它可以用来标记数据,定义数据类型,是一种允许用户对子集的标记语言进行定义的源语言.它非常适合万维网传输,提供同意的方法来描述和交换独立于应用程序或供应商的结构化数据.是internet环境中跨青苔的,依赖于内容的技术,也是当今处理分布式结构信息的有效工具.

可扩展性标记语言的作用:
1.可以对文档和数据进行结构化处理,从而能够在部门,客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发.可扩展标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物
2.被设计用来传输和存储数据
3.超文本标记语言被设计用来显示数据
4.都是标准通用标记语言的子集

xml的定义
1.XML指可扩展性标记语言
2.XML是一种很像HTML的标记语言
3.XML的设计宗旨是传输数据,而不是显示数据
4.XML标签没有被预定义,需要自行定义标签
5.XML被设计为具有自我描述性
6.XML是W3C的推荐标准
简单地来说,XML就是一个存储数据的文本,里头包含一堆数据,看似没有规则,实则整齐有序,计算机能够看得懂的.而我们在编写XML的过程中就必须严格按照计算机能看懂"语法"规则来描述存储数据.这样才能进行良好的人机交流沟通.这些"文本"上的消息,并不是拿来显示的,计算机不能说话,但是它能够看得懂数据就可以,可通过XML传输数据与计算机沟通的.

XML和HTML之间的差异
1.XML不是HTML的替代
2.XML和HTML为不同的目的而设计
XML被设计用来传输和存储数据,其焦点是数据的内容
HTML被设计用来显示数据,其焦点是数据的外观
HTML旨在显示信息,而XML旨在传输信息

XML不会做任何事情
XML被设计用来结构化,存储以及传输信息,但是它本身对是没有其他特殊的功能
如下面这一段XML(只是相当与存储信息的便签,但是有自己的秩序)
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
通过XML 你可以发明自己的标签
XML没有预定义的标签,而HTML中使用的标签都是预定义的.HTML文档只能使用在HTML标签中定义过的标签(如<p><H1>等等)
XML允许创作者定义自己标签和自己的文档结构

XML不是对HTML的替代
XML是对HTML的补充.XML不会替代HTML,在大多数web应用程序中,XML用于传输数据,而HTML用于格式化并显示数据.
对于XML最好的描述是:
XML是独立于软件和硬件的信息传输工具.
说白了,XML和HTML就是两码事.

XML的主要作用:
1.是各种应用程序之间进行数据传输的工具,用于简化数据的存储和共享
2.把数据从HTML分离:如果向在HTML文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑HTML.通过XML,数据能够存在储独立的XML文件中.这样只需要专注使用HTML/CSS进行显示和布局,并确保修改底层数据不再需要对HTML进行任何的改变.
3.简化数据共享,XML数据以纯文本格式进行存储,独立于软件和硬件的数据存储方法,这让不同应用程序可以很容易地共享数据.
4.简化数据传输:互联网上地不兼容系统之间交换数据很费时,这时通过XML交换数据降低了这种复杂性
5.XML简化平台变更:升级到新地系统(硬件或平台),总是非常费时,必须转换大量地数据,不兼容地数据经常丢失.
XML数据以文本格式存储,这使得XML在不损失数据的情况下,更容易扩展或升级到新的操作系统,新的应用程序或新的浏览器
6.XML使数据更有用
不同的应用程序能够访问我们的数据,不仅仅在HTML页中,也可以从XML数据中进行访问.通过XML,我们的数据可提供阅读设备使用(语音设备等)还可以供盲人或残障人士使用.
7.XML用于创建新的互联网语言
很多新的互联网语言是通过XML创建的,如:
1.XHTML,
2.用于描述可用的web服务器的WSDL
3.作为手持设备的标记语言的WAP和WML
3.用于新闻的FEED的RSS语言
4.描述资本和本体的RDF和OWL
5.用于描述针对WEB的多媒体的SMIL

XML树结构
XML文档形成了一种树结构
XML文档形成一种树结构,它从"根部"开始,然后扩展到"枝叶"


通过这个XML文件看看XML的结构
<? xml version = " 1.0 " encoding = " UTF-8 " ?> < note > < to > Tove </ to > < from > Jani </ from > < heading > Reminder </ heading > < body > Don't forget me this weekend! </ body > </ note >
XML声明
<?xml version="1.0" encoding="UTF-8"?>
这句声明定义了XML的版本(1.0)和所使用的编码(UTF-8:万国码,可显示各种语言)
根元素: <note>
子元素:<to><form>,<heading>,<body>
根元素的结尾: </note>
XML文档形成一种树结构:XML文档必须包含根元素,该元素是其他元素的父元素,XML文档中的元素形成了一颗文档树.这颗从根本开始,并扩展到树的底端
上面的XML文件是相对来说比较传统的,树根上去,有枝干,枝干还会有分支,也就是所有的元素都可以有自己的子元素,相同层级上的子元素称为同胞(兄弟或者姐妹),所有的元素都可以有文本内容和属性

< root > < child > < subchild > ..... </ subchild > </ child > </ root >

XML语法
1.XML文档必须有根元素,它是所有其他元素的父元素
2.XML声明文件的可选部分,如果存在需要放在文档的第一行
如:
<?xml version="1.0" encoding="utf-8"?>
3.所有的XML元素都必须有一个关闭标签(HTML中某些元素是不需要的,如<br>),XML中省略关闭标签是非法的
4.XML标签对大小写敏感,开始标签和结束标签必须统一,这一点一定要严格遵守,不能开始标签小写,结束标签大写
5.XML标签之间的嵌套一定要正确,就像 大小中括号 -[(]),这种是错误的,正确的是-[()]
6.XML属性值必须加引号,与HTML类似,XML元素也可拥有属性(名称/值的对),在XML中,XML属性值必须加引号.如
错误写法:
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
正确写法:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
7.实体引用.在XML中,一些字符拥有特殊的意义(转义字符)


错误写法:
<message>if salary < 1000 then</message>
正确写法:
<message>if salary < 1000 then</message>
在XML中,只有字符"<"和"&"非法,大于号是合法的,但是用实体引用来代替是一个好习惯
8.XML中的注释:与HTML相似:<!--aa-->
9.在XML中,空隔会被保留,不会被删减.但是HTML中会把多个连续的空隔符裁减(合并为一个)
10.XML以LF存储换行,在windows应用程序中,换行通常以一对字符来存储:回车(CR)和换行(LF),在 Unix 和 Mac OSX 中,使用 LF 来存储新行。在旧的 Mac 系统中,使用 CR 来存储新行。XML 以 LF 存储换行。


XML元素:指从(包括)开始标签直到(包括)结束标签的部分
一个元素可以包含:
1.其他元素
2.文本
3.属性
4.或混合以上所有

XML命名规则
自定义元素必须遵守以下命名规则:
1.名称可以包含字母,数字以及其他的字符
2.名称不能以数字或者标点符号开始
3.名称不能以字母XML(xml,Xml等)开始
4.名称布恩那个包含空隔
可以使用任何名称,没有保留的字词
最佳命名习惯
1.是名称具有描述性.使用下划线的名称也不错,如<first_name>
2.名称应简短和简单,如<book_title>
3.避免"-"字符
4.避免"."字符
5.避免":"字符,冒号会被转换为命名控件来使用
6.XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

XML元素是可扩展的:意思是根元素里头的子元素并不是固定不变的,可以根据需要进行添加,而取数据的时候也能准确定位,不会造成中断或者崩溃

XML属性:属性通常提供不属于数据组成成分的信息,
设置属性的规则:
1.属性值必须被引号包围,单引号和双引号均可适应
2.属性值本身包含双引号,可以使用单引号,或者使用实体字符 如:
<gangster name='George "Shotgun" Ziegler'>
<gangster name="George "Shotgun" Ziegler">
3.XML元素 vs.属性:XML没有预定义的属性,也没有规定什么时候用元素表示,或者用属性形式表示,在HTML中,属性用起来很便利,但是在XML中,应该尽量避免使用属性.如果系你先感觉起来像数据,那么请用元素

可以对比:
第一个实例中使用了 date 属性:
<note date="10/01/2008">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第二个实例中使用了 date 元素:
<note>
<date>10/01/2008</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第三个实例中使用了扩展的 date 元素(下面这种看起来比较数据化):
<note>
<date>
<day>10</day>
<month>01</month>
<year>2008</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
避免XML属性:使用XML属性会引起一些问题:
1.属性不能包含多个值(元素可以)
2.属性不能包含树结构(元素可以)
3.属性不容易扩展

标识XML元素的方法:
为元素分配ID引用,作用的方式和HTML中id属性是一样的.但是它并不是数据的组成部分,建议 源数据应当存储为属性,而数据本身应当存储为元素

XML 验证

拥有正确语法的XML被称为“形式良好”的XML。
通过DTD验证的XML是“合法”的XML。
形成良好的XML文档
形式良好的XML文档拥有正确的语法
1.XML文档必须有一个根元素
2.XML元素都必须有一个关闭标签
3.XML标签对大小写敏感
4.XML元素必须被正确嵌套
5.XML属性值必须加引号
XML  验证器

使用我们的 XML 验证器来对您的 XML 文件进行语法检查。

XML 错误会终止您的程序
XML 文档中的错误会终止您的 XML 应用程序。
W3C 的 XML 规范声明:如果 XML 文档存在错误,那么程序就不应当继续处理这个文档。理由是,XML 软件应当轻巧,快速,具有良好的兼容性。
如果使用 HTML,创建包含大量错误的文档是有可能的(比如您忘记了结束标签)。其中一个主要的原因是 HTML 浏览器相当臃肿,兼容性也很差,并且它们有自己的方式来确定当发现错误时文档应该显示为什么样子。
使用 XML 时,这种情况不应当存在。

使用XSLT显示XML
通过XSLY,可以把XML文档转换成HTML格式
XSLT 是首选的 XML 样式表语言。
XSLT(eXtensible Stylesheet Language Transformations)远比 CSS 更加完善。
XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTMT

在服务器上通过 XSLT 转换 XML
在上面的实例中,当浏览器读取 XML 文件时,XSLT 转换是由浏览器完成的。
在使用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同结果。为了减少这种问题,可以在服务器上进行 XSLT 转换。

XML  Parser

所有现代浏览器都有内建的 XML 解析器。
XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。


既然有了xml文本来存储数据,那么会有一些工具来操作这些数据,不然xml就跟普通文档没有区别了,XMLDOM可以做到这点
XMLDOM(文档对象模型):定义了访问和操作文档的标准方法
XMLDOM定义了访问和操作XML文档方法的标准方法
XMLDOM把XML文档作为树结构来查看.所有元素可以通过DOM树来访问.可以修改或删除他们的内容,并创建新的元素.元素,它们的文本,以及它们的属性,,都会被认为是节点.

接下来学习如何操作XML文档,规范的XML文档才能操作,所以我们写xml文本时应该养成良好的合法编写习惯.

XML命名空间
XML命名空间提供避免元素命名冲突的方法
命名冲突
在XML中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突

解决命名冲突的方法:
1.在XML中的命名冲突可以通过使用名称前缀从而容易避免
如:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
XML命名空间-xmlns属性
当在XML中使用前缀时,一个所谓的用于前缀的命名空间必须被定义.
命名空间是在元素的开始标签的xmlns属性中定义的.
命名空间声明的语法,xmlns:前缀="URL"
默认的命名空间:为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作
XML CDATA

XML 文档中的所有文本均会被解析器解析。
只有 CDATA 区段中的文本会被解析器忽略。

CDATA - (未解析)字符数据
术语 CDATA 是不应该由 XML 解析器解析的文本数据。
像 "<" 和 "&" 字符在 XML 元素中都是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:


关于 CDATA 部分的注释:
CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或换行。



XML编码
XML文档可以包含非ASCII字符,比如挪威语或法语
为了避免错误,需要规定XML编码,或者将XML文件存为Unicode

XML编码错误
1.编码错误:在文本中发现无效字符,XML中包含非 ASCII 字符,且文件保存为没有指定编码的单字节 ANSI(或 ASCII),您会得到一个错误。
2.将当前编码切换为不被支持的指定编码

服务器上的XML
XML文件是类似HTML文件的纯文本文件
XML嗯那个狗通过标准的web服务器轻松地存储和生成

在服务器上存储XML文件
1.XML文件在internet服务器上进行存储地方式与HTML文件完全相同

生成XML文件地几种方式
.XML可以在不安装任何XML软件的情况下在服务器生成.
1.通过ASP
如需从服务器生成XML响应 - 只需简单地编写以下代码并在Web服务器上把它保存为一个ASP文件:
<%
response.ContentType="text/xml"
response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.Write("<note>")
response.Write("<from>Jani</from>")
response.Write("<to>Tove</to>")
response.Write("<message>Remember me this weekend</message>")
response.Write("</note>")
%>
2.通过PHP生成XML
3.从数据库生成XML
4.在服务器上通过XSLT转换XML
5.通过ASP把XML保存为文件

XML注意事项
1.避免使用XML数据岛--嵌入HTML中的XML数据
避免的原因:数据岛只在IE中有效
解决:应当在HTML中使用JavaScript和XMLDOM来解析并显示XML
2.行为是通过使用CSS样式向XML(或HTML)元素添加行为的一种方法。
避免的原因:只有IE支持
解决:使用JavaScript和XMLDOM来代替
















猜你喜欢

转载自blog.csdn.net/lplife/article/details/79818781
今日推荐