XML解析中的序言部分指文档开头的声明,用于定义版本、编码和独立性属性,必须以小写

XML解析中的“序言”部分指的是文档开头的声明,它用来定义XML文档的基本属性。这个声明不是强制要求的,但如果存在,就必须出现在文档最开始的位置,前面不能有任何字符(包括空格或换行)。
XML声明的基本结构
一个标准的XML声明形如:
它包含三个可选但有规则的属性:
- version:指定XML版本,必须出现(即使后面省略,解析器也默认为1.0)。目前常用的是"1.0"和"1.1"。
- encoding:声明文档使用的字符编码,如"UTF-8"、"GBK"等。如果文档使用非默认编码保存,此项建议明确写出。
- standalone:表示文档是否依赖外部DTD文件,取值为"yes"或"no"。默认为"yes"。
XML声明的严格规则
XML解析器对声明部分的要求非常严格,任何格式错误都会导致解析失败。主要规则包括:
- 必须以开头,大小写敏感,必须是小写,否则报错。
- 声明必须位于文档最前,前面不能有任何空白、注释或其他内容。
- 属性顺序必须是:version → encoding → standalone,不能调换。
- 引号必须成对使用,只能是双引号(")或单引号('),推荐用双引号。
- encoding和standalone属性可以省略,但version不能省略(除非在某些特殊协议中允许)。
- 声明结尾必须是?>,不能遗漏。
常见错误示例
以下写法都是非法的:
- → XML关键字大写,错误。
- → 属性名大小写错误(应为小写version)。
- → 前面有空格,不允许。
- → 属性顺序错误。
- → 引号缺失,值必须用引号包围。
基本上就这些,只要遵循规范书写,XML声明就能被正确解析。不复杂但容易忽略细节。









