1 XML基础知识
-
XML用于传输数据,而HTML用于格式化并显示数据
-
XML语言没有预定义的标签、而HTML中标签都是预定义的,例如HTML文档只能使用在 HTML 标准中定义过的标签(如 <p>、<h1> 等)
-
XML中,省略关闭标签是非法的,所有元素都必须有关闭标签
-
XML中大小写敏感, 与标签 是不同的,必须使用相同的大小写来编写打开标签和关闭标签
-
在 XML 中,有一些字符拥有特殊的意义,例如"<"解析器会把它当作新元素的开始,因此把字符 “<” 放在 XML 元素中,会发生错误,为避免这种错误,可以使用实体引用替代这种特殊字符
<!--<message>if salary < 1000 then</message>错误--> <message>if salary < 1000 then</message>
-
.dtd或.xsd是一种文件,这种文件中定义了一个xml中允许的格式,比如可以包括哪些元素等,当在xml中引入了dtd和xsd文件,那么idea就会根据这个文件对xml进行校验,如果不通过,就会进行提示
2 spring配置文件详解
<!--声明,且如果有声明,必须放在第一行-->
<?xml version="1.0" encoding="UTF-8"?>
<!--1. xmlns是xml中元素的一个预留属性,用于声明命名空间,是xml namespace的缩写
2. 因为XML文件的属性名称都是自定义的,两个不同开发者可能定义的属性名相同,所以需要加上一个namespace来区分,例如<f:table>和<t:table>就不再是同一个元素,类似于java中的package
3. xmlns:xsi表示将xsi这个前缀,和命名空间"http://www.w3.org/2001/XMLSchema-instance"绑定到一起
4. xmlns表示指定其所在元素以及其所有子元素的,默认命名空间,也就是说,其实beans,应该是<http://www.springframework.org/schema/beans:beans>
5. 虽然命名空间看起来像url,但不代表使用命名空间时必须连接互联网,选择使用url是为了防止命名空间重复,因为一般url是不会重复的。完全可以不使用url作为命名空间,例如<someElement xmlns:pfx="foo"/>完全合法。当然为了被spring识别,必须使用http://www.springframework.org/schema/beans等作为命名空间
6. 对于xsi:schemaLocation这种写法,实际上,表示的是beans元素中,名为http://www.w3.org/2001/XMLSchema-instance:schemaLocation的属性,一般来讲,默认的命名空间,不会被应用于属性上,如果想在属性上使用命名空间,需要通过"命名空间:属性名"来指定。所以说,虽然元素中没用到xsi对应的命名空间,但还是定义了它,就是为了对schemaLocation属性使用命名空间
7. 而xsi:schemaLocation属性的值,由多个URI引用对组成,每对URI由两个URI组成,两个URI之间以空白符分隔。第一个URI是名称空间的名字,第二个URI给出对应xsd文档的位置。spring的xml解析器,会尝试从网络读取这些xsd文件,来验证当前xml文件是否正确
-->
<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:tx