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

什么是XML?

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

XML简单的历史介绍:html

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

为何咱们须要使用XML呢?

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

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

XML文件就解决了以上的问题了,若是使用XML描述上述图片的关系,是很是简单的!web

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

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

咱们能够发现XML是能够描述很复杂的数据关系的浏览器


XML的用途

①:配置文件(例子:Tomcat的web.xml,server.xml……),XML可以很是清晰描述出程序之间的关系markdown

②:程序间数据的传输,XML的格式是通用的,可以减小交换数据时的复杂性!架构

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


XML的技术架构

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

因而乎,想要操做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对象

相关文章
相关标签/搜索