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 是不会被解析器解析的文本。文本中标签和实体当做文本处理。



目录
相关文章
|
XML 存储 数据可视化
XML DTD原理及使用
是一种可扩展的标记语言,用于存储和交换数据,它被设计成具有简单、易于理解的格式,并能够方便地在不同的系统和应用程序之间共享数据。XML的语法规则类似于HTML,但XML的目的不仅仅是用于显示数据,更是用于描述数据的结构和关系。与HTML相比,XML更加严格和规范,它需要通过或RELAX NG等方式定义文档的结构,同时还可以使用命名空间和XSLT等技术来处理和转换XML文档。独立于任何特定的操作系统、平台或开发环境。可以与许多不同的编程语言和应用程序进行交互。
|
XML 存储 Java
XML之dtd
XML之dtd
112 0
|
6月前
|
XML 设计模式 数据格式
XML中的DTD
XML中的DTD
39 0
|
11月前
|
XML 存储 设计模式
XML以及DTD详解
XML以及DTD详解
166 0
|
11月前
|
XML 存储 JSON
XML---dtd 完整详细
XML---dtd 完整详细
|
11月前
|
XML 设计模式 数据格式
XML---dtd
XML---dtd
41 0
|
XML 存储 数据格式
XML之DTD
XML之DTD
86 0
|
XML 存储 NoSQL
XML中DTD的基本使用
XML中DTD的基本使用
99 0
|
XML 存储 JSON
dtd介绍
dtd介绍
129 0
|
XML 存储 消息中间件
XML DTD介绍以及应用
DTD介绍 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。 DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
57 0