格式正确的 XML DTD

  • 本文关键字:XML DTD 格式 xml dtd
  • 更新时间 :
  • 英文 :


我通过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 有效,请执行以下操作:

  1. 更改WEBDESIGNTOPICS的内容模型以反映事实这显然只是一个topics列表:

     <!ELEMENT WEBDESIGNTOPICS (topic+)>
    
  2. 更改主题的内容模型以反映它可以包含topicnamedescriptionprovided元素。您必须决定作为样本的要求性和基数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>

最新更新