XML

XML(可扩展标记语言)

XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言。
与 HTML 不同,XML 的标签不是预定义的,而是由用户自定义的,这使得 XML 非常适合于各种应用,如数据存储、配置文件、网络传输等。


一、XML 简介

什么是 XML?

XML 是一种标记语言,用于描述数据。它允许用户定义自己的标签来存储信息。

XML 的特点:

  • 自描述性:标签描述了数据的含义。
  • 平台无关性:XML 文件可以在任何操作系统和平台上使用。
  • 数据驱动:XML 关注数据本身,而不是显示格式。
  • 易于扩展:用户可以定义自己的标签。

二、XML 文档结构

一个基本的 XML 文档示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child>123</child>
</root>
````

**结构说明:**

* **XML 声明**:`<?xml version="1.0" encoding="UTF-8"?>` 指定了 XML 的版本和字符编码。
* **根元素**:`<root>` 是根元素,所有其他元素都嵌套在其中。
* **子元素**:`<child>` 是根元素 `<root>` 的子元素。

---

## 三、XML 语法规则

1. **所有标签都必须有闭合:**

```xml
<tag>Content</tag>
XML

自闭合标签(空元素):

1
<tag />
XML
  1. 标签名称区分大小写:
    <Note><note> 是不同的标签。

  2. 属性值必须用引号括起来:

    1
    <person name="John Doe" age="30"/>
    XML
  3. 元素必须正确嵌套:

    1
    2
    3
    <outer>
    <inner>Content</inner>
    </outer>
    XML
  4. 特殊字符需要使用实体引用:

    1
    2
    3
    4
    5
    <  表示小于号 (<)
    > 表示大于号 (>)
    & 表示和号 (&)
    ' 表示单引号 (')
    " 表示双引号 (")
    GCODE

四、XML 元素和属性

元素(Element)

元素是 XML 文档的基本构建块,由开始标签、内容、结束标签组成。

1
2
3
4
<book>
<title>XML教程</title>
<author>张三</author>
</book>
XML

属性(Attribute)

属性提供元素的额外信息,放在开始标签内。

1
2
3
4
<book category="编程">
<title>XML教程</title>
<author>张三</author>
</book>
XML

五、注释与 CDATA 区

注释

XML 中的注释以 <!-- 开始,以 --> 结束。

1
<!-- 这是一个注释 -->
XML

CDATA 区

CDATA 区用于在 XML 文件中包含不被解析器解析的文本数据

1
<description><![CDATA[这是一个包含<特殊字符>的文本]]></description>
XML

六、XML Schema(XSD)

XML Schema 用于定义 XML 文档的结构和数据类型。

示例 XSD 文件:

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML

关联 XML 与 XSD:

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="book.xsd">
<title>XML教程</title>
<author>张三</author>
</book>
XML

七、XML 解析方式

XML 解析器用于读取和分析 XML 文档。常见的解析方式包括:

  • DOM(Document Object Model):将整个文档加载到内存中,形成一个树形结构,方便操作但占内存大。
  • SAX(Simple API for XML):逐行读取文档,事件驱动,适合处理大型文档。
  • StAX(Streaming API for XML):基于 Java 的流式 API,适合高效地处理大型 XML 文档。

总结:
XML 是一种高度灵活的数据表示语言,适用于跨平台的数据交换和存储。
它不关注展示,而是注重结构与意义,常用于配置文件、网络通信、Web 服务(如 SOAP)和数据存储。