第一章基础知识
1. XML语法规则
1) 声明:<?xmlversion=”1.0” encoding=”UTF-8” standalone=”yes”?>
声明部分本身是可选的,但如果包含声明部分,必须是整个XML文档的第一行内容(第一行不能为注释或者空行)<?xml 必须顶格,且中间不能有空格;
完整的XML声明包含三个部分:
版本声明:version 是必须的,并且作为第一个属性出现;
编码声明:encoding GB2312、UTF-8、UTF-16 可以表示西文和中文;
其他合法属性取值:ISO-10646-UCS-2、ISO-10646-UCS-4、ISO-8859-1
文档独立性声明:
如果有encoding 属性和standalone属性,那么encoding属性必须放
standalone属性前面。
2) 处理指令格式:<?target-name data?>
<?处理指令 用于描述该处理指令的内容?>
例:<?xml-stylesheet href=”style.xsl” type=”text/xsl”?>
当XSL的执行引擎碰到这个处理指令时,就会根据href的取值获得指定的
xsl文件,并对输入的XML文档进行相应的转换。
3) 注释:<!-- -->注释的内容中不能出现连续两个横线
4) 元素:语法格式:
<element_nameatt1=”val1”>内容</element_name>
元素中可以包含文本、子元素、或者两者的组合
元素的名称必须以字母、下划线、冒号开头除首个字符外还可以是数字、
横线(-)点号(.)
元素名称大小写敏感,可以非英文
空元素可以写成<details/>既是开始标记又是结束标记,可以包含属性
5) 属性:
通常以名-值对的形式出现,属性的取值必须加上引号(单或双)
例:<author firstname=”tom”lastname=”hanks”></author>
命名规则同元素
6) 子元素VS属性
对于简单的标量数据(无结构数据)可以采用属性,否则应该采用子元素
可能在数目上发生变化的,应该使用子元素
使用子元素的方案在可扩展方面更好
7) 补充:
一个元素可以包含多个同名的子元素
子元素的顺序是非常重要的
元素在其开始标记中可以包含任意多个属性,但不能包含同名的属性
对于一个元素的属性,不分先后顺序
8) 元素的文本内容:
<在XML语法中具有特殊含义,所以不能在文本内容中出现
可以有 >
例:<lessthan>one<two</lesssthan>错误
特殊字符的预定义实体:
< <
> >
& &
‘ '
“ "
除此之外的其他实体,必须在使用前进行声明
9) CDATA段
<![CDATA[……]]>
里面可以放特殊字符,仅仅代表文本内容,避免歧义
同样CDATA段的文本内容中不能直接出现]]>,并且不能嵌套使用
10) 空白字符:空格、回车、换行、制表
对于连续出现的空白字符,解析器会将其缩减为一个空格字符
如果准备显示标记包含的全部空格,在编辑xml文件时将输入法换成“中文”
输入法,并选择“全角状态”来编辑空格字符。
2. Xml 的全称是eXtensibleMarkup Language
3. Xml相对于html的优点有哪些?
1) 可扩展性:HTML不具备扩展性,而XML时原标记语言,可以用于定
义新的标记语言
2) 侧重点:HTML侧重于如何表现信息,而XML侧重于如何结构化的描述信息
3) 语法要求:HTML不要求标记的嵌套、配对等,而XML严格要求嵌套、配对、遵循DTD树形结构
4) 可读性和维护性:HTML难于阅读和维护,而XML结构清晰,便于阅读维护
5) 数据和显示关系:HTML的内容描述和显示整合唯一,而XML是分离的新的标记语言
4. 如何判断一个xml文档是良构的?
开始标记必须与结束标记相对应
标记是大小写敏感的
标记必须正确的嵌套
属性值必须用引号括起来
有且只有一个根元素
5. 命名空间:默认的命名空间?
<myns:elementxmlns:myns=”http://www.myns.com”></myns:element>
myns:element表示element这个元素属于myns这个命名空间(从属关系)
myns只是命名空间的前缀(别名)
xmlns:myns=”http://www.myns.com是命名空间的声明,表示myns命名空
间的全称为http://www.myns.com
命名空间的作用域由声明该命名空间的元素的开始标记和结束标记界定
声明XML的命名空间:xmlns:prefix-name=”URI”
在同一个命名空间里所有的元素名和属性名必须唯一
缺省命名空间:<companyxmlns=”http://www.myns.com”></company>
6. 实体有哪些作用?
1) 代替无法输入的字符,键盘只有26个字母和一些简单的标点符号,而字
符集中由许多符号是无法在键盘中输入的,这时用实体来代替
2) 代替一些与xml规范保留字相冲突的内容,如:<等
3) 代替大段的重复的文本
第二章 DTD
1. DTD:Document Type Definition 文档类型定义
DTD 是一个面向 SGML 语言的规范,DTD不仅仅用于XML,还可以用它为任何
类型的SGML文档创建模式,包括HTML
语法形式相对简单,容易学习;
2. DTD 局限性:
DTD没有采用 XML 的语法形式
外部的DTD只能一个
不支持 XML 中的命名空间
不能定义复杂数据类型
不能很好实现应用程序不同模块间的相互协调,缺乏对文档结构、属性、数据类型等约束的足够描述能力等等
3. 内部DTD 文件: