XML 文档的组成

一个XML文档由两部分构成:第一部分是文档序言,第二部分是文档元素(节点)。

1.文档序言

文档序言通常位于XML文档的顶端,根元素之前出现,它是一个特定的包含XML 文档设定信息的部分。XML 文档序言由如下几个部分组成:

  • XML 声明:用来设置XML文档解析时所需的基本参数。
  • 处理指令:为某个特定类型的软件反馈一条特殊的指令。
  • 文档类型定义:用来设置更多高级的信息,如实体、属性及有效性相关的信息。
  • 注释:用于提醒XML文档作者或临时标注出文档中不完善的部分。

2.文档元素

XML 文档元素形成的是一个树状结构,因此文档元素也被称为根元素。根元素包含了文档的所有其他元素和数据内容。

XML 文档的声明

XML 文档声明是为XML 解析器进行文档处理时提供相关信息的一个很小的配置信息集合。每一个XML 文档应当包含一个XML 声明,并且XML 声明必须放在文档的第一行。XML 声明的语法格式如下所示:

  1. <?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 文档开头的声明语句就是处理指令的一个特例。

处理指令一般具有下列语法格式:

  1. <? 目标程序名 指令 ?>

”目标程序名“是指指令被引导到的处理软件或脚本程序的名字,需要注意大写字母或小写字母的 xml、xsl 等名称都已被保留,不能再作为其他处理软件或脚本程序的名字;“指令”是被传送到处理软件或脚本程序的信息,可由除了“?>”字符之外的任何连续字符组成。

可以在 XML 文档中使用的特殊处理指令是根据文档的解析器来决定的。如果使用IE浏览器作为 XML 解析器,则可使用标准处理指令来高速 IE 浏览器如何处理或显示文档。

例如,下面的代码指定了一个到 CSS 样式表的引用:

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

处理指令中的第一项是一个名字,称为指令的目标。上面的名字是“xml-stylesheet”。以xml开头的名字被保留为 XML 专用的处理名字。后面的指令告诉 IE 浏览器使用 mystyle.css 的层叠样式表来显示该文档。

可以将处理指令添加到 XML 文档中的任何地方,即可将处理指令放置在文档的序言中,也可放置在元素的内容中。此外,在需要时还可以将处理指令放置在文档类型定义(DTD)中,只要处理指令不是放在 DTD 文档的标记之中即可。

参考:

《XML 实用教程》 陈作聪、苏静、王龙等编著

XML 文档的结构的更多相关文章

  1. 【Win10 应用开发】自适应Toast通知的XML文档结构

    老规矩,在开始之前老周先讲个故事. 话说公元2015年7月20日,VS 2015发布.于是,肯定有人会问老周了,C#6有啥新特性,我学不来啊.学不来的话你应该检讨.老周比较保守地计算一下,学会C# 6 ...

  2. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  3. 【Win 10应用开发】把文件嵌入到XML文档

    把文件内容嵌入(或存入)到XML文档中,相信很多朋友会想到把字节数组转化为Base64字符串,再作为XML文档的节点.不过,有人会说了,转化后的base64字符串中含有像“+”这样的符号,写入到XML ...

  4. iOS网络编程笔记——XML文档解析

    今天利用多余时间研究了一下XML文档解析,虽然现在移动端使用的数据格式基本为JSON格式,但是XML格式毕竟多年来一直在各种计算机语言之间使用,是一种老牌的经典的灵活的数据交换格式.所以我认为还是很有 ...

  5. Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术

    一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...

  6. 解析XML文档大致流程以及相关方法

    ---恢复内容开始--- 使用dom解析XML文档的大致流程(要导入dom4j)1:创建SAXReader2:使用SAXReader读取xml文档,并生成对应的Document对象,该对象保存了该文档 ...

  7. Spring学习----- Spring配置文件xml文档的schema约束

    1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

  8. 关于Spring配置文件xml文档的schema约束

    最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  9. [Xcode 实际操作]七、文件与数据-(16)解析XML文档

    目录:[Swift]Xcode实际操作 本文将演示如何解析XML文档. 项目中已添加一份XML文档:worker.xml <?xml version="1.0" encodi ...

随机推荐

  1. asp.net购物车,订单以及模拟支付宝支付(一)---购物车表及添加购物车流程

    在开发一个Web程序的时候用到了网购这个功能,上来分享并记录一下,以便以后忘记了可以自己看看(电脑东西太多,笔记都不知道放哪里去了啊啊啊啊啊!!!) 没有什么高并发量,什么什么技术理论,只是一个最最基 ...

  2. represent states with objects

    1. The behavior of objects in the real world is more complex than simply being in one state at a tim ...

  3. 【招聘App】—— React/Nodejs/MongoDB全栈项目:socket.io&聊天实现

    前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...

  4. ZOJ 3526 Weekend Party

    Weekend Party Time Limit: 2 Seconds      Memory Limit: 65536 KB As the only Oni (a kind of fabulous ...

  5. JAVA学习笔记 -- 多线程之共享资源

    在多线程程序执行过程中,可能会涉及到两个或者多个线程试图同一时候訪问同一个资源.为了防止这样的情况的发生,必须在线程使用共享资源时给资源"上锁",以阻挡其他线程的訪问. 而这样的机 ...

  6. [Typescript] Make TypeScript Class Usage Safer with Strict Property Initialization

    By setting the strictPropertyInitialization flag in the .tsconfig file, TypeScript will start throwi ...

  7. ubuntu各版本代号(更新至15.04)及各版本下载地址等

    版本号 代号 发布时间 15.04 Vivid Vervet 2015/04/22 14.10 Utopic Unicorn 2014/10/23 14.04 LTS Trusty Tahr 2014 ...

  8. Android Exception 16(Error in ADT 23 Update)

    http://stackoverflow.com/questions/24445367/error-in-adt-23-update http://stackoverflow.com/question ...

  9. Ubuntu系统进程绑定CPU核

    Ubuntu系统进程绑定CPU核 作者:chszs.版权全部,未经允许,不得转载. 博主主页:http://blog.csdn.net/chszs 本文讲述如何在Ubuntu系统中,把指定的进程绑定到 ...

  10. ibatis 动态查询

    http://www.iteye.com/topic/393042最近做了很多动态的查询,尤其是排序,以及一些状态字段,所以就做了一个总的动态查询,以不变应万变,呵呵 ibatis 里面的sql代码: ...