XML

XML

概述

在这里插入图片描述

  • 为了实现不同路径执行不同的资源,我们需要使用XML进行配置
  • 为了获取XML中的内容,我们需要使用dom4j进行解析
  • 为了限定XML中的内容,我们使用XML的约束(DTD或schema)

什么是XML

xml是可扩展的标记性语言。xml语法上和html比较相似,但html中的元素是固定的,而xml的标签是可以由用户自己定义的

<?xml version="1.0" encoding="UTF-8"?>
<!--上面是固定的写法 ,必须从0行0列开始写 -->
<!--根元素必须只有一个  -->
<hello>
	<a111 thshgj="chdhc"> <!--属性也可以自己随意定义  -->
		大家好
	</a111>	
	<empty version="5.0"/> <!--空元素只有开始标签,没有结束标签,但元素必须自己闭合  -->	
</hello>

为什么要有约束

上面的xml文件,我们标签可以随便自己定义,而有时候我们并不想,尤其是我们在写配置文件的时候不希望用户在里面乱写一通,我们需要对标签进行限定,这时候就需要约束

常见XML约束

  1. DTD(了解)
  2. Schema(重要)

DTD约束(了解)

1. 定义

  • DTD(Document Type Definition),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,子元素的名称、顺序、元素的属性等。导入约束以后在写xml文件的时候会有标签提示出来
  • 文档以.dtd结尾
  • 开发中,我们很少使用自己编写的DTD约束文档,通常情况,我们都是通过框架提供的DTD约束文档

2. DTD文档引入的3种方式

  • 内部DTD,在XML文档内部直接写DTD,只对当前XML文件有效(不推荐使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 根元素名称  [
	<!ELEMENT perosn (name,age)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	...//具体的语法
]>
<根元素>	
</根元素>
  • 外部DTD,DTD文档放在自己电脑某个目录下,放到eclipse的工程中去,供公司内部自己项目使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 根元素 SYSTEM "dtd路径">
<根元素>	
</根元素>
例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<web-app>
</web-app>
  • 外部DTD,DTD文档放在网络上,一般有框架提供(通过eclipse配置约束,联网后会缓存到开发工具里面去,下次即使断网了,约束也有效)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 根元素 PUBLIC "dtd名称" "dtd文档的url">
<根元素>	
</根元素>

在这里插入图片描述

Schema约束

1. 定义

schema约束含义解析

一个springmvc.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<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:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
                           
    <context:component-scan base-package="xxx.xxx.controller" />
    <context:annotation-config/>
    
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven/>
    <mvc:resources mapping="/images/**" location="/images/" />
    
    <bean id="xxx" class="xxx.xxx.xxx.Xxx">
        <property name="xxx" value="xxxx"/>
    </bean>
</beans>

1.xmlns
xmlns其实是XML Namespace的缩写,可译为“XML命名空间”

2.为什么需要xmlns?
考虑这样两个XML文档:表示HTML表格元素的< table />

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

和描述一张桌子的< table />

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 < table > 元素,就会发生命名冲突。XML 解析器是无法确定如何处理这类冲突。为了解决上述问题,xmlns就产生了

3.如何使用xmlns?
使用语法: xmlns:namespace-prefix=“namespaceURI”。其中namespace-prefix为自定义前缀,只要在这个XML文档中保证前缀不重复即可;namespaceURI是这个前缀对应的XML Namespace的定义。
∵namespaceURI一般是可以打开的链接,但是太长了,∴用namespace-prefix来作为namespaceURI的别名
例1:

xmlns:context="http://www.springframework.org/schema/context"
<context:component-scan base-package="xxx.xxx.controller" />
这里的<component-scan/>元素就来自别名为context的NamespaceURI,也就是在http://www.springframework.org/schema/context中定义的

http://www.springframework.org/schema/context
在这里插入图片描述

例2:我们还可以将前缀定义为abc

<!-- 这里xmlns:h="url1"表示这个table是用h作为标记,table的写法在url1中定义 -->
xmlns:h="url1"
<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<!-- 这里xmlns:f="url2"表示这个table是用f作为标记,table的写法在url2中定义 -->
xmlns:f="url2"
<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

xmlns和xmlns:xsi有什么不同?
xmlns表示默认的Namespace,xmlns:xsi表示使用xsi作为前缀的Namespace,当然前缀xsi需要在文档中声明

xmlns="http://www.springframework.org/schema/beans"

这一句表示该文档默认的XML Namespace为http://www.springframwork.org/schema/beans。对于默认的Namespace中的元素,可以不使用前缀,∴springmvc.xml中的< bean >标签不需要使用前缀

<bean id="xxx" class="xxx.xxx.xxx.Xxx">
  <property name="xxx" value="xxxx"/>
</bean>

xsi:schemaLocation有何作用?

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/context 
                    http://www.springframework.org/schema/context/spring-context.xsd"

在这里插入图片描述

  • (xsi:schemaLocation属性)是Namespace为 http://www.w3.org/2001/XMLSchema-instance 里的schemaLocation属性
  • xsi:schemaLocation定义了XML Namespace和对应的 XSD(Xml Schema Definition)文档的位置的关系
  • 它的值由一个或多个URI引用对组成,两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的 XML Namespace的值namespaceURI,第二个URI给出Schema文档的位置
  • 这里表示Namespace为http://www.springframework.org/schema/context的Schema文档的位置为http://www.springframework.org/schema/context/spring-context.xsd

eclipse配置约束

目的:让你的计算机即使没有联网,也能给你提示

DTD类型约束文件

  1. 复制约束的代码到xml文件中
  2. window—>Preferences—>XML—>XML Catalog,点击Add按钮
  3. Location: F:\soft\programmingSoft\Framework\Ibatis\sql-map-config-2.dtd
    Key Type: URI
    KEY: http://ibatis.apache.org/dtd/sql-map-config-2.dtd

XSD 类型约束文件

  1. 复制约束的代码到xml文件中
  2. window—>Preferences—>XML—>XML Catalog,点击Add按钮
  3. Location:D:\txd\dubbo.xsd
    Key Type: Schema Location
    KEY: http://code.alibabatech.com/schema/dubbo/dubbo.xs
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值