您的位置:首页 > 其它

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: