XML声明是XML文档最开头的特殊指令,用于向XML解析器说明当前文档的基本属性,是XML规范中定义的标准组成部分,它不是XML元素,也不属于文档的实际内容。

XML声明的基本语法
标准的XML声明格式如下,其中各个部分都有明确的含义和规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
各组成部分含义
- version:必填属性,用于指定当前XML文档遵循的XML版本,目前主流版本是1.0,也有部分场景使用1.1版本,解析器会根据该值选择对应的解析规则。
- encoding:可选属性,用于声明文档使用的字符编码,常见取值有UTF-8、GBK等,默认值为UTF-8。如果文档实际编码和声明的不一致,会导致解析出现乱码。
- standalone:可选属性,取值为yes或no,用于说明当前XML文档是否依赖外部的DTD文档。yes表示不依赖外部定义,no表示依赖外部定义,默认值为no。
XML声明的注意事项
XML声明在使用时需要遵循以下规则,否则会导致文档解析失败:
- XML声明必须放在文档的最开头,前面不能有任何内容,包括空格和换行,否则解析器会将其识别为普通文本内容。
- 属性值必须使用英文双引号包裹,不能省略引号,也不能使用单引号。
- 如果文档中没有XML声明,解析器会使用默认的版本1.0和UTF-8编码进行解析,但建议显式声明以避免歧义。
示例代码演示
下面是一个包含完整XML声明的简单XML文档示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
<name>张三</name>
<age>25</age>
<email>test@ipipp.com</email>
</user>
在这个示例中,XML声明明确说明了文档使用XML 1.0版本,UTF-8编码,且不依赖外部DTD,解析器可以按照这些信息正确读取后续的<user>元素内容。
常见误区说明
很多开发者会把XML声明和<!DOCTYPE>声明混淆,二者是不同的概念:XML声明是说明文档基本属性的指令,而<!DOCTYPE>是用于定义文档结构规则的DTD声明,二者可以共存,但作用完全不同。
注意:XML声明不是XML元素,因此不需要闭合标签,它的结束标识是?>,和开头的<?xml对应。
XML声明xml_versionencodingstandalone修改时间:2026-07-11 16:15:19