XML简介
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 类型 默认值
……
>
类型:
例如:<!ATTLIST input
name CDATA "zhy"
type (text|radio|submit|checkbox) #REQUIRED
alt (text|radio|submit|checkbox) #IMPLIED
value CDATA #FIXED "abc"
classname IDREFS #IMPLIED>
>
CDATA:表示值为字符,默认值表示未赋值时自动给定的值;
(en1|en2…..):枚举类型,表示只能从给定集合选择对应值;
ID :表示值为唯一ID;
IDREF:参照已存在(其他)ID;
IDREFS:值为一个或多个参照已存在(其他)ID;
多个参数中间用“空格”为分隔符,不能使用“逗号”;
NMTOKEN:值为合法的XML名称;
NMTOKENS:由空格分隔开的多个XML名称;
ENTITY:在DTD中声明实体名;
ENTITIES:在DTD中声明用空格分隔的实体名;
NOTATION:在DTD声明中的注释;
例如:
#id1 ul li{
……}
.a b #id1 ul
默认值:
#REQUIRED:该元素必须有该属性值;
<img src=” ”>
#IMPLIED:表示该属性值可有可无;
<img src=” ” alt=””
#FIXED :表示该属性有固定值;
Default:默认值;
实体规则
1) 一般实体
声明并引用普通字符或特殊字符的快捷方式的变量
实体引用是对实体的引用,包括内部、外部声明两种
语法格式:
声明
<!ENTITY 实体名 “值“>
<!ENTITY 实体名 SYSTEM “URL“>
<!ENTITY 实体名 PUBLIC “公共名“ “URL”>
例如:
<!ENTITY abc “ABCabcABC”>
&;
<!ENTITY amp “&”>
引用
&实体名;
支持嵌套,
注意:不要自己调用自己
<!ENTITY abc SYSTEM “a.ent”>
a.ent内容如下:
“abcabcabc”
&abc;
]>
©right; 版权声明
& < > “ ‘
外部DTD
文件:扩展名 .dtd
绝对路径:http://www.zhy.com/index.dtd
<!DOCTYPE 根元素名称 SYSTEM “URI/URL”>
<!DOCTYPE 根元素名称 PUBLIC “公共名称” “URL”>
注意:中文xmlspy存在“必须既是SYSTEM 又是PUBLIC“
建议使用英文,或者用?代替!