您的位置:首页 > 汽车 > 新车 > xml----命名空间详解

xml----命名空间详解

2024/12/27 11:37:40 来源:https://blog.csdn.net/qq_41768644/article/details/139814388  浏览:    关键词:xml----命名空间详解

一、XML 命名空间(namespace)------ xmlns 属性

我们使用xmlns 属性来指定元素的命名空间,格式如下:

xmlns:namespace-prefix=“namespaceURI” 即 xmlns:前缀=“命名空间”

xmlns 是 xml namespace的意思,是xml文件规范中用于指定命名空间的保留关键字。其中namespace-prefix是命名空间的前缀prefix,又被叫做别alias,namespaceURI是一个URI格式的命名空间

1、命名空间运用实例

<root><h:table xmlns:h="http://www.w3.org/TR/html4/"><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr></h:table><f:table xmlns:f="http://www.w3cschool.cc/furniture"><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>

其中xmlns:h=“http://www.w3.org/TR/html4/”、xmlns:f="http://www.w3cschool.cc/furniture"指定了两个命名空间;在上面的实例中,<table> 标签的 xmlns 属性定义了 h: 和 f: 前缀的合格命名空间。当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
命名空间,可以在他们被使用的元素中或者在 XML 根元素中声明:

<root xmlns:h="http://www.w3.org/TR/html4/"xmlns:f="http://www.w3cschool.cc/furniture"><h:table><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr></h:table><f:table><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length></f:table></root>

2、默认命名空间

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。它的语法如下:

xmlns="namespaceURI"

实例如下:

<book xmlns="http://www.hello.com/xml/b"xmlns:a="http://www.hello.com/xml/a">

上边的 xmlns=“http://www.hello.com/xml/b” 并没有指定前缀,那么这种没有指定前缀的命名空间就会作为页面中元素的默认命名空间,除非在标签中使用其他命名空间的前缀,否则解析器都会认为元素是在默认命名空间下存在;但是要注意的是一个文档中只能有一个默认的命名空间,如下的语法是错误的:

<book xmlns="http://www.hello.com/xml/b"xmlns="http://www.hello.com/xml/a">

3、实践中运用

我们这里就以 Spring 中的 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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.springmvc"></context:component-scan><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/"></property><property name="suffix" value=".jsp"></property></bean><mvc:default-servlet-handler/><mvc:annotation-driven></mvc:annotation-driven>
</beans>

xmlns=“http://www.springframework.org/schema/beans”: 这里的命名空间没有带前缀,是默认的命名空间,这个空间是属于那些没有写任何前缀的标签,例如 bean 标签就没有写任何前缀,bean 标签就属于这个命名空间
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”: xsi 是 XML Schema Instance 的缩写,也可以自己起别的前缀名(不推荐自己乱起名字,使用约定俗成的前缀可以使 xml 文件结构更加清晰)
这是一个特殊的命名空间,它已经定义好了4个标签分别是 xsi:type、xsi:nil、xsi:schemaLocation、xsi:noNamespaceSchemaLocation,这几个属性只有声明了 xsi 命名空间后才能使用,这里我们只讲我们用到的 xsi:schemaLocation 这个属性
xsi:schemaLocation:这个标签的值分为两个部分,对应的是两个 uri 地址,使用换行符将它们分开,第一行是 xsd 文件的目标命名空间,第二行是 xsd 文件的所在物理位置,它的的作用是引用 xsd 文件来校验指定命名的格式,例如:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com