在我正在学习的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所假设的,但这看起来非常无效
答案 0 :(得分:1)
那不是标题。它只是文档的根节点。
您在该元素中看到的“xmlns:xsi”属性是名称空间声明。命名空间需要在使用之前声明。因此,它们通常在文档顶部一直声明。只有在使用它们之前才需要声明它们。
尽管名称空间名称(名称空间属性中的值)通常采用URL的形式,但它们不一定是Internet上资源的位置。它们只是一个独特的名字。特别是,它们将始终采用URI的形式,这是一种语法,它是“URL”的超集,但只能用作唯一标识符,而不能用作Internet上资源的位置。
作为“xsi:schemaLocation”和“xsi:noNamespaceSchemaLocation”的值给出的URI是可用于验证文档的模式的位置。它们不是必需的,但它们很好。并非所有XML解析器都会关注它们。特别是,您可能没有进行XML验证,或者可能不希望在验证期间使用Internet。