XML【介绍、用途、了解XML技术架构、语法】

本文介绍了XML(可扩展标记语言)的基础知识,包括其历史背景、语法特性及应用场景,并探讨了XML的技术架构及其与HTML的区别。

tags: XML


什么是XML?

XML:extensiable markup language 被称作可扩展标记语言

XML简单的历史介绍:

  • gml->sgml->html->xml
  • gml(通用标记语言)–在不同的机器进行通信的数据规范
  • sgml(标准通用标记语言)
  • html(超文本标记语言)

为什么我们需要使用XML呢?

  • ①我们没有XML这种语言之前,我们使用的是String作为两个程序之间的通讯!现在问题就来了,如果我们传输的是带有关系型结构的数据,String怎么表达呢?String对关系型数据不擅长,要是描述起来也难免会有歧义的时候!关系型数据如图下所示:

  • HTML语言本身就有缺陷
    • **标记都是固定的,不能自定义。HTML语言中有什么标记就只能用什么标记 **
    • HTML标签本身就缺少含义(tr标签里面什么内容都能放进去,不规范!)
    • HTML没有实现真正的国际化

XML文件就解决了以上的问题了,如果使用XML描述上述图片的关系,是非常简单的!


	<?xml version="1.0" encoding="UTF-8" ?>
	<中国>
	    <北京>
	        <海淀></海淀>
	        <丰台></丰台>
	    </北京>
	    <湖南>
	        <长沙></长沙>
	        <岳阳></岳阳>
	    </湖南>
	    <湖北>
	        <武汉></武汉>
	        <荆州></荆州>
	    </湖北>
	</中国>


复制代码

XML文件还能使用浏览器打开:

我们可以发现XML是可以描述很复杂的数据关系的


XML的用途

①:配置文件(例子:Tomcat的web.xml,server.xml......),XML能够非常清晰描述出程序之间的关系

②:程序间数据的传输,XML的格式是通用的,能够减少交换数据时的复杂性!

③:充当小型数据库,如果我们的数据有时候需要人工配置的,那么XML充当小型的数据库是个不错的选择,程序直接读取XML文件显然要比读取数据库要快呢!


XML的技术架构#

XML被设计为“什么都不做”,XML数据或XML文档只用于组织、存储数据,除此之外的数据生成、读取、传送、存取等等操作都与XML本身无关!

于是乎,想要操作XML,就需要用到XML之外的技术了

  • 为XML定规则:现在一般使用DTD或Schema技术,当然了Schema技术更为先进!
  • 解析XML的数据:一般使用DOM或者SAX技术,各有各的优点
  • 提供样式:XML一般用来存储数据的,但设计者野心很大,也想用来显示数据(但没人用XML来显示数据),就有了XSLT(eXtensiable Stylesheet Language Transformation)可扩展样式转换语言

XML语法:

文档声明:

  • XML声明放在XML的第一行

  • version----版本

  • encoding--编码

  • standalone--独立使用--默认是no。standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以引用外部的DTD规范文档。

  • 正确的文档声明格式,属性的位置不能改变!


	<?xml version="1.0" encoding="utf-8" standalone="no"?>

复制代码

元素

首先在这里说明一个概念:在XML中元素和标签指的是同一个东西!不要被不同的名称所迷惑了!

元素中需要值得注意的地方

  • XML元素中的出现的空格和换行都会被当做元素内容进行处理
  • 每个XML文档必须有且只有一个根元素
  • 元素必须闭合
  • 大小写敏感
  • 不能交叉嵌套
  • 不能以数字开头

看起来好像有很多需要值得注意的地方,其实只需要记住:XML的语法是规范的!不要随意乱写!


属性

属性是作为XML元素中的一部分的,命名规范也是和XML元素一样的!


	<!--属性名是name,属性值是china-->
	<中国 name="china">

	</中国>


复制代码

注释

注释和HTML的注释是一样的


	<!---->

复制代码

CDATA

在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出

语法:

	
	<![CDATA[
		...内容
	]]>

复制代码

转义字符

对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。

处理指令

处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

例如:

在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。

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

复制代码
  • XML代码:



	<?xml version="1.0" encoding="UTF-8" ?>
	<?xml-stylesheet type="text/css" href="1.css"?>
	
	<china>
	    <guangzhou>
	        广州
	    </guangzhou>
	    <shenzhen>
	        深圳
	    </shenzhen>
	</china>


复制代码
  • CSS代码:
	
	
	guangzhou{
	    font-size: 40px;
	}

复制代码
  • 效果:


JDK中的XML API

①:JAXP(The Java API For XML Processing):主要负责解析XML

②:JAXB(Java Architecture for XML Binding):主要负责将XML映射为Java对象

如果您觉得这篇文章帮助到了您,可以给作者一点鼓励

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值