XML介绍及入门使用

XML(Extensible Markup Language),可扩展标记语言。是一种用于标记电子文件使其具有结构性的标记语言。
参考文档:https://www.w3school.com.cn/x.asp

XML特点:
(1)XML可以从HTML中分离数据。即能够在HTML文件之外将数据存储在XML文档中,这样可以使开发者集中精力使用HTML做好数据的显示和布局,并确保数据改动时不会导致HTML文件也需要改动,从而方便维护页面。XML也能够将数据以“数据岛”的形式存储在HTML页面中,开发者依然可以把精力集中到使用HTML格式化和显示数据上。
(2)XML可用于交换数据。基于XML可以在不兼容的系统之间交换数据,计算机系统和数据库系统所存储的数据有多种形式,对于开发者来说,最耗时间的工作就是在遍布网络的系统之间交换数据。把数据转换为XML格式存储将大大减少交换数据时的复杂性,还可以使这些数据能被不同的程序读取。
(3)XML可应用于B2B中。例如在网络中交换金融信息, 目前XML正成为遍布网络的商业系统之间交换信息所使用的主要语言,许多与B2B有关的完全基于XML的应用程序正在开发中。
(4)利用XML可以共享数据。XML数据以纯文本格式存储,这使得XML更易读、更便于记录、更便于调试,使不同系统、不同程序之间的数据共享变得更加简单。
(5)XML可以充分利用数据。XML是与软件、硬件和应用程序无关的,数据可以被更多的用户、设备所利用,而不仅仅限于基于HTML标准的浏览器。其他客户端和应用程序可以把XML文档作为数据源来处理,就像操作数据库一样,XML的数据可以被各种各样的“阅读器”处理。
(6)XML可以用于创建新的语言。比如,WAP和WML语言都是由XML发展来的。WML(Wireless Markup Language,无线标记语言)是用于标识运行于手持设备上(比如手机)的Intemet程序的工具,它就采用了XML的标准。

总之,XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。但是,XML并非是用来取代HTML的。HTML着重如何描述将文件显示在浏览器中,而XML与SGML相近,它着重描述如何将数据以结构化方式表示。

XML与HTML的区别:
(1)可扩展性方面:HTML不允许用户自行定义他们自己的标识或属性,而在XML中,用户能够根据需要自行定义新的标识及属性名,以便更好地从语义上修饰数据。
(2)结构性方面:HTML不支持深层的结构描述,XML的文件结构嵌套可以复杂到任意程度,能表示面向对象的等级层次。
(3)可校验性方面:HTML没有提供规范文件以支持应用软件对HTML文件进行结构校验,而XML文件可以包括一个语法描述,使应用程序可以对此文件进行结构校验。

1、XML快速入门

XML语法格式:
XML文件格式是纯文本格式,在许多方面类似于HTML,XML由XML元素组成,每个XML元素包括一个开始标记(),一个结束标记()以及两个标记之间的内容,例如,可以将XML元素标记为价格、订单编号或名称。标记是对文档存储格式和逻辑结构的描述。在形式上,标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明( DTD)和序言。
(1)必须有声明语句。XML声明是XML文档的第一句,其格式如下:
<?xml version="1.0" encoding="utf-8"?>
version:版本号,推荐使用主流版本1.0,1.1版本不向下兼容。
encoding:编码方式,告知解析引擎当前文档使用的字符集。·
standalone:是否独立,yes和no两个值,是否依赖其他文件。
(2)注意大小写。在XML文档中,大小写是有区别的。注意在写元素时,前后标记的大小写要保持一致。最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母,这样可以减少因为大小写不匹配而产生的文档错误。
(3)XML文档有且只有一个根元素。良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。
(4)属性值使用引号。在HTML代码里面,属性值可以加引号,也可以不加。但是XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。
(5)所有的标记必须有相应的结束标记。在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。
(6)所有的空标记也必须被关闭。空标记是指标记对之间没有内容的标记,比如“ < img > ”等标记。在XML中,规定所有的标记必须有结束标记。

XML 元素必须遵循以下命名规则:
(1)名称可以含字母、数字以及其他的字符。
(2)名称不能以数字或者标点符号开始。
(3)名称不能以字符 “xml”(或者 XML、Xml)开始。
(4)名称不能包含空格。

一个简单的XML示例:

<?xml version="1.0" encoding="utf-8" ?>
<users>
    <user id="u1">
        <name>Atlantis</name>
        <age>23</age>
        <sex></sex>
    </user>
    <user id="u2">
        <name>长安</name>
        <age>21</age>
        <sex></sex>
    </user>
</users>

在这里插入图片描述

2、XML约束

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范(与xml语法无关),这称之为XML约束。目的是为了保证数据的规范性和安全性。

2.1 两种约束

(1)DTD约束:语法简洁,共能比较单一。文件后缀名.xml
(2)Schema约束:语法复杂,功能比较强大。文件后缀名.xsd

2.2 DTD约束与Schema约束比较

XML Schema符合XML语法结构。
DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
XML Schema对名称空间支持得非常好。
XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。

2.3 DTD约束

示例:

<!-- ELEMENT定义标签 -->
<!-- users (user*):定义了一个users标签,该标签内可以出现0次或多次子标签user -->
<!ELEMENT users (user*) >
<!-- user (name,age,sex):定义了一个user标签,仅可分别按顺序依次出现1次name、age、sex标签 -->
<!ELEMENT user (name,age,sex)>
<!-- name (#PCDATA):定义了一个name标签,该标签内可以出现字符串 -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>

<!-- ATTLIST定义属性 -->
<!-- user number ID #REQUIRED:在user标签内定义了一个number属性,ID表示number属性值必须唯一,#REQUIRED标签number属性必须出现 -->
<!ATTLIST user id ID #REQUIRED>

(1)元素内容:<!ELEMENT 元素名称 (元素内容)>

元素内容 含义
EMPTY 内容只能为空
(#PCDATA) 普通文本,不能写标签
ANY 任何内容

(2)子元素:<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>

规定了子元素的顺序(从左到右)和出现次数。

符号 含义
+ 1次或多次
* 0次或多次
0次或1次
默认 1次

(3)属性:<!ATTLIST 元素名称 属性名称 属性类型 默认值>

属性类型 含义
CDATA 值为字符数据 (character data)
ID 值为唯一的 id(属性值不能是""或有相同的值)
(en1 en2
默认值 含义
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED value 属性值是固定的
(1)内部引用:dt
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值