什么是XML/DTD(XML约束要求/使用DTD)

1. 什么是XML?
XML(eXtensible Markup Language)——可扩展性标记语言
作用:用来传输数据和存储数据(配置文件)。

<?xml version="1.0" encoding="UTF-8"?>
注:XML文档形成了一种“树结构”,它从"根部"开始,然后扩展到"枝叶"

  面试:XML与HTML的区别?
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息

2. 什么是DTD?
DTD(Document Type Definition)——文档类型定义
作用:是定义XML文档的合法构建模块。
注:DTD就是个约束,约束XML的书写规范。

3. XML的两种文档约束
DTD 和 Schema。

4.XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;
5)属性值须加引号;
6)特殊符号转义:
&(逻辑与) --> &
>(大于) --> >
<(小于) --> <
‘(单引号) --> '
“(双引号) --> "
7)XML中的空格会做保留,算一个元素。

5.使用DTD
5.1 在XML中加入DTD声明
1)内部声明:

2)外部声明:引用外部dtd文件。

5.2 DTD语法
     1)元素定义语法(DTD对元素的限制)
          基本语法:<!ELEMENT 元素名称 元素类型>
          元素类型:
EMPTY	   -表示该元素为空元素
(#PCDATA)    -表示只有PCDATA的元素,不做延伸,放具体的数据	
(e1,e2,e3……)  -表示该元素下带有子元素,分别是e1,e2,注意顺序
ANY	       -表示没有任何内容的元素
(元素名)	-表示只出现一次的元素

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

     2)属性定义语法(DTD对属性的限制)
          基本语法:
	<!ATTLIST 元素名称
	    属性名称1 属性类型 设置说明
	    属性名称2 属性类型 设置说明
	    ……
	>

          属性类型:
	CDATA		表示属性值为字符串
	(男|女) "男"	表示只能填男或女,默认男
	ID		值为唯一的id
	ENTITY		表示实体,自学

          设置说明:
	#REQUIRED	必须设置该属性
	#IMPLIED		可以设置也可不设置
	#FIXED		说明该属性的取值固定为一个值,需多测试
	"默认值"

案例:
1)合法的XML
2)DTD对元素的限制
3)DTD对属性的限制
web.xml文件中的servlet标签出错分析

示例:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT person (name,sex,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT br EMPTY>
<!ATTLIST person 
	pid ID #REQUIRED
	pname CDATA #IMPLIED
	psex (男|女) "男"
>

]>

<persons>
	<person pid="a" pname="aaaa" psex="男">
		<name>张三</name>
		<sex>男</sex>
		<age>22</age>
		<contact>
			<phone>13308082222</phone>
		</contact>
		<br/>
	</person>
	<person pid="a1">
		<name>李四</name>
		<sex>女</sex>
		<age>23</age>
		<contact>
			<email>1234@qq.com</email>
		</contact>
	</person>
</persons>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值