一、XML简介
HTML用于显示的。XML被设计的宗旨是描述数据的。
4、注释
语法:<!--这是注释-->
注意:
声明前不能有注释
注释必须合理嵌套
5、CDATA区
CDATA:Character Data字符数据
作用: 把元素等看做普通字符串
语法:<![CDATA[内容]]>
6、XML中的特殊字符
要在元素内容中显示特殊字符本身,需要使用替代符号
& &
DTD:Document Type Definition文档类型定义
作用:约束XML编写
DTD文件保存到磁盘上时必须使用utf-8
*b、定义属性
语法:
1、<!ATTLIST 元素名称
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明>
2、属性值类型:
CDATA:取值是普通字符数据
ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复
3、设置说明:
#REQUIRED:该属性是必须的
#IMPLIED:可选的属性
#FIXED:属性的取值为一个固定值。 #FIXED "固定值"
直接值:表示属性的取值为该默认值
c、定义实体(了解)
1、引用实体:
特点:在DTD中定义实体,在XML中使用
语法:<!ENTITY 实体名称 "内容">
在XML中如何引用实体:
&实体名称;
2、参数实体:
特点:在DTD中定义实体,在DTD中使用
语法:<!ENTITY % 实体名称 "内容">
在DTD中如何使用:
%实体名称;
HTML用于显示的。XML被设计的宗旨是描述数据的。
- XML的标签是用户自行定义的。
- XML是可扩展标记语言。
1、XML的作用
描述有关系和层次结构的数据
2、XML的应用
a、描述数据
b、作为配置文件
注:在Java开发中,传统的配置文件是properties文件。
扩展名必须是properties,文件中的内容是以key=value的形式存在的。
例:db.properties;user=root;password=root;#url=... 注释
二、XML的语法
1、XML文档声明
必须出现在第1行。
语法:<?xml version="1.0"?> 注意:?与xml之间不能有空格
*version可以称为属性:取值固定1.0
*encoding属性:说明xml文档采用的编码。默认为utf-8
注意:保存到磁盘上使用的编码要与XML声明中的编码一致。否则出现错误
standalone:说明该xml文档是否独立存在。
2、元素
- 必须有结束标签。
- 如果没有主题内容,标签<tag1></tag1>可以写为<tag1/>
- 必须合理嵌套
- 一个XML文档中,有且只有一个根元素
- XML不会忽略文档中出现的空格、回车换行、制表符。
- 命名规范:只能包含字母、数字、下划线、减号和英文句点。
- 严格区分大小写;
3、元素的属性
元素的属性名不能重复
属性的取值必须用引号引起来(单或双)
属性可以用子元素的形式来替代。
元素的属性名不能重复
属性的取值必须用引号引起来(单或双)
属性可以用子元素的形式来替代。
4、注释
语法:<!--这是注释-->
注意:
声明前不能有注释
注释必须合理嵌套
5、CDATA区
CDATA:Character Data字符数据
作用: 把元素等看做普通字符串
语法:<![CDATA[内容]]>
6、XML中的特殊字符
要在元素内容中显示特殊字符本身,需要使用替代符号
& &
< <
> >
" "
' '
7、处理指令:PI
作用:用来指挥软件如何解析XML文档。
语法:<?开头 ?>结尾
常用的指令:xml-stylesheet引入样式
作用:用来指挥软件如何解析XML文档。
语法:<?开头 ?>结尾
常用的指令:xml-stylesheet引入样式
例:<?xml-stylesheet type="text/css"?>
三、约束DTD
1、 约束其实就是规定了XML中能出现的元素、属性个数及顺序等内容
2、格式良好的XML文档:遵循XML语法的XML文档
3、有效的XML文档:遵循约束的XML文档
4、有效的XML文档必定是格式良好的,但格式良好的并不一定是有效的。
DTD:Document Type Definition文档类型定义
作用:约束XML编写
DTD文件保存到磁盘上时必须使用utf-8
1、编写DTD的方式
a、直接在XML文档中编写(没有编码要求)
语法:
<!DOCTYPE 根元素名称[
//DTD定义
]>
b、在单独的文件中编写(文件的扩展名是dtd,且保存时必须使用utf-8编码)
引入外部定义的DTD文档:
1、 DTD文档在本地:
<!DOCTYPE 根元素名称 SYSTEM "DTD文档的存放路径">
2、 DTD文档在公共网络上:
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD的URL">
2、DTD语法细节(能看懂DTD)
*a、定义元素
语法:<!ELEMENT 元素名称 使用规则>
使用规则:
a、直接在XML文档中编写(没有编码要求)
语法:
<!DOCTYPE 根元素名称[
//DTD定义
]>
b、在单独的文件中编写(文件的扩展名是dtd,且保存时必须使用utf-8编码)
引入外部定义的DTD文档:
1、 DTD文档在本地:
<!DOCTYPE 根元素名称 SYSTEM "DTD文档的存放路径">
2、 DTD文档在公共网络上:
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD的URL">
2、DTD语法细节(能看懂DTD)
*a、定义元素
语法:<!ELEMENT 元素名称 使用规则>
使用规则:
- (#PCDATA):Parsed Character Data 表明该元素的主体内容是普通字符串
- EMPTY:表明该元素是空元素
- ANY:用于指示元素的主体内容为任意类型。
- (子元素):指示该元素有哪些孩子,如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档,如果子元素用“|”分开,说明任选其一
- 可以使用*、?、+说明元素出现的次数
*:0次或一次或多次
?:0次或一次
+:至少一次
什么都没有:有且必须一次
?:0次或一次
+:至少一次
什么都没有:有且必须一次
*b、定义属性
语法:
1、<!ATTLIST 元素名称
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明>
2、属性值类型:
CDATA:取值是普通字符数据
ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复
3、设置说明:
#REQUIRED:该属性是必须的
#IMPLIED:可选的属性
#FIXED:属性的取值为一个固定值。 #FIXED "固定值"
直接值:表示属性的取值为该默认值
c、定义实体(了解)
1、引用实体:
特点:在DTD中定义实体,在XML中使用
语法:<!ENTITY 实体名称 "内容">
在XML中如何引用实体:
&实体名称;
2、参数实体:
特点:在DTD中定义实体,在DTD中使用
语法:<!ENTITY % 实体名称 "内容">
在DTD中如何使用:
%实体名称;