在我正在研究的XML文件的顶部,我在开头看到:
<selfModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../dtd/selfmodel.xsd">
之后,它是XML的实际内容:
<plan id = "offer" default="true">
<description>Automatically generated from ACELandic specification</description>
<states> .. etc
xmlns:xsi=
和 xsi:noNamespaceSchemaLocation
的目的是什么?在编译文件时是否可以在线搜索/验证?这就是我所假设的URL www.w3.org/2001/XMLSchema-instance,但这似乎非常低效
1 回答
那不是 Headers . 它只是文档的根节点 .
您在该元素中看到的“xmlns:xsi”属性是名称空间声明 . 命名空间需要在使用之前声明 . 因此,它们通常在文档顶部一直声明 . 只有在使用它们之前才需要声明它们 .
虽然命名空间名称(命名空间属性中的值)通常采用URL的形式,但它们不一定是Internet上资源的位置 . 它们只是一个独特的名字 . 特别是,它们将始终采用URI的形式,这是一种语法,它是“URL”的超集,但只能用作唯一标识符,而不能用作Internet上资源的位置 .
作为"xsi:schemaLocation"和"xsi:noNamespaceSchemaLocation"的值给出的URI是可用于验证文档的模式的位置 . 他们没有必要,但他们很高兴 . 并非所有XML解析器都会关注它们 . 特别是,您可能没有进行XML验证,或者可能不希望在验证期间使用Internet .