关于xml

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常见的解析器

  1. JAXP:sun公司提供的解析器,支持DOM和SAX两种方式,性能低下
  2. DOM4J:一款非常优秀的解析器
  3. Jsoup:一款Java的html解析器
  4. PULL:Android操作系统内置的解析器,sax方式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值