Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 德尔福赢得';t解析外部DTD文件_Xml_Delphi_Xml Parsing_Schema_Delphi Xe - Fatal编程技术网

Xml 德尔福赢得';t解析外部DTD文件

Xml 德尔福赢得';t解析外部DTD文件,xml,delphi,xml-parsing,schema,delphi-xe,Xml,Delphi,Xml Parsing,Schema,Delphi Xe,我有一个这样的XML(简化版以便于理解): 我想使用Delphi的“XML数据绑定”向导从其DTD开始创建一个XML解析器。 问题在于“Medline引文”的描述在外部DTD中: <!ENTITY % Medline PUBLIC "-//NLM//DTD Medline, 01 Jan 2015//EN" "nlmmedlinecitationset_150101.dtd"> %Medline; %Medline; 第二个DTD文件与主DTD位于同一文件夹中。 向导将以

我有一个这样的XML(简化版以便于理解):


我想使用Delphi的“XML数据绑定”向导从其DTD开始创建一个XML解析器。
问题在于“Medline引文”的描述在外部DTD中:

<!ENTITY % Medline PUBLIC "-//NLM//DTD Medline, 01 Jan 2015//EN"  "nlmmedlinecitationset_150101.dtd">
%Medline;

%Medline;
第二个DTD文件与主DTD位于同一文件夹中。
向导将以简单字符串的形式查看/分析“MedlineCitation”。显然,当我运行程序并尝试读取“Medline引文”时,它会崩溃,并显示消息“Element Medline引文不包含单个文本节点”


DTD 1(主要)

DTD 2(“医学引文”)

使用“大锤”方法解决。我只需将DTD2文本粘贴到DTD1中(稍作修改)

这完全有效,但有点“蛮力”。如果你有更好的解决方案,请张贴,我会接受你的答案

<!ENTITY % Medline PUBLIC "-//NLM//DTD Medline, 01 Jan 2015//EN"  "nlmmedlinecitationset_150101.dtd">
%Medline;