如果没有有效的网络连接,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"

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

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

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.1.xsd">

<context:component-scan

base-package="com.springinaction.chapter01.knight" />

</beans>

上面的示例显示了具有多个名称空间的XML文件的示例。这些名称空间的目的是什么,最重要的是,即使没有Internet连接,它们为什么也可以工作?

我认为从第二位开始xsi:schemaLocation包含XML模式文件,这些文件用于验证XML文档的结构。如果我在不在网络上的计算机上运行使用此配置文件的应用程序,这些仍然如何工作?URL是否是JAR文件的别名?

回答:

让我们假设我们有这个XML文档。

<?xml version="1.0" encoding="UTF-8"?>

<html>

<body>

Your text here

</body>

<body>

<height>182 cm</height>

<weight>83 kg</weight>

</body>

</html>

它包括HTML,该HTML的body标记具有HTML渲染器的语义。它还具有另一个Body标签,其中包含有关特定人的信息。名称空间定义了此标签的语义范围。没有名称空间(如提供的示例中所示),解析器就无法分辨出差异,因为它们在语法上是相同的。

这是同一文档的语义正确版本:

<?xml version="1.0" encoding="UTF-8"?>

<html:html xmlns:html="http://www.w3.org/TR/xhtml1/">

<html:body>

Your text here

</html:body>

<human:body xmlns:html="http://www.example.com/human/">

<human:height>182 cm</human:height>

<human:weight>83 kg</human:weight>

</human:body>

</html:html>

因此,由于有了名称空间,我们不必担心具有不同含义的冲突标签。

名称空间URI本身从未真正解析过,并且是任意的(因此您可以脱机使用它们)。

以上是 如果没有有效的网络连接,XML名称空间如何工作? 的全部内容, 来源链接: utcz.com/qa/420202.html

回到顶部