1

在我正在研究的 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 假设的,但这似乎非常低效

4

1 回答 1

1

那不是标题。它只是文档的根节点。

您在该元素中看到的“xmlns:xsi”属性是命名空间声明。命名空间需要在使用前声明。所以它们经常被声明在文档的顶部。只需要在使用前声明它们。

尽管名称空间名称(名称空间属性中的值)通常采用 URL 的形式,但它们不一定是 Internet 上资源的位置。它们只是唯一的名称。特别是,它们将始终采用 URI 的形式,这种语法是“URL”的超集,但只能用作唯一标识符,而不是 Internet 上资源的位置。

作为“xsi:schemaLocation”和“xsi:noNamespaceSchemaLocation”值给出的 URI是可用于验证文档的模式的位置。它们不是必需的,但很高兴拥有它们。并非所有 XML 解析器都会关注它们。特别是,您可能没有进行 XML 验证,或者可能不希望在验证期间使用 Internet。

于 2013-01-18T17:39:15.603 回答