XML是干什么的,以及一些概念

XML(eXtended Markup Language)
XML是可扩展标记语言的缩写,是一种类似HTML的标记语言。
XML是被设计用来描述数据,能够用纯文本的形式表现各种结构复杂的数据,易于在各平台上构造和解析,
因此在跨平台网络数据交换,数据存储等方面得到广泛的应用。

可扩展:指程序员可以定义自己需要的标记,创建自己的标记语言,但定义标记时,必须遵守XML规范。

标记语言:也称为置标语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文本结构和
数据处理细节的电脑文字编码。当今广泛使用的标记语言有超文本标记语言(HyperText Markup Language ,HTML)
标记语言广泛应用于网页和网络应用程序。

XML文档的组成(序言+文档元素)
一、序言
包括
1.XML声明
version--文档符合XML1.0规范,现在只有1.0
encoding--文档字符编码,默认为UTF-8
standalone--文档定义是否在一个文件内 standalone = "yes", standalone = "no"

2.处理指令
用于XML解析器传递信息到应用程序
-XML解析器是读取并保存XML文档内容的软件模块
-应用程序是从解析器中获取文档内容并处理和显示这些内容的独立软件模块
-格式<?xml:stylesheettype="text/xsl" href="example.xsl"?>
-指明了与其所属文档配套使用的样式表的类型为XSL。如果没有指定样式表,则浏览器按照自己默认的样式显示文档内容。

3.文档类型定义

4.注释
<!-- 这是一个注释 -->
注释内容中不要出现--,
不要把注释放在标记中间,如<Name<!--名字 -->>jack</Name>
注释不能嵌套
可以在标记以外的任何地方放注释

二、文档元素
包括根元素、元素属性还有文本。
<Title>哈利波特<Title ID="101"/>

每个XML文档必须有且只有一个根元素
根元素是一个完全包括文档中其他所有元素的元素
根元素的起始标记要放在所有其他元素的起始标记之前
根元素的结束标记要放在所有其他元素的结束标记之后得

如果在XML文档中出现了这样的数据,就使用预定义的实体来代替
实体        符号
&lt;        <
&gt;        >
&amp;        &
&quot;        "
&apos;        '

一个元素可以出现多个属性,属性值用"",或''分隔。

CDATA
用于把整段文本解释为纯字符数据而不是标记的情况。包含大量<>&或者*字符。CDATA节中的所有字符都会被当做元素字符数据的常量部分,
而不是XML标记。
CDATA是不被解析器解析的文本。文本内的标签不会被当作标记,实体不会被展开。
语法:
<![CDATA[
。。。。。。
]]>

可以输入任意字符(除]]>外),不能嵌套

gb2321是简体中文
BG5是繁体中文

元素语法
-名称中可以包含字母、数字或者其他字符
-名称不能以数字和_开头
-不能以XML/xml/...开头


XML技术体系概述

文档描述与校验技术:DTD和Schema都是用于定义XML结构,并且用于校验我们书写的XML
文档是否符合要求的技术。

文档转换技术(XSL/XSLT)

文档查询技术(XPath/XQuery)

文档解析技术(XML DOM/SAX)

文档链接和定位技术(XLink/XPointer)

文档对象模型DOM,一种基于树结构的API。

XML简单API(SAX),一种事件驱动的API。

DOM和SAX的区别
DOM核心是按树的结构处理XML数据,DOM解析器读取XML文档并在内存中建立一个文档树结构,通过操作此结构
来处理XML文档。DOM优点是编程容易,可以**从上到下**多次遍历;
缺点是由于DOM解析时需要将XML文档整个读入内存,所以占用内存大,不适合大型XML文档的解析。

SAX是事件驱动处理机制,它采用逐行扫描文档,一边扫描一边解析的方式。由于SAX不需要将XML文档整个读入内存,所以优点是
占用内存少,效率高,适合大型XML文档的解析;缺点是事件触发是有序的,文档只能遍历一次。


DOM和SAX解析技术的实现

JAXP(Java API for XML):JAXP是对应用程序隐藏了特定解析器的接口,它提供了访问DOM和ASAX实现的抽象层机制。
JDOM:
-基于树型结构,利用纯Java的技术对XML文档操作
-把SAX和DOM的功能有效地结合起来
-用Java语言读、写、操作XML的优化API
DOM4J:
-采用了Java集合框架并完全支持DOM,SAX和JAXP
-性能优异、功能强大和易于使用
-大量使用接口、灵活性高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值