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

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

声明元素

在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:

<!ELEMENT 元素名称 类别>  [类别可为:EMPTY、(#PCDATA)、ANY]

或者

<!ELEMENT 元素名称 (元素内容)>

带有 DTD 的 XML 文档实例

<?xml version="1.0"?>
<!DOCTYPE note[
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don't forget themeeting!</body>
</note>

!DOCTYPE note (第二行)定义此文档是note 类型的文档。

!ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"

!ELEMENT to (第四行)定义 to 元素为"#PCDATA" 类型

!ELEMENT from (第五行)定义 from 元素为"#PCDATA" 类型

!ELEMENT heading(第六行)定义 heading 元素为 "#PCDATA" 类型

!ELEMENT body (第七行)定义 body 元素为"#PCDATA" 类型

PCDATA 的意思是被解析的字符数据(parsedcharacter data),PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记

CDATA 的意思是字符数据(characterdata)。CDATA 是不会被解析器解析的文本

<!ELEMENT note(#PCDATA|to|from|header|message)*[可以加后缀:?、*、+]>

上面的例子声明了:"note"元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

声明属性

属性声明使用下列语法:

<!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      属性值是固定的

声明实体

语法:

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

XML之DTD(文档类型定义)的更多相关文章

  1. 有效的XML: DTD(文档类型定义)介绍(转)

    文档类型定义和命名空间 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档:(见格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节). ...

  2. 2018.5.14 XML文档类型定义----DTD

    1.DTD概述 一个完全意义上的XML文件不仅仅是Well-fromed(格式良好的),而且还应该是使用了一些自定义的标记ValidatingXMl(有效的)文档也就是说他必须遵守文档类型的定义中已声 ...

  3. DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义

    DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义 今天看到一篇CSS应用的一个友好搜索,我按网页上的代码复制.粘贴后预览时总达不到效果,而直接拷贝他的实例却能达到效果, ...

  4. Umbraco文档类型定义多个template

    利用这个可以同时写PC端和手机端的网站, 在Template中,建立手机端的模板: 在文档类型中,同时选择两个模板,在浏览的时候在URL后加上Template的名称 + .aspx 就可以浏览到你写的 ...

  5. bean文档类型定义

    ELEMENT:表示当前 (bean*):表示0到多个bean元素 (property*):表示0到多个property元素 ATTLIST:表示属性 #REQUIRED:表示不可缺少 #IMPLIE ...

  6. Doctype 文档类型,标准模式,混杂模式

    HTML4.01和XHTML1.0 基于 SGML,支持DTD声明,HTML5不是,但是需要 doctype 来规范浏览器的行为. 标准模式是指,DTD声明定义了标准文档的类型后,浏览器按W3C标准解 ...

  7. HTML文档类型DTD与浏览器怪异模式

    虽然在兼容IE6时候经常会注意到两个模式的区别,但是系统的理解起来,还没有认真总结过.看了一些网上的资料.结合自己的理解汇总了一下,放在这里备忘并分享给大家. 浏览器从服务端获取网页后会根据文档的DO ...

  8. 文档类型DTD,DOCTYPE和浏览器模式

    出处:http://blog.csdn.net/freshlover/article/details/11616563 浏览器从服务端获取网页后会根据文档的DOCTYPE定义显示网页,如果文档正确定义 ...

  9. xml基础之二(XML结构【2】)DTD文档模版

    xml基础之二(XML结构[2])DTD文档模版 xml 模板 文档结构  我们知道XML主要用于数据的存储和传输,所以无论是自定义还是外部引用DTD模板文档,都是为了突出数据的存储规范.DTD(文档 ...

随机推荐

  1. ●Joyoi Easy

    题链: http://www.joyoi.cn/problem/tyvj-1952题解: 概率dp (先做的BZOJ 4318: OSU![本人题解],然后就感觉这个题很简单了) 令p[i]表示第i个 ...

  2. ●BZOJ 3129 [Sdoi2013]方程

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3129 题解: 容斥,扩展Lucas,中国剩余定理 先看看不管限制,只需要每个位置都是正整数时 ...

  3. Python的IO编程

    原文传送门:请点击 原文传送门:请点击

  4. SpringBoot 使用MultipartFile上传文件相关问题解决方案

    1.当上传时未配置上传内容大小,会报错[org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException ...

  5. 【精解】EOS智能合约演练

    EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过 ...

  6. c# 虚拟路径转化为物理路径

    string strPhycicsPath= Server.MapPath(path);

  7. 15_Python模块化编程_Python编程之路

    之前跟大家讲的是一些python的数据基础,从这篇文章开始,我们开始正式学习python的模块化编程 下面我们解释一下什么叫做模块 之前已经讲过怎么去定义一个方法,如果你是用python交互器(自带交 ...

  8. 90. Subsets II(中等,编写代码有难度)

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  9. 【伯乐在线】这些 Git 技能够你用一年了

    原文出处: Pyper   欢迎分享原创到伯乐头条 用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景.嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交 ...

  10. OSTC 2015

    上周六去北京参加了OSTC 2015开源技术大会,并分享了<Spark技术内幕>,主要涵盖了Spark Core的核心实现.我主要以WordCount为例,讲解了任务调度的具体实现,资源分 ...