Html目的:显示信息
CSS、JAVASCRIPT等,文档显示依赖的环境越多,浏览器开发
就越困难,不同浏览器的兼容性;
Xml目的:用层次模型保存数据;
Mysql:用关系模型保存数据;
XML标记命名规则
1) 标记必须以英文字母或下划线”_”作为开头,若果在XML声明中把
encoding属性值设置为”GB2312”,那么也可以使用中文开头;
2) XML标记名严格区分大小写;
3) 标记名不可以XML三个字母为开头(不论大小写);
4) 除了开始字符外,其他字符必须是英文、数字、下划线、连接线和
点“.“;
例如:
合法:
<abc> 、<_xy>、<书号>、<Hell-OK>等;
不合法:
<123a>、<-hello>、<书 号>、<XML123>、<ra%>等;
在使用XML文档声明的时候必须注意以下几点:
<?xml version=”” encoding=”” standalone=””>
1) 属性必须按照声明的顺序使用;
2) 在声明中,xml、version、encoding、standalone必需小写;
3) encoding值不区分大小写
encoding=”GB2312” encoding=“gb2312“是等价的;
1、特点:
严格区分大小写
元素必须闭合
根元素有且只能有一个
2、文档的构成
1)声明语句:必须在第一行出现,并且不能有空白;
<?xml version="1.0" encoding="UTF-8"?>
Version:浏览器支持的版本
Encoding:支持中文
2)规定DTD
内部:
<!DOCTYPE 根元素名称 [
元素规则(声明元素名称,声明元素与元素之间的关系)
<!ELEMENT 元素名称 类型>
类型:
EMPTY:空元素;
ANY:任何内容,可以为空;
PCDATA:文本(不能使用特殊符号&><’”)(解析,&)、CDATA;
CDATA:把内容当作字符来显示;
(子元素列表):逗号分隔,严格按照声明顺序来使用相应的子元素;
(子元素?):表示该子元素可以出现0~1次;
(子元素+):表示该子元素可以出现1~无数次;
(子元素*):表示该子元素可以出现0~无数次;
(子元素1|子元素2):表示可以出现子元素1或者子元素2其中一个;
(子元素1,(子元素2,子元素3)?):()表示分组,该组出现0~1次,
先后顺序严格按照声明;
属性规则
语法:
<!ATTLIST 元素名
属性名1 类型 默认值
……
>
类型:
ID :表示值为唯一ID;
IDREF:参照已存在(其他)ID;
IDREFS:值为一个或多个参照已存在(其他)ID;
多个参数中间用“空格”为分隔符,不能使用“逗号”;
NMTOKEN:值为合法的XML名称;
NMTOKENS:由空格分隔开的多个XML名称;
ENTITY:在DTD中声明实体名;
ENTITIES:在DTD中声明用空格分隔的实体名;
NOTATION:在DTD声明中的注释;
默认值:
#REQUIRED:该元素必须有该属性值;
<img src=””>
#IMPLIED:表示该属性值可有可无;
<img src=” ” alt=””
#FIXED :表示该属性有固定值;
Default:默认值;
实体规则
1) 一般实体
声明并引用普通字符或特殊字符的快捷方式的变量
实体引用是对实体的引用,包括内部、外部声明两种
语法格式:
声明
<!ENTITY 实体名 “值“>
<!ENTITY 实体名 SYSTEM “URL“>
<!ENTITY 实体名 PUBLIC “公共名“ “URL”>
支持嵌套,
注意:不要自己调用自己
外部DTD
文件:扩展名 .dtd
绝对路径:http://www.zhy.com/index.dtd
<!DOCTYPE 根元素名称 SYSTEM “URI/URL”>
<!DOCTYPE 根元素名称 PUBLIC “公共名称” “URL”>
注意:中文xmlspy存在“必须既是SYSTEM 又是PUBLIC“
建议使用英文,或者用?代替!