1 XML介绍
XML是可扩展的标记性语言,常用来传输和存储数据。可见于Web中的web.xml和Maven中的pom.xml
version是版本,encoding是编码
<?xml version="1.0" encoding="UTF-8"?>
2 XML语法
- 标签可以包含字母、数字以及其他字符
- 标签不能以数字或者标点符号开头
- 标签不能包含空格
- 标签对大小写敏感
- XML属性值必须加引号,即使是数字
- XML必须且只能包含一个根元素,它是所有其他元素的父元素
以下实例中root是根元素
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
3 XML特殊字符
字符 | XML表示 |
---|---|
& | & |
< | < |
> | > |
" | " |
’ | ' |
注:可以用特殊标签<![CDATA[ 内容]],内容会被当作文本,不会被XML解析
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name><XML学习></name>
<name><![CDATA[<XML学习>]]></name>
</root>
4 XML文档结构
XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"。
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
5 XML命名空间
当两个不同的文档使用相同的元素名时,就会发生命名冲突,可以通过命名空间避免这种冲突。当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
命名空间声明的语法为:xmlns:前缀=“URI”(URI同前缀一起标识一个命令空间,可能前缀会相同,但是URI一般不同)
如下代码中book标签的title和author标签的title重复,程序可能不能区分这两个title
<book>
<title>西游记</title>
<author>
<name>吴承恩</name>
<title>先生</title>
</author>
</book>
可以通过命令空间加以区分
<b:book xmlns:b="http://www.atguigu.com/xml/b"
xmlns:a="http://www.atguigu.com/xml/a">
<b:title>西游记</b:title>
<a:author>
<a:name>吴承恩</a:name>
<a:title>先生</a:title>
</a:author>
</b:book>
此外,命令空间可以不加前缀,表示默认的命名空间,一个XML文档只能有一个默认的命名空间
<book xmlns="http://www.atguigu.com/xml/b"
xmlns:a="http://www.atguigu.com/xml/a">
<title>西游记</title>
<a:author>
<a:name>吴承恩</a:name>
<a:title>先生</a:title>
</a:author>
</book>
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--配置User对象创建-->
<bean id="user" class="springstudy.User"></bean>
</beans>
xsi是一个业界默认的用于获得xsd文件的命名空间,而xsd用于定义xml文档结构,xsi:schemaLocation = “键” “值”,“键”指代一个命名空间,“值”为该命名空间下的xsd文件的地址,必须存在
如图中键为http://www.springframework.org/schema/beans中可以找到值为http://www.springframework.org/schema/beans/spring-beans.xsd的文件