1.2.1 文档声明

在一个完整的 XML 文档中必须包含一个 XML 文档声明,该声明必须位于文档的第一行。这个声明表示该文档是一个 XML 文档,遵循的是哪个 XML 版本的规范。

最简单的 XML 文档声明语法如下:

<?xml version="1.0" ?>

必选属性:version

可选属性:encoding standalone

需要注意的是:在“<”和“?”之间、“?”和“>”之间以及第一个“?”和 xml 之间不能有空格!在第二个“?”之前可以没有、也可以有一个或多个空格。

下面分别介绍属性:

(1)version 属性,必选。

version 属性表示 XML 的版本,因为解析器对不同的版本的解析是有区别的。尽管目前只有 1.0 版本,但在声明中还是必须指定 version 属性。

(2)encoding 属性,可选。

encoding 属性指定文档所用的字符编码方式,可选值有“UTF-8”、“UTF-16”、“GB2312”、“ISO-8859-1”。如果没有设置,则默认为 Unicode 编码。W3C 的 XML1.0 规范里规定,所有的 XML 解析器必须接受 UTF-8 和UTF-16 编码的 Unicode 字符,所以,符合 XML 规范的软件工具都一定支持这两种 Unicode 编码。中文字符编码格式为“GB2312”。

在实践书中的例子的例子时,在没有指定编码格式的时候,用 IE(Microsoft Edge)打开,显示编格式为“ISO-859-1”。本人不懂编码格式,只是遇到过这几种,至于这几种编码格式之间的关系,都不清楚。(待了解)

(3)standalone 属性,可选。

standalone 属性说明文档是否独立,可选值有“yes”、“no”,默认值为“yes”。文档独立,表示该文档不依赖外面的任何文件而可以独立存在,即不需要 DTD 文件来验证其中的标识是否有效,也不需要 XSL、CSS 文件来控制其显示外观。

如果同时设置了 encoding 和 standalone 属性,standalone 属性要位于 encoding 属性之后。

1.2.2 元素定义

与 HTML 一样,XML 文档的主体部分也是由元素(Element)组成的。

元素:即一个标记,包括开始标记,结束标记及其中的内容。如:<书>Java 就业培训教程</书>。

根元素:没有嵌套在其他元素内的元素。根元素通常是 XML 文档中定义个第一个元素,格式良好的 XML 文档有且仅有一个根元素,其他元素都是它的子孙元素。

子孙元素:嵌套在其他元素内的元素。

空元素:没有嵌套子元素和数据的元素,也就是标记对之间没有内容。空元素可以不使用结束标记,但必须在开始标记的结束定界符(>)前面增加一个正斜杠(/)字符表示该标记是一个空元素。空元素一般都与属性配合使用,如<img src="log.gif" />。

注意:在 HTML 中,有的标记没有或者可以不用结束标记来说明,如<img src="log.gif">。在 XML 中,所有标记都必须有结束标记或者使用空元素的结束说明。而且,所有元素都必须合理嵌套,决不允许出现交叉嵌套,破坏文档的结构层次关系。

XML 标记命名规范:

① 区分大小写;② 不能以数字或“_”(下划线)开头;③ 不能包含空格;④ 名称中间不能包含冒号(:)。

XML 标记命名建议:

① 不要使用 “.”,因为在很多程序语言中,“.” 用于引用对象的属性;② 最好不用减号(-),用下划线(_)代替,避免与表达式中的减号(-)运算符发生冲突;③ 名称尽量简短,减少 XML 文档的大小;④ 名称的大小写采用统一标准,要么全大写,要么全小写;⑤ 名称可以使用非英文字符,如中文,但是有些软件可能不支持非英文字符之外的字符,在使用时应考虑到。

1.2.3 属性定义

XML 标签的属性也是自己随便定义的,用于对标签进一步描述和说明。一个标签可以有多个属性,每个属性都有名称和取值。属性命名规范和标签相同。

如:<售价 单位="元">58</售价>

属性也可以被改成用子元素来描述同样的信息。虽然,属性不易被程序扩充、不易被程序操作,但是,程序处理的速度比使用子元素快。

如:<售价>

<单位>元</单位>

<价格>58</价格>

</售价>

1.2.4 注释

注释的内容会被程序忽略而不被程序解释和处理,语法如下:

<!-- 注释信息 --!>

注意:XML 声明只能作为 XML 文件中的第一行,不要把注释放在 XML 声明之前。注释不能嵌套使用。

1.2.5 空格和换行的处理

不像 HTML,在 HTML 文本中连续出现的多个空格和回车换行,总是显示为一个空格。 但是,XML 解析空格和换行时,会一个一个如实交给下游程序处理。例如下面两段内容的意义是不一样的。

第一段:

<网址>www.baidu.com</网址>

第二段:

<网址>

www.baidu.com

</网址>

第一段中的元素只有“www.baidu.com”这一个文本串,而第二段中的元素内容为“回车换行”符、“TAB”制表符、“www.baidu.com”文本串、又一个“回车换行”符的总和。

所以,在编写 XML 文件时,要意识到,空格和换行都作为原始内容被处理。不能为了使文件内容清晰可读,随便使用换行、缩进。

1.2.6 CDATA 区

CDATA 是 character data 的简写,意思是字符数据。CDATA 区指的是不想被解析程序解析的一片原始数据区,它以 “<![CDATA[” 开始,以 “]]>” 结束。

如:<![CDATA[Elements look like <this>]]> ,这样解析程序就不会把 <this> 解释成一个元素的标签,可以实现人们想要的原义文本了,解析器会把这些数据原封不动地交给下游程序处理。

在某些情况下,需要注意 CDATA 区中起始和结束处的空格、换行等空白字符的影响。例如:

<![CDATA[www.baidu.com]]>

<![CDATA[

www.baidu.com]]>

这两段文本的意义是不一样的,后者相对前者,在字符串 "www.baidu.com" 的前面多了一个换行字符。

另外,与 XML 区分大小写的特性一致,使用 CDATA 区,“<![CDATA[” 不能写成 “<![cdata[” 或 “<![Cdata[” 等形式。且,CDATA 区内部不能出现 “]]>”,因为它是 CDATA 区的结束标志。

1.2.7 特殊字符

在 XML 文档中一共有 5 个预定义实体,即 5 个字符,意思就是这 5 个字符已经被 XML 文档定义了,就像 Java 的关键字一样。如果我们想要这 5 个字符,就必须使用转义字符序列才能表示其原始字面意义。

XML 文档中的 5 个预定义实体和对应的转义字符序列的对照关系如下:

& ===> &amp;

< ===> &lt;

> ===> &gt;

" ===> &quot;

‘ ===> &apos;

1.2.8 处理指令

处理指令是 Processing Instruction 的中文翻译,简称 PI。处理指令用来为处理 XML 文档的应用程序提供指示信息。

处理指令以 “<?” 开头,以 “?>” 结尾,XML 声明语句是最常见一种处理指令。

XML 分析器把处理指令原封不动地传给应用程序,由应用程序来解释这个指令,按照它所提供的信息进行处理。例如,在 XML 文档可以包含下面的语句告诉浏览器使用 book.css 控制 book.xml 的显示效果。

<?xml-stylesheet type="text/css" href="book.css"?>

【例】book.xml

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

<?xml-stylesheet type="text/css" href="book.css" ?>

<bookStore>

<book>

<bookName>Java 就业&amp;培训课程</bookName>

<author>张孝祥</author>

<price>39.00元</price>

</book>

</bookStore>

【例】book.css

<?xml version="1.0" encoding="GB2312"?>

bookName: {

display: block;

color: red

}

author: {

display: block;

font-style: '宋体'

}

price: {

display: block;

color: olive

}

代码在线格式化:http://tool.oschina.net/codeformat/css

====== 以上内容来源于 张孝祥老师的《深入体验Java Web开发内幕 》,记录下来,只作为个人读书笔记。===========

1.2 XML 的基本语法相关推荐

  1. XML 文件结构与语法

    ML文件结构和基本语法 2011年09月25日 22:24:10 阅读数:77575 XML文件结构和基本语法 分类: html java2010-03-12 17:04 903人阅读 评论(1) 收 ...

  2. XML概述、语法及常用操作

    1. XML概述 关于XML的定义有以下几种说法: ① XML是可扩展标记语言(Extensible Markup Language)的缩写. ② XML是一种类似于HTML的标记语言. ③ XML是 ...

  3. C#操作xml之xpath语法

    以前也发过关于.net中操作XML的帖子,但不是很详细,现在我将详细介绍一下c#如何操作xml文件,正如学习操作数据库要学习SQL语言一样,在学习操作xml与语言之前,我们要先熟悉一下xml的&quo ...

  4. java day36【XML概念 、语法 、解析】

    第一章  XML 1. 概念:Extensible Markup Language 可扩展标记语言 * 可扩展:标签都是自定义的. <user> <student> * 功能 ...

  5. XML 的 XPath 语法

    XPath 是 XML 路径语言(XML Path Language),用来确定XML文档中某部分位置的语言.无论是什么语言什么框架,几乎都可以使用 XPath 来高效查询 XML 文件. 路径 /p ...

  6. 网站建设学习(十四)——XML介绍及语法

    经过前一段时间的介绍,已经将前端基础大致介绍完毕,通过html,css,JavaScript可以设计出与用户具有一定交互性的动态页面,网站的建设还包括服务器以及数据库等等,接下来会按照开发步骤继续介绍 ...

  7. Mapper的xml文件基础语法笔记,增删改查,遍历

    文章目录 sql 标签 select 标签 where标签 insert 标签 update 标签 delete 标签 include 标签 if标签 trim标签 foreach标签 sql 标签 ...

  8. XML Schema全接触 (这里主要介绍W3C的Schema标准语法)

    来源:http://bbs.w3china.org/dispbbs.asp?BoardID=23&ID=27215&ReplyID=22178&skin=1 XML Schem ...

  9. XML文件结构和基本语法

    XML文件的结构性内容,包括节点关系以及属性内容等等. 元素是组成XML的最基本的单位,它由开始标记,属性和结束标记组成. 就是一个元素的例子,每个元素必须有一个元素名,元素可以若干个属性以及属性值. ...

  10. javaweb学习总结七(XML语言作用、语法)

    一:XML语言的概念以及作用 1:xml概念:extensible Markup language,可扩展行标记语言,因为html的语法比较混乱,不够严谨. 用html写的系统不好维护,所以w3c组织 ...

最新文章

  1. TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
  2. 数字图像处理领域的二十四个典型算法及vc实现、第一章
  3. 远程仓库---从远程库克隆
  4. java十年技术栈[总结复习用]
  5. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
  6. 为啥这么多程序员大佬学习Cortex-M3
  7. c语言作业重庆科技学院,C语言程序设计学生上机报告-NO3.doc
  8. Handbook之012:函数类别构型
  9. python3实例车代码_Python编程pygame模块实现移动的小车示例代码
  10. Hadoop-2.2.0中文文档——MapReduce 下一代 -——集群配置
  11. react ui框架_Web开发 React 学习(二十)连载基础篇大结局
  12. MVC之 自定义过滤器(ActionFilterAttribute)
  13. 【2020年】CRISPR基因编辑技术最新进展盘点解读
  14. unity5.x游戏开发指南示例下载
  15. python itchat文档_python itchat简介
  16. C++实现windows平台下音频播放音量调节功能
  17. 台式计算机能分享热点吗,台式机能做wifi热点吗
  18. cocos 微信登陆失败(笔记)
  19. TOM企邮、腾讯企邮、网易企邮、263企邮,四大企业邮箱实测:谁是最实用的企业邮箱产品?
  20. FileChannel阅读笔记

热门文章

  1. j2cache多级缓存
  2. SpringBoot 静态资源版本管理
  3. Bitvise SSH Server超过登录失败次数锁定IP配置
  4. 关于 HTTP 长连接
  5. HTML-CSS常用元素居中对齐方法
  6. Nginx作为静态资源服务器
  7. Python基础:dict字典表
  8. ffmpeg给视频添加文字
  9. uniapp编译支付宝小程序图片图标显示问题
  10. C盘空间不足的处理方式