下面给你整理一篇系统、实战型的指南,详细讲解
👉 XML 文档结构与声明(Declaration) 的用法、规则与示例,适合学习、复习或面试使用。


XML 中的文档与声明用法详解

XML(可扩展标记语言)是一种用于存储和传输数据的文本格式,强调自我描述性和结构化
理解 文档结构和声明 是掌握 XML 的关键。


一、XML 文档的基本结构

一个完整的 XML 文档一般包含三个部分:

  1. XML 声明(可选)
  2. 文档类型声明(可选)
  3. 根元素 + 子元素(必须)

1️⃣ XML 声明

XML 声明通常写在文档第一行:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

组成部分:

属性说明示例
versionXML 版本,必须"1.0"
encoding文档字符编码,可选,默认 UTF-8"UTF-8""ISO-8859-1"
standalone表示是否依赖外部 DTD,可选"yes" / "no"

作用:

  • 告诉解析器 XML 版本
  • 指定字符编码,避免乱码
  • 指明是否依赖外部 DTD 文件

示例:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>张三</to>
  <from>李四</from>
  <message>你好,XML!</message>
</note>

注意:<?xml ... ?> 必须是文档第一行,否则解析器可能报错。


2️⃣ 文档类型声明(DOCTYPE,可选)

用于指定文档所遵循的 DTD(Document Type Definition)

&lt;!DOCTYPE note SYSTEM "note.dtd">

作用:

  • 指明 XML 文档结构的约束
  • 帮助解析器验证元素和属性合法性
  • 可以引用外部 DTD 文件,也可以内部定义

示例(内部 DTD):

&lt;!DOCTYPE note [
  &lt;!ELEMENT note (to,from,message)>
  &lt;!ELEMENT to (#PCDATA)>
  &lt;!ELEMENT from (#PCDATA)>
  &lt;!ELEMENT message (#PCDATA)>
]>
&lt;note>
  &lt;to>张三&lt;/to>
  &lt;from>李四&lt;/from>
  &lt;message>内部 DTD 验证&lt;/message>
&lt;/note>


二、XML 根元素(必选)

  • 每个 XML 文档必须有且仅有一个根元素
  • 所有子元素必须嵌套在根元素内部

示例:

&lt;library>
  &lt;book>
    &lt;title>XML 实战指南&lt;/title>
    &lt;author>阿杰&lt;/author>
  &lt;/book>
&lt;/library>


三、XML 文档声明规则总结

  1. XML 声明是可选的,但推荐写,尤其是多语言环境
  2. 必须在文档第一行
  3. version 必填,encoding、standalone 可选
  4. 文档类型声明 可选,但用于验证时很有用
  5. 根元素是必须的,整个文档内容必须包含在根元素内

四、编码注意事项

  • XML 默认 UTF-8,如果声明不一致容易出现乱码
  • 常用编码:
编码说明
UTF-8推荐,支持多语言
ISO-8859-1西欧语言
GB2312 / GBK中文兼容

示例:

&lt;?xml version="1.0" encoding="GBK"?>
&lt;note>
  &lt;to>张三&lt;/to>
&lt;/note>


五、完整示例

&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?>
&lt;!DOCTYPE library [
  &lt;!ELEMENT library (book+)>
  &lt;!ELEMENT book (title, author)>
  &lt;!ELEMENT title (#PCDATA)>
  &lt;!ELEMENT author (#PCDATA)>
]>
&lt;library>
  &lt;book>
    &lt;title>XML 入门&lt;/title>
    &lt;author>阿杰&lt;/author>
  &lt;/book>
  &lt;book>
    &lt;title>XML 高级应用&lt;/title>
    &lt;author>李四&lt;/author>
  &lt;/book>
&lt;/library>


六、总结

  • XML 声明:定义版本、编码、是否依赖外部 DTD
  • 文档类型声明(DOCTYPE):约束 XML 结构,可选
  • 根元素:XML 文档必需,所有内容都包含在其中
  • 规范写法:保证解析器解析正确、防止乱码
  • 实战经验:尽量声明 UTF-8 编码,必要时使用 DTD 或 XSD 约束文档