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

调用外部DTD后XML实体未定义问题求助

问题:XML引用外部DTD实体后,Sublime Text提示实体未定义

我尝试在XML文件中调用外部DTD,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://digi.ub.uni-heidelberg.de/schema/tei/heiEDITIONS/tei_hes.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://digi.ub.uni-heidelberg.de/schema/tei/heiEDITIONS/tei_hes.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<!DOCTYPE TEI
[
<!ENTITY % heiEDITIONS_entities SYSTEM "https://digi.ub.uni-heidelberg.de/schema/tei/heiEDITIONS/declarations/heieditions-entities.txt">
%heiEDITIONS_entities; ]>

所有DTD实体均可在ENTITY声明的地址中找到,但在XML文件中使用&bar;、&iuml;等实体时,Sublime Text提示实体未定义。


解决思路及办法

核心原因

Sublime Text内置的XML检查功能默认不会主动加载网络上的外部DTD实体文件,哪怕你能正常访问该地址,编辑器也无法读取并识别其中的实体定义。

具体解决步骤

  1. 本地引用实体文件
    把heieditions-entities.txt下载到你的项目本地目录,修改XML里的ENTITY声明为本地路径,比如:

    <!ENTITY % heiEDITIONS_entities SYSTEM "./heieditions-entities.txt">
    

    这样编辑器能直接读取本地文件,识别其中的实体。

  2. 安装XML增强插件
    安装Sublime的XML Tools插件,它对外部DTD的支持更完善,能处理网络或本地的实体文件。安装完成后重启编辑器,再检查实体是否正常识别。

  3. 验证实体文件内容
    确认下载的实体文件里确实包含&bar;、&iuml;这些实体的定义,避免文件本身缺失对应条目。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:07:45