Delphi不会解析外部DTD文件

时间:2015-07-23 11:45:25

标签: xml delphi xml-parsing schema delphi-xe

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

<?xml version="1.0"?>
<PubmedArticleSet>
<PubmedArticle>

    <MedlineCitation Owner="NLM" Status="In-Process">
    </MedlineCitation>

    <PubmedData>
    </PubmedData>

</PubmedArticle>
</PubmedArticleSet>

我想使用Delphi的“XML数据绑定”向导从DTD开始创建XML解析器。 问题是'MedlineCitation'的描述在外部DTD中:

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

第二个DTD文件与主DTD位于同一文件夹中 该向导将查看/解析'MedlineCitation'作为一个简单的字符串。显然,当我运行该程序并尝试阅读“MedlineCitation”时,它会崩溃并显示消息“Element MedlineCitation不包含单个文本节点”。

DTD 1(主要)
http://www.ncbi.nlm.nih.gov/corehtml/query/DTD/pubmed_150101.dtd

DTD 2('MedlineCitation')
http://www.ncbi.nlm.nih.gov/corehtml/query/DTD/nlmmedlinecitationset_150101.dtd

1 个答案:

答案 0 :(得分:0)

使用'大锤'方法解决。我只是将DTD 2文本粘贴到DTD 1中(稍作修改)。

这完全有效,但有点'蛮力'。如果您有更好的解决方案,请发布,我会接受您的回答。