1.xml:
EXtensible Markup language,可扩展标记语言.
2.标记的规定:
<1>标记必须以字母或下划线开头
<2>标记名称不能包含空格
<3>标记区分大小写
3.xml文档语法:
<1>.文件的第一句必须是相关版本的声明
<2>.属性的值必须使用双引号包含起来
<3>.特殊字符必须用xml中的特定编码来表示
4.xml声明一般是xml文档的第一行
<?xml version="1.0" encoding="utf-8" standalone="no"?>
5.xml文件中的元素:
<1>.一个xml文件中必须有且只有一个根元素
<2>.子元素都封装在根元素中成树状结构
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<isbn>11111</isbn>
<name>java</name>
<price>23</price>
</book>
<book>
<isbn>22222</isbn>
<name>jsp</name>
<price>44</price>
</book>
</books>
6.DTD:
Document Type Definition,文档类型定义
作用:描述xml文档结构
一个DTD文档包含:
元素定义规则(ELEMENT)
元素之间关系规则
属性的定义规则(ATTLIST)
可使用的实体(ENTITY)或符号(NOTATION)规则
7.内部DTD(standalone="yes")
外部DTD(standalone="no")
8.DTD元素定义:
<!ELEMENT books(book)>
<!ELEMENT book(isbn,title,price)>
<!ELEMENT isbn(#PCDATA)>
<!ELEMENT title(#PCDATA)>
<!ELENEMT price(#PCDATA)>
定义一标记元素只含有文本元素
<!ELEMENT 标记名称 (#PCDATA)>
定义空标记,不含任何子元素,不含纯文本
<!ELEMENT 标记名称 EMPTY>
不对标记做限定,可以是任何纯文本数据,也可以含有子元素
<!ELEMENT 标记名称 ANY>
9.DTD中特殊的限定符号:
+:子标记必须出现1次或多次
*:子标记可以出现0次或多次
?:子标记可以出现0次或一次
10.DTD中定义属性:
<!ATTLIST 元素名称
属性名称 属性类型 缺省值
属性名称 属性类型 缺省值
。。。
>
缺省值:可以是字符串或关键字
关键字:#IMPLED(元素的实例中可以忽略该属性)
#REQUIRED(元素的所有实例必须由该属性的值)
#FIXED(元素实例中该属性的值必须为指定的固定值)
字符串:必须有该属性,可以不显示的声明
属性类型:CDATA(所有属性类型中的其中一种)
属性值可以是任何字符(包括数字和中文)
属性命名规则:
由字母,数字,下划线,点,连接符组成,必须以字母或者下划线开头。
11.一些属性类型介绍:
CDATA:
指的是纯文本,即由字符,符号“&”,小于号“<”和引号“""”组成的字符串。
ID:
表明该属性的取值必须是唯一的。
IDREF/IDREFS:
IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。
IDREFS同IDREF,但是可以具有由空格分开的多个引用。
Enumerated:
事先定义好一些值,属性的值必须在所列出的值的范围内。
12.DTD定义属性实例
<!ELEMENT 学生信息(学生+)>
<!ELEMENT 学生(#PCDATA|姓名|年龄|地址)*>
<!ELEMENT 姓名(#PCDATA)>
<!ELEMENT 年龄 EMPTY>
<!ELEMENT 地址(#PCDATA)>
<!ELEMENT 班级号(#PCDATA)>
<!ATTLIST 学生
SID CDATA #REQUIRED
性别 (男|女) #REQUIRED
婚姻状态 (已婚|未婚) #IMPLIED
>
13.DTD实体:
<1>.定义:
实体是用于定义引用普通文本或特殊字符的快捷方式的变量。
<2>.分类:
按实体内容:可解析实体和不可解析实体
按逻辑存储:内部实体(DTD文档内定义)和外部实体(外部某个文件)
按适用范围:一般实体(可出现在xml和dtd中)和参数实体(只可以出现在DTD中)
<3>.语法:
定义内部一般实体:(引用方式:&实体名)
<!ENTITY 实体名 "实体值">
注意:
a.不能在元素和属性声明中使用实体
b.不能产生循环调用
定义外部一般实体:(引用方式:&实体名)
<!ENTITY 实体名 SYSTEM "URI/URL">
注意:
a.外部实体的文件必须和DTD文件在同一文件夹中
b.字符编码要统一
定义内部参数实体:(引用方式:%实体名)
<!ENTITY %实体名 "文本内容">
定义外部参数实体:(引用方式:%实体名)
<!ENTITY %实体名 STYSTEM "外部文件URL地址">
注意:参数实体只能用于DTD元素和属性的声明中
14.CDATA与PCDATA区别:
PCDATA是被解析器解析的实体。文本内的标签会被当做标记,实体会被展开,只能用于DTD文档中。
CDATA是不被解析器解析的实体。文本内的标签不会被当做标记,实体不会被展开,只能用于XML文档中。
15.XML与HTML的比较
<1>.XML不能替换HTML,是HTML的补充
<2>.XML标记由架构或文档的作者定义,并且是无限制的。HTML标记则是预定义的,HTML作者只能使用当 前HTML标准所支持的标记。
<3>.XML侧重显示数据的结构和关系,HTML数据的形式显示。
<4>.和HTML相同之处是XML只做显示,不作具体操作。