1、引言
在使用Java时经常遇到使用XML的情况,而因为对XML不太了解,经常配置时粘贴复制,现在对它进行总结,以备以后使用。
2、XML常见的定义
(1) XML(Extensible Markup Language):即可扩展标记语言,它的特性如下:
- 可扩展标记语言是一种很像超文本标记语言的标记语言。
- 它的设计宗旨是传输数据,而不是显示数据。
- 它的标签没有被预定义。您需要自行定义标签。
- 它被设计为具有自我描述性。
(2) schema:用于描述XML文档结构的文件,它用于可替代文档类型定义(外语缩写:DTD);XML Schema有时又称为XML Schema Definition,所以也会称为XSD。因此Schema文件是以xsd为后缀的。它主要规定了哪些元素和属性可以在XML中出现,哪些不可以出现。并且schema还可以定义数据类型。
schema描述某个指定的国家的实例:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="country" type="Country">
<xs:complexType name="Country">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="population" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
一份遵从这个视图的XML文件:
<country
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="country.xsd">
<name>France</name>
<population>59.7</population>
</country>
(3) xmlns(XML Namespaces):即XML的命名空间,因为XML文件的标签名称都是自定义的,自己写的和其他人定义的标签很有可能会重命的现象,所以用namespace来区分这个xml文件和其他的xml文件,类似于java中的package。
(4) xsi(xml schema instance):是指xml文件遵守xml规范,是指具体用到的schema资源文件里定义的元素所准守的规范。例如:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
上面的例子定义了一个Schema的实例命名空间。只有作了这个定义才能使用schemaLocation属性。xsi:schemaLocation是指具体用到的schema资源
xsi:schemaLocation= "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
schemaLocation属性由成对的值组成,可以有多对。因为一个XML文档可以有多个命名空间,所以schemaLocation值可以有多对。第一个"http://www.springframework.org/schema/beans"是要使用schema进行有效验证的命名空间的元素。而"http://www.springframework.org/schema/beans/spring-beans.xsd"是要使用的schema文档的路径。
3、XML实例
XML实例如下所示:
<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
.....
</beans>
在上面的实例中,可知beans是该XML文件的根节点标签名称。xmlns:util是指命名空间util,util命名空间的Xsi(XML schema instance)的地址为"http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"。