xml发展
- xml是可扩展标记语言(理解:标签都是自定义的),当初w3c为了取代html语言而开发出的一款全新的语言,但因为xml的语法严格,不被用习惯了html语法比较松散的标记语言的程序员接受,因而w3c不得不向另一个方向发展(配置文件)。
xml与html的区别
- 1.xml的标签都是自定义的,html是预定义
2.xml的语法严格,html比较松散
3.xml存储数据,html展示数据
xml的组成
<?xml version="版本号" encoding="utf-8" standalone="no"?>
其中,version:版本号(必须的值)
encoding:编码格式,告知解析引擎当前文档使用的字符集
standalone:是否独立
-yes:不依赖其他文件
-no:依赖其他文件
(注意:
- 第一行必须定义文档声明:(不能有空格或空行)
- 在xml中有且只有一个根标签)
xml的约束概述
在了解约束之前,我们再来想想xml能做什么,怎么做?在我们今后的程序开发中,我们需要用到一些流行的框架帮助我们开发。其中xml的作用就是让我们的程序员通过编写xml文档来告诉框架怎么做,框架通过解析xml文档得知要做什么。但是在编写xml文档的过程,程序员不可能在xml文档中自定义标签来告诉框架怎么做,这时候就需要用到框架给的约束了。所以,约束就是规定xml文档的书写规则的说明文档。
关于约束
1.DTD约束:一种简单的约束(由于我学艺不精这里我就不详细说了),后缀名:.dtd
2.schema约束:一种复杂的约束,后缀名:.xsd
- 以下是关于schema约束的例子(以spring框架的约束为例)
<?xml version="1.0" encoding="UTF-8"?>
<beans <!-- xml文档的根标签 -->
xmlns="http://www.springframework.org/schema/beans"<!-- 默认前缀 -->
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<!--引入xsi前缀 //有较多取值-->
xmlns:p="http://www.springframework.org/schema/p"<!-- 给约束文档起了个别名-->
xsi:schemaLocation="http://www.springframework.org/schema/beans <!-- 在引入了xsi前缀后,通过xsi来引入文件对应的地址 -->
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- -->
<bean id="student" class="org.student.entity">
<property name="stuNo" value="2"></property>
<property name="stuName" value="ls"></property>
<property name="stuAge" value="24"></property>
</bean>
</beans>
通过以上代码整理可得:
1.填写xml文档根标签
2.引入xsi前缀:xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
3.引入xsd文件命名空间:xsi:schemaLocation=“约束文档地址”
4.为每一个xsd的约束声明一个前缀,作为标识 xmlns:标识名=“约束文档地址”(xmlns=“约束文档地址”,没有标识名的话这是默认前缀)
解析xml文档
-
操作xml文档
- 解析(读取):将数据读取到内存中
- 写入:将内存中的数据写入到xml文档中,持久化的存储
-
解析xml文档的方式
-
DOM:将标记语言文档一次性加载进文档,在内存中形成DOM树
-优点:操作方便,可以对文档进行CRUD(增删查改)的所有操作
- 缺点:占内存 -
SAX:逐行读取,读完一行释放一行
- 优点:不占内存
- 缺点:只能读取,不能CRUD
-
-
xml常见的解析器
- JAXP:sun公司提供的解析器,支持DOM和SAX两种方式,性能低下
- DOM4J:一款非常优秀的解析器
- Jsoup:一款Java的html解析器
- PULL:Android操作系统内置的解析器,sax方式