XML学习笔记
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仅仅是一个标识,用于标识不同的便签,并不是便签数据的组成部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |