XML资源文件介绍

XML概述

XML(eXtensible Markup Language),是一种可扩展的标记语言,类似HTML(超文本标记语言)。
XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。(XML从第一个版本发布之后,到目前为止从来没有更新过)
 
XML是一种通用的数据交换格式(关系型数据库),许多系统的配置文件都使用XML格式,JSP文档也逐步向XML语法格式过渡,许多项目都采用XML作为数据交换格式(WebService),典型代表:WebService就是不同的项目,或者不同的语言交换数据的技术;
 
在日常应用中会经常看见XML格式的文件,掌握XML是软件开发人员的一项基本技能,Struts1.x(相对很少用),struts2.x,spring,hibernate,mybatis等任意一个javaee框架中都要用到XML。(必须通过XML去做配置)

综上,XML可以传输数据,也可以存储数据

(1) 注意事项

1.XML标签命名自定义【推荐英文】,标签名中不能包含空格
2.XML空格和换行都表示数据,严格区分大小写
3.XML中特殊字符表示的数据需要使用特殊字符编码和HTML一样
4.CDATA区中的数据不会被识别为语法

(2) 约束

XML的约束不需要自己大量的书写,此处只要求大家会看
XML约束的目的:规范XML中书写的内容,XML约束分为:DTD约束、Schema约束

① DTD约束

DTD约束文件与XML文件关联

<!DOCTYPE contacts SYSTEM "contacts.dtd">

DTD细节

<!--contacts下有一个或多个linkman,+代表起码一个-->
<!ELEMENT contacts (linkman+)>

<!--linkman下包含有按顺序的四个标签-->
<!ELEMENT linkman (name,email,address,group)>

<!--给标签内填充数据内容-->
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT group (#PCDATA)>
  1. 声明一个标签下有嵌套子标签,多个不同标签使用逗号隔开
  2. 声明标签下是直接的内容,#PCDATA代表数据的意思,官方说法叫被解析的字符数据

注意:DTD约束中若出现错误,不会报错

② Schema约束

Schema约束文件与XML文件关联

<contacts xmlns="http://itsource.cn"
	xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
	xs:schemaLocation="http://itsource.cn  contactsSchema.xsd">

Schema细节

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://itsource.cn" elementFormDefault="qualified">
<!--声明了一个根标签,contacts-->
<xs:element name="contacts">
<!--contacts标签下的元素是复杂类型,也就是包含其他元素-->
	<xs:complexType>
<!--规定contacts下元素出现的顺序和次数,maxOccurs代表最大次数-->
		<xs:sequence maxOccurs='unbounded'>
			<xs:element name="linkman">
				<xs:complexType>
				<xs:sequence>
					<xs:element name='name' type='xs:string' />
					<xs:element name='email' type='xs:string' />
					<xs:element name='address' type='xs:string' />
					<xs:element name='group' type='xs:string' />
				</xs:sequence>
				<xs:attribute name="id" type="xs:long" use="required" />
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
</xs:element>
</xs:schema>

Schema约束本质上来说,是一个XML,Schema约束和DTD约束最大的区别就在于:前者使用XML语法来约束Schema本身的内容,即使写错也会报错,但Schema同样也存在致命的缺点,那就是约束本身语法实在有些复杂。

(3) DOM模型

DOM(Document Object Model)文档对象模型。直白的讲就是Java程序解析结构化文档的时候,在内存中生成的包含当前结构化文档所有内容的一个对象模型。所以说DOM并不是一门技术,而是一门思想,或者更明确的讲是一门访问结构化文档的一种方式。那么当前我们学过的结构化文档有HTML、XML。DOM模型实际上描述的就是标签之间的层级结构。

图片来自网络,侵删

下面是一个简单的XML文件的代码示例

<?xml version="1.0" encoding="UTF-8"?>
<persons> 
  <person> 
    <age>21</age>  
    <sex></sex>  
    <name>至尊宝</name>
  </person>  
  <person> 
    <name>白晶晶</name>  
    <age>999</age>  
    <sex></sex> 
  </person> 
</persons>

其中persons为根标签,一个xml文件中只能有一个根标签

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值