XML模式/命名空间

时间:2011-05-09 11:35:38

标签: xml xsd xml-namespaces

我经常在XML模式文件中看到类似下面的代码。据我所知,xmlns是定义一个新的命名空间。但是,跟随xmlns的长URL是否真的有必要?我的意思是程序,解析器,无论真正调用什么,例如“http://www.springframework.org/schema/beans”?或者这条线就像这样:

<beans xmlns="beansNamespace">

这是其中一个

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
"
>

1 个答案:

答案 0 :(得分:6)

不,当它看到
时,解析器不会转到http://whatever <element xmlns='http://whatever...'>

The IETF recommends that XML namespaces be URIs,但该URI不必是HTTP URI,实际上它不需要附加任何“网络协议”。它们仅用于识别。

在某些情况下,人们将名称空间URI设计为HTTP URI,并在该URI处插入名称空间的人类可读文档。因此,如果一个人要访问该地方,他们将了解该命名空间的模式。但该公约并未得到广泛采用。

另见What does "xmlns" in XML mean?
和,What causes a difference between a web service URL and a namespace?