XML 文档的结构
XML 文档的组成
一个XML文档由两部分构成:第一部分是文档序言,第二部分是文档元素(节点)。
1.文档序言
文档序言通常位于XML文档的顶端,根元素之前出现,它是一个特定的包含XML 文档设定信息的部分。XML 文档序言由如下几个部分组成:
- XML 声明:用来设置XML文档解析时所需的基本参数。
- 处理指令:为某个特定类型的软件反馈一条特殊的指令。
- 文档类型定义:用来设置更多高级的信息,如实体、属性及有效性相关的信息。
- 注释:用于提醒XML文档作者或临时标注出文档中不完善的部分。
2.文档元素
XML 文档元素形成的是一个树状结构,因此文档元素也被称为根元素。根元素包含了文档的所有其他元素和数据内容。
XML 文档的声明
XML 文档声明是为XML 解析器进行文档处理时提供相关信息的一个很小的配置信息集合。每一个XML 文档应当包含一个XML 声明,并且XML 声明必须放在文档的第一行。XML 声明的语法格式如下所示:
<?xml 属性1 属性2 ... ?>
XML 声明中包括三个属性,每个属性设置的具体形式为:属性名称="属性值"。其中属性值需要是使用双引号或者单引号括起来,多个属性之间使用空格进行分隔。XML 声明中的三个属性的名称分别是:version、encoding和standalone。
1.version
version属性用来声明XML 文档所遵循的XML 标准版本。现在通常情况下该属性的值都是1.0,尽管 XML 1.1 已经称为 W3C 的推荐标准,但是大部分的 XML 解析器还是采用 XML 1.0 标准。version 是 XML 声明中必须包含的一个属性。
2.encoding
encoding 属性用来告诉 XML 解析程序当前 XML 文档使用什么样的字符编码。该属性是可选的。当 XML 声明中没有明确给出字符编码方式时,XML 解析程序将默认为 XML 文档采用的是 UTF-8 字符编码。
3.standalone
standalone 属性定义了是否可以在不读取任何其他文件的情况下处理该文档。例如,XML 文档没有引用任何其他文件,则可以指定属性值为 yes。如果 XML 文档引用其他描述该文档可以包含的文件,则可以指定属性值为 no。因为 no 是 standalone 属性默认的属性值,所以较少会在 XML 声明中看到 standalone 属性。
需要注意的是,如果同时设置了 encoding 和 standalone 属性,standalone 属性必须位于 encoding 属性之后。
XML 文档的处理指令
XML 的处理指令简称PI(Processing Instruction),其用途是为XML 解析器提供传送给应用程序或脚本程序的信息,也可以利用处理指令来指定应用程序处理或显示文档的方式。XML 文档开头的声明语句就是处理指令的一个特例。
处理指令一般具有下列语法格式:
<? 目标程序名 指令 ?>
”目标程序名“是指指令被引导到的处理软件或脚本程序的名字,需要注意大写字母或小写字母的 xml、xsl 等名称都已被保留,不能再作为其他处理软件或脚本程序的名字;“指令”是被传送到处理软件或脚本程序的信息,可由除了“?>”字符之外的任何连续字符组成。
可以在 XML 文档中使用的特殊处理指令是根据文档的解析器来决定的。如果使用IE浏览器作为 XML 解析器,则可使用标准处理指令来高速 IE 浏览器如何处理或显示文档。
例如,下面的代码指定了一个到 CSS 样式表的引用:
<?xml-stylesheet type="text/css" href="mystyle.css" ?>
处理指令中的第一项是一个名字,称为指令的目标。上面的名字是“xml-stylesheet”。以xml开头的名字被保留为 XML 专用的处理名字。后面的指令告诉 IE 浏览器使用 mystyle.css 的层叠样式表来显示该文档。
可以将处理指令添加到 XML 文档中的任何地方,即可将处理指令放置在文档的序言中,也可放置在元素的内容中。此外,在需要时还可以将处理指令放置在文档类型定义(DTD)中,只要处理指令不是放在 DTD 文档的标记之中即可。
参考:
《XML 实用教程》 陈作聪、苏静、王龙等编著
XML 文档的结构的更多相关文章
- 【Win10 应用开发】自适应Toast通知的XML文档结构
老规矩,在开始之前老周先讲个故事. 话说公元2015年7月20日,VS 2015发布.于是,肯定有人会问老周了,C#6有啥新特性,我学不来啊.学不来的话你应该检讨.老周比较保守地计算一下,学会C# 6 ...
- Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构
分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...
- 【Win 10应用开发】把文件嵌入到XML文档
把文件内容嵌入(或存入)到XML文档中,相信很多朋友会想到把字节数组转化为Base64字符串,再作为XML文档的节点.不过,有人会说了,转化后的base64字符串中含有像“+”这样的符号,写入到XML ...
- iOS网络编程笔记——XML文档解析
今天利用多余时间研究了一下XML文档解析,虽然现在移动端使用的数据格式基本为JSON格式,但是XML格式毕竟多年来一直在各种计算机语言之间使用,是一种老牌的经典的灵活的数据交换格式.所以我认为还是很有 ...
- Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...
- 解析XML文档大致流程以及相关方法
---恢复内容开始--- 使用dom解析XML文档的大致流程(要导入dom4j)1:创建SAXReader2:使用SAXReader读取xml文档,并生成对应的Document对象,该对象保存了该文档 ...
- Spring学习----- Spring配置文件xml文档的schema约束
1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- 关于Spring配置文件xml文档的schema约束
最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...
- [Xcode 实际操作]七、文件与数据-(16)解析XML文档
目录:[Swift]Xcode实际操作 本文将演示如何解析XML文档. 项目中已添加一份XML文档:worker.xml <?xml version="1.0" encodi ...
随机推荐
- 经典算法——Jump Game(II)
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- Servlet——简单用户登录实例+http协议解析
编写项目.用户登录系统1.0版本号 登录界面Servlet: package com.gavin.view; import java.io.IOException; import java.io.Pr ...
- Selenium webdriver Java 操作chrome 浏览器
Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是 ...
- 关于部分Android手机安装apk,无法获取正常的logo
最近出现过类似的问题,主要出现是在,MediaPad X1 7.0和MediaPad M1 8.0. 发布应用的时候明明配置好了图标的,但是始终找不到原因,郁闷了好几个小时,也浪费了好几个小时. 如果 ...
- 【DB2】DB2中rank(),dense_rank(),row_number()的用法
1.准备测试数据 DROP TABLE oliver_1; ),SUB_NO ),SCORE int); ,,); ,,); ,,); ,,); ,,); ,,); 2.详解rank(),dense_ ...
- java之super关键字
super关键字: 在java中使用super来引用基类的成分. 程序code: class FatherClass{ public int value; public void f(){ value ...
- mysql 主库有数据通过锁库做主从
master@localhost[(none)]> grant replication slave on *.* to 'repl'@'192.168.1.177' identified by ...
- HTTP协议之http状态码详解
什么是HTTP状态码 HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事. 状态码位于HTTP Response 的第一行中,会返回一个”三位数字的状态码“和一个“状态消息”. ”三位数 ...
- DataUml Design 教程7 - 数据库生成模型
DataUml Design支持数据库生成模型,并支持外键关系,能够根据外键自动生成类与类之间的关系. 目前DataUML Design支持MS Server.MY SQL.Oracle和Access ...
- 配置linux服务器和pycharm的连接
1.打开pyCharm Tools->Deployment->Configuratio Connecion ->Root Path: /home/admin/application/ ...