XML【介绍、用途、了解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对象
XML【介绍、用途、了解XML技术架构、语法】的更多相关文章
- 【转帖】一文看懂docker容器技术架构及其中的各个模块
一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...
- 【收藏用】--切勿转载Java处理XML的三种主流技术及介绍
原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记 ...
- Java 处理 XML 的三种主流技术及介绍
Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...
- Spring介绍及配置(XML文件配置和注解配置)
本节内容: Spring介绍 Spring搭建 Spring概念 Spring配置讲解 使用注解配置Spring 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Sprin ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- XML介绍
XML [TOC] 1.XML简介 XML是Extend Markup Langue可扩展标签语言,标签由开发着自己定义 作用是: 1.描述带关系的数据(作为软件的配置文件):包含与被包含的关系 2. ...
- 大型网站技术架构介绍--squid
一.大型网站技术架构介绍 1.pv高 ip高 并发量 2.大型网站架构重点 1. 高性能:响应时间,TPS,系统性能计数器.缓存,消息队列等. 高可用性High Availabilit ...
- 8.2、常用模块介绍2:xml,configparser,hashlib
xml: 介绍:包含关于可扩展标记语言xml的函数 使用: python有三种方法解析XML--SAX,DOM,以及ElementTree,由于xml技术落后,所以这里不对sax,dom介绍: xml ...
- Java xml 操作(Dom4J修改xml + xPath技术 + SAX解析 + XML约束)
1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...
随机推荐
- 关于FPU
关于FPU,比较运算有几个地方需要关注,mark一下. he result of the comparison is reported in the condition codes field of ...
- C# 实例练习——字符串处理(第三天)
1. 编写程序将IP地址分解后输出(将IP地址中的点(.)去掉,替换成空格符),如:132.123.4替换后为132 123 4. Console.WriteLine("请输入您电脑 ...
- 进入子shell的各种情况分析
子shell的概念贯穿整个shell,写shell脚本时更是不可不知.所谓子shell,即从当前shell环境新开一个shell环境,这个新开的shell环境就称为子shell(subshell),而 ...
- 【.net 深呼吸】实时获取计算结果
上次老周介绍了在 UWP 应用中通过 x:Bind 标记来绑定到方法,以实现实时获取计算结果.今天,咱们来耍耍WPF上面的实现方法. 虽然,WPF 没有 x:Bind 标记(暂时没有,以后不好说),但 ...
- Struts:文件上传下载
- Bash脚本编写初体验
上周例会的时候,冷不丁的接到了维护原有的安装脚本和编写升级.卸载脚本的任务,PM和几个同事一本正经的说,一天甚至30分钟就可以精通shell脚本编写,哪怕没有语言基础也可以. 当然,作为有着C++.P ...
- TFLearn构建神经网络
TFLearn构建神经网络 Building the network TFLearn lets you build the network by defining the layers. Input ...
- HTML的基本标签
整理一下这一周学习的一些知识. 首先是一些基本标签. <!DOCTYPE HTML><html> 文档类型声明: 让浏览器,按照html5的标准对代码进行解释与执行.文档类型声 ...
- 使用TCP/IP Monitor监视Soap协议
什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...
- Docker 入门实践
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法 ...