第十二天(XML)

来源:互联网 发布:nginx日志格式 编辑:程序博客网 时间:2024/06/14 15:27
 

    哎,前几天笔记本丢了。弄得自己感觉很不爽,不能写作业,上课听课也很费劲。现在设别齐全了,我的尽力把笔记补上才好。写的不怎么样,希望有人浏览到的话提出宝贵的建议。

 

XML简介

Html目的:显示信息

CSSJAVASCRIPT等,文档显示依赖的环境越多,浏览器开发

就越困难,不同浏览器的兼容性;

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) 在声明中,xmlversionencodingstandalone必需小写;

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 元素名

  属性名类型  默认值

……

>

类型:

例如:<!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

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

原创粉丝点击