一、什么是XML?
XML全称是Extensible Markup Language,可扩展标记语言。很类似HTML。XML的目的是传输数据而非显示数据。XML的标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。是W3C的推荐标准。
二、为什么学习XML?
用来解决程序间数据传输的格式问题
做配置文件
充当小型数据库
三、XML与HTML的区别。
首先,XML不是HTML的替代,他们是为不同的目的而设计的,XML用来传输存储数据,焦点是数据的内容;HTML用来显示数据,焦点是数据的外观。XML用来传输信息,HTML用来显示信息。
四、XML基本语法特点
1、XML是不作为的,也就是说它不会做任何事情,只用来结构化,存储以及传输信息。
例如下面的便签:
<Note> <Receiver>Bob</Receiver> <Sender>John</Sender> <Title>Reminder</Title> <Contents>Don't forget the meeting!</Contents> </Note>
很显然,上面的这条便签具有自我描述性,它拥有标题,内容,发送者,接受者等信息。
但是,这个XML文件没有做任何事情,它仅仅只是一些信息,我们依然需要编写程序才能发送接收和显示这个文档。
2、XML仅仅只是文本。
3、XML中的标签由设计者决定。
4、XML仅仅是对HTML的补充而非替代。
5、XML是一种树结构,文档中包含且必须有根元素,由根部开始扩展到底部。
例如:
<root> <child> <subchild>.....</subchild> </child> <child2> <subchild2>.....</subchild2> </child2> </root>
6、XML区分大小写
7、所有元素必须有关闭标签<p> </p>
8、XML必须正确嵌套<B><C> </C></B>是对的,而<B><C> </B></C>是错的。
9、XML的属性必须加引号,XML中单引号和双引号都同等看待,单引号中可嵌套双引号,双引号中可嵌套单引号。
10、XML的转义: < > & ' " 这几个字符不能直接写在内容里。分别对应的转义为< > & ' "
11、命名规则,最好是<book_title>,尽量避免 - . : 这种字符。
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
12、在XML中,尽量避免使用属性,多使用子元素,这样可以使结构看起来更加清晰。例如:
这是使用属性的代码:
<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
这是使用子元素的代码:
<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
13、<![CDATA[
......
]]> 这个中间可以写任意内容,包括<>&等等,但是内容中不能出现连续的]]>。
五、XML的验证
拥有正确语法的XMl被称为“形成良好”的XML;通过DTD验证的XML是“合法”的XML。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE note SYSTEM "Note.dtd"> <!--这是注释:上一行是对外部DTD的引用,用来校验元素名称是否合法--> <note> <receiver>George</receiver> <sender>John</sender> <title>Reminder</title> <contents>Don't forget the meeting!</contents> </note>
Note.dtd
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT receiver (#PCDATA)> <!ELEMENT sender (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT contents (#PCDATA)> ]>
六、一个完整的XML文档
<?xml version="1.0" encoding="utf-8"> <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>