XML基础知识点

一,XML(eXtensible Markup Language)

1. 简介:

可扩展标记语言,是一种标签语言。常用于接口语言使用。

2. xml与html的区别:

① XML标签:是自定义的标签,结构与样式分离;被设计用来传输和存储数据。

② HTML标签:是固定的标签,结构样式结合在一起;被设计用来显示数据。

3. xml的应用:

msn在本地以xml进行存储聊天记录。

4.xml与html的发展历史:

1998年出现,是为了把html给替换掉。因为要消耗很多人力财力,代价比较大,最后也没有替换成功。

xhtml:内部技术都是xtml,标签都是html的。

5. xml的作用:

① 可以当作小型数据库使用:msn聊天工作通过xml文件在本地保留聊天记录信息。

② 可以在网站里当作接口服务使用。

③ 可以当作配置文件使用:例如在项目里把数据库的主机名、用户名、密码在xml里配置好。

6.xml的语法标准:

1)声明一个处理指令<?xml version="1.0" encoding= "utf-8"?>;

xml内容可以被浏览器直接解释运行,当看到处理指令的时候会自动调用xml解释器

        关于头文件属性的解释:
             - version:xml的版本 1.0(文中使用的版本) 1.1
             - encoding: xml编码 gbk utf-8 iso8859-1(不包含中文) 等等 ,这个编码指定打开该文件时读取文件内容的编码,不是保存的编码
            - standalone:是否需要依赖其他文件yes/no
 

2)xml文档的树状结构有且只有一个根节点,必须写根结点。

3)标签必须闭合

4)标签大小写一致(建议小写)

5)属性全小写,属性必须有值,值必须有引号(单双都可)

6)标签可以嵌套,但不可以交叉

7)特殊符号使用符号实体(单引号&apos;    双引号&quot;  空格&nbsp;    符号&anp;)

8)大段内容有特殊内容<![CDATA[]]>表示。解释器会把特殊字符当文本内容,而不是标签

9)空标记闭合/单标签。

10)xml标签名字组成部分:

11) 在xml中把换行和空格都当成内容来解析,以下爱两种表示内容不同。

<a>1111</a>
<a>
   1111
</a>

12)注释:<!---->,注释不能嵌套也不能放在第一行。

 

 

 

二,XML文件解析的方式

1.SAX读取方式:根据程序员需要,一次只将若干个标签加载到内存中去。  采用事件驱动,边读边解析,从上到下,一行一行的解析。

优点:节省内存。

缺点:读取大量标签信息的时候,效率低。

2.DOM读取方式:一次性加载所有xml文档所有的内容,加载到内存中。根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性,文本都封装为对象。

优点:如果读取大量标签信息的时候,此时由于在内存中进行定位所以运行速度很快。

缺点:浪费内存。

 

三,XML约束文档

1.xml约束文档作用:

1)设置可以当前XML文档声明的【标签类型名】

2)设置可以在标签中出现的【属性名】

3)设置标签之间父子关系和兄弟关系

2.XML约束文档分类:

1)DTD约束文档(简单约束文档):后缀名.dtd

如:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 第一句为了声明这是一个xml文件-->
<!--
	1.<!ELEMENT 标签类型名>: 声明可以在xml文档中出现的标签类型名
	2.<!ATTLIST 标签类型名 属性名>:声明可以在当前标签内部使用属性名称
	3.<!ELEMENT 标签类型名(子标签名?)>:子标签可以出现父标签内部,也可以不出现,如果出现只能出现一次。
	4.<!ELEMENT 标签类型名(子标签名+)>:子标签必须出现父标签内部,并且可以出现多次
	5.#PCDATA 表示当前标签没有子标签
	6.<!ELEMENT 标签类型名(子标签名*)>:子标签可以出现也可以不出现,可以多次
	7.<!ELEMENT 标签类型名(子标签名)>:必须出现,只一次
	8.<!ELEMENT 标签类型名(子标签名|子标签2)>:这两个子标签必须有一个子标签出现
	
	
-->
<!-- 使用DTD文档前,必须将以下代码导入到目标文件:导约束

<!DOCTYPR web-app SYSTEM "web-app_2_3.dtd">

 -->

<!ELEMENT web-app (servlet*,servlet-mapping*,welcome-file-list?)>
<!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
<!ELEMENT servlet-mapping (servlet-name,url-pattern)>
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT jsp-file (#PCDATA)>
<!ELEMENT description (#PCDATA)>


<!ELEMENT welcome-file-list (welcome-file+)>
<!ELEMENT welcome-file (#PCDATA)>

<!ATTLIST web-app version CDATA #IMPLIED>
<!ATTLIST web-app name CDATA #IMPLIED>

那么配置的xml文件必须为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<!--引入外部dtd约束 -->
<web-app version="3.0" name="13">
	<servlet>
		<servlet-name>A	</servlet-name>
		<servlet-class>3</servlet-class>
	</servlet>
	<welcome-file-list>
		<welcome-file>
			index.html
		</welcome-file>
	</welcome-file-list>
</web-app>

2)SHEMA约束文档(高级约束文档):缀名.xsd

3.区别与联系

1.两种约束文档不能同时出现

2.SHEMA支持前缀名,多个.XSD文件存在时,可以做区分。

4.tld文件与dtd文件

dtd文件是对XML文件元素类型定义的一个约束,如struts2.xml中的struts2.xml文件里具体可以使用哪些标签,标签下还可以有哪些标签,及标签内可以使用哪些属性,这些都可以去查看struts2.xml的dtd文件,dtd文件里有明确定义。

 

tld文件是标签定义文件,如struts2.xml的一些标签要能再页面上使用,必须加载标签库(tld文件),开发者可以仿照来定义自己的标签,tld文件中对应标签对应了一些类的方法,当在页面使用标签的时候,会调用对应类的方法。

 

tld中的标签是要靠dtd来约束哪些标签可以使用的。

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值