XML简介
是什么XML
- XML 指可扩展标记语言(EXtensible Markup Language)。
- XML 是一种很像HTML的标记语言。
- XML 的设计宗旨是传输数据,而不是显示数据。
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
与HTML的差异
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
- XML 被设计用来传输和存储数据,其焦点是数据的内容。
- HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
XML用途
XML 把数据从 HTML 分离
如果您需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。
通过 XML,数据能够存储在独立的 XML 文件中。这样您就可以专注于使用 HTML/CSS 进行显示和布局,并确保修改底层数据不再需要对 HTML 进行任何的改变。
通过使用几行 JavaScript 代码,您就可以读取一个外部 XML 文件,并更新您的网页的数据内容
XML 简化数据共享
在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。
XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。
这让创建不同应用程序可以共享的数据变得更加容易。
XML 用于创建新的互联网语言
很多新的互联网语言是通过 XML 创建的。
这里有一些实例:
- XHTML
- 用于描述可用的 Web 服务 的 WSDL
- 作为手持设备的标记语言的 WAP 和 WML
- 用于新闻 feed 的 RSS 语言
- 描述资本和本体的 RDF 和 OWL
- 用于描述针针对 Web 的多媒体 的 SMIL
XML 树结构
实例
第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。
下一行描述文档的根元素
接下来 4 行描述根的 4 个子元素
最后一行定义根元素的结尾:
XML 语法
XML 文档必须有根元素
XML 必须包含根元素,它是所有其他元素的父元素
XML 声明
所有的 XML 元素都必须有一个关闭标签
XML 标签对大小写敏感
XML 属性值必须加引号
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
实体引用
在 XML 中,一些字符拥有特殊的意义。
如果直接使用可能会导致错误发生
空格保留
XML 元素
什么是 XML 元素
一个元素可以包含:
- 其他元素
- 文本
- 属性
- 或混合以上所有...
XML 命名规则
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
XML 属性
简介
XML元素具有属性,类似 HTML。
属性(Attribute)提供有关元素的额外信息。
避免 XML 属性
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(为未来的变化)
属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
尽量使用元素!!!
针对元数据的 XML 属性
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
类似HTMLid属性
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
XML 验证
简介
拥有正确语法的 XML 被称为"形式良好"的 XML。
通过 DTD 验证的XML是"合法"的 XML。
XML DTD
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构
使用 XSLT 显示 XML
XSLT 是首选的 XML 样式表语言。
XSLT(eXtensible Stylesheet Language Transformations)远比 CSS 更加完善。
XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTML
浏览器读取 XML 文件时,XSLT 转换是由浏览器完成的。
在使用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同结果。为了减少这种问题,可以在服务器上进行 XSLT 转换。
——参考菜鸟教程