【发布时间】:2014-10-11 16:35:13
【问题描述】:
我一直在研究元数据信息的配置以使用 Spring,我意识到我需要深入研究一下 XML。我对 XML 文件中的引用方案有疑问。到目前为止,我所知道的(我猜......)如下:
- 我读到命名空间的使用对于分离是有用的 XML 文档中的标记元素,从而避免在 标记 (source)。
- 使用 URI 命名命名空间被视为一种标准,而不是 表示将在 Web 地址中搜索文件,例如 示例(source - 在“命名空间名称指向什么?”)。
- 命名空间的声明是使用保留的 属性,“xmlns”。
- 命名空间使用前缀(也称为别名),但使用 标记各种子元素不需要前缀(source - 在“美化”中)。
当我遇到以下标记时,事情开始变得混乱:
<element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/XSL/Transform
http://www.w3.org/1999/XSL/Transform.xsd
http://www.w3.org/1999/xhtml
http://www.w3.org/1999/xhtml.xsd">
</element>
根据许多来源(包括 this),引用 XSD 架构是使用(在我看来)命名空间,正如已经说过的那样,它不指向任何东西,没有文件或任何东西。
在session 2.6 中说,词汇表是由命名空间识别和使用的,这让我理解名称“schemaLocation”是一个保留字,并与所选前缀“xsi”一起使用。我想知道一些与这里介绍的事实有关的事情:
- “schemaLocation”的名称是什么,放在前缀之后 用过的?这是否被称为“属性”?如果是,它是什么属性?
- Spring 以不同的方式识别某些命名空间,执行其 在它之上有自己的逻辑,或者命名空间真的有可能吗 指向地址中的物理文件?
- 可以在没有声明的情况下使用“xsi:schemaLocation” 使用前缀为“xsi”的命名空间?
例如:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="..... http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.0.xsd">
这个 sn-p 摘自《Spring Framework 入门 - 第二版》一书,第 3 章,第 112 页。
- 会不会是作者遗漏了声明“xmlns:xsi ...”?如果他没有省略,那么这段代码就错了?还是这个 不需要写吗?
编辑
如果我的问题得到答复,我希望它包括以下定义、差异和适用性:
- Q 名称。
- 扩展名称。
- 全局属性。
谢谢。
【问题讨论】:
标签: java xml spring namespaces xsd