请问,我需要一些帮助,因为我正在尝试验证我的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)&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 & 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
答案 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进行验证?