XML:英文:eXtensible Markup Language,又称可扩展标记语言,是一种置标语言。置标指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。它与HTML一样,都是SGML(标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
1、文档声明
声明xml文档的类型
xml文档实例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons SYSTEM "my.dtd">//本地跳转
<persons>
<person pid="1" pname="张三">
<page>1</page>
<psex>男</psex>
</person>
</persons>
标签元素:
(1)文件有且仅一个根标签<persons>,其他标签都必须封装在根标签中
(2)非空标签必须由“开始标签”和“结束标签”组成,空标签没有:“开始标签”和“结束标签”。
(3)xml全体标签必须形成树形,即标签不允许交叉
(4)命名规范:字母,数字→1、严格区分大小写→2、不能以数字、下滑线、xml等开头→3、不能包含空格→4、名字中间不能包含‘:’
属性:
(1)一个标签可以允许有多个属性
(2)属性值一定要用""(双引号)或者''(单引号)引起来
注释:
(1)格式:<!--注释内容-->
(2)文档声明之前不能有注释
(3)注释不能嵌套
DTD文件:
<!ELEMENT persons (person*)>
<!ELEMENT person (page,psex)>
<!ELEMENT page (#PCDATA)>
<!ELEMENT psex (#PCDATA)>
<!ATTLIST perosn pid CDATA #REQUIRED>
<!ATTLIST person pname CDATA #REQUIRED>
DTD语法如下:
元素ELEMENT:格式<!ELEMENT 元素名 元素类型>
元素类型:1、EMPTY:表示定义空元素
2、ANY:表示元素内容为任意类型
3、也可以自己写元素内容
元素内容:1、用逗号隔开:表示内容的出现顺序必须与声明时一致
2、用|隔开:表示任选其一,即多个只能出现一个
出现次数:+:一次或多次
?:0次或1次
*:0次或多次
属性ATTLIST:格式<!ATTLIST 元素名 属性名 属性值类型 设置说明>
属性值类型:1、CDATA 普通文本字符串
2、ENUMRATED 枚举
3、ID 唯一(不能以数字开头)
4、ENTITY 实体:格式<!ENTITY>为内容起别名
类型:1、引用实体(xml引用)
格式:<!ENTITY 实体名称 "实体内容">
引用:&实体名称
2、参数实体(DTD引用)
格式:<!ENTITY %实体名称 "实体内容">
引用:%实体名称
设置说明:1、#REQUIRED 必须
2、#IMPLIED 可选
3、#FIXED 该属性的值是固定的,不能再xml中进行修改,但是必须设置这个属性
应用/XML 编辑
XML技术已经广泛应用于e-Learning应用系统的开发,大多数的商用e-Learning平台都支持XML标准。一些主要的网络设备制造商,如CISCO、JUNIPER等,生产的网络设备也已提供了对XML的支持,以利于今后基于XML的网络管理。
XML在e-Learning管理中的应用
一、兼容现有协议
XML文档格式的管理信息可以很容易地通过HTTP 协议传输,由于HTTP是建立在TCP之上的,故管理数据能够可靠传输。XML还支持访问XML文档的标准API,如DOM,SAX,XSLT,Xpath等。
二、统一的管理数据存取格式
XML能够以灵活有效的方式定义管理信息的结构。以XML格式存储的数据不仅有良好的内在结构,而且由于它是W3C提出的国际标准,因而受到广大软件提供商的支持,易于进行数据交流和开发。现有网络管理标准如TMN、SNMP等的管理信息库规范决定了网管数据符合层次结构和面向对象原则,这使得以XML格式存储网管数据也非常自然,易于实现。
三、不同应用系统间数据的共享和交互
只要定义一套描述各项管理数据和管理功能的XML语言,用Schema对这套语言进行规定,并且共享这些数据的系统的XML文档遵从这些Schema,那么管理数据和管理功能就可以在多个应用系统之间共享和交互。
四、底层传输的数据更具可读性
网络中传输的底层数据因协议不同而编码规则不同,虽然最终传输时都是二进制位流,但是不同的应用协议需要提供不同的转换机制。这种情况导致管理站在对采用不同协议发送管理信息的被管对象之间进行管理时很难实现兼容。如果协议在数据表示时都采用XML格式进行描述,这样网络之间传递的都是简单的字符流,可以通过相同的XML解析器进行解析,然后根据不同的XML标记,对数据的不同部分进行区分处理,使底层数据更具可读性。
五、它和json都是一种数据交换格式
XML由3个部分构成,它们分别是:文档类型定义(Document Type Definition,DTD),即XML的布局语言;可扩展的样式语言(Extensible Style Language,XSL),即XML的样式表语言;以及可扩展链接语言(Extensible Link Language,XLL)。
(1)DTD
DTD规定了文档的逻辑结构。它可定义文档的语法,而文档的语法反过来也能够让XML语法分析程序确认页面标记使用的合法性。DTD定义了页面的元素、元素的属性及元素和属性间的关系。元素与元素间用起始标记和结束标记来定界,对于空元素,用一个空元素标记来分隔。每一个元素都有一个用名字标识的类型,也称为它的通用标识符,并且它还可以有一个属性说明集。每个属性说明都有一个名字和一个值。理想定义应该面向描述与应用程序相关的数据结构,而不是如何显示数据。就是说,应该把一个元素定义为一个标题行,之后让样式表和脚本定义显示标题行。
DTD不具强制性。对于简单的应用程序来说,开发商不需建立自己的DTD,可以使用预先定义的公共DTD或不使用。即使某个文档已经有DTD,只要文档组织是良好的,语法分析程序也不必对照DTD来检验文档的合法性。服务器可能己执行了检查,所以检验的时间和带宽将得以大幅度节省。
(2)XSL
XSL是用来规定XML文档样式的语言。XSL能使Web浏览器改变原有文档的表示法,例如改变数据的显示顺序,不必再与服务器进行交互通信。通过样式表的变换,同一文档可以显示得更大,或经过折叠只显示外面的一层,或者变为打印格式。
XSL凭借其本身的可扩展性,能够控制无穷无尽的标记,而且控制每个标记的方式也是无穷尽的,这也给Web提供了高级的布局特性。如文本的旋转、多列和独立区域。同时支持国际书写格式,可在一页上混合使用从左至右、从右至左及从上至下的书写格式。就如同XML介于HTML和SGML之间一样,XSL标准是介于CSS和SGMI的文档样式语义和规范语言之间的。
(3)XLL
XLL支持Web上已有的简单链接,而且将进一步扩展链接,包括终结死链接的间接链接及可从服务器中只查询某个元素的相关部分链接等。
超文本标记语言(HTML)仅仅执行历来与超文本系统概念相关的极少功能,仅支持最简单的链接形式,即指向硬编码位置的单向链接,这与XML相比有着很大的差别。在为XML所设想的真正超文本系统中,所有典型的超文本链接机制全部将得到支持,包括:与位置无关命名,双向链接,可在文档外规定和管理的链接,元超链接(如环路、多个窗口),集合链接(多来源),Transc1usion(链接目标文档是链接源文档的一部分),链接属性(链接类型)。
所有这些可通过XLL来实现。由于XML以SGML作为基础,因此,XLL基本上属于Hytime(超媒体/基于时间的结构语言,ISO10744)的一个子集,另外它还遵循文本编码所倡议规定的链接概念。
XML能方便有效地表示结构化数据,这就使得XML可以作为描述和传输数据的手段。使用XML进行数据交换已经成为计算机软件领域的标准技术模式。通过XML实现数据的标准化、结构化,解决了在不同平台、不同系统之间的数据结构/模式的差异,使得数据层在XML技术的支持下统一起来。
Web Service全部的规范、技术都是以XML为底层核心和构架基础的,对Web Service而言,SOAP、WSDL和UDDI,都是使用XML作为信息描述和交换的标准手段。XML技术的产生促使了Web Service技术的产生与发展。