XML简介
第一章什么是xml
计算机里的数据文件分为俩大类,二进制文件和文本文件。
二进制文件是一个比特流(1或0系列),只有创建二进制的应用程序才会理解这个比特流的实际含义。
文本文件也是比特流,文本文件里的比特流是以一种标准格式组织起来的,因此他们总是组成一个个数,每个数再映射为字符。
标记语言的简史
探索一种在各个不同计算机程序间可以交换数据的方法,最早的标记语言为SGML.==>其后出现了HTML.
XML是SGML的一个子集,XML语言和SGML完全兼容。
对于相同数据,XML 文档远大于纯文本文件。用XML标记数据回增加文件的大小,有事这种增加是巨大的,生成小文件不是xml的目标,它的唯一目标是把数据结构化,是的开发人员很容易根据数据的结构访问数据。
XML本身对数据不能完成任何操作,必须使用一宗叫做解析器导入软件来处理数据。XML的中点是如何表示数据。
1.2使用XML 的好处
易携带传输,XML不依赖特殊软件、易于共享和跨平台,xml本身是文本文件,而且是结构化数据,很容易被各个系统读取。XML树状结构,易于查询。
1.3XML语法
每个开始标记必须有结束标记
一个xml文档只能只有一个根元素
xml元素必须正确嵌套
属性值必须加引号
一个元素不能有相同的属性
----------------------
xml元素是xml文档的基本单位。
在起始标记和结束标记之间的内容,称为xml元素的内容,比如woyouxian就是元素<site>woyouxian</site>的内容
如果xml元素没有内容,称为空元素。空元素有一种特殊写法,比如<site/>
xml文档是区分大小写的。xml文档是树状结构,只有一个根元素,其他元素是根元素的后代。
xml元素之间的关系有:子节点,父节点,并列节点又称为兄弟姐妹节点。
通常来说,xml属性采用双引号,也可以使用单引号。如果属性值中包含双引号,就用单引号。如果属性值中包含单引号,就用双引号。
xml中没有硬性规定哪些数据应该使用元素或者是属性,俩种写法都会正确的。
通常来说,元数据(描述数据的数据)应该使用属性,数据本身应该使用元素。
1.3xml名称命名规则
不能以数字或标点符号开头
不能以xml开头
xml名称不能含有空格
xml开头不能用连接符。句号。冒号。这是xml命名空间的保留符号。
xml实体引用
在 XML 中,有 5 个预定义的实体引用:
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
如果你要输入的文档中含有很多的字符“<”或者是&,要将所有的都替换很麻烦,可以使用CDATA区(CDATAsection)。在此区域内,xml解析器不会解析CDATA曲内的内容。
CDATA区以<![CDATA[开始,以]]>结束
注意:在CDATA区域内,不能出现]]>.
xml注释以<!--开头,和以-->结束。
XML声明
xml文档应该以xml声明开始,不过不会必须的。如果要写声明,必须放在第一行。
xml文档声明主要有三个参数:
版本(version)
版本表示遵循的是W3C的xml1.0的标准
字符编码(encoding)
字符编码表示xml文档使用的字符的编码方式。一些英文文档的xml文档,你会看到他们使用的hi单字节的ISO-8859-1编码,不过对于中文文档来说,应该使用双字节的UTF-8或者Unicode
如果是含有非英语字符的xml文档,你学要将xml文档村委UTF-8或者Unicode()
独立(standalone)
如果xml standalone的值是no,表示它需要DTD
不需要DTD的xml文档,standalone值应该写为yes。
xml命名空间
xml命名空间标准的原先目的是为了解决xml文档中命名冲突的问题。由于xml文中的命名是预定义的,当俩个不同的文档中 使用相同的元素名称时,就会发生 冲突。
命名空间通过给标识名称添加一个(URL)定位的方法来区别这些名称相同的标识、
命名空间是使用xmlns:属性在元素上声明的,此属性的值就是标识该命名空间的URL....命名空间语法:xmlns:<name>=<"uri">,NAME是命名空间前缀的名称,uri是说明命名空间URi的字符串。
一旦声明后前缀就可以用限定xml文档中的元素和属性并将它们与明敏空间URI关联。
<mybook:BOOK xmlns:mybook="http:........"> <bb:BOOK xmlns:bb="urn:blue....">
如果文档中存在Publisher元素,并且已经为该元素声明了命名空间,则在Pbulisher元素需要用冒号将命名空间别名添加到该元素前面、
如果要声明并使用默认命名空间,请从元素的声明中省略别名和分号。
<BOOK xmlns="http:......">
任何没有用命名空间前缀完全限定的元素均属于默认命名空间。默认命名空间只实用与元素,不适用属性。命名空间声明有范围,命名空间只在相应的范围内有效,有俩种范围:默认范围和限定范围。
默认命名空间是在根元素中声明的命名空间。它应用于文档中所有未限定的元素。
限定命名空间在一个更具体的命名空间在文档中某一位置重写时声明的。
命名空间声明后才可以使用,但并不一定要在文档的开头。
1.4DTD 和XML Schema
DTD(Document Type Definition)文档类型定义,是一套关于标记符的语法规则。它是xml1.0 的一部分,是xml文件的验证机制,属于文件组成的一部分。
DTD 是保证xml文档格式正确地有效方法。
DTD 文档包括:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则、
xml文档提供应用程序一个数据交换的格式,而DTD正好是让XML文件能能够称为数据交换的标准、因为不同的公司只需要定义好标准的DTD,各公司都能够依照DTD建立xml文件并且进行验证,如此就可以轻易的建立标准和交换数据,这样便满足了网络共享和
数据交互。
DTD是一个ASCII 的文本文件,后缀名为.dtd。每一个xml文档都可以携带一个DTD.用来对该文档格式进行描述。测试该文档是否为有效的xml文档。
xml Schema已经成为w3c的正式推荐标准,有替代xml DTD趋势。xml Schema功能和DTD相似,但其本身是一个xml文档,符合xml语法结构,可以通过xml解析器解析。
xml Schema就好像database中对表的定义一样,,而关联的这个xml Schema的xml就好像数据库中的数据。它必须满足表所定义的规则、
1.5解析xml文档
xml除了保存信息外本身不能做任何事情,你需要处理xml数据,用于处理xml文档的软件称之为解析器。xml解析器可以让你读写操作xml文档。
取决于他们如何处理xml文档,在程序中范文并咋偶哦xml文件一般有俩种模型:流模型和DOM 模型(文档对象模型)。
流模型中有俩种辩题-推模型和拉模型,推模型也就是常说的SAX(简单的XML API),SAX是一种靠事件驱动的模型。
1DOM
2SAX
1.6XPath介绍
xml是从xml中派生出来的技术,专门用于快速检索和查询xml文档、XPah是XSLT技术的基础、支持跨平台、XPath理解时可以参考目录结构FilePath()
1.7XSLT介绍
是一种将xml温江转换为其他文本文档的语言。是建立在xml和xpath之上的国际标准。