XML / DTD显示一些错误

时间:2018-04-08 16:29:05

标签: xml dtd xml-dtd

请问,我需要一些帮助,因为我正在尝试验证我的XML,但是DTD显示了3个我找不到的错误。

XML:

<item>
        <image>images/ejournal.jpg</image>
        <title>Internet TESL Journal</title>
        <type>eJournal/eMagazine</type>
        <editform>https://ecu.on.worldcat.org/oclc/44511716#editions-panel44511716-section</editform>
        <author>
            <fname>Internet TESL Journal (Firm)</fname>
            <sname></sname>
            <alink>https://ecu.on.worldcat.org/search?queryString=au:Internet%20TESL%20Journal%20(Firm)&amp;databaseList=638</alink>
        </author>
        <year>1995</year>
        <link>https://ecu.on.worldcat.org/oclc/44511716</link>
        <vlink></vlink>
        <description>
            <summary>Each issue contains articles, research papers, lessons plans, classroom handouts, teaching ideas &amp; links. Also includes articles, lessons and handouts from previous issues from 1995 on. </summary>
            <publication>Toyota, Japan : Internet TESL Journal, 1995.</publication>
            <language>English</language>
            <database>WorldCat </database>
            <oclc>44511716 </oclc>
            <genre>Electronic journals, Periodicals. </genre>
            <issn></issn>
            <isbn></isbn>
        </description>
    </item>

和DTD:

<!ELEMENT library (item+)>
<!ELEMENT item (image,title,type,editform,author+,year,link,vlink,description)>
<!ATTLIST item CDATA #REQUIRED>
<!ELEMENT image (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT author (fname,sname,alink)>
<!ATTLIST author CDATA #REQUIRED>
<!ELEMENT fname (#PCDATA)>
<!ELEMENT sname (#PCDATA)>
<!ELEMENT alink (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ELEMENT vlink (#PCDATA)>
<!ELEMENT description (summary,publication,language,database,oclc,issn,isbn)>
<!ATTLIST description CDATA #REQUIRED>
<!ELEMENT summary (#PCDATA)>
<!ELEMENT publication (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT database (#PCDATA)>
<!ELEMENT oclc (#PCDATA)>
<!ELEMENT issn (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>

验证者提供以下错误:

  

错误代码:-1072896764错误原因:名称以a开头   无效字符。错误行:3

2 个答案:

答案 0 :(得分:1)

三个ATTLIST条目不正确。

我的解析器报告:

元素“item”的属性“CDATA”声明中需要属性类型。

由于没有任何元素具有任何属性,因此您不需要ATTLIST。

答案 1 :(得分:0)

问题出在您的ATTLIST声明中。您只是忘了添加实际的attribute-name

总体形式是:

<!ATTLIST element-name attribute-name attribute-type attribute-value>

与以下内容不符:

<!ATTLIST item   CDATA #REQUIRED>
               ^
               |
         attribute-name missing here

简单解决方案:从DTD中删除ATTLIST

顺便说一句:为什么不使用XSD进行验证?