DTD的概念及编写

2022-11-18 20:55:45 浏览数 (1)

目录

1.什么是DTD?

2.什么是XML?

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

4.XML格式要求(合法XML)

5.使用DTD


1.什么是DTD?

文档类型定义(约束)

2.什么是XML?

   HTML:超文本标记语言   a/b/c/z         XML:可扩展标记语言  

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

4.XML格式要求(合法XML)

   1)有且只有一个根节点;             2)由开始标签和结束标签组成;             3)XML标签区分大小写;             4)正确嵌套标签;

5.使用DTD

   5.1 在XML中加入DTD申明         1)内部申明:<! DOCTYPE root[]>     2)外部申明:<!DOCTYPE 文档根节点 SYSTEM “DTD文件名”>

5.2 元素定义语法(DTD对元素的限制)         基本语法:<! ELEMENT 元素名称 元素类型 >         元素分类:EMPTY     空元素                  (#PCDATA)  文本元素                  (e1,e2)    混合元素       元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), (1 0=1,1次或多次)

5.3 属性定义语法(DTD对属性的限制)     基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>     属性类型:ID/CDATA/ENUM (男|女)     设置说明:#REQUIRED(必须)/#IMPLIED(可选)

    5.4 特殊符号转义     &(逻辑与)      -->  &amp;     >(大于)     -->  &gt;     <(小于)     -->  &lt;     ‘(单引号)     -->  &apos;     “(双引号)     -->  &quot;

person.xml

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 
1.DTD申明
1)内部申明:<!DOCTYPE 根节点[]>
2)外部申明:<!DOCTYPE 根节点 SYSTEM "DTD外部文件路径">

2.元素定义
1)语法:(!ELEMENT 元素名称 元素类型)
2)类型:
2.1)空元素:EMPTY
2.2)文本元素:(#PCDATA)
2.3)混合元素:(e1,e2,e3,...)

3)限制:
3.1),代表:元素出现的顺序
3.2)|代表:多选一
3.3)?代表:元素出现0次或1次(可有可无)
3.4)*代表:元素出现0次或n次
3.5) 代表:元素必须出现1次或n次

3.属性定义 attribute list
1)语法:<!ATTLIST 元素名称 属性名称 设置说明>
2)类型:
2.1)ID:唯一,不能以/或者数字开头
2.2)CATA:文本
2.3)枚举:多选一,例如:(男或女)
3)设置说明:
3.1)必须: #REQUIRED
3.2)可选:#IMPLIED

4.特殊字符转义
 -->
<!-- <!DOCTYPE persons[
	<!ELEMENT persons (person*)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|mail)>
	<!ELEMENT phone (#PCDATA)>
	<!ELEMENT mail (#PCDATA)>
	<!ELEMENT br EMPTY>
	<!ATTLIST person
		pid ID #REQUIRED
		paddr CDATA #IMPLIED
		psex(男|女|妖)
	>
]> -->
<!DOCTYPE config SYSTEM "person.dtd">
<persons>
	<person pid="p01" paddr="123" psex="男">
		<name>张三</name>
		<age>22</age>
		<contact>
			<phone>15882821111</phone>
		</contact>
		<br/>
	</person>
	<person pid="p02">
		<name>李四</name>
		<age>23</age>
		<contact>
			<mail>123@qq.com</mail>
		</contact>
	</person>
</persons>

 person.dtd

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT persons (person*)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|mail)>
	<!ELEMENT phone (#PCDATA)>
	<!ELEMENT mail (#PCDATA)>
	<!ELEMENT br EMPTY>
	<!ATTLIST person
		pid ID #REQUIRED
		paddr CDATA #IMPLIED
		psex(男|女|妖)
	>

以上就是今天分享!!!

xml

0 人点赞