XML(可扩展标记语言)
年由w3c发布了第一版的xml规范,与html负责展示数据不同,xml主要负责数据的封装传输
不使用浏览器打开显示数据xml严格区分大小写,以.xml为后缀结尾毫无容错性
至今仍是第一版
格式
1)头信息
?xmlversion=1.0encoding=编码?
此标签之前不能书写任何内容或注释
2)注释
!--注释内容--
3)元素
标签名***/标签名
标签名/
支持中文
4)属性
标签名属性名=属性值/
5)特殊字符
gt;lt;nbsp;
quot;双引号
apos;单引号
amp;在xml中不能直接书写
?key=valueamp;key2=value2
6)CDATA格式
将字符串放置在cdata格式中
换行空格特殊字符都可以被正确识别
DTD(DocumentTypeDefinition文档类型定义)
内部DTD
定义元素结构
将DTD文件直接书写在xml文件中用来规范元素的结构和属性可以使用哪些标签
标签出现的频率嵌套的标签等一系列的约束条件违反约束,xml无法被解析
!DOCTYPE根元素[
!ELEMENT根元素(一级子元素)
]
-----------------------------------
*表示此元素可以出现多次,也可以不出现
元素1,元素2逗号表示元素出现的顺序必须按照先后顺序,元素后面没有标识符
则有且只能出现一次
(元素1
元素2
元素N)其中的元素任选其一
?表示元素没有或只有一个
+至少有一个上不封顶
-----------------------------------
元素内部值的类型
(#PCDATA)元素内部为任意字符
ANY可以是任意字符串也可以是子元素
(#PCDATA
元素名)*元素内部可以是任意字符串,也可以是特定元素(必须先指定)
也可以两者同时存在
EMPTY元素内部没有任何内容或者子元素
!DOCTYPE学生信息[
!ELEMENT学生信息(student*)
!ELEMENTstudent(name,age,(location
home),hobby*,
gf?,teacher+,job*,criminal)
!ELEMENTname(#PCDATA)
!ELEMENTage(#PCDATA)
!ELEMENTlocation(#PCDATA)
!ELEMENThome(#PCDATA)
!ELEMENThobbyANY
!ELEMENTgf(#PCDATA)
!ELEMENTteacher(#PCDATA)
!ELEMENTjob(#PCDATA
secondJob)*
!ELEMENTcriminalEMPTY
!ELEMENTsecondJob(#PCDATA)
]
定义元素属性
!ATTLIST依附元素名属性名属性类型默认值
属性类型
ID全文唯一不能以数字开头
CDATA表示可以是任意字符串
(数据1
数据2
数据N)属性值只能选择其中的一个
--------------------------------------------------
默认值
#REQUIRED表示默认值必须书写
#IMPLIED可写可不写
默认值(20k)如果不书写默认值则默认值使用此数据
#FIXED表示此属性值固定为后面的默认值但是存在浏览器差异性
!DOCTYPE学生信息[
!ELEMENT学生信息(student*)
!ELEMENTstudent(name,age)
!ATTLISTstudentidID#REQUIRED
!ATTLISTstudenthomeCDATA#IMPLIED
!ATTLISTstudentsalary(10k
20k
30k)20k
!ATTLISTstudentjobCDATA#FIXED软件工程师
!ELEMENTname(#PCDATA)
!ELEMENTage(#PCDATA)
]