简单的DTD约束XML

一个良好的XML文档只有受到良好的约束才能有效的工作,对此,这里我们用DTD文件对XML进行语义约束。

XML中引入DTD:

<!DOCTYPE 根元素的名称 SYSTEM “DTD文件的路径”>

定义元素:

定义任意类型的元素:

<!ELEMENT 元素名 ANY>

定义空元素:

<!ELEMENT 元素名 EMPTY>

定义字符串内容的元素:

<!ELEMENT 元素名 (#PCDATA)>

定义子元素:

定义有序的子元素:

<!ELEMENT 书 (书名,作者,出版社,介绍)>

定义互斥的子元素:(下面三者每次只能出现一次)

<!ELEMENT 书 (好书|坏书|二手书)>

子元素出现的频率:+代表出现1次或多次,*代表出现0次或多次,?代表出现0次或1次

定义元素的属性:

约束类型:#REQUIRED:必需的属性 #IMPLIED:可有可无的属性 #FIXED:固定的属性

<!ATTLIST 元素名 属性名 属性类型 [约束类型] [默认值]>

枚举类型:

<!ATTLIST 人 类型 (中国人|美国人|日本人) #REQUIRED>

定义实体(相当于C语言的宏定义):

<!ENTITY 实体名 "实体值"> <!-- 定义格式-->
&实体名;<!-- 引用格式-->

下面写一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT qq (friend|classmate)*>
<!ELEMENT friend (name,age)>
<!ELEMENT classmate (school)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT school EMPTY>
<!ATTLIST friend id ID #REQUIRED>
<!ATTLIST classmate name CDATA #REQUIRED>

对应的XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qq SYSTEM "E:\Util\XMLSPY\XMLCode\company.dtd">
<qq>
	<friend id="first">
		<name>张三</name>
		<age>12</age>
	</friend>
	<classmate name="李四">
		<school />
	</classmate>
</qq>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇