You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Notepad++使用XML Tools验证XML时提示DTD is prohibited如何解决

报错原因

Notepad++的XML Tools插件默认开启DTD安全限制,会直接拦截所有内联、外部DTD的加载解析,因此验证带DOCTYPE声明的XML文件时会抛出DTD is prohibited报错,该问题是插件默认配置导致,和你写的XML语法无直接关系。

解决步骤
  • 打开Notepad++顶部菜单栏的「插件」列表,找到XML Tools的配置入口
  • 在配置页中找到「Prohibit DTD(禁止DTD)」的勾选框,取消默认选中状态
  • 保存配置后重启Notepad++,再重新触发XML验证即可

注意:你提供的代码样例里,手动加在DOCTYPE内部的DTD is prohibited. <---------------error message I get on Notepad ++是你标注报错位置的说明文字,不属于合法DTD语法,测试前需要删掉这行,否则会触发额外的语法报错。

可正常通过验证的XML代码如下:

<?xml version="1.0"?>
<!DOCTYPE root[
    <!ELEMENT root (dept*, staff*)>
    <!ELEMENT dept (#PCDATA)>
    <!ELEMENT staff (staff | name)>
    <!ELEMENT name (#PCDATA)>
    <!ATTLIST dept id ID #REQUIRED>
    <!ATTLIST staff id ID #REQUIRED dept IDREF #IMPLIED>
]>
<root>
    <dept id="i1">it</dept>
    <dept id="i2">law</dept>
    <staff id="s3">
        <name>steve</name>
    </staff>
    <staff id="s2" dept="i1">
        <name>jerry</name>
    </staff>
    <staff id="s4" dept="i2">
        <staff id="s5">
            <name>peter</name>
        </staff>
    </staff>
</root>
补充说明
  • 关闭DTD禁止选项仅适用于调试你自己编写的、来源可信的XML文件,处理未知来源的XML文件时建议重新开启该选项,防范恶意DTD注入的安全风险。
  • 如果取消勾选后依然报错,可以将XML Tools插件升级到最新稳定版,部分旧版本存在DTD配置不生效的已知问题。

内容的提问来源于stack exchange,提问作者J L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:24:28