数据库--约束
1. 什么是格式良好XML
1.1 有且只有一个根元素
1.2 XML标签大小写正确区分
1.3 正确使用结束标签
1.4 正确嵌套标签
1.5 使用了合法的标签名(A-Za-z0-9_-)
1.6 定义有效的属性
注1:什么是有效的XML
2. 在XML加入DTD声明
<!DOCTYPE 根元素[]>
3. 元素定义的语法
<!ELEMENT element-name (type)>
4. 元素的分类
<!ELEMENT element-name EMPTY>//空元素
<!ELEMENT element-name (#PCDATA)>//文本元素
<!ELEMENT element-name (e1,e2)>//混合元素
5. 元素的限制
, 顺序
| 或
次数: + 1~n
* 0~n
? 0~1
没有 1次
6. 属性定义的语法
<!ATTLIST element-name
att_name type
>
ID
(男|女) "男" 枚举
CDATA
IDREF
#REQUIRED/#IMPLIED
7. XML中的特殊符号
&(逻辑与) &
<(小于) <
>(大于) >
"(双引号) "
'(单引号) '
&变量名;
8. 外部DTD
*.dtd
SYSTEM
PUBLIC
案例一 合法的XML
案例二 DTD对元素限制
案例三 web.xml文件中servlet标签出错分析
案例四 DTD对属性限制
写一个DTD限制config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ELEMENT forward EMPTY>
<!ATTLIST action
path CDATA #REQUIRED
type CDATA #REQUIRED
>
<!ATTLIST forward
name CDATA #REQUIRED
path CDATA #REQUIRED
redirect (false|true) "false"
>
]>
<!--
config标签:可以包含0~N个action标签
-->
<config>
<!--
action标签:可以饱含0~N个forward标签
path:以/开头的字符串,并且值必须唯一 非空
type:字符串,非空
-->
<action path="/regAction" type="test.RegAction">
<!--
forward标签:没有子标签;
name:字符串,同一action标签下的forward标签name值不能相同 ;
path:以/开头的字符串
redirect:只能是false|true,允许空,默认值为false
-->
<forward name="failed" path="/reg.jsp" redirect="false" />
<forward name="success" path="/login.jsp" redirect="true" />
</action>
<action path="/loginAction" type="test.LoginAction">
<forward name="failed" path="/login.jsp" redirect="false" />
<forward name="success" path="/main.jsp" redirect="true" />
</action>
</config>