加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService(2)-XML系列之DTD

发布时间:2020-12-16 22:45:52 所属栏目:安全 来源:网络整理
导读:源码下载 :链接: http://pan.baidu.com/s/1jGzSw5o 密码: ftgw 一.定义 文档类型定义 DTD(Document Type Definition),专门用于检测XML是否符合语法规则。 二.实例 文档类型声明的两种方式: 1.内部定义 persons.xml文件 ?xml version="1.0" encoding="UTF-

源码下载:链接: http://pan.baidu.com/s/1jGzSw5o 密码: ftgw

一.定义

文档类型定义 DTD(Document Type Definition),专门用于检测XML是否符合语法规则。

二.实例

文档类型声明的两种方式:

1.内部定义

persons.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE 根元素 [元素声明]> -->
<!DOCTYPE persons[
<!--常用的控制符:?:0-1次  ;  *:0-N次;  	+:1-N次; 	默认:1次  -->
	<!ELEMENT persons (person+)>
	<!ELEMENT person (name,password,age)>
	<!-- #PCDATA 是XML解析器解析的文本数据使用的一个术语 -->
	<!-- CDATA出现在属性声明中 -->
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT password (#PCDATA)>
	<!ELEMENT age (#PCDATA)>	
	<!-- #REQUIRED	属性值是必需的 -->
	<!-- #IMPLIED	属性不是必需的 -->
	<!-- #FIXED value	属性值是固定的 -->
	<!-- ID	值为唯一的 id -->
	<!ATTLIST person id ID #REQUIRED>
	<!-- CDATA	值为字符数据 (character data) -->
	<!ATTLIST person email CDATA #REQUIRED>
]>

<persons>
	<person id="p1070541038" email="452274335@qq.com">
		<name>赵栗婧</name>
		<password>000000</password>
		<age>26</age>
		<!-- <id>p1070541038</id> --><!-- 错误写法 -->
		<!-- <email>452274335@qq.com</email> -->
	</person>
	<person id="p2070541038" email="552274335@qq.com">
		<name>赵栗婧</name>
		<password>000000</password>
		<age>26</age>
	</person>
</persons>

2.外部定义

classroom.dtd 文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT classroom (name,grade,students)>
<!ATTLIST classroom id ID #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT grade (#PCDATA)>
<!ELEMENT students (student+)>
<!ELEMENT student (id,name,age)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>

classroom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- 外部文档声明 -->
<!-- 假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中: -->
<!DOCTYPE classroom  SYSTEM "classroom.dtd">
<classroom id="classroomid1">
	<name>classname1</name>
	<grade>grade1</grade>
	<students>
		<student>
			<id>studentid1</id>
			<name>studentname1</name>
			<age>studentage1</age>
		</student>
		<student>
			<id>studentid2</id>
			<name>studentname2</name>
			<age>studentage2</age>
		</student>
	</students>
</classroom>

三.点评

1.优点:

简单明了,容易编写。

可检测XML是否有效

2.缺点:

1)与XML语法不同
2)提供有限的数据类型,用户无法自定义类型

3)不支持域名机制

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读