记事本++;根据本地DTD验证XML

记事本++;根据本地DTD验证XML,xml,notepad++,dtd,Xml,Notepad++,Dtd,我有一个XML文件,我正试图根据DTD验证它(与XML在同一个本地文件夹中)。XML的检查结果也是格式良好的,但每次尝试在notepad++中针对DTD进行验证都会导致“无法加载DTD PresidentsDTD.DTD”错误。你知道我需要做什么才能让它工作吗 XML文件: <?xml version="1.0" standalone="no"?> <!DOCTYPE LIST SYSTEM "PresidentsDTD.dtd"> <LIST> <P

我有一个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>

乔治
华盛顿
1789
1797
8.
不适用
弗吉尼亚州
约翰
亚当斯
1797
1801
8.
联邦主义者
马萨诸塞州
托马斯
杰斐逊
1801
1809
8.
共和党民主党人
弗吉尼亚州
安得烈
杰克逊
1829
1837
8.
民主党人
田纳西州
威廉
亨利
哈里森
1841
1841
1.
辉格党
俄亥俄州
亚伯拉罕
林肯
1861
1865
4.
共和国的
伊利诺伊州
My PresidentsDTD.dtd文件(出于某种原因,第2行仍返回错误):


]>

有人能在本地针对DTD进行验证吗?

我编辑了您的XML和.DTD文件。现在XML是有效的。注意,我在文件中添加了对你错误的评论。 XML文件:

<?xml version="1.0" standalone="no"?>
    <!DOCTYPE LIST SYSTEM "PresidentsDTD.dtd">
    <LIST>
    <PRESIDENT id="ID01" gender="male" name="GeorgeWashington"> <!--id must be unique-->
        <NAME>
            <FIRST>George</FIRST>
            <MIDDLE />
            <LAST>Washington</LAST>
        </NAME>
        <TERM count="2">
            <TERMSTART>1789</TERMSTART>
            <TERMEND>1797</TERMEND>
            <TERMLENGTH unit="years"> 8  </TERMLENGTH> <!--You have <TERML> in XML and <TERMLENGTH> in .dtd-->
        </TERM>
        <PARTY>N/A</PARTY>
        <HOMESTATE>Virginia</HOMESTATE>
    </PRESIDENT>

    <PRESIDENT id="ID02" gender="male" name="JohnAdams">
        <NAME>
            <FIRST>John</FIRST>
            <MIDDLE />
            <LAST>Adams</LAST>
        </NAME>
        <TERM count="2">    
            <TERMSTART>1797</TERMSTART>
            <TERMEND>1801</TERMEND>
            <TERMLENGTH unit="years"> 8  </TERMLENGTH>
        </TERM>
        <PARTY>Federalist</PARTY>
        <HOMESTATE>Massachusetts</HOMESTATE>
    </PRESIDENT>

    <PRESIDENT id="ID03" gender="male" name="ThomasJefferson">
        <NAME>
            <FIRST>Thomas</FIRST>
            <MIDDLE />
            <LAST>Jefferson</LAST>
        </NAME>
        <TERM count="2">
            <TERMSTART>1801</TERMSTART>
            <TERMEND>1809</TERMEND>
            <TERMLENGTH unit="years"> 8  </TERMLENGTH>
        </TERM>
        <PARTY>Republican-Democrat</PARTY>
        <HOMESTATE>Virginia</HOMESTATE>
    </PRESIDENT>

    <PRESIDENT id="ID07" gender="male" name="AndrewJackson">
        <NAME>
            <FIRST>Andrew</FIRST>
            <MIDDLE />
            <LAST>Jackson</LAST>
        </NAME>
        <TERM count="2">
            <TERMSTART>1829</TERMSTART>
            <TERMEND>1837</TERMEND>
            <TERMLENGTH unit="years"> 8  </TERMLENGTH>
        </TERM>
        <PARTY>Democrat</PARTY>
        <HOMESTATE>Tennesee</HOMESTATE>
    </PRESIDENT>

    <PRESIDENT id="ID09" gender="male" name="WilliamHenryHarrison">
        <NAME>
            <FIRST>William</FIRST>
            <MIDDLE>Henry</MIDDLE>
            <LAST>Harrison</LAST>
        </NAME>
        <TERM count="1">
            <TERMSTART>1841</TERMSTART>
            <TERMEND>1841</TERMEND>
            <TERMLENGTH unit="months"> 1 </TERMLENGTH>
        </TERM>
        <PARTY>Whig</PARTY>
        <HOMESTATE>Ohio</HOMESTATE>
    </PRESIDENT>

    <PRESIDENT id="ID15" gender="male" name="AbrahamLincoln">
        <NAME>
            <FIRST>Abraham</FIRST>
            <MIDDLE />
            <LAST>Lincoln</LAST>
        </NAME>
        <TERM count="2">
            <TERMSTART>1861</TERMSTART>
            <TERMEND>1865</TERMEND>
            <TERMLENGTH unit="years"> 4  </TERMLENGTH>
        </TERM>
        <PARTY>Republican</PARTY>
        <HOMESTATE>Illinois</HOMESTATE>
    </PRESIDENT>
    </LIST>

乔治
华盛顿
1789
1797
8.
不适用
弗吉尼亚州
约翰
亚当斯
1797
1801
8.
联邦主义者
马萨诸塞州
托马斯
杰斐逊
1801
1809
8.
共和党民主党人
弗吉尼亚州
安得烈
杰克逊
1829
1837
8.
民主党人
田纳西州
威廉
亨利
哈里森
1841
1841
1.
辉格党
俄亥俄州
亚伯拉罕
林肯
1861
1865
4.
共和国的
伊利诺伊州
如果您创建的文件DTD架构与XML分开,则不应包含“[”]”。您没有定义PARTY和HOMESTATE。您在PRESIDENT中定义的属性错误。
主席td.dtd:

<!ELEMENT LIST (PRESIDENT+)>

<!ELEMENT PRESIDENT (NAME, TERM, PARTY, HOMESTATE)>

<!ELEMENT NAME (FIRST, MIDDLE?, LAST)>
<!ELEMENT FIRST (#PCDATA)>
<!ELEMENT MIDDLE (#PCDATA)>
<!ELEMENT LAST (#PCDATA)> 

<!ELEMENT TERM (TERMSTART, TERMEND, TERMLENGTH)>
<!ELEMENT TERMSTART (#PCDATA)>
<!ELEMENT TERMEND (#PCDATA)>
<!ELEMENT TERMLENGTH (#PCDATA)>

<!ELEMENT PARTY (#PCDATA)>
<!ELEMENT HOMESTATE (#PCDATA)>


<!ATTLIST PRESIDENT 
            id ID #REQUIRED 
            gender (male | female) #IMPLIED 
            name CDATA #IMPLIED>
<!ATTLIST TERM 
            count CDATA #IMPLIED>
<!ATTLIST TERMLENGTH 
            unit (months | years) #IMPLIED>

<!ELEMENT LIST (PRESIDENT+)>

<!ELEMENT PRESIDENT (NAME, TERM, PARTY, HOMESTATE)>

<!ELEMENT NAME (FIRST, MIDDLE?, LAST)>
<!ELEMENT FIRST (#PCDATA)>
<!ELEMENT MIDDLE (#PCDATA)>
<!ELEMENT LAST (#PCDATA)> 

<!ELEMENT TERM (TERMSTART, TERMEND, TERMLENGTH)>
<!ELEMENT TERMSTART (#PCDATA)>
<!ELEMENT TERMEND (#PCDATA)>
<!ELEMENT TERMLENGTH (#PCDATA)>

<!ELEMENT PARTY (#PCDATA)>
<!ELEMENT HOMESTATE (#PCDATA)>


<!ATTLIST PRESIDENT 
            id ID #REQUIRED 
            gender (male | female) #IMPLIED 
            name CDATA #IMPLIED>
<!ATTLIST TERM 
            count CDATA #IMPLIED>
<!ATTLIST TERMLENGTH 
            unit (months | years) #IMPLIED>