XML 笔记
首先:学习 XML 需要有一定的 HTML 和 JavaScript 的基础
一、什么是 XML
XML 是可扩展标记语言 eXtensible Markup Language
多用来传输和储存数据
- XML 是一种标记语言
- XML 是用来传输数据的语言而不是显示数据
- XML 语言需要自行定义标签并且具有自我描述性
- XML 在意的是数据内容(传输信息)
- HTML 在意的是数据的外观(显示信息)
举例说明:XML 文档实例 Jani 写给 Tove 的便签
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
上面的这条便签具有自我描述性。它包含了发送者和接受者的信息,同时拥有标题以及消息主体。但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
通过 XML 可以发明自己的标签
- 上述例子中标签中没有在任何 XML 标准中定义过
<to>和<form>
XML 中没有预定义的标签相 - 对比 HTML 中的标签全都是通过 HTML 定义过的标签
- XML 允许创业者定义自己的标签和自己的文档结构
二、XML 的用途
XML 把数据从 HTML 分离
首先举一个例子当你需要在 HTML 文档中显示动态数据,那么每当数据改变的时候,都要花费我们大量的时间去编辑 HTML。通过 XML 数据能够给储存在独立的 XML 文件中。这样我们就可以专注于使用 HTML/CSS 进行显示和布局,并且可以在修改底层数据的时候不在需要对 HTML 进行改变。 通过使用几行 JavaScript 代码,我们可以读取一个外部 XML 文件,并更新我们的网页数据内容。
XML 简化数据共享
XML 数据以纯文本格式进行存储,因此提供了一种独立与软件和硬件的数据储存方法。这就可以让创建不懂应用程序可以共享的数据变得更加容易
简化数据传输
互联网上的不兼容的系统之间交换数据对于程序员来说是一件很费时的事情,这时 yogaXML 交换数据就降低了从不兼容的应用程序中读取数据的复杂性
三、XML 的树结构
XML 文档形成了一种树的结构,它从 “根部” 开始,然后扩展到 “枝叶”。
树结构是通常被称为 XML 树,并且可以很容易地描述任何 XML 文档。
通过采用树状结构,你可以知道所有从根开始的后续的分行及支行。
一个 XML 文档实例
XML 文档使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第一行是 XML 的生命。它定义 XML 的版本(1.0)和所使用的编码(ISO-8859-1 = Latin-1 / 西欧字符集)。下一行描述文档的根元素(比如说:本文档是一个标签):
<note>
接下来的四行描述根的四个子元素(to,form,heading 以及 body):
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
最后一行的定义根元素的结尾:
</note>
这个事例中描述的是一张 Jani 写给 Tove 的便签显示出了 XML 具有独特的自我描述性
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>
元素中有四个子元素:<title>、<author>、<year>、<price>
。
XML 语法
语法规则
所有 XML 都必须有一个关闭标签
在 HTML 中,有些元素不必须有一个关闭标签:
<p>This is a paragraph.
<br>
而在 XML 中,省略关闭标签是非法的
<?xml version="1.0" encoding="UTF-8" ?>
<p>This is a paragraph.</p>
注释:打开标签和关闭标签通常被称为开始标签和结束标签,本质上是相同的。
XML 是大小写敏感的语言
XML 标签对大小写敏感,需要用相同的大小写来编写打开标签和关闭标签
<Message>This is incorrect</message>
<message>This is correct</message>
XML 必须正确嵌套
在 HTML 中,经常会有没有正确嵌套的元素:
<b><i>This text is bold and italic</b></i>
而在 XML 中,所有元素都必须彼此正确的嵌套
<b><i>This text is bold and italic</i></b>
两者的区别是 i 和 b 的结束标签是否要和 i 和 b 的起始标签相对应。
XML 文档必须有根元素
XML 文档必须有一个元素是所有其他元素的父元素。该元素为根元素。
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
XML 属性值必须加引号
与 HTML 类似,XML 元素也可以拥有属性(名称、值得对)。
在 XML 中、XML 的属性值必须加引号。
请研究下面两个 XML 文档。第一个是错误的,第二个是正确的:
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
实体引用
在 XML 中,一些字符拥有特殊的意义
如果我们把字符”<” 放到 XML 元素中,会发生错误,这是因为解析器会把它当做新元素的开始。
这样会产生 XML 错误:
<message>if salary < 1000 then</message>
为了避免这个错误需要用实体引用来代替”<” 字符
<message>if salary < 1000 then</message>
在 XML 中,有五个预定义的实体引用:
在 XML 中,只有字符 “<” 和“&”确实是非法的,大于号是合法的但是用实体引用来代替它是好的习惯
过两天再继续发布第二期