• 引入spring时 XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation


    <?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-4.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd " >

    <!-- 使用注解开发,不用配置controller,需要配置一个组件扫描器 -->
    <context:component-scan base-package="test.springMVC"/>
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 配置从项目根目录到指定目录一端路径 ,建议指定浅一点的目录-->
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <!-- 文件的后缀名 -->
    <property name="suffix" value=".jsp"></property>
    </bean>
    </beans>

    上面是我的xml文件  那么这个文件的各个标签都是什么意思呢?

    <?xml version="1.0" encoding="UTF-8"?>

    version 从字面意思就很理解了就是我们用的xml文件的版本  

    encoding 是编码格式,默认都是utf-8

    然后下面就是规范了   有两种规范

    一个是比较老旧的 .dtd 

    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 

    DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。 public 即为 公共DTD,就是大家都认可的规范。DTD名称格式为"注册//组织//类型 标签//语言"

    而我用的就是另外一种声明 规范

    1. beans 是根标签  因为xml是一个标记语言,所以需要根标签

    2. xmlns其实是XML Namespace的缩写 也即是为当前的这个xml指定命名空间  

      使用语法: xmlns:namespace-prefix="namespaceURI"。其中namespace-prefix为自定义前缀,只要在这个XML文档中保证前缀不重复即可;namespaceURI是这个前缀对应的XML Namespace的定义。

    例如,xmlns:context="http://www.springframework.org/schema/context"

     这一句定义了一个http://www.springframwork.org/schema/context的Namespace(这和Java类中的包的声明很相似),并将其和前缀context绑定。所以上面的Spring XML文档中会有这么一句:<context:component-scan base-package="xxx.xxx.controller" />

    这里的<component-scan/>元素就来自别名为context的XML Namespace,也就是在http://www.springframework.org/schema/context中定义的。

    3.   xmlns:xsi表示使用xsi作为前缀的Namespace,当然前缀xsi需要在文档中声明。 也是xml所要遵循的标签规范

    4. 如上hdp, xsi, aop, cache, context, mvc…都是当前xml要使用到的一个标签,后面就是指定标签所要遵循的规范。

    5.  xsi:schemaLocation  属性其实是Namespace为http://www.w3.org/2001/XMLSchema-instance里的schemaLocation属性,

    我们一开始声明了xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       这里才写作xsi:schemaLocation(当然一般都使用这个前缀)。它定义了XML Namespace和对应的XSD(Xml Schema Definition)文档的位置的关系。它的值由一个或多个URI引用对组成,两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的XML Namespace的值,第二个URI给出Schema文档的位置,Schema处理器将从这个位置读取Schema文档,该文档的targetNamespace必须与第一个uri相匹配。

    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd

     xsi:schemaLocation 指定的命名空间对应的验证文件,用来定义xml schema的地址,也就是xml书写时需要遵循的语法,用于声明了目标命名空间的模式文档。。两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址,也是就表示把定义这个命名空间的schema文件给引用进来,好让eclipse这类型工具能够解析和验证你的xml文件是否符合语法规范。等同于。用于声明了目标命名空间的模式文档。

    怎么检查我们写的是否正确呢?最快的方法就是复制链接http://www.springframework.org/schema/beans/spring-beans.xsd 看看是否能打开 如果报错 配置的就有问题

     
  • 相关阅读:
    网络服务管理手册
    Oracle随机函数的取法
    oracle 分析函数over
    RMAN故障解决——RMAN用户手册
    SQL*PLUS命令的使用大全
    如何监测一个PLSQL过程的运行情况(三)
    oracle for in loop 两例
    自定义组件——按钮(转)
    新人报到安家!
    Delphi中生成控件的两种方法
  • 原文地址:https://www.cnblogs.com/zjf6666/p/9105138.html
Copyright © 2020-2023  润新知