我通过w3schools验证器运行了我的XML/DTD,它告诉我它有很多错误,我做错了什么?我承认我已经有几年没有使用XML了。
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<!DOCTYPE WEBDESIGNTOPICS [
<!ELEMENT WEBDESIGNTOPICS (topic+,topicname+,description+,provided)>
<!ELEMENT topic (#PCDATA)>
<!ELEMENT topicname (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT provided (#PCDATA)>
]>
<WEBDESIGNTOPICS>
<topic>
<topicname>HTML5</topicname>
<description>HAMILTON</description>
<provided>SALESMAN</provided>
</topic>
<topic>
<topicname>CSS/CSS3</topicname>
<description>SMITH</description>
<provided>CLEANER</provided>
</topic>
<topic>
<topicname>PHP</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
<topic>
<topicname>JavaScript</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
<topic>
<topicname>jQuery</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
</WEBDESIGNTOPICS>
请注意,XML 文档格式正确,但无效。 您可以在此处阅读格式正确和无效之间的区别。
要使 XML 有效,请执行以下操作:
-
更改
WEBDESIGNTOPICS
的内容模型以反映事实这显然只是一个topics
列表:<!ELEMENT WEBDESIGNTOPICS (topic+)>
-
更改主题的内容模型以反映它可以包含
topicname
、description
和provided
元素。您必须决定作为样本的要求性和基数XML 不能指示通用性本身:<!ELEMENT topic (topicname,description,provided)>
总的来说,这个更新的 XML 文档将是有效的:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<!DOCTYPE WEBDESIGNTOPICS [
<!ELEMENT WEBDESIGNTOPICS (topic+)>
<!ELEMENT topic (topicname,description,provided)>
<!ELEMENT topicname (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT provided (#PCDATA)>
]>
<WEBDESIGNTOPICS>
<topic>
<topicname>HTML5</topicname>
<description>HAMILTON</description>
<provided>SALESMAN</provided>
</topic>
<topic>
<topicname>CSS/CSS3</topicname>
<description>SMITH</description>
<provided>CLEANER</provided>
</topic>
<topic>
<topicname>PHP</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
<topic>
<topicname>JavaScript</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
<topic>
<topicname>jQuery</topicname>
<description>JONES</description>
<provided>MANAGER</provided>
</topic>
</WEBDESIGNTOPICS>