DTD的约束
文章目录
DTD的约束1.DTD介绍2. 在XML加入DTD声明3. 什么是格式良好XML4. 元素定义的语法5.元素的分类6. 属性定义的语法8.XML中的特殊符号9. 案例:写一个DTD限制config.xml
1.DTD介绍
DTD为英文Document Type Definition,中文意思为“文档类定义”。DTD肩负着两重任务:一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码。
2. 在XML加入DTD声明
<!DOCTYPE root[]>
3. 什么是格式良好XML
3.1 有且只有一个根元素 3.2 XML标签大小写正确区分 3.3 正确使用结束标签 3.4 正确嵌套标签 3.5 使用了合法的标签名 3.6 定义有效的属性
4. 元素定义的语法
<!ELEMENT element-name (type)>
注:根标签也要定义
5.元素的分类
<!ELEMENT element-name EMPTY>//空元素
<!ELEMENT element-name (#PCDATA)>//文本元素
<!ELEMENT element-name (e1,e2)>//混合元素
6. 属性定义的语法
DTD中属性的定义是这样的:
<!ATTLIST 元素名称 属性名称 类型 属性特点 属性名称 类型 属性特点...... >
其中,属性的类型有下面5种:
(1) CDATA
(2) ID
(3) IDREF/IDREFS
(4) Enumerated
(5) ENTITY/ENTITIES
8.XML中的特殊符号
&(逻辑与) &
<(小于) <
>(大于) >
"(双引号) "
'(单引号) '
9. 案例:写一个DTD限制config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config [
<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ELEMENT forward (#PCDATA)>
<!ATTLIST action
path CDATA #IMPLIED
type CDATA #IMPLIED
>
<!ATTLIST forward
name CDATA #IMPLIED
path CDATA #IMPLIED
redirect (true|false) 'true'
>
]>
<!--
config标签:可以包含0~N个action标签
-->
<config>
<!--
action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径
type:字符串,非空,子控制器的完整类名
-->
<action path="/registerAction" type="test.action.RegisterAction">
<forward name="success" path="/index.jsp" redirect="true" />
<forward name="failed" path="/register.jsp" redirect="false" />
</action>
<action path="/loginAction" type="test.action.LoginAction">
<forward name="a" path="/index.jsp" redirect="false" />
<forward name="b" path="/welcome.jsp" redirect="true" />
</action>
</config>