一、什么是XML语言?
-
XML 指可扩展标记语言(Extensible Markup Language)
Xml是独立于软件和硬件的信息传输工具。
-
XML 是一种很像HTML的标记语言。
但xml不是html的替代,是对html的补充。
-
XML 的设计宗旨是传输数据,而不是显示数据。
Xml被设计用来传输和存储数据,主要是数据的内容。
html被设计用来显示数据,主要是数据的外观。
-
XML 标签没有被预定义。您需要自行定义标签。
Xml没有预定义标签,我们可以自定义标签,如<to>和<from>标签。
在html中使用的标签是预定义的,如<p>和<h1>标签。
-
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 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
-
XML 是 W3C 的推荐标准
可扩展标记语言 (XML) 于 1998 年 2 月 10 日成为 W3C 的推荐标准。
二、XML的语法
1.文档声明,作用:为了声明文档类型
<?xml version="1.0" encoding="utf-8"?> |
Xml是以哪种码表保存的,在xml文档中就应该设置相应的encoding属性,用来通知解析器(浏览器)以相应的编码打开。
2.元素(标签)
- 所有xml元素都必须有关闭标签
<p>This is another paragraph</p> |
注释:您也许已经注意到 XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。
- Xml必须正确嵌套
<b><i>This text is bold and italic</i></b> |
- Xml文档必须有根元素
XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。
<root> <child> <subchild>.....</subchild> </child> </root> |
- 实体引用
在 XML 中,有 5 个预定义的实体引用:
< |
< |
小于 |
> |
> |
大于 |
& |
& |
和号 |
' |
' |
单引号 |
" |
" |
引号 |
-
在xml中空格和换行会被保留
在xml文件中的标签里面出现的空格和换行,xml解析程序都会当标签内容处理。
3.属性
- Xml标签对大小写敏感
标签<Letter>和标签<letter>是不同的。
- Xml的属性值须加引号
<note date="08/08/2008"> <to>George</to> <from>John</from> </note> |
-
我最喜欢的方式
下面的三个 XML 文档包含完全相同的信息:
第一个例子中使用了 date 属性:
<note date="08/08/2008"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> |
第二个例子中使用了 date 元素:
<note> <date>08/08/2008</date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> |
第三个例子中使用了扩展的 date 元素(这是我的最爱):
<note> <date> <day>08</day> <month>08</month> <year>2008</year> </date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> |
在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
4.xml中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似。
<!-- This is a comment --> |
注释不能够在文档声明之前。
5.CDATE区
格式:<![CDATE[内容]]>
字符数据区:希望我们的标签不被解析出来。
6.处理指令:
让解释器如何解析xml文件内容。