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 文件来校验指定命名的格式,例如:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过迭代器删除容器中的元素

通过之前的介绍我们知道通过迭代器来遍历单例集合的操作仍然需要借助于循环结构。而且我们知道在单例集合中调用iterator方法返回的Iterator对象中还有一个remove方法我们没有介绍&#xff0c;它的作用是删除容器中的元素。说道这里应该有人会发现一个很明显的问题&#xff0c;…

RockChip Android12 Launcher3启动与布局分析

目录 一:概述 二:编译 三:启动 1、AndroidManifest.xml 2、Launcher 四:布局 1、LauncherAppState 2、InvariantDeviceProfile 3、initGrid 4、getPredefinedDeviceProfiles 5、invDistWeightedInterpolate 6、initGrid 7、initDeviceProfile 8、DeviceProfil…

[MySql]两阶段提交

文章目录 什么是binlog使用binlog进行恢复的流程 什么是redolog缓冲池redologredolog结构 两阶段提交 什么是binlog binlog是二进制格式的文件&#xff0c;用于记录用户对数据库的修改&#xff0c;可以作用于主从复制过程中数据同步以及基于时间点的恢复&#xff08;PITR&…

Webpack: 借助 Babel+TS+ESLint 构建现代 JS 工程环境

概述 Webpack 场景下处理 JavaScript 的三种常用工具&#xff1a;Babel、TypeScript、ESLint 的历史背景、功能以及接入 Webpack 的步骤借助这些工具&#xff0c;我们能构建出更健壮、优雅的 JavaScript 应用 使用 Babel ECMAScript 6.0(简称 ES6) 版本补充了大量提升 JavaSc…

互联网应用主流框架整合之Spring Boot运维体系

先准备个简单的系统&#xff0c;配置和代码如下 # 服务器配置 server:# 服务器端口port: 8001# Spring Boot 配置 spring:# MVC 配置mvc:# Servlet 配置servlet:# Servlet 的访问路径path: /sbd# 应用程序配置application:# 应用程序名称name: SpringBootDeployment# 配置数据…

第 133 场 LeetCode 双周赛题解

A 使所有元素都可以被 3 整除的最少操作数 遍历 n u m s nums nums &#xff0c;每有一个不被 3 3 3 整除的数&#xff0c;则操作数加 1 1 1 class Solution {public:int minimumOperations(vector<int>& nums) {int res 0;for (auto x : nums)if (x % 3 ! 0)res…

杂记 | 搭建反向代理防止OpenAI API被封禁(对于此次收到邮件提示7月9日后将被屏蔽的解决参考)

文章目录 重要声明&#xff08;免责&#xff09;01 OpenAI封禁API的情况02 解决方案及原理2.1 原因分析2.2 解决方案2.3 步骤概述 03 操作步骤3.1 购买一个海外服务器3.2 申请一个域名3.3 将域名指向代理服务器3.4 在代理服务器上安装nginx3.5 配置反向代理 重要声明&#xff0…

接口自动化测试

接口自动化测试 为什么要做自动化测试&#xff1f;如何做自动化测试测试工具 本文只讲方法&#xff0c;不会太多关注具体实用细节。 为什么要做自动化测试&#xff1f; 当接口的功能很复杂、很灵活、频繁变更时&#xff0c;代码稍微有些变更&#xff0c;影响范围很难短时间内…

网工内推 | 深圳网工,国企,最高20k,六险一金,NA以上认证

01 沛顿科技&#xff08;深圳&#xff09;有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;岗位职责&#xff1a; 1、负责网络设备管理及维护&#xff0c;确保网络系统的稳定运行&#xff1b; 2、负责有效规划及实施网络布线系统&#xff1b; 3、负责服务…

打造你的跨境电商平台:从pandabuy的成功看如何开发淘宝代购集运系统

在当今全球化的电商浪潮中&#xff0c;跨境购物已成为一种趋势。pandabuy作为一个成功的跨境独立站&#xff0c;其淘宝代购集运系统凭借高效的服务和优质的用户体验广受欢迎。对于希望建立类似平台的创业者来说&#xff0c;深入分析pandabuy的成功经验&#xff0c;并运用于自身…

LV、古驰奢侈品跌落神坛!2024消费风向彻底变天!2024创业新风口!2024创业小成本项目!

LV下滑6%、古驰暴跌28%&#xff0c;奢侈品在华越来越卖不动&#xff0c;外媒开始着急了&#xff01;就在前段时间&#xff0c;美媒罕见发声&#xff0c;表示今年1季度特别困难&#xff0c;有奢侈品公司在华负增长高达30%。还说如何提升销量&#xff0c;是当下奢侈品牌在华的头等…

使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集

1&#xff0c; 问题&#xff1a;本来是好的&#xff0c;突然编译运行报错&#xff0c;说是确少包&#xff0c; 解决方案&#xff1a;重启以后好了 2&#xff0c;有完美的马鞍波&#xff0c;为什么不能够转动呢&#xff1f; 原因是我这里模型的问题&#xff0c;我计算出来的是占…

前端请求XMLHttpRequest详解

文章导读&#xff1a;AI 辅助学习前端&#xff0c;包含入门、进阶、高级部分前端系列内容&#xff0c;当前是 javascript 的部分&#xff0c;瑶琴会持续更新&#xff0c;适合零基础的朋友&#xff0c;已有前端工作经验的可以不看&#xff0c;也可以当作基础知识回顾。 这篇文章…

全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展

6月21日&#xff0c;省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春&#xff0c;四川邮电职业技术学院党委副书记、校长冯远洪&#xff0c;四川邮电职业技术学院党委委员、副校长程德杰等出席…

业务场景问题二:部分业务场景问题(简)

在面试环节&#xff0c;通常面试官会问一些企业级开发项目中的场景问题&#xff0c;大致可分为以下几个部分&#xff0c;本章作为简易引导&#xff0c;不作详细的技术解答。 面试的业务场景问题 处理亿级数据库&#xff1a; 数据库分库分表&#xff1a;使用分片技术将数据按照…

Docker环境安装anythingllm

拉镜像 docker pull mintplexlabs/anythingllm建目录 export STORAGE_LOCATION$HOME/anythingllm && \ mkdir -p $STORAGE_LOCATION && \ touch "$STORAGE_LOCATION/.env"检查目录具有写权限 # 为目录anythingllm赋写权限 chmod 777 anythingllm 启…

探索Scala的尾递归优化:性能提升的秘诀

探索Scala的尾递归优化&#xff1a;性能提升的秘诀 引言 在函数式编程中&#xff0c;递归是一种常见的编程范式。然而&#xff0c;传统的递归可能会因为堆栈溢出而导致性能问题。Scala作为一门支持函数式编程的语言&#xff0c;提供了尾递归优化的特性&#xff0c;这使得递归…

PCL笔记二 之VS环境配置(不同版本Debug+Release编译)

PCL笔记二 之VS环境配置(不同版本Debug+Release编译) PCL官网:https://github.com/PointCloudLibrary/pcl/releases众所周知,PCL是一个用于点云处理并且依赖不少三方库的一个算法库,同时在编译配置环境时也很复杂,因此这里想整理一下不同版本对应的环境配置过程,版本如下…

力扣921. 使括号有效的最少添加

Problem: 921. 使括号有效的最少添加 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义int变量res、need分别记录需要插入的左括号数和所需与左括号配对的右括号数&#xff1b; 2.遍历字符串&#xff1a; 2.1.若当为左括号&#xff0c;则need&#xff0c;表示…

eslint版本9.0之后配置方法

在eslint9.0之后&#xff0c;迎来版本大更新。首先是抛弃了自带的规则&#xff08;没了我喜欢的git standard风格&#xff09;&#xff0c;其次是配置又更新了&#xff0c;改动有点大&#xff0c;重新捋了一遍之后&#xff0c;附上最新的eslint配置过程。 初始化命令 此次试验…