这个特定的XML文件中的xmlns是什么?

时间:2009-10-12 06:00:20

标签: java xml xml-namespaces

我的servlet.xml

中有一个条目
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr

现在,我认为, dwr 是我们要使用的前缀,例如

<dwr:configuration>
    <dwr:convert type="bean" class="com.abc.bean.MyBean" />
</dwr:configuration>

现在问题是,如果网站http://www.directwebremoting.org关闭,那么我的应用程序无法创建bean。

  • 每当beanfactory创建bean时,是否会访问此网站?

  • 有没有其他选择,以便我可以使用dwr,而无需点击他们的网站?


完整标题:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
       http://www.directwebremoting.org/schema/spring-dwr 
       http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd"> 

3 个答案:

答案 0 :(得分:12)

这是XML namespace。这用于确保您的XML标识符(标记等)是唯一的 - 您只需将它们包装在命名空间(如.NET命名空间)中。

命名空间只是一个标识符 - 它是 NOT 在网络上的真实位置!

XML命名空间必须是唯一的 - 这就是许多公司在命名空间中使用* .com域名的原因,因为没有其他人可以(或应该)使用它。

但是你所拥有的“伪URL”是 NOT 一个物理网址,即使“www.directwebremoting.org”域名应该关闭或停止,你的代码仍然会有效!< / p>

这只是一个名字 - 只不过是名字 - 没有物理文件驻留在“URL”后面。

<强>更新: 好的,我们在这里有一个不同的问题:

<beans xmlns="http://www.springframework.org/schema/beans"
       ...........
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd   
       http://www.directwebremoting.org/schema/spring-dwr 
     ==>  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">   <==

这些xsi:schemaLocation条目是罪魁祸首 - 这些当然会导致对该网站的依赖,因为您直接引用了XML模式文件(spring-dwr-2.0.xsd)通过该网站上的网址。

您当然也可以将这些* .xsd文件下载到本地磁盘并从那里使用它。这样的XML命名空间只不过是一个名称,但是这个schemaLocation http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd显然是一个真实的物理URL,如果网站关闭则无法工作。

答案 1 :(得分:8)

问题可能与名称空间本身没有直接关系,而是与此dwr名称空间的 架构位置 直接相关。

因此,用作命名空间标识符的URI可以是“任何”,并且不会访问来处理文件(我们使用基于Internet域的命名空间ID作为全局的便捷方式唯一的名称空间),有效地访问模式位置。

解决问题,您可以下载架构,将其发布到可靠的站点上,并更改引用它的XML文件中的架构位置。

“架构”是DTD,或者现在更常见,就像这里的XSD文件一样。实际上,您需要下载以下内容。

  http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd

然后,您可以在自己的服务器上发布spring-dwr-2.0.xsd(或者如果这些不是在线应用程序,则可以在目录中使用它),并将XML标头中的相应行更改为阅读(当然,MyOwnDomain等反映了您的实际网站):

   http://www.directwebremoting.org/schema/spring-dwr 
   http://www.MyOwnDomain.com/SomeDirectory/spring-dwr-2.0.xsd">

以这种方式,即使directwebremoting.org网站不可用,XML处理逻辑也不会有任何延迟。

注意,有问题的XSD很可能引用其他模式,如果是这种情况,你也想下载这些模式,并确保XSD指向新位置。

答案 2 :(得分:0)

DTD可以是架构(也是XDR还有更多)。模式定义了输入XML数据的结构(元素,属性,属性数据类型等)。