XML是可以用户自定标签的,本身没有语法约束:
标签:即元素,不过其可以自定义
语法约束:html就是在xml之上加约束,实现标签的嵌套。<!DOCTYPE html>这行说明根标签是html.
语法约束常见的有两种:
1:dtd(document type definition)。规定xml文档中元素的名称,自元素的名称及顺序,元素的属性等
dtd调用方式有3种(该大写的大写...):
a.调用文件名方式:<!DOCTYPE web-app SYSTEM "web_2_3.dtd">(跟元素:web-app,SYSTEM "文件名.dtd",注意:.dtd文件与xml需在同一目录下)
b.内嵌代码方式:<!DOCTYPE web-app [..... ]>([]中为.dtd文件具体代码约束)
c.文档在网上:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">(PUBLIC 格式)
2.Schema(.xsd):
两者区别:Schema更新,数据更加完善,支持命名空间,
什么是命名空间:当文件当如多个约束文件时,且有相同标签名时,无法区分,类似java中Date类,sql和util下都有Date.
下面解说一下一段spring配置文件:
第一行beans根元素
第二行是固定写法,遵守w3c规范
除了第二行,都是一个命名空间对应schemaLocation两行(一行名称,一行约束)
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
常见解析有三种:
1.dom:将xml文档整个装载到内存中,故可以对文档进行增删改查,但由于xml文档过大,会导致内存溢出
2.sax:逐行解析,没执行一行,就会触发对应的事件,所以处理速度快,但是只能读,逐行释放资源
3.pull:android内置的xml解析,类似于sax
常见解析开发包:
jaxp:sun公司提供对dom以及sax的开发包
jDom:dom4j兄弟
jsoup:一种处理html特定解析开发包
dom4j:比较常见的解析开发包,hibernate底层采用.
用到dom4j依赖与:
网友评论