XML 一
1. XML基础
1.1与html的比较
- 可扩展标记语言9eXtensible Markup Language,XML),为文档交换所设计,将数据和显示分离
- XML和HTML都属于SGML的子集
1.2XML应用领域
- 配置文件
- 特定领域:文档格式、数学、化学等
- Ajax
- 系统间数据交换
- 系统模型构建
1.3XML的应用
- 文档领域:基于XML的开放格式
– OpenOffice:ODF
– 微软Office:OOXML
– WPS:UOF
1.4Ajax
Asynchronous JavaScript and XML——异步JavaScript与XML
- XML只是一种容纳内容的方法
- XML本身对如何显示文档不加任何限制
- XML文档只有与如样式表之类的其它资源结合使用时,文档才能成为一个成品
1.5XML的优点
- 良好的可读性
- 方便的可扩展性
- 数据内容与形式分离
- 便于信息检索
- 跨平台
- 支持不同文字不同语种间的信息交互
- 为科学实践与交流提供捷径
- 改善网页的超链接性能
- 便于信息的长期保存
- 适合面向对象的程序开发
1.6XML的不足之处
- 涉及一套相关技术:
XML不是编程语言,而是一种数据描述技术;XML文件的显示、文件结构的变更、应用程序的操作等XML相关技术也是非常重要的。 - 数据处理能力有待提高:
与关系型数据库相比,在对结构化数据的描述、对大容量数据的检索效率上,XML的效率是没有关系型数据库方便和高效的;依赖于操作XML树的相关技术
2. XML相关技术
- 定义XML数据结构的技术
– XML基础
– 文档类型定义(DTD)和XML Schema - 显示和打印XML数据的技术
– CSS、FO、XSLT - XML数据结构转换技术
– XSL转换 - 处理XML的相关技术
– DOM、SAX、DSO
3. XML语法
- standalone属性
指明文档是否存在一个外部的文档实体或参数实体
如果不存在外部的标记声明,则 standalone =“yes”
如果可能存在这类外部标记声明,则 standalone =“no” (默认值) - 处理指令(Processing Instructions,PI),为XML解析器提供传送给应用软件或脚本程序的信息,可指定应用软件处理或显示文档的方法
其格式如下: <?指令名 属性=“属性值”?>
例如:<?xml-stylesheet type="text/css" href="book.css"?> - 注释语句对文档中其它形式语句进行提示或说明
语法:<!-- …… – >
注释不能出现在文档的第一行,文档的第一行必须是有关版本信息的处理指令
3.1DTD文档
- 文档类型定义( Document Type Definition,DTD)名是文档类型定义,用来为XML文档定义语义约束,它使用一系列合法的元素来定义文档的结构
- DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
3.2XML元素
- 一个完整的元素包括:<标记名 属性1=“属性值”>内容</标记名>
- XML标记完整的语法: "<"起、 ">"止
- XML标记提供和描述XML文件或数据包(XML实体)的内容结构
- XML文档必须具有根元素且根元素必须唯一
- 开始标记和结束标记需配对使用
- 标记不能交错使用
- 标记的命名规则
标记名的开头必须是字母或“_”
标记名中不能有空格
标记名只能包含 英文字母、数字、“_”、“-”、“. ”等字符
标记名区分大小写 - 元素属性规则
要符合XML的语法格式,属性值用引号(单引号或双引号)括起来
一个元素不可以拥有相同名称的两个属性,不同的元素可以拥有两个相同名称的属性
不但自定义标记中可以有属性,XML文档的处理指令中也可以有属性
当属性值中既包含单引号,又包含双引号时,属性值中的引号必须用实体引用方式来表示
3.3常用实体引用字符对照
3.4CDATA标记
- CDATA标记的作用是通知XML语法解析器,该标记中代码包括文字和标记都要当作纯文本来解析;比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。
- 界定该段代码的开始和结束标记为:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
- CDATA规则:
CDATA中不能包含字符串“<![CDATA[”或者“]]>”
CDATA中不能再包含CDATA(即不能嵌套)
CDATA段可以放置在元素内容中字符数据出现的任何位置