XML文件的DTD限制

框架的由来

就是由多种设计模式配合形成的
特定的框架处理特定问题
底层是通过Java的反射机制来完成

设计模式

它是用来解决现实中出现的一类问题,固定的解决方案,Java的解决方案23中
被统称为23种设计模式

DTD

是xml配置文件的约束技术中的一种
web.xml 配置tomcat的一些东西
schema --》xsd文件
在这里插入图片描述

xml的用途?

做配置
做数据传输

html与xml区别?

约束的差异性
html是超文本
xml是可拓展标记语言
xml能够通过字符串表示对象的结构

1. 什么是格式良好XML

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

下面来看代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1>XXX</h1>
<b>XXX</b>
<c>XXX</c>
</body>
</html>

意味着在html里面他可以写任意的标签,不仅仅是html里面所规定的标签。

在这里插入图片描述
但在xml文件里面是不能写随意的标签的,这里论证我们上面的出的结论:
约束的差异性
html是超文本
xml是可拓展标记语言
xml能够通过字符串表示对象的结构

在这里插入图片描述

下面就是典型的格式良好的xml:

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

<?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>
  1. 在XML加入DTD声明

  2. 元素定义的语法

    <!ELEMENT element-name (type)>

    注:根标签也要定义!!!

  3. 元素的分类

    <!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素
  4. 元素的限制
    ,
    |
    次数: +, 1~n
    *, 0~n
    ?, 0或1
    没有

  5. 属性定义的语法

    <!ATTLIST element-name att_name type >

    attribute

    ID
    (男|女)
    CDATA
    IDREF
    reference

    #REQUIRED/#IMPLIED

  6. XML中的特殊符号

   &(逻辑与)  &amp;        
   <(小于)    &lt;        
   >(大于)    &gt;        
   "(双引号)  &quot;      
   '(单引号)  &apos;

在这里插入图片描述

属性的类型有下面5种:
(1) CDATA
(2) ID
(3) IDREF/IDREFS
(4) Enumerated
(5) ENTITY/ENTITIES

在这里插入图片描述

属性的特点有如下4种:
(1) #REQUIRED,表示这个属性必须给,不给就报错
(2) #IMPLIED,表示这个属性可以给也可以不给
(3) #FIXED value,表示这个属性必须给一个固定的value值
(4) Default value,表示这个属性如果没有值,就分配一个默认的value值

DTD限制config.xml:

<?xml version="1.0" encoding="UTF-8"?>
	<!--
		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>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值