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
    评论
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML概念XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XMLXml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie <E
1 简述反射机制 反射是一种间接操作目标对象的机制,在程序程序运行时获取或者设置对象自身的信息。 只要给定类的名字,就可以通过反 射获取类的所有信息,接着便能调用它的任何一个方法和属性。 反射的步骤有哪些? 第一:获取类加载器:ClassLoader loader=Thread.currentThread().getContextClassLoader();//获取当 前线程的上下文类加载器 第二:通过类加载器获取类 Class clazz=loader.loadClass("com.taobao.reflect.car")//通过对象的全称限 定来获取对象。 第三:通过clazz获得构造函数:Constructors cons=clazz.getDeclaraedConstructors(Class[]null);//调 用默认的构造函数 第四:然后通过构造函数构造对象:Car car=(Car)cons.newInstance();//获取类的默认构造函数对象并实例化对 象。 第五:得到car对象,然后调用car的方法:Method methd =car.getMethod("setName","String.class");//method声明,并指向car的setName这个方法,得到setName方 法。 2 用反射机制能干什么事 刚开始在使用jdbc时侯,在编写访问数据库时写到想吐,有八个表,每个表都有增删改查中操作,那时候还不知道有反射 机制这个概念,所以就对不同的表创建不同的dao类,这样不仅开发速率慢,而且代码冗余的厉害,最要命的是看着差不多 的,然后直接复制修改,由于容易犯各种低级的错误(大小写啊,多一个或少一个字母啊……),一个错误就可以让你找半天。 有了java反射机制,什么都好办了,只需要写一个dao类,四个方法,增删改查,传入不同的对象,就OK啦,无需为每一个 表都创建dao类,反射机制会自动帮我们完成剩下的事情,这就是它的好处。说白了,反射机制就是专门帮我们做那些重复的 有规则的事情,所以现在很多的自动生成代码的软件就是运用反射机制来完成的,只要你按照规则输入相关的参数,所以低 级的程序员慢慢的就被抹杀了,为什么?因为代码都不用写了,随便一个人都会开发,还要程序员干什么啊?所以我们只有 一条出路,那就是努力努力再努力,成为高级程序员,专门开发傻瓜软件,让其他程序员 到一边凉快去~ 3 使用过哪些xml解析 XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。 XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是 官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis 博客地址:http://blog.csdn.net/qq598535550/article/details/51703190 我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能;而且在大部分教学课堂中,也会把SSH作为最核心的教学内容。 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅。 另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。 好了,如果你也认同我的看法,那么下面我们一起来做整合吧! 在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码! SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login ,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!! Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。 MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人(当然不是说我啦捂脸)编写的代码能搞提升数据库访问的效率。第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值