XML/DTD 显示一些错误
XML/DTD showing some errors
拜托,我需要一些帮助,因为我正在尝试验证我的 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)>
验证器给出以下错误:
Error Code: -1072896764 Error Reason: A name was started with an
invalid character. Error Line: 3
三个 ATTLIST 条目不正确。
我的解析器报告:
元素 "item" 的属性 "CDATA" 声明中需要属性类型。
由于 none 个元素具有任何属性,因此您不需要 ATTLIST。
问题出在您的 ATTLIST
声明中。您只是忘记添加实际的 attribute-name
!
整体形式为:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
不匹配:
<!ATTLIST item CDATA #REQUIRED>
^
|
attribute-name missing here
简单的解决方案:从您的 DTD 中删除 ATTLIST
顺便说一句:为什么不使用 XSD 进行验证?
拜托,我需要一些帮助,因为我正在尝试验证我的 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)>
验证器给出以下错误:
Error Code: -1072896764 Error Reason: A name was started with an invalid character. Error Line: 3
三个 ATTLIST 条目不正确。
我的解析器报告:
元素 "item" 的属性 "CDATA" 声明中需要属性类型。
由于 none 个元素具有任何属性,因此您不需要 ATTLIST。
问题出在您的 ATTLIST
声明中。您只是忘记添加实际的 attribute-name
!
整体形式为:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
不匹配:
<!ATTLIST item CDATA #REQUIRED>
^
|
attribute-name missing here
简单的解决方案:从您的 DTD 中删除 ATTLIST
顺便说一句:为什么不使用 XSD 进行验证?