zig*_*ggy 16 java xml spring xsd xml-namespaces
<?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>
Run Code Online (Sandbox Code Playgroud)
上面的示例显示了具有多个名称空间的XML文件的示例.这些命名空间的目的是什么,最重要的是,即使没有Internet连接,它们也能正常工作?
我认为第二位开头xsi:schemaLocation
包含XML模式文件,用于验证XML文档的结构.如果我在不在网络上的计算机上运行使用此配置文件的应用程序,为什么这些仍然有效?URL是否以某种方式别名为JAR文件?
Uku*_*kit 16
我们假设我们有这个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>
Run Code Online (Sandbox Code Playgroud)
它包括HTML,其具有对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>
Run Code Online (Sandbox Code Playgroud)
因此,由于命名空间,我们不必担心具有不同含义的冲突标记.
命名空间URI本身从未实际解析,并且是任意的(因此您可以脱机使用它们).
Mic*_*Kay 15
尝试忽略这样一个事实,即许多名称空间名称看起来像您可能在浏览器中键入的URL.它们只是随机字符串,它们不是Web上的资源地址.人们采用这种约定的原因在于它显示了谁"拥有"这个名字 - 它更清楚http://www.w3.org/2001/XMLSchema所指的比他们选择"xsd1.0"作为命名空间名称更清楚,并且它不太可能与其他人选择的名字意外冲突.有些人还喜欢将文档放在相关位置的事实,但没有XML软件会自动查找文档.
归档时间: |
|
查看次数: |
4830 次 |
最近记录: |