schema、dtd、xml之间的关系
2016-05-29 15:27
447 查看
xml文件支持任何用户自定义元素,schema(即.xsd文件,xml schema document)和dtd(即.dtd文件,Document Type Definition)都是对xml文件的进一步约束,就是说某xml文件(如web.xml)引入了某个.xsd或者.dtd之后,就不能随心所欲的使用任何自定义元素了,必须使用.xsd或者.dtd文件中定义的元素,并且类型、个数、顺序也会受到限制 。
==========================================schema====================================
============
schema的专业叫法是模式,每一个web.xml都要
1xml文件中可以用哪些元素,如引用了web-app_2.4.xsd就可以使用<display-name>、welcome-file-list等元素,在web-app_2.4.xsd没有规定的元素是不可以使用的!!这就是为什么,如下的web.xml配置,会报错“元素"mvc:interceptors" 的前缀 "mvc" 未绑定”,那是因为引入的web-app_2_4.xsd等schema即xsd文件中没有mvc的定义,所以是不能使用的!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>aaa</display-name>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
<!--登录控制拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/login.do" />
<bean class="org.bjlx.base.login.AuthInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</web-app>
2类型、个数、顺序等)。
============
如web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
web.xml首先要包含它的schema,schema写在<web-app>中(标红的部分),意思就是说本xml即web.xml要引用哪些xsd文件中的约束,如web-app_2_4.xsd等。一旦在<web-app>中定义了一个或多个schema引用,web.xml就要遵守schema即.xsd文件中的约束,xsd文件中没有的元素时web.xml时不可以使用的。除此之外,xsd还对类型、个数、顺序等做了限制。
==========================================DTD====================================
dtd文件,也是对xml文件的进一步限制。如某个web.xml引入了web-app_2_3.dtd,该web.xml就要遵守web-app_2_3.dtd对元素的约束,web-app_2_3.dtd中没有的元素,web.xml是不能使用的。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Online Store Application</display-name>
</web-app>
==========================================schema====================================
============
schema的专业叫法是模式,每一个web.xml都要
1xml文件中可以用哪些元素,如引用了web-app_2.4.xsd就可以使用<display-name>、welcome-file-list等元素,在web-app_2.4.xsd没有规定的元素是不可以使用的!!这就是为什么,如下的web.xml配置,会报错“元素"mvc:interceptors" 的前缀 "mvc" 未绑定”,那是因为引入的web-app_2_4.xsd等schema即xsd文件中没有mvc的定义,所以是不能使用的!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>aaa</display-name>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
<!--登录控制拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/login.do" />
<bean class="org.bjlx.base.login.AuthInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</web-app>
2类型、个数、顺序等)。
============
如web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
web.xml首先要包含它的schema,schema写在<web-app>中(标红的部分),意思就是说本xml即web.xml要引用哪些xsd文件中的约束,如web-app_2_4.xsd等。一旦在<web-app>中定义了一个或多个schema引用,web.xml就要遵守schema即.xsd文件中的约束,xsd文件中没有的元素时web.xml时不可以使用的。除此之外,xsd还对类型、个数、顺序等做了限制。
==========================================DTD====================================
dtd文件,也是对xml文件的进一步限制。如某个web.xml引入了web-app_2_3.dtd,该web.xml就要遵守web-app_2_3.dtd对元素的约束,web-app_2_3.dtd中没有的元素,web.xml是不能使用的。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Online Store Application</display-name>
</web-app>
相关文章推荐
- SpringMvc 学习笔记
- 2927 集合
- MySQL配置文件位置
- 基于percona 5.7的xtrabackup实践
- Centos 中 vim 的配置
- 暴力求解法 算法竞赛入门经典2读书笔记 (附POJ 1321)
- java通过JDBC连接数据库
- Android系统图标的使用
- Java EE开发平台随手记2——Mybatis扩展1
- tomcat下server.xml配置调优
- hadoop key和value 分隔符号设置
- iOS-绑定key与属性名方法
- OpenCV两张图片叠加,一张旋转一定的角度,另一张不变,如何叠加?
- 网站前端性能优化
- 给 JavaScript 开发者讲讲函数式编程
- rk3288 uboot 编译问题
- MySQL学习第三天 Windows 64位操作系统下验证MySQL
- 自定义音频条
- JavaScript 跨域的实现方法
- 学生常见问题(一)——空格引发的问题