菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

XML 教程

XML HOME XML 简介 XML 如何使用 XML 树 XML 语法 XML 元素 XML 属性 XML 命名空间 XML 显示 XML HttpRequest XML 解析器 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 示例 XML 测验 XML 证书

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD 简介 XSD 如何做 XSD <schema> XSD 元素 XSD 属性 XSD 限制 XSD 复杂元素 XSD 空元素 XSD 仅元素 XSD 仅文本 XSD 混合 XSD 指示符 XSD <any> XSD <anyAttribute> XSD 替换 XSD 示例

XSD Data Types

XSD String XSD Date/Time XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT 元素 XSLT/XPath 函数

XML DTD


语法正确的 XML 文档称为“格式良好”。

根据 DTD 验证的 XML 文档既是“格式良好”又是“有效”。


什么是 DTD?

DTD 是 Document Type Definition(文档类型定义)的缩写。

DTD 定义了 XML 文档的结构以及合法的元素和属性。


有效的 XML 文档

“有效”的 XML 文档是“格式良好”的,并且符合 DTD 的规则。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

上面的 DOCTYPE 声明包含对 DTD 文件的引用。 DTD 文件的内容将在下面显示和解释。


XML DTD

DTD 的目的是定义 XML 文档的结构和合法的元素和属性。

Note.dtd

<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

上面的 DTD 的解释如下:

  • !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 表示可解析字符数据。



使用 DTD 进行实体声明

DOCTYPE 声明还可用于定义文档中使用的特殊字符或字符串。

示例

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [
<!ENTITY nbsp "&#xA0;">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer;&nbsp;&copyright;</footer>
</note>
自己动手试一试 »

提示: 实体有三个部分:以“&”开头,后跟实体名称,并以“;”结尾。


何时使用 DTD?

使用 DTD,独立的人们可以同意使用标准 DTD 来交换数据。

使用 DTD,您可以验证从外部世界接收到的数据是否有效。

您也可以使用 DTD 来验证您自己的数据。

如果您想学习 DTD,请阅读我们的 DTD 教程


何时不使用 DTD?

XML 不需要 DTD。

当您尝试 XML 或处理小型 XML 文件时,创建 DTD 可能是在浪费时间。

如果您开发应用程序,请等到规范稳定后再添加 DTD。否则,您的软件可能会因验证错误而停止工作。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持