J2EE基础:DTD

本节知识梳理:

文章目录

本节知识梳理:

文章目录

前言

一、dtd是什么?

 理解DTD的原理图解:

二、什么是格式良好的XML?

1.什么是XML?

2.XML的作用:

3.标准的XML格式:  

三、元素定义

1.在XML加入DTD声明

2.元素分类

3.元素的限制

四、属性定义

1.语法:

2.属性类型type

3.属性描述

五、总结


前言

今天我们会讲到一个新的知识点dtd (文档类型定义)下面会简单介绍,尽情期待吧!


一、dtd是什么?

DTD就是用来约束XML文档的,给XML文档设立良好格式,使其在一定的规范下使用,除了DTD技术外,还有Schema技术,也是用于约束XML文档的。

参考文档:DTD http://www.w3school.com.cn/dtd/index.asp

参考文档:Schema http://www.w3school.com.cn/schema/index.asp

 理解DTD的原理图解:


二、什么是格式良好的XML?

1.什么是XML?

  • 可扩展标记语言,是一种标记语言
  • XML标签没有被预定义,需要用户自行定义
  • 用来传输和存储数据,而不是显示数据
  • 具有自我描述性

2.XML的作用:

  • 数据交互
  • 做配置

3.标准的XML格式:  

  • 有且只有一个根元素
  • XML标签大小写正确区分
  • 正确使用结束标签
  • 正确使用嵌套标签
  • 使用合法的标签名
  • 定义有效的属性  

三、元素定义

1.在XML加入DTD声明

<!DOCTYPE 根元素 [定义内容]>

定义关键字一定要大写“ctrl+Shift+x”,例如:DOCTYPE、ELEMENT、ATTLIST。

案列示例代码(web.xml):

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE wep-app [

<!ELEMENT wep-app (servelet+,servelet-mapping+)>
<!ELEMENT servlet (servlet-name+,servlet-class+)>
<!ELEMENT servelet-mapping (servelet-name,url-pattern+)>
<!ELEMENT servelet-name (#PCDATA)>
<!ELEMENT servelet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
]>
<web-app>
  <servlet>
  	<servlet-name>jrebelServlet</servlet-name>
  	<servlet-class>com.zking.xml.JrebelServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>jrebelServlet</servlet-name>
  	<url-pattern>/jrebelServlet</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>jrebelServlet2</servlet-name>
  	<servlet-class>com.zking.xml.JrebelServlet2</servlet-class>
  </servlet>
  
  
  <servlet-mapping>
  	<servlet-name>jrebelServlet2</servlet-name>
  	<url-pattern>/jrebelServlet2</url-pattern>
  	<url-pattern>/jrebelServlet3</url-pattern>
  </servlet-mapping>
</web-app>

2.元素分类

  • EMPTY 空元素 例如:</br>

  • #PCDATA  文本元素  例如:<div>哈哈哈</div>

  • (e1,e2)混合元素  也就是元素里面包含其他元素 一个或多个

3.元素的限制

1.与(,)或(|)

2.次数 

2.1 (?)表示0或1次

2.2( * )表示0-N次

2.3 (+)表示1-N次

ps:元素分类时要用大写要用括号括起来(empty除外)

如果某个元素是混合元素,在括号内写元素时一定要按顺序,否则编译报错,

如果某元素内有同一个元素出现两次,建议把它们移到一起,否则容易报错写完约束后不能

在xml文件内加入标签和内容,否则编译错误

四、属性定义

1.语法:

<!ATTLIST element-name att_name type desc>

<!ATTLIST 元素名称

属性名称    类型    属性特性

属性名称    类型    属性特性…...

>

解释:

ATTLIST:属性列表,(必须大写)。

元素名称:对应的元素的名称。

属性:属性能够有多个,其格式是名称 类型 属性特性

2.属性类型type

3.属性描述

1.#REQUIRED 必填

2.#IMPLIED  非必填

3.‘默认值’ 只有type为上面属性类型第二点的时候才能用

  案列示例代码:

<?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
>
<!ATTLIST forward
name ID #REQUIRED
path CDATA #REQUIRED
redirect (true|false) 'false'
>
]>
<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>

五、总结

今天内容很简单,大家加油!下期再见!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值