DTD 总结

DTD 终极总结(一张图记完一辈子)

项目核心内容(背下来就无敌)一句口诀 / 记忆点
作用给 XML 规定“骨架规则”,让 XML 合法、有序、可校验DTD = XML 的“宪法”
两种存放方式① 内部 DTD(写在 XML 里)
② 外部 DTD(单独 .dtd 文件,推荐)
外部 DTD 可复用,内部 DTD 仅当前文件用
声明开头内部:<!DOCTYPE 根元素 [ … ]>
外部:<!DOCTYPE 根元素 SYSTEM "xx.dtd"> 或 PUBLIC
SYSTEM 私用,PUBLIC 公开标准
5 大构建模块① 元素
② 属性
③ 实体
④ 参数实体 %xxx;
⑤ 记法 (可忽略)
记住前 4 个就够用 99% 的场景
元素内容模型(#PCDATA) │ EMPTY │ ANY │ (子元素序列)文字、空的、随便的、严格结构
数量符号无符号 = 1 次 │ ? = 0~1 │ * = 0~N │ + = 1~N“无要一个,问可不问,星随便,加至少加”
顺序与选择, = 顺序必须 │= 或者
属性类型CDATA(最常用)│ ID │ IDREF │ 枚举值 │ NMTOKEN │ ENTITY…普通字符串 → CDATA,唯一编号 → ID
属性默认#REQUIRED(必填)│ #IMPLIED(可选)│ “默认值” │ #FIXED “固定值”必、选、默、固
实体分类① © 内部通用实体
② &chapter; 外部通用实体
③ %attrs; 参数实体(只在 DTD 里用)
& 用在 XML 正文,% 只在 DTD 里
验证工具VS Code(实时)│ xmllint(命令行)│ Oxygen │ 在线 xmlvalidation.com日常写代码用 VS Code,服务器/CI 用 xmllint
元素 vs 属性能重复、有子元素、未来要扩展 → 元素
简单、唯一、配置类 → 属性
“数据用元素,元数据用属性”
还在广泛使用的地方HTML
RSS 订阅
SVG
XHTML 政府/银行页
Android 布局
LibreOffice 文档等
2025 年 DTD 仍然活得很好!
最大局限① 不支持命名空间
② 数据类型太弱(只有 CDATA/ID 等)
③ 语法不是 XML 本身
因此新项目推荐 XSD,但老系统必学 DTD

30 秒终极记忆口诀(贴桌面)

内部方括号,外部 SYSTEM 加引号,
元素逗号顺序,竖线或者要记牢,
问星加三个,分别零一零多一多,
属性必选默固,ID 唯一 CDATA 普通好,
&实体正文用,%参数 DTD 里跑,
验证 VS Code 最快,xmllint 命令最牢!

恭喜你!
现在你已经彻底掌握了 DTD —— 从入门到能手撕任何遗留系统!

想把这份总结做成 PDF 或者 Markdown 永久保存吗?
回复“发我 PDF” 或 “发我 Markdown”,我立刻打包发你!

文章已创建 2679

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部