您的位置:首页 > 其它

XML学习笔记

2013-12-26 23:47 246 查看
http://www.w3school.com.cn/xml/index.asp

1. XML简介

XML被设计用来传输和存储数据,其焦点是数据内容。HTML被设计用来显示数据,其焦点是数据的外观。即HTML旨在显示信息,而XML旨在传输信息

XML仅仅是纯文本,通过XML发明自己的标签,XML不是对HTML的替代(XML是对HTML的补充)

XML不会替代HTML,理解这一点非常重要。大多数Web应用程序中,XML用于传输数据,而HTML用于格式化并显示数据。

XML是独立于软件和硬件的信息传输工具。

2. XML用途

XML把数据从HTML分离:动态修改数据内容

XML简化数据共享:独立于软件和硬件的数据存储方法

XML简化数据传输:不兼容系统之间交换数据

XML简化平台变更:升级系统导致数据不兼容

XML使数据更有用:XML独立于硬件、软件以及应用系统

3. XML树结构

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

XML使用简单的具有自我描述的语法:

<?xmlversion="1.0" encoding="ISO-8859-1"?>

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forgetthe meeting!</body>

</note>

第一行是XML声明,定义了XML的版本和所使用的编码

下一行描述文档的根元素 <note>

接下来4行描述根的四个字元素(to,from,heading以及body)

最后一行是定义根元素的结尾:</note>

XML形成一种树结构:

XML必须包含根元素,该元素是其他元素的父元素

XML文档形成了一棵文档树,从根部开始,扩展到树的最底端。

<root>

<child>

<subchild>… </subchild>

</child>

</root>

父、子以及同胞等属于用于描述元素之间的关系。父元素拥有字元素,相同层级上的子元素成为同胞,所有元素均可拥有文本内容和属性。



<bookstore>

<book category="COOKING">

<titlelang="en">Everyday Italian</title>

<author>GiadaDe Laurentiis</author>

<year>2005</year>

<price>30.00</price>

</book>

<bookcategory="CHILDREN">

<titlelang="en">Harry Potter</title>

<author>JK. Rowling</author>

<year>2005</year>

<price>29.99</price>

</book>

<bookcategory="WEB">

<titlelang="en">Learning XML</title>

<author>ErikT. Ray</author>

<year>2003</year>

<price>39.95</price>

</book>

</bookstore>

4. XML语法

XML的语法规则很简单,且很有逻辑。这些规则很容易学习,也容易使用。

所有XML元素都须有关闭标签:

HTML有不闭合标签:<p>This is a paragraph

XML中省略关闭标签是非法的,所有元素都需要有关闭标签

<p>Thisis a paragraph</p>

XML标签大小写敏感:

XML元素使用XML标签进行定义。XML标签对大小写敏感,即对于标签<Letter>与<letter>是不同的。必须使用相同的大小写来编写打开标签和关闭标签。

<Message>这是错误的</message>

<message>这是正确的</message>

打开标签和关闭标签又被称为开始标签和结束标签。

XML必须正确地嵌套:

HTML可以有不正确嵌套的元素:

<b><i>Thistext is bold and italic</b></i>

在XML中,所有元素都必须彼此正确嵌套: <b><i>This textis bold and italic</i></b>,也即<i>元素是在<b>元素内打开的,那必须在<b>元素内关闭。

XML文档必须有根元素:

XML文档必须有一个元素是其他所有元素父元素

XML的属性值须加引号:

与HTML类似,XML也可以拥有属性(名称/值的对),在XML中XML的属性值需要加引号。

<note date=08/08/2008>

<to>George</to>

<from>John</from>

</note>

<notedate=” 08/08/2008” >

<to>George</to>

<from>John</from>

</note>

第一个文档中是错误的,note元素的date属性要加引号。

实体引用:

XML中,一些字符拥有特殊意义。“<”如果放在XML元素中,会发生错误,解析器会将“<”解析为新的元素的开始。

因此<message>if salary < 1000then </message> 是错误的,为了避免这种错误,使用实体引用来替代“<”字符:

<message>ifsalary < 1000 then </message>

XML有5个预定义的实体引用:

< < 小于

> > 大于

& & 和号

' ‘ 单引号

" “ 双引号

XML中只有字符 “<”和”&”是非法的,其他的则是一个好的习惯的体现。

XML中的注释:

XML中的编写注释的语法与HTML的语法很相似:

<!--This is a comment -->

XML中空格会被保留:

HTML会把多个连续空格字符裁剪为一个:

HTML: Hello my name is David.

输出: Hello my name is David.

在XML中,文档中的空格不会被删除。

XML以LF存储换行:

Windows应用程序中,通常以一对字符来存储:回车符(CR)和换行符(LF)。这对字符与打字机设置新行的动作有相似之处。Unix中新行以LF字符存储。

5. XML元素

XML元素指从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素,文本或两者的混合物。元素可以拥有属性。

<bookstore>

<bookcategory="CHILDREN">

<title>HarryPotter</title>

<author>JK. Rowling</author>

<year>2005</year>

<price>29.99</price>

</book>

<bookcategory="WEB">

<title>LearningXML</title>

<author>ErikT. Ray</author>

<year>2003</year>

<price>39.95</price>

</book>

</bookstore>

上例中,<bookstore>和<book>都拥有元素内容,他们都包含了元素,而<author>只有文本内容。<book>元素拥有属性(category=”CHILDREN”)

XML命名规则:1. 名称可以含有字母,数字以及其他字符。2.名字不能以数字或者标点符号开始。3.名称不能以字符xml或XML,或Xml开始。3名称不能包含空格

可以使用任何名称,没有保留的字词。

最佳的命名习惯:名称要简短,要避免使用”-”,”.”以及”:”等符号,

XML元素是可扩展的:对于如下的XML的例子,创建应用程序可以将to,from以及body等元素的内容提取出来:

<note>

<to>George</to>

<from>John</from>

<body>Don't forgetthe meeting!</body>

</note>

提取的内容可能如下:

MESSAGE

To: George

From: John

Don't forget the meeting!

如果将上述文件扩展为如下的形式,那么我们的应用程序仍然可以从其中抽取出原本的信息,而不会出现错误。

<note>

<date>2008-08-08</date>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forgetthe meeting!</body>

</note>

6.XML属性

XML元素可以在开始标签中包含属性,类似HTML,属性提供了关于元素的额外附加的信息。

HTML中 <img src=”computer.gif”>,src属性提供有关<img>元素的额外信息。在HTML中,属性提供了有关元素的额外信息。

XML的属性通常提供不属于数据组成部分的信息,在下面例子中,文件类型与数据无关,但是需要处理这个元素的软件来说很重要:

<filetype=”gif”> computer.gif</file>

XML属性必须加引号,单引号和双引号均可使用,例如person属性:

<personsex=”femal”> 或者可以写作: <person sex=’ femal’ >

如下的例子中,sex可以是属性,也可以是元素,提供了相同的信息量。何时使用属性,何时使用元素没有规则,但是XML中应尽量避免使用属性。

<person sex="female">

<firstname>Anna</firstname>

<lastname>Smith</lastname>

</person>

<person>

<sex>female</sex>

<firstname>Anna</firstname>

<lastname>Smith</lastname>

</person>

使用属性会引起一些问题:属性无法包含多重的值,属性无法描述树结构,属性不易扩展以及属性难以阅读和维护。

针对元数据的XML属性,有时候向元素分配ID引用,这些ID索引用于标识XML元素,起的作用与HTML中ID属性是一样的,

<messages>

<note id="501">

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

<note id="502">

<to>John</to>

<from>George</from>

<heading>Re: Reminder</heading>

<body>I will not</body>

</note>

</messages>

ID仅仅是一个标识,用于标识不同的便签,并不是便签数据的组成部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: