XML是什么
XML(EXtensible Markup Language)即可扩展标记语言
。
可扩展:标签都是自定义的
功能
- 配置文件
- 在网络中传输数据
和HTML的区别
-
功能上:
XML 和 HTML 为不同的目的而设计,两者互补:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。 -
语法上:
XML 区分大小写,标签没有被预定义,需要自行定义标签
HTML 不区分大小写,有标准的HTML标签(也可自定义)
HTML 会把多个连续的空格字符裁减(合并)为一个,在 XML 中,文档中的空格不会被删减。
XML文档的撰写
- 结构上
树状结构 - 语法上
- 必有且只有一个根元素
- 所有 XML 元素都须有关闭标签,且不能交叉重叠
- 属性值须加引号
- 特殊字符需要转义
< | < | 小于 |
> | > | 大于 |
& | & | 和号 |
' | ' | 单引号 |
" | " | 引号 |
- 内容上
- 序言码
- 处理指令
- 根元素
- 元素
- 属性
- CDATA节
- 注释
XML文档的验证
XML文档的结构进行定义和验证的方式:
- DTD
- 内容上
- 元素验证
- 属性验证
- 使用上
- 内部引用
直接在xml文档中定义DTD验证 - 引用外部
.dtd
文档验证- 自己定义的.dtd
<!DOCTYPE 根标签名 SYSTEM “dtd文件的位置”> - 标准的.dtd
<!DOCTYPE 根标签名 PUBLIC “dtd文件名字” “dtd文件的位置URL”>
- 自己定义的.dtd
- 内部引用
- 内容上
- Schema
比DTD更强大,通过引用外部.xsd
文件进行验证。
使用:- 填写xml文档的根元素
- 引入xsi前缀. xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
- 引入xsd文件命名空间. xsi:schemaLocation=“http://www.itcast.cn/xml student.xsd”
- 为每一个xsd约束声明一个前缀,作为标识 xmlns=“http://www.itcast.cn/xml”
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.itcast.cn/xml" xsi:schemaLocation="http://www.itcast.cn/xml student.xsd">
XML文档的显示
通过外部
引用样式文件,实现更人性化显示:
- 使用XSL编写
.xsl
文件 - 使用CSS编写
.css
文件
XML的命名空间
-
产生原因:
XML是一种自定义的语言,不同人可能会使用同样的标签名,而这些标签名含义并不尽相同,这在理解和处理上都会造成混乱,所以引入命名空间来避免名称相同带来的问题。 -
具体做法:
利用xmlns
属性,在XML文档内部
,对标签的命名空间进行设置:-
使用标签加前缀的方式
-
使用默认命名空间方式
-
示例解读
<!--本文档的默认命名空间:xmlns="URL",对应URL只是一个唯一性标识-->
<!--业界公认(即都知道)命名空间xsi:xmlns:xsi="URL",xsi是业界默认的XSD文件的命名空间,对应的URL必须是一个可访问网址,
用于读取XSD标准,在xsi:schemaLocation中用,指定其他非业界公认的命名空间对应的实际网址。
由于是业界公认,所以不需要再通过"键 值"映射来找到XSD的实际网址,本身对应就是XSD的实际网址-->
<!--本文档的一般命名空间:xmlns:abc="URL",对应URL只是一个唯一性标识-->
<!--xsi命名空间的schemaLocation属性:xsi:schemaLocation="键 值 键 值 ……",
键对应除xmlns:xsi外其他命名空间的URL,值对应命名空间对应的XSD文件的实际URL位置-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
参考文献
https://blog.csdn.net/zt15732625878/article/details/54629596 —HTML和XML的区别
https://blog.csdn.net/lengxiao1993/article/details/77914155 详解 xml 文件头部的 xmlns:xsi
https://www.runoob.com/xml/xml-namespaces.html xml命名空间 - 菜鸟教程
https://my.oschina.net/itblog/blog/390001 关于XML文档的xmlns、xmlns:xsi和xsi:schemaLocation
https://www.oracle.com/technetwork/cn/articles/srivastava-namespaces-098626-zhs.html XML 模式:了解命名空间 - Oracle