【发布时间】:2015-12-24 22:20:58
【问题描述】:
我有一个 XML 文件,我正在尝试针对 DTD 进行验证(在与 XML 相同的本地文件夹中)。 XML 以格式正确的方式检出,但每次尝试在 notepad++ 中针对 DTD 进行验证都会导致“无法加载 DTD PresidentsDTD.dtd”错误。知道我需要做什么才能使其正常工作吗?
XML 文件:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE LIST SYSTEM "PresidentsDTD.dtd">
<LIST>
<PRESIDENT id="01" gender="male" name="GeorgeWashington">
<NAME>
<FIRST>George</FIRST>
<MIDDLE />
<LAST>Washington</LAST>
</NAME>
<TERM count="2">
<TERMSTART>1789</TERMSTART>
<TERMEND>1797</TERMEND>
<TERML unit="years"> 8 </TERML>
</TERM>
<PARTY>N/A</PARTY>
<HOMESTATE>Virginia</HOMESTATE>
</PRESIDENT>
<PRESIDENT id="02" gender="male" name="JohnAdams">
<NAME>
<FIRST>John</FIRST>
<MIDDLE />
<LAST>Adams</LAST>
</NAME>
<TERM count="2">
<TERMSTART>1797</TERMSTART>
<TERMEND>1801</TERMEND>
<TERML unit="years"> 8 </TERML>
</TERM>
<PARTY>Federalist</PARTY>
<HOMESTATE>Massachusetts</HOMESTATE>
</PRESIDENT>
<PRESIDENT id="03" gender="male" name="ThomasJefferson">
<NAME>
<FIRST>Thomas</FIRST>
<MIDDLE />
<LAST>Jefferson</LAST>
</NAME>
<TERM count="2">
<TERMSTART>1801</TERMSTART>
<TERMEND>1809</TERMEND>
<TERML unit="years"> 8 </TERML>
</TERM>
<PARTY>Republican-Democrat</PARTY>
<HOMESTATE>Virginia</HOMESTATE>
</PRESIDENT>
<PRESIDENT id="07" gender="male" name="AndrewJackson">
<NAME>
<FIRST>Andrew</FIRST>
<MIDDLE />
<LAST>Jackson</LAST>
</NAME>
<TERM count="2">
<TERMSTART>1829</TERMSTART>
<TERMEND>1837</TERMEND>
<TERML unit="years"> 8 </TERML>
</TERM>
<PARTY>Democrat</PARTY>
<HOMESTATE>Tennesee</HOMESTATE>
</PRESIDENT>
<PRESIDENT id="09" gender="male" name="WilliamHenryHarrison">
<NAME>
<FIRST>William</FIRST>
<MIDDLE>Henry</MIDDLE>
<LAST>Harrison</LAST>
</NAME>
<TERM count="1">
<TERMSTART>1841</TERMSTART>
<TERMEND>1841</TERMEND>
<TERML unit="months"> 1 </TERML>
</TERM>
<PARTY>Whig</PARTY>
<HOMESTATE>Ohio</HOMESTATE>
</PRESIDENT>
<PRESIDENT id="15" gender="male" name="AbrahamLincoln">
<NAME>
<FIRST>Abraham</FIRST>
<MIDDLE />
<LAST>Lincoln</LAST>
</NAME>
<TERM count="2">
<TERMSTART>1861</TERMSTART>
<TERMEND>1865</TERMEND>
<TERML unit="years"> 4 </TERML>
</TERM>
<PARTY>Republican</PARTY>
<HOMESTATE>Illinois</HOMESTATE>
</PRESIDENT>
</LIST>
我的 PresidentsDTD.dtd 文件(由于某种原因仍然在第 2 行返回错误):
<!DOCTYPE LIST[
<!ELEMENT LIST PRESIDENT+>
<!ELEMENT PRESIDENT (NAME, TERM, PARTY, HOMESTATE)>
<!ATTLIST PRESIDENT id ID #REQUIRED>
<!ATTLIST PRESIDENT gender (male | female) #IMPLIED>
<!ATTLIST PRESIDENT name CDATA #IMPLIED>
<!ELEMENT NAME (FIRST, MIDDLE?, LAST)>
<!ELEMENT TERM (TERMSTART, TERMEND, TERMLENGTH)>
<!ATTLIST TERM count CDATA #IMPLIED>
<!ELEMENT FIRST (#PCDATA)>
<!ELEMENT MIDDLE (#PCDATA)>
<!ELEMENT LAST (#PCDATA)>
<!ELEMENT TERMSTART (#PCDATA)>
<!ELEMENT TERMEND (#PCDATA)>
<!ELEMENT TERMLENGTH (#PCDATA)>
<!ATTLIST TERMLENGTH unit (months | years) #IMPLIED>
]>
有没有人有针对本地 DTD 进行验证的解决方案?
【问题讨论】: