我有这样的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
答案 0 :(得分:0)
使用'大锤'方法解决。我只是将DTD 2文本粘贴到DTD 1中(稍作修改)。
这完全有效,但有点'蛮力'。如果您有更好的解决方案,请发布,我会接受您的回答。