XML的进一步学习

XML简介

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:文本(不能使用特殊符号&><’”)(解析,&amp)、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“

            建议使用英文,或者用?代替!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值