首页 > 编程笔记 > Java笔记 阅读:8

XML文件是什么,XML文件的基本用法(新手必看)

XML 的全称为 Extensible Markup Language,叫作可扩展标记语言。

XML 和前面学习的 HTML 很相似,都属于标记语言,不过两者的用途不同,HTML 主要用来显示页面数据,而 XML 则用来传输和存储数据。“可扩展”的字面意思指 XML 允许自定义格式,但是这不代表开发人员可以随便编写 XML 文件。


图 1 XML语法规范

如图 1 所示,在 XML 基本语法规范的基础上,第三方应用程序、框架会通过设计 XML 约束的方式强制规定配置文件的内容,规定之外的都是不允许的,因此编写 XML 文件不仅需要遵循 XML 基本语法,还要符合第三方应用程序或框架给定的 XML 约束。

XML 语言独立于计算机、操作系统和编程语言,凭借其简单、可扩展、交互性和灵活性在计算机行业得到了广泛应用和支持,例如最基本的网站、应用程序的配置信息,一般都采用 XML 文件来描述。

XML文件的应用

XML 作为独立于软件和硬件的信息传输工具,它可以存储数据、作为数据交换的载体,但最常见的还是作为配置文件使用,例如 JavaEE 框架、SSM 框架大部分都是使用 XML 作为配置文件。

配置文件是给应用程序提供配置参数的文件,并且还可以初始化设置一些有特殊格式的文件。

常见的配置文件类型有 properties 文件、XML 文件、YAML 文件和 JSON 文件:
相信学过 Java 基础的读者,已经对 properties 文件有所了解,下面主要对比一下 properties 文件和 XML 文件,YAML 文件和 JSON 文件这里暂不涉及。

properties 文件的示例代码如下:
atguigu.jdbc.url=jdbc:mysql://192.168.198.100:3306/dbname
atguigu.jdbc.driver=com.mysql.cj.jdbc.Driver
atguigu.jdbc.username=root
atguigu.jdbc.password=atguigu

properties 文件是最简单的一种配置文件,编写过程中需要注意以下要求:
XML 文件的示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 配置 SpringMVC 前端控制器 -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 在初始化参数中指定 SpringMVC 配置文件的位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!-- 设置当前 Servlet 创建对象的时机是在 Web 应用启动时 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <!-- url-pattern 配置斜杠表示匹配所有请求 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
通过上述代码可以看出,XML 文件格式与 properties 文件格式大不相同。properties 配置文件容易理解,但只能赋值,适合简单的属性配置。而 XML 配置文件结构清晰,可以有多种操作方式,更加灵活,但编写过程比较复杂。

XML基本语法

一个标准的 XML 文件一般由以下几部分组成,分别为文档声明、元素、属性、注释和特殊字符。

XML 文件形成了一种树结构,整体来看是由一个标记结点和一个根结点组成,它从“根部”开始,然后扩展到“枝叶”。标记结点指的是文档声明,它只能出现在 XML 文件最开始的地方,根结点则有且仅有一个,然后文件中所有的数据都会以某种形式存储到根结点的子结点中。

下面分别介绍 XML 文件的组成部分。

1) 文档声明

XML文件的文档声明必须放在第一行,以“<?xml”开头,以“?>”结束,在 XML 文件的文档声明中,常见的两个属性为 version 和 encoding:
示例代码如下:
<?xml version="1.0" encoding="UTF-8"?>
其中,version 表示版本号,encoding 表示字符集。对于 XML 文件,如果声明必须遵循上述格式,当然,也可以不声明。

2) 元素

元素是 XML 中最重要的组成部分,也叫作标签。

类似 HTML,所有元素均可拥有文本内容和属性,标签的用法也和 HTML 标签一样,分为开始标签和结束标签,标签中间写的是标签内容,标签内容可以是文本,也可以是其他子标签。如果标签没有任何内容,那么可以定义为单标签,如 <begin/>。

标签可以嵌套,但是不能交叉嵌套,必须保证父标签与子标签的逻辑关系。值得注意的是,一个 XML 文件只能有一个根标签。

另外,标签名必须符合标识符的命名规则,具体如下:

3) 属性

属性是元素的一部分,它必须出现在元素的开始标签中,不能出现在结束标签中。

属性的定义格式如下所示:
属性名="属性值"
其中属性值不能为空,且必须使用单引号或双引号括起来。

一个元素可以有 0 个或多个属性,多个属性之间用空格隔开,但不能出现同名的属性。属性名也要符合标识符的命名规则。例如,前面 XML 文档声明示例中的 version 和 encoding 属性。

4) 注释

XML 文件的注释,以“<!--”开头,以“-->”结尾,注释不能写在 XML 文档声明前且不允许嵌套,并且支持多行注释。

示例代码如下:
<!-- 注释的内容 -->

5) 特殊字符

XML 中共有 5 个特殊的字符,分别为“&”、“<”、“>”、“"”和“'”。如果配置文件中的值包括这些特殊字符,就需要进行特别处理。

XML 对于上述字符提供两种转义方式,一种是通过预定义的实体引用表示,一种是采用“<![CDATA[…]]>”特殊标签,将包含特殊字符的字符串封装起来。

例如,标签由“<”和“>”组成,而对于大于号或小于号的使用,就可以借助实体引用。五个特殊字符对应的 XML 转义序列如下表所示。

表:五个特殊字符对应的 XML 转义序列
符号 对应符号 实体引用
小于 < <
大于 > >
单引号 ' '
双引号 " "
和(and) & &

例如,显示如下标签:<tcode></tcode>,标签内的文本内容为“<tcode>我喜欢写代码</tcode>”。

示例代码如下:
&lt;tcode&gt;我喜欢写代码&lt;/tcode&gt;

第二种方式是将特殊字符放到 CDATA 区,CDATA 内部的所有东西都会被 XML 解析器忽略,XML 解析器会将其当作文本原封不动地输出。当 XML 文件中需要编写一些不希望 XML 解析器进行解析的内容,例如,程序代码、SQL 语句或其他,就可以写在 CDATA 区中。

CDATA 区的定义格式如下所示:
<![CDATA[文本数据]]>
示例代码如下:
<![CDATA[
  select * from employee where salary > 20 and salary < 100;
]]>

相关文章