DTD 学习笔记

简介: DTD 学习笔记

DTD 学习笔记

前言

DTD (Document Type Definition)的作用是定义 XML 文档的合法构建模块。


DOCTYPE 声明方式

一、内部的 DOCTYPE 声明

格式:

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


例如:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE book [
        <!ELEMENT book (bookName, publishedDate, author)>
        <!ELEMENT bookName (#PCDATA)>
        <!ELEMENT publishedDate (#PCDATA)>
        <!ELEMENT author (authorName, birthday)>
        <!ELEMENT authorName (#PCDATA)>
        <!ELEMENT birthday (#PCDATA)>
        ]>
<book>
    <bookName>Thinking in Java</bookName>
    <publishedDate>2017-04</publishedDate>
    <author>
        <authorName>Bruce Eckel</authorName>
        <birthday>1957-07-08</birthday>
    </author>
</book>


二、外部的 DOCTYPE 声明

格式:

<!DOCTYPE 根元素 SYSTEM "文件名">


例如:


DTD 文件(bookOuter.dtd)

<!ELEMENT book (bookName, publishedDate, author)>
<!ELEMENT bookName (#PCDATA)>
<!ELEMENT publishedDate (#PCDATA)>
<!ELEMENT author (authorName, birthday)>
<!ELEMENT authorName (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>


XML 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book SYSTEM "bookOuter.dtd">
<book>
    <bookName>Thinking in Java</bookName>
    <publishedDate>2017-04</publishedDate>
    <author>
        <authorName>Bruce Eckel</authorName>
        <birthday>1957-07-08</birthday>
    </author>
</book>


构建模块

元素

声明一个元素

<!--元素第一种形式-->
<!ELEMENT 元素名称 类别>
<!--元素第二种形式-->
<!ELEMENT 元素名称 (元素内容)>
<!--空元素-->
<!ELEMENT 元素名称 EMPTY> eg: <!ELEMENT br EMPTY>
<!--只有 PCDATA 的元素-->
<!ELEMENT 元素名称 (#PCDATA)> eg: <!ELEMENT bookName (#PCDATA)>
<!--可以带任何内容的元素-->
<!ELEMENT 元素名称 ANY> eg: <!ELEMENT book ANY>
<!--带子元素的元素-->
<!ELEMENT 元素名称 (子元素列表)> eg: <!ELEMENT book (bookName, publishedDate, author)>


声明元素出现次数

<!--子元素列表中每个元素,只能出现一次-->
<!ELEMENT 元素名称 (子元素列表)>
<!--子元素列表中的元素至少出现一次-->
<!ELEMENT 元素名称 (子元素列表)+>
<!--子元素列表中的元素,出现零次或者多次-->
<!ELEMENT 元素名称 (子元素列表)*>
<!--子元素列表中的元素,出现零次或者一次-->
<!ELEMENT 元素名称 (子元素列表)?>
<!--子元素列表中声明非某元素既某元素,元素C、元素D只能出现一个元素-->
<!ELEMENT 元素名称 (子元素A,子元素B,(子元素C|子元素D))>


属性

元素声明之后,可以声明元素中对应的属性

<!ELEMENT 元素名称 (子元素列表)>
<!ATTLIST 元素名称 属性名称 属性类型 默认值 属性值的默认性>


属性类型

image.png属性值的默认性

image.png


*实体

<!ENTITY 实体名称 "实体值">


实体由三部分组成: & + 实体名称 + ;

需要将 ; 前面的 \ 去掉

image.pngPCDATA

PCDATA 是会被解析器解析的文本。文本中标签和实体会被解析处理。


CDATA

CDATA 是不会被解析器解析的文本。文本中标签和实体当做文本处理。



目录
相关文章
|
7月前
|
XML 存储 Java
XML之dtd
XML之dtd
72 0
|
5月前
|
XML 设计模式 数据格式
xlm入门:dtd
xlm入门:dtd
24 0
|
4天前
|
XML 设计模式 数据格式
XML中的DTD
XML中的DTD
23 0
|
5月前
|
XML 存储 设计模式
XML以及DTD详解
XML以及DTD详解
75 0
|
6月前
|
XML 存储 数据格式
XML之DTD
XML之DTD
54 0
|
7月前
|
XML 存储 JSON
dtd介绍
dtd介绍
107 0
|
7月前
|
XML 存储 消息中间件
XML DTD介绍以及应用
DTD介绍 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。 DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
23 0
|
7月前
|
XML 存储 数据格式
DTD及XML介绍
DTD及XML介绍
53 0
|
XML 程序员 数据格式
【XML】学习笔记第二章-dtd
【XML】学习笔记第二章-dtd
195 0
【XML】学习笔记第二章-dtd
|
XML 数据格式
DTD 简易教程
DTD 教程 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
102 0