standalone="yes"表示XML文档不依赖外部DTD,解析器不会加载外部DTD;若声明为"yes"却引用外部DTD会报错,而"no"则要求解析器加载外部DTD以支持实体等定义。
standalone="yes" 表示该 XML 文件是独
立的,不依赖外部 DTD(文档类型定义)来解析或验证内容。
当声明 standalone="yes" 时,XML 解析器会假定文档中所有元素、属性、实体的定义都已内嵌在文档内部(比如通过内部 DTD 子集),或者完全不依赖 DTD。因此解析器不会尝试读取或处理任何外部 DTD(如 SYSTEM 或 PUBLIC 引用)。
),但又声明了 standalone="yes",大多数严格解析器会报错
]>),则 standalone="yes" 是合法且推荐的声明 standalone="no" 表示文档可能依赖外部 DTD 中的信息,比如默认属性值、实体定义、元素约束等。解析器在验证或展开实体时,需要加载并处理外部 DTD。
© 这样的预定义实体,而该实体是在外部 DTD 中声明的,就必须设为 standalone="no"
standalone="no",因为它们依赖外部 DTD 定义标准 HTML 实体standalone 属性只影响解析器是否查找外部 DTD,不改变 XML 是否“合法”(well-formed)。一个文件即使没写 standalone,也默认按 standalone="no" 处理(除非明确声明)。
"yes" 或 "no",不能省略值,也不能写成 standalone="true"
"no" 更稳妥某些老版本解析器(如早期 Java SAX 解析器或嵌入式 XML 库)对 standalone 属性比较敏感;设错可能导致解析失败或实体无法识别。
standalone="yes"
standalone="no"