gpt4 book ai didi

java - 为什么xsi :schemaLocation declaration?中有冗余

转载 作者:行者123 更新时间:2023-12-01 22:32:39 25 4
gpt4 key购买 nike

xml 架构位置包含 http://www.springframework.org/schema/beans ,它已经是架构全局命名空间。那么为什么它总是在 xsi:schemaLocation 元素中重复呢? XSD/DTD 定义了 XML,因此解析器需要进行 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>

最佳答案

它看起来只是多余的,因为您只定义了一个命名空间架构。如果存在多个架构,您需要将命名空间与其架构定义配对。

<foo xmlns="http://www.example.com/foo"
xmlns:bar="http://www.example.com/bar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/foo http://www.example.com/foo.xsd
http://www.example.com/bar http://www.example.com/bar.xsd">
<bar:tag />
</foo>

这意味着默认命名空间是 http://www.example.com/foo ,其架构位于 http://www.example.com/foo.xsd,但我们还使用命名空间 http://www.example.com/bar,其架构位于 http://www.example.com/bar。 xsd schemaLocation 属性是空格分隔的命名空间/架构对列表。

关于java - 为什么xsi :schemaLocation declaration?中有冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27384310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com