一.XML中的限制?
DTD-文档类型定义,对XML里面的属性进行约束,
Schema-基于XMl的DTD的替代者(DTD的升级版)
Schema和DTD的关系和区别
关系:
XML Schema 用于定义 XML 文档的合法元素,类似 DTD。
XML Schema 是基于 XML 的 DTD 替代物。
区别:
与 DTD 不同,XML Schema 支持数据类型和命名空间。
二.什么是格式良好的XML?
1. 有且只有一个根元素 // XML文档必须有唯一的文档根.根元素包含 其余的文档数据,换言之,其余的部分就是根元素的子 元素
2. XML标签大小写正确区分 //XML区分大小写,html不区分大小写
3. 正确使用结束标签 //<css><css>错误的,正确的<css></css>
4. 正确嵌套标签 //<name>张三<age>10</age></name>错误的,正确的 <name>张三</name>
5. 使用了合法的标签名 //在XML中使用元素要遵守一些命名规范 (跟java命名规范类似),比java要多 (<servlet-name></servlet-name>如-字符), 即区分大小写等
6.定义有效的属性
三. 在XML加入DTD声明
<!DOCTYPE root[]> //root根元素
例:
<?xml version="1.0" encoding="UTF-8"?>
<persons> //混合元素
<person pid="p1" sex="男" qq="aaa" parent="p2"> //混合元素
<name>张三</name> //文本元素
<age>10</age> //文本元素
<contact> //混合元素
<phone>1234567</phone> //文本元素
</contact>
<br/> //空元素
</person>
<person pid="p2"> //混合元素
<name>张三丰</name> //文本元素
<age>35</age> //文本元素
<contact> //混合元素
<email>123@qq.com</email> //文本元素
</contact>
</person>
</persons>
根元素:<persons></persons>
元素:<person></person>,<name></name>,<age></age>等
四:元素定义的语法
<!ELEMENT element-name (type)>
元素的分类(不只这三种,下面三种比较常用)
<!ELEMENT element-name EMPTY> //空元素
<!ELEMENT element-name (#PCDATA)> //文本元素
<!ELEMENT element-name (e1,e2)> //混合元素
空元素(没有的内容的标签):</br>,<br></br>
文本元素(可以被解析的字符数据 ): <name>张三</name>,<age>35</age>等
混合元素(标签体包含了其它的元素):如上例
五:元素的限制(三种)?
, : 顺序
| : 或
次数: +, 1~n
*, 0~n
?, 0或1
没有 1
6. 属性定义的语法
<!ATTLIST element-name //定义一组属性列表
att_name type
>
ID // ID类型,值唯一
(男|女) "男" //列表类型
CDATA //文本类型
IDREF //引用另外一个ID属性的值(可以用自己的id),类似于数据库的外键,注意跟数据库没有关系
#REQUIRED(非空)/#IMPLIED(可以为空)
7. XML中的特殊符号
&(逻辑与) &:
<(小于) &It;
>(大于) >
"(双引号) "
'(单引号) '