1 XML 概述

Wu Jun 2020-01-02 15:08:09
05 Java > 00 Java 基础 > 10 XML

XML 指可扩展标记语言(eXtensible Markup Language),标签自定义,作用是:

  1. 程序之间的数据传输通讯
  2. 配置文件
  3. 存储数据,充当小型数据库

与 HTML 一样从标准通用标记语言(SGML)衍生,区别是XML语法要求严格,大小写敏感,标签必须闭合,属性必须引号括起来。

1 文档结构

1.1 文档头

XML 文档应当以一个文档头开始,可选但推荐

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

保存的时候编码要跟声明的一样

1.2 文档类型

文档类型定义是确保文档正确的一个重要机制,但是它不是必需的。

<!DOCTYPE ……

1.3 正文

XML 文档的正文包含根元素,根元素包含其他元素。

1)元素

元素可以有子元素、文本或两者皆有。最好避免两者皆有

<student> 
    rocco
</student>
2)属性

XML 元素可以包含属性

<student name="eric"> 
    rocco
</student>

属性只应该用来修改值的解释,而不是用来指定值。否则直接用元素。

3)转义字符

在 xml 中内置了一些特殊字符,需要进行转义。

&#233;&#xE9;
&lt;&gt;
3.4)CDDATA 块

可以囊括特殊字符,进行原样输出,不需转义。

<![CDATA[内容]]>
5)处理指令

用来指挥解析引擎如何解析 xml 文档内容

<?xml-stylesheet type="text/css" href="1.css"?>
6)注释
<!--xml注释-->

2 命名空间

2.1 使用前缀

来避免命名冲突

<h:table>
   <h:tr>
       <h:td>Apples</h:td>
       <h:td>Bananas</h:td>
   </h:tr>
</h:table>
<f:table>
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

2.2 使用命名空间

为标签添加 XML Namespace (xmlns) 属性,XML 命名空间属性被放置于元素的开始标签之中

xmlns:namespace-prefix="namespaceURI"

当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。

<h:table xmlns:h="http://www.w3.org/TR/html4/">
   <h:tr>
       <h:td>Apples</h:td>
       <h:td>Bananas</h:td>
   </h:tr>
</h:table>
<f:table xmlns:f="http://www.w3school.com.cn/furniture">
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>
1)XML Namespace (xmlns) 属性
2)默认的命名空间
xmlns="namespaceURI"

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

<table xmlns="http://www.w3.org/TR/html4/">
   <tr>
       <td>Apples</td>
       <td>Bananas</td>
   </tr>
</table>