如何使用DTD

1.什么是DTD?
        文件类型定义(约束)

2.什么是XML?
        XML:可扩展标记语言
        HTML:超文本标记语言  
3.XML的两种文档约束
        DTD、Schema
4.XML格式要求(合法XML)
       1)有且只有一个根节点;
       2)由开始标签和结束标签组成;
       3)XML标签区分大小写;
       4)正确嵌套标签;

5.使用DTD
      5.1 在XML中加入DTD申明
          1)内部申明:<!DOCTYPE root[]>
          2)外部申明:<!DOCTYPE 文档根节点 SYSTEM “DTD文件名”>

    5.2 元素定义语法(DTD对元素的限制)
        基本语法:<! ELEMENT 元素名称 元素类型 >

        元素分类:EMPTY     空元素      <br/>
                         (#PCDATA)  文本元素   
                         (e1,e2)    混合元素

      元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(0次或多次), +(1次或多次)

    5.3 属性定义语法(DTD对属性的限制)
        基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
    
        属性类型:ID/CDATA/ENUM (男|女)  

        设置说明:#REQUIRED(必须)/#IMPLIED(可选)

    5.4 特殊符号转义
        &(逻辑与)      -->  &amp;
        >(大于)     -->  &gt;
        <(小于)     -->  &lt;
        ‘(单引号)     -->  &apos;
        “(双引号)     -->  &quot;

案例      

<?xml version="1.0" encoding="UTF-8"?>
	<!--
		config标签:可以包含0~N个action标签
	-->
<!DOCTYPE config[
		<!ELEMENT config (action*) >
		<!ELEMENT action (forward*) >
		<!ATTLIST action path CDATA #REQUIRED
						 type CDATA #REQUIRED
		>
		<!ELEMENT forward EMPTY >
		<!ATTLIST forward name ID #REQUIRED
						  path CDATA #REQUIRED
						  redirect (false|true) #IMPLIED
		>
]>
<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="faileds" path="/login.jsp" redirect="false" />
		<forward name="succes" path="/main.jsp" redirect="true" />
	</action>
</config>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值