一、什么是XML
XML提供了一种结构化文档的表层语法,但没有对这些文档的含义施加任何语义约束,是设计用来传输和存储数据的。
XML 与 HTML 的主要差异:
(1)XML 不是 HTML 的替代。
(2)XML 和 HTML 为不同的目的而设计:XML 被设计为传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观。HTML 旨在显示信息,而 XML 旨在传输信息。
XML有以下的特点:
(1)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 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
(2)XML仅仅是纯文本。
XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。
(3)XML 允许创作者定义自己的标签和自己的文档结构。
上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的,这是因为 XML 没有预定义的标签。
(4)XML 是对 HTML 的补充。
XML 不会替代 HTML,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。所以对 XML 最好的描述是:XML是独立于软件和硬件的信息传输工具。
二、什么是XML Schema?
XML Schema是一个约束XML文档结构和为XML扩充了数据类型的语言。XML Schema是基于XML的DTD替代者,可以描述XML文档的结构,同时也可以作为XSD(XML Schema Definition)来引用。(DTD(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则,文档可以根据某种DTD语法规则验证格式是否符合此规则。)
什么是XML Schema?XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。
XML Schema:
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
XML Schema是DTD的继任者,理由如下:
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完善,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型
- XML Schema 支持命名空间
XML Schema的特性:
(1)XML Schema最重要的能力之一就是对数据类型的支持;
(2)XML Schema由XML编写;
(3)XML Schema可以保护数据通信;
当数据从发送方被发送到接受方时,其要点是双方应有关于内容的相同的“期望值”。通过 XML Schema,发送方可以用一种接受方能够明白的方式来描述数据。
一种数据,比如 "03-11-2004",在某些国家被解释为11月3日,而在另一些国家为当作3月11日。但是一个带有数据类型的 XML 元素,比如:<date type="date">2004-03-11</date>,可确保对内容一致的理解,这是因为 XML 的数据类型 "date" 要求的格式是 "YYYY-MM-DD"。
(4)XML Schema是可扩展的,因为它们由XML编写;
(5)XML Schema可以捕获XML中的错误。