XML学习笔记
可扩展标记语言xml(eXtensibleMarkupLanguage)可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 XML被设计用来传输和存储数据; 超文本标记语言(HTML)被设计用来显示数据; 它们都是标准通用标记语言的子集。 一、什么是可扩展标记语言(XML)可扩展标记语言是一种很像超文本标记语言的标记语言。它的设计宗旨是传输数据,而不是显示数据。它的标签没有被预定义。您需要自行定义标签。它被设计为具有自我描述性。它是W3C的推荐标准。 二、可扩展标记语言(XML)和超文本标记语言(HTML)之间的差异它不是超文本标记语言的替代。 它是对超文本标记语言的补充。 它和超文本标记语言为不同的目的而设计: 它被设计用来传输和存储数据,其焦点是数据的内容。 超文本标记语言被设计用来显示数据,其焦点是数据的外观。 超文本标记语言旨在显示信息,而它旨在传输信息。 对它最好的描述是:它是独立于软件和硬件的信息传输工具。 注意:XML没有任何行为 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的用途XML应用于web开发的许多方面,常用于简化数据的存储和共享。 XML把数据从HTML分离。如果你需要在HTML文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑HTML。通过XML,数据能够存储在独立的XML文件中。这样你就可以专注于使用HTML进行布局和显示,并确保修改底层数据不再需要对HTML进行任何的改变。通过使用几行JavaScript,你就可以读取一个外部XML文件,然后更新HTML中的数据内容。 XML简化数据共享。在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。 XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。 这让创建不同应用程序可以共享的数据变得更加容易。 XML简化数据传输。通过XML,可以在不兼容的系统之间轻松地交换数据。对开发人员来说,其中一项最费时的挑战一直是在因特网上的不兼容系统之间交换数据。由于可以通过各种不兼容的应用程序来读取数据,以XML交换数据降低了这种复杂性。 四、XML树结构XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。 一个XML文档实例。XML使用简单的具有自我描述性的语法: <?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/西欧字符集)。 下一行描述文档的根元素(像在说:“本文档是一个便签”): <note> 接下来4行描述根的4个子元素(to,from,heading以及body): <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> 最后一行定义根元素的结尾: </note> 从本例可以设想,该XML文档包含了John给George的一张便签。 说明: XML文档形成一种树结构 XML文档必须包含根元素。该元素是所有其他元素的父元素。 XML文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。 所有元素均可拥有子元素: <root> <child> <subchild>.....</subchild> </child> </root> 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。 所有元素均可拥有文本内容和属性(类似HTML中)。实例
上图表示下面的XML中的一本书: <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> 例子中的根元素是<bookstore>。文档中的所有<book>元素都被包含在<bookstore>中。 <book>元素有4个子元素:<title>、<author>、<year>、<price>。 所有XML元素都须有关闭标签在HTML,经常会看到没有关闭标签的元素: <p>Thisisaparagraph <p>Thisisanotherparagraph 在XML中,省略关闭标签是非法的。所有元素都必须有关闭标签: <p>Thisisaparagraph</p> <p>Thisisanotherparagraph</p> 注释:您也许已经注意到XML声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是XML元素,也不需要关闭标签。 XML标签对大小写敏感XML元素使用XML标签进行定义。 XML标签对大小写敏感。在XML中,标签<Letter>与标签<letter>是不同的。 必须使用相同的大小写来编写打开标签和关闭标签: <Message>这是错误的。</message><message>这是正确的。</message> 注释:打开标签和关闭标签通常被称为开始标签和结束标签。不论您喜欢哪种术语,它们的概念都是相同的。 XML必须正确地嵌套 在HTML中,常会看到没有正确嵌套的元素: <b><i>Thistextisboldanditalic</b></i> 在XML中,所有元素都必须彼此正确地嵌套: <b><i>Thistextisboldanditalic</i></b> 在上例中,正确嵌套的意思是:由于<i>元素是在<b>元素内打开的,那么它必须在<b>元素内关闭。 XML文档必须有根元素 XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。 <root> <child> <subchild>.....</subchild> </child> </root> XML的属性值须加引号与HTML类似,XML也可拥有属性(名称/值的对)。 在XML中,XML的属性值须加引号。请研究下面的两个XML文档。 第一个是错误的,第二个是正确的: <h2><note date=08/08/2008>错误</h2><to>George</to> <from>John</from> </note> <h2><note date="08/08/2008">正确</h2><to>George</to> <from>John</from> </note> XML中的注释在XML中编写注释的语法与HTML的语法很相似: <!--Thisisacomment-->
|