DTD的介绍与使用

目录

1.什么是DTD

2.什么是XML

3.XML与HTML的主差异

4.XML的两种文档约束 

5.XML格式要求

5.使用DTD

5.1.在XML中加入DTD申明

 5.2.元素的定义语法

5.3.属性的定义语法


1.什么是DTD

DTD(文本类型定义),定义XML文档的合法构建模块。它使用一系列的合法元素定义文档结构。

2.什么是XML

XML值指可扩展标记语言(extensible Markup Language)。

可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展演示语言(XSL)、XBRL和XPath等

3.XML与HTML的主差异

  • XML被设计为传输和存储数据,其焦点是数据的内容
  • HTML被设计用来显示数据,其焦点是数据的外观
  • HTML指在显示信息,而XML指在传输信息

4.XML的两种文档约束 

XML文档定义分为Schema和DTD两种形式

  • Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性。
  • DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构

5.XML格式要求

  1. 有且只有一个根节点
  2. 由开始标签和结束标签组成(包含空标签)
  3. 严格区分大小写
  4. 正确的嵌套标签
  5. 属性必须使用双引号
  6. 特殊字符必须转义处理

特殊字符实体引用
>>>
<<&lt;
&&&amp;
''&apos;
""&quot;

5.使用DTD

5.1.在XML中加入DTD申明
  • 内部的DOCTYPRE声明

<!DOCTYPE 根元素 [元素声明]>

  • 外部文档声明

<!DOCTYPE 根元素 SYSTEM "文件名" [元素声明]>

 5.2.元素的定义语法

语法:

<!ELEMENT 元素名称 元素类型>

元素分类:

  1. 空元素:<!ELEMENT 元素名称  EMPTY>
  2. 文本元素:<!ELEMENT 元素名称 (#PCDATA)>
  3. 混合元素: <!ELEMENT 元素名称 (子元素1,子元素2,。。。)>

元素的限制:

限制说明
表示内容的出现必须与声明的一致
|表示两个或多个时只能出现一个
+表示元素出现1次或多次
*表示元素出现0次或多次
表示元素出现0次或1次
什么都不指定,默认1次
5.3.属性的定义语法

语法:

<!ATTLIST 元素名称 属性名称 属性类型 设置说明>

属性类型 :

类型描述
CDATA值为字符数据(character data)
(en1|en2|...)此值时枚举列表中的一个值
ID值为唯一的id
IDREF值为另外一个元素的id
IDREFS值为其它id的列表
NMTOKEN值为合法的XML名称
NMTOKENS值为合法的XML名称的列表
ENTITY 值是一个实体
ENTITIES值是一实体列表
NOTATION此值是符号的名称
xml:值是一个预定义的XML值

设置说明:

解释
属性的默认值
#REQUIRED属性值是必须的
#IMPLIED属性不是必须的
#FIXED value属性值是固定的

 DTD文档约束示例

<?xml version="1.0" encoding="UTF-8" ?>
<!--内部声明-->
<!DOCTYPE persons[
		<!ELEMENT persons (person*) >
		<!ELEMENT person (name,age,contact,br?)>
		<!ELEMENT name (#PCDATA)>
		<!ELEMENT age (#PCDATA)>
		<!ELEMENT contact (phone|mail)>
		<!ELEMENT br EMPTY>
		<!ELEMENT phone (#PCDATA)>
		<!ELEMENT mail (#PCDATA)>
		<!ATTLIST person
				pid ID #REQUIRED
				paddr CDATA #IMPLIED
				psex (男|女) "男"
		>
]>
<!--外部声明-->
<!DOCTYPE persons SYSTEM "person.xml" [
        <!ELEMENT persons (person*) >
        <!ELEMENT person (name,age,contact,br?)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT age (#PCDATA)>
        <!ELEMENT contact (phone|mail)>
        <!ELEMENT br EMPTY>
        <!ELEMENT phone (#PCDATA)>
        <!ELEMENT mail (#PCDATA)>
        <!ATTLIST person
                pid ID #REQUIRED
                paddr CDATA #IMPLIED
                psex (男|女) "男"
                >
        ]>
<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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值