什么是XML?
XML:可扩展标记语言(Extensible Markup Language)
用于标记电子文件使其具有结构性的标记语言。提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。其焦点是数据的内容。
要求所有的标记必须成对出现;对大小写敏感。
被设计用来传输和存储数据。
XML标签没有被预定义,需要自行定义标签,具有自我描述性。
1.XML是不作为的:
XML不会做任何事情,XML被设计用来结构化、存储以及传输信息。
下面是John写给George的便签,存储为XML:
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
上面的这条便签具有自我描述性,它拥有标题以及留言,同时包含了发送者和接受者的信息。
但是,这个XML文档仍然没做任何事,它仅仅是包装在XML标签中的纯粹的信息。
2.XML仅仅是纯文本:
有能力处理纯文本的软件都可以处理XML。
3.通过XML可以发明自己的标签
4.XML是对HTML的补充:
XML用于传输数据,而HTML用于格式化并显示数据,对XML最好的描述是:XML是独立于软件和硬件的信息传输工具。
用途?
XML应用于Web开发的许多方面,常用于简化数据的存储和共享。
1.XML把数据从HTML分离:
通过使用几行JavaScript,就可以读取一个外部XML文件,然后更新HTML中的数据内容。
2.XML简化数据共享:
提供了一种独立于硬件和软件的数据存储方法。
3.XML简化数据传输:
可以在不兼容的系统间轻松的交换数据。
4.XML简化平台的变更
5.XML使数据更有用
XML树结构?
XML文档形成了一种树结构,它从“根部”开始,然后扩展到“树叶”
1.实例
<? XML version="1.0" encoding="ISO-8859-1" ?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是XML声明:定义XML的版本(1.0)和所使用的编码(ISO-8859-1=Latin-1/西欧字符集)
下一行描述文档的根元素(像在说:“本文档是一个便签”):
接下来四行描述根的四个子元素(to、from、heading以及body)
最后一行定义根元素的结尾。
2.XML文档形成一种树结构:
XML文档必须包含根元素,该元素是所有其他元素的父元素。所有元素均可拥有子元素。
XML语法规则?
1.所有XML元素都须有关闭标签:
XML声明没有关闭标签,这不是错误,声明不属于XML本身的组成部分。它不是XML元素,也不需要关闭标签。
2.XML标签对大小写敏感
3.XML必须正确的嵌套
4.XML文档必须有根元素
5.XML的属性值需加引号:
<note data="08/08/2008">
<to>George</to>
<from>John</from>
</note>
6.实体引用:
一些字符具有特殊的意义。如果把字符“<”放在XML元素中,会发生错误,这是因为解析器会把它当做新元素的开始。
这样会产生XML错误:
<message>if salary<1000 then</message>
为了避免错误,使用实体引用来代替“<”字符
<message>if salary < 1000 then</message>
在XML中,有5个预定义的实体引用:
< < 小于
> > 大于
& & 和号
' ‘ 单引号
" “ 引号
注:在XML中,只有“<”和“&”是确实非法的。大于号是合法的,但使用实体引用来代替它是一个好习惯。
7.XML中的注释:
<!-- This is a comment -->
8.在XML中,空格会被保留
9.XML中以LF存储换行
XML元素?
XML文档包含XML元素
1.什么是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>元素具有属性。
2.XML命名规则:
名称可以包含字母,数字以及其他符号;
名称不能以数字或者标点符号开始;
名称不能包含以字符“XML”(或者Xml,xml)开始;
名称不包含空格
3.最佳命名习惯:
名称应当比较简短:比如<book_title>
避免“-”字符;
避免“.”字符;
避免“:”字符;
4.XML元素是可扩展的:
在不中断应用程序的情况进行扩展。
XML属性?
XML元素可在开始标签中包含属性,提供关于元素的额外信息1.XML属性:
属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要。
<file type="gif">Computer.gif</file>
2.XML属性必须加引号:
单,双引号都可以。
特殊情况:若果属性值本身包含双引号,那么有必要使用单引号包围它。
<gangster name='George “Shotgun” Ziegler'>
或者可以使用实体引用:
<gangster name=“George " Shotgun " Ziegler”>
3.XML元素 VS. 属性
请看例子:
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
在第一例中,sex是一个属性。第二例中,sex则是一个子元素。尽量使用子元素。
4.最喜欢的方式:
<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
......
......
</note>
5.避免使用XML属性:
尽量使用元素来描述数据,而仅仅使用属性来提供与数据无关的信息。
6.针对元数据的XML属性:
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。