Xml 使用记事本进行内部DTD验证++;

Xml 使用记事本进行内部DTD验证++;,xml,validation,notepad++,dtd,Xml,Validation,Notepad++,Dtd,我是XML新手,尝试用DTD创建一个简单的XML 我通过XML工具blugin使用Notepad++进行验证 这是我的带有内部DTD的XML代码 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE People [ <!ELEMENT People (name, phone*)> <!ELEMENT name (#PCDATA)*> <!ELEM

我是XML新手,尝试用DTD创建一个简单的XML

我通过XML工具blugin使用Notepad++进行验证

这是我的带有内部DTD的XML代码

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE People [
    <!ELEMENT People (name, phone*)>
    <!ELEMENT name (#PCDATA)*>
    <!ELEMENT phone (#PCDATA)*>   
    <!ATTLIST phone type (home) #REQUIRED>
]>

<People>
    <name> John Smith </name>
    <phone type="home">+1 (123) 456-7890 </phone>
</People>

]>
约翰·史密斯
+1 (123) 456-7890 
如果保留“standalone=”yes“,则收到以下错误“error:standalone:在外部子集中声明的人员包含空格节点”。如果我删除它,代码将被验证,没有任何问题

有人能解释一下为什么“standalone=”yes“会导致问题吗? 多谢各位

另外,请仔细阅读上述问题的描述,然后再将其标记为重复

有效性约束:独立文档声明

独立文档声明必须具有值“否”(如果有) 外部标记声明包含以下声明:

  • 具有默认值的属性,如果这些属性所应用的元素出现在文档中,但未指定 这些属性的值,或

  • 实体(amp、lt、gt、apos、QUOTE除外),如果文件中出现对这些实体的引用,或

  • 具有标记化类型的属性,其中该属性在文档中显示的值使得规范化将产生一个
    不同于在没有
    声明,或

  • 具有元素内容的元素类型,如果这些类型的任何实例中直接出现空白

参考