Schema命名空间示例

简介: Schema在文档根节点中通过xmlns对文档中的命名空间进行声明。我们在上面的代码中定义了3个命名空间默认命名空间:它没有空间名,用于Spring Bean的定义;xsi命名空间:这个命名空间用于为每个文档中命名空间指定相应的Schema样式文件,是标准组织定义的标准命名空间;aop命名空间:这个命名空间是Spring配置AOP的命名空间,是用户自定义的命名空间。

Spring配置的Schema简单示例

Schema在文档根节点中通过xmlns对文档中的命名空间进行声明。我们在上面的代码中定义了3个命名空间

  • 默认命名空间:它没有空间名,用于Spring Bean的定义;
  • xsi命名空间:这个命名空间用于为每个文档中命名空间指定相应的Schema样式文件,是标准组织定义的标准命名空间;
  • aop命名空间:这个命名空间是Spring配置AOP的命名空间,是用户自定义的命名空间。

命名空间的定义分为两个步骤:
1. 第一步指定命名空间的名称
2. 第二步指定命名空间的Schema文档样式文件的位置,用空格或回车换行进行分隔

在第一步中,需要指定命名空间的缩略名和全名,请看下面配置所定义的命名空间:

<xmlsn:aop="http://www.springframework.org/schema/aop"/>

aop为命名空间的别名,一般使用简洁易记的名称,文档后面的元素可通过命名空间别名加以区分,如<aop:config/>等。而http://www.springframework.org/schema/aop为空间的全限定名,习惯上用文档发布机构的官方网站和相关网站目录作为全限定名。这种命名方式既可以标识文档所属的机构,又可以很好地避免重名的问题。但从XML Schema语法来说,别名和全限定名都可以任意命名。

如果命名空间的别名为空,则表示该命名空间为文档默认命名空间,文档中无命名空间前缀的元素都属于默认命名空间,如<beans/>、<bean/>等都属于1处定义的默认命名空间。

在第二步中,为每个命名空间指定了对应的Schema文档格式定义文件,定义的语法是:

xsi:schemaLocation="namespace1 namespace1的schema文件位置 namespace2 namespace2的schema文件位置 ..."

命名空间使用全限定名,每个组织机构在发布Schema文件后,都会为该Schema文件提供一个引用的URL地址,一般使用这个URL地址指定命名空间对应的Schema文件。命名空间名称和对应的Schema文件地址之间使用空格或回车分隔,不同的命名空间之间也使用这种分隔方法。

指定命名空间的Schema文件地址有两个用途:
1. XML解析器可以获取Schema文件并对文档进行格式合法性验证
2. 在开发环境下,IDE可以引用Schema文件对文档编辑提供诱导功能。


参考

[1]: Spring 3.x企业应用开发实战-4.1.2 基于XML的配置

目录
相关文章
|
3天前
|
网络性能优化 调度 网络虚拟化
配置HQoS示例
HQoS简介 HQoS通过多级队列进一步细化区分业务流量,对多个用户、多种业务等传输对象进行统一管理和分层调度,在现有的硬件环境下使设备具备内部资源的控制策略,既能够为高级用户提供质量保证,又能够从整体上节约网络建设成本。 交换机的HQoS主要通过流队列和用户队列实现。
|
Java 数据库
Apollo公共类型的Namespace配置需要进行关联才能用吗?
其实,这个问题在强哥看来应该有稍微深入了解Apollo的使用者应该都能回答的上来。 不过也是前些天,刚好看到公司新来的实习生在找Apollo配置时抓耳挠腮,了解情况之后,我发现,原来这个问题确实有许多人容易弄混。所以,强哥就在这里也简单科普一下。
Apollo公共类型的Namespace配置需要进行关联才能用吗?
|
3天前
|
数据格式 Python
使用 schema 库,自定义较复杂的校验方法
使用 schema 库,自定义较复杂的校验方法
28 0
|
7月前
|
编译器 C#
C#中导入其它自定义的命名空间
c#中怎么导入其它自定义的命名空间首先要确保已经导入了想要导入的自定义的命名空间。如上图这时编译器应该会报错,此时就需要手动去添加引用了,cs文件默认没有添加引用,只是加载了想要导入的命名空间,但是没有添加引用,所以需要自己要手动添加引用。切记!然后会有一个对话框选择你想引用的命名空间,点击确定即可。注意:一般而言,C#中如果没有改变那么一般项目的类名都默认是Program,在引用时需要注...
73 1
C#中导入其它自定义的命名空间
|
SQL
使用 CREATE SCHEMA 语句来创建模式
使用 CREATE SCHEMA 语句来创建模式
135 0
|
自然语言处理 索引
schema与查询11点注意事项
假期梳理了之前在新浪博客的文档,将一些有用的内容搬到这里。本文介绍solr schema与查询注意事项。
129 0
|
Java C++
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(一)
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(一)
293 0
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(一)
|
C++
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(二)
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(二)
266 0
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )(二)
|
SQL Oracle 关系型数据库
SQL标准对schema如何定义?
ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合(a persistent, named collection of descriptors),如果你之前对schema的定义疑惑不解,希望看了我的这篇文章会好一些,起码不会更差。 广义上 造成疑惑的另一个原因可能是由于schema这一术语具有如此广泛的含义,因为它在不同的环境下有不同的含义,schema一词源于希腊语skhēma,意思是形态(form),轮廓(figure),形状(shape)或方案(plan)。Schema在心理学中被用来描述组织信息类别及其之间关系的有组织的思维或行为模式。我们在设计一个数
253 0
|
C# C++ 开发者
C++ 中命名空间的 5 个常见用法
相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名空间定义了新的作用域。
1403 0