xml----命名空间详解

news/2024/12/22 16:44:31/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

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

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

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

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

1、命名空间运用实例

xml"><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 根元素中声明:

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、默认命名空间

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

xml">xmlns="namespaceURI"

实例如下:

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

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

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

3、实践中运用

我们这里就以 Spring 中的 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: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 文件来校验指定命名的格式,例如:


http://www.ppmy.cn/news/1472587.html

相关文章

SpringBooot常用的内置工具类

环境&#xff1a;SpringBoot 3.2.5 1、获取进程ID 如果你想在程序中获取当前SpringBoot运行的进程号&#xff0c;那么你可以使用ApplicationPid&#xff0c;该类非常方便的获取当前进程ID。 ApplicationPid pid new ApplicationPid() ; System.out.printf("进程ID: %s%…

Vue.js的V-show什么意思

在 Vue.js 中&#xff0c;v-show 是一个指令&#xff0c;它用于根据条件切换元素的 CSS 属性 display。具体来说&#xff0c;当 v-show 的条件为 true 时&#xff0c;元素会被设置为 display: block&#xff08;或其他相关的值&#xff0c;比如 inline、inline-block 等&#x…

“一带一路”再奏强音!秘鲁总统博鲁阿尔特参访苏州金龙

6月27日下午&#xff0c;首次访华的秘鲁共和国总统博鲁阿尔特一行到苏州金龙参观访问&#xff0c;受到了苏州金龙总经理黄书平的热情接待。 黄书平&#xff08;左二&#xff09;向博鲁阿尔特&#xff08;右一&#xff09;介绍苏州金龙发展情况 从苏州金龙发展历程、产品技术研…

操作系统精选题(三)(简答题、概念题)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;操作系统 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 简答题 一、对 CPU、内存、外设并…

linux下OpenSSL升级到1.1以上版本

要将CentOS 7上的OpenSSL升级到1.1以上版本&#xff0c;您需要遵循以下步骤。请注意&#xff0c;这些步骤可能需要一些系统管理经验&#xff0c;因为您将从源代码编译和安装OpenSSL。 1. 更新系统软件包 首先&#xff0c;确保您的系统软件包是最新的。使用以下命令更新所有软…

Qt的事件循环机制源码分析

Qt 使用了一个事件模型来与操作系统沟通&#xff0c;处理诸如鼠标点击、键盘输入等用户动作。以下步骤详细解释了从操作系统捕捉鼠标点击事件到 Qt 处理该事件的过程&#xff1a; 1、事件处理过程 1.1、Qt 的事件循环 Qt 应用程序运行时会启动一个事件循环&#xff08;QEven…

centos 7.9 离线环境安装GPU服务环境

文章目录 centos 7.9 离线环境安装GPU服务环境系统配置更新 gcc更新内核安装显卡驱动安装cuda安装docker 和 nvidia-container-runtime验证 centos 7.9 离线环境安装GPU服务环境 基于centos 7.9 离线安装gpu 服务基础环境&#xff0c;用于在docker 中运行算法服务 系统配置 …

【华为OD机试B卷】解压报文、压缩报文还原(C++/Java/Python)

题目 题目描述 为了提升数据传输的效率,会对传输的报文进行压缩处理。输入一个压缩后的报文,请返回它解压后的原始报文。压缩规则:n[str],表示方括号内部的 str 正好重复 n 次。注意 n 为正整数(0 < n <= 100),str只包含小写英文字母,不考虑异常情况。输入描述 输…