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