Java 什么是<;豆类:豆类>;及<;豆类>;

Java 什么是<;豆类:豆类>;及<;豆类>;,java,xml,spring-mvc,Java,Xml,Spring Mvc,两者的区别是什么 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:s

两者的区别是什么

<beans xmlns="http://www.springframework.org/schema/beans"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:p="http://www.springframework.org/schema/p"  
xmlns:context="http://www.springframework.org/schema/context"  
xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">  



您能解释一下这两者之间的区别吗。

它是一个XML名称空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别


它是一个XML名称空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别

它们是等效的。 可以说元素的全名是ns:elementName e、 g:

如果你说xmlns=”http://www.springframework.org/schema/beans的意思是“如果您看到一个元素没有名称空间前缀,则假定默认名称空间为”

如果您说xmlns:beans=”http://www.springframework.org/schema/beans“的意思是“如果您看到一个元素带有beans:前缀,请假定它是”“的缩写”

它们是等价的。 可以说元素的全名是ns:elementName e、 g:

如果你说xmlns=”http://www.springframework.org/schema/beans的意思是“如果您看到一个元素没有名称空间前缀,则假定默认名称空间为”


如果您说xmlns:beans=”http://www.springframework.org/schema/beans“的意思是“如果您看到一个元素带有beans:prefix,那么假设它是”“的缩写”

理解这一点的关键是
xmlns
值。在这两种情况下:

xmlns="http://www.springframework.org/schema/beans"
这将指定文档的默认模式。这意味着XML中的每个标记都应该是该模式的一部分,除非明确指定它是该模式的一部分

指定标记来自另一个模式通常由
模式完成。因此,例如,如果标记
name
是模式
foo
的一部分,则必须将其与
一起使用

为文档选择默认架构时,允许您跳过架构名称,如您的示例中的
。在这种情况下,必须在模式中指定
标记,并用
xmlns
指出

在另一种情况下,您明确指定标记
bean
是别名为
bean
的模式的一部分,这将导致
。但是,如果您没有
xmlns:beans=http://www.springframework.org/schema/beans
definition,您将得到一个无效的XML


就我个人而言,我更愿意明确地提供模式别名。

理解这一点的关键是
xmlns
值。在这两种情况下:

xmlns="http://www.springframework.org/schema/beans"
这将指定文档的默认模式。这意味着XML中的每个标记都应该是该模式的一部分,除非明确指定它是该模式的一部分

指定标记来自另一个模式通常由
模式完成。因此,例如,如果标记
name
是模式
foo
的一部分,则必须将其与
一起使用

为文档选择默认架构时,允许您跳过架构名称,如您的示例中的
。在这种情况下,必须在模式中指定
标记,并用
xmlns
指出

在另一种情况下,您明确指定标记
bean
是别名为
bean
的模式的一部分,这将导致
。但是,如果您没有
xmlns:beans=http://www.springframework.org/schema/beans
definition,您将得到一个无效的XML


就我个人而言,我希望始终明确地提供模式别名。

第一个是正确的,第二个不是。区别来自“默认名称空间”。默认名称空间是
bean
。如果您的默认名称空间是其他名称空间,例如
context
,那么您需要显式定义
beans
名称空间(您在示例中没有这样做),并使用
beans:beans
样式

嵌套的
元素有一个不同的用例,您在根
标记中使用一个新的
标记:

用于定义具有某些默认值的bean子集,或仅在某些配置文件处于活动状态时注册。任何此类嵌套元素都必须声明为文档中的最后一个元素


但是你的例子与此无关。

第一个是正确的,第二个不是。区别来自“默认名称空间”。默认名称空间是
bean
。如果您的默认名称空间是其他名称空间,例如
context
,那么您需要显式定义
beans
名称空间(您在示例中没有这样做),并使用
beans:beans
样式

嵌套的
元素有一个不同的用例,您在根
标记中使用一个新的
标记:

用于定义具有某些默认值的bean子集,或仅在某些配置文件处于活动状态时注册。任何此类嵌套元素都必须声明为文档中的最后一个元素


但是您的示例与此无关。

简单地说,它允许您不将名称空间添加到您选择的属于默认名称空间的元素前面。 xmlns=“名称空间” 根据上述示例,如果: i) xmlns=”http://www.springframework.org/schema/beans"

然后您可以使用元素以及-显式语法

ii)xmlns=”http://www.springframework.org/schema/p"

然后可以使用以及-explicit语法


注意:使用xmlns只能设置一次默认名称空间

简单地说,它允许您不在您选择的属于默认名称的元素前面添加名称空间
xmlns="http://www.springframework.org/schema/beans"