一些关于XML的问题?

17 浏览
0 Comments

一些关于XML的问题?

我注意到我们在这个属性的值中有多个URL,就像在Spring中一样:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

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">

为什么需要这样做?它的用途是什么?Spring会访问URL并进行验证吗?

xmlns和xsi:schemaLocation之间有什么区别?

0
0 Comments

关于XML的一些问题

在使用Spring的Java XML解析器时,它会读取schemaLocation的值,并试图从互联网上加载它们,以验证XML文件。而Spring会拦截这些加载请求,并从其自己的JAR文件中提供版本。

如果省略了schemaLocation,那么XML解析器将不知道从哪里获取模式以验证配置。

XML解析器会搜索类路径吗?

这是否意味着,当我使用-maven构建基于Spring的项目并带有-o(离线)标志时,构建将失败,尽管所有依赖项都在我的本地存储库中可用?

但是XML解析器将寻找什么?模式可以有任何名称。

从技术上讲,XML解析器首先会尝试从互联网加载模式,如果未找到或无法访问互联网,它将从类路径中本地搜索*.xsd文件,如果仍然找不到,则会被省略。

有关Spring拦截层的更多信息,请参阅stackoverflow.com/a/10768972/32453

这是否意味着,如果没有像Spring中那样的解析器层,我们不需要提供xsi:schemaLocation信息?比如在SOAP负载中

声明xsi命名空间而不提供其xsd位置的目的是什么?XML解析器是否仍然能够理解schemaLocation属性并完全省略xsi命名空间?

解析器不会在互联网上搜索模式。它们会查找在该URI上注册的任何模式。允许这样的配置被认为是危险的。

0