我正在尝试将外部 DTD 调用到我的 xml 文件,我按照如下方式进行:
<?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;
,它表示该实体未声明。对于 ï
实体也是如此。尽管是当您看到 url 中的实体时!所以我不太明白。
我使用 Sublime text 作为文本编辑器。
我哪里做错了?
非常感谢
由于对 XML 外部实体 (XXE) 攻击的安全担忧,许多处理器现在默认禁用外部 DTD 获取。这会导致您的实体未定义。
根据工具/处理器的不同,您可能需要弄清楚如何启用外部实体解析。
https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html