我见过如下文件
的XML文件示例<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
此外,我还看到了以下XML文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd">
<bean id="test" />
</beans>
我很困惑为什么第一个需要前缀而第二个不需要前缀。只有在含糊不清的情况下才需要前缀吗?在2nd中的根标签声明中是否有某些内容导致前缀是可选的?
答案 0 :(得分:1)
这是非常基本的。
在第一种情况下,root
元素位于默认命名空间中。这两个table
元素位于两个不同的名称空间中,因此它们具有f
和h
前缀。
在第二种情况下,beans
元素位于http://www.springframework.org/schema/beans
命名空间中。可以使用类似
<b:beans xmlns:b="http://www.springframework.org/schema/beans"
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.xsd">
<b:bean id="test" />
</b:beans>
但是,由于只有一个命名空间,因此将xmlns="http://www.springframework.org/schema/beans
指定为所有元素的命名空间会更简单。