XML声明是文档首行可选但推荐的标识,须严格位于最前且无BOM/空格,含version(必填)、encoding(可选编码)、standalone(是否独立)三属性。
详解">
是 XML 文档的声明(XML Declaration),用于告诉解析器:这是一份 XML 格式的文档,并指明所遵循的版本和相关编码等基础信息。
它不是必需的,但强烈推荐写上
XML 规范允许省略声明,但如果省略,解析器会按默认规则处理(比如假设编码为 UTF-8 或 UTF-16)。一旦实际编码与解析器猜测不一致,就容易出现乱码或解析失败。加上声明能明确意图,提升兼容性和可维护性。
标准格式包含三个常用属性
完整形式通常长这样:
- version:必须项,目前只有 "1.0" 和 "1.1"(极少用),表示遵循的 XML 版本规范
- encoding:可选项,声明文档实际使用的字符编码(如 UTF-8、ISO-8859-1、GBK)。若不写,默认由解析器根据字节序标记(BOM)或约定推断
- standalone:可选项,值为 "yes" 或 "no"。表示该文档是否独立(即不依赖外部 DTD)。设为 "yes" 时,如果文档中引用了外部 DTD,部分严格解析器会报错
书写位置和格式要求很严格
XML 声明必须是文档最开头的内容(前面不能有任何字符,包括空格、换行、BOM —— 某些编辑器悄悄加的 BOM 尤其容易引发问题):
- 必须以 开头、?> 结尾
- 中间不能换行,属性之间用空格分隔
- 属性值必须用双引号或单引号包裹(推荐双引号)
- 不能出现在 XML 内容中间或注释之后
常见错误示例
❌ 错误:前面多了空格或 BOM
❌ 错误:用了中文引号或全角符号
❌ 错误:encoding 值与文件真实编码不匹配(比如声明 UTF-8,实际存为 GBK)→ 解析时中文变问号或乱码










