1

例如,根据 W3C XML 1.0 的建议,以下 XML 文档是否有效?请注意,文档中的任何地方都没有引用命名空间“future”。

尽管这可能不被认为是好的风格,但我相信无论未使用的命名空间如何,该文档仍然有效。谁能证实或反驳这个假设?

谢谢,马特

<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1'  xmlns:future='http://bar.org/v1'>
    <child>1</child>
</root>
4

4 回答 4

3

不,在 XML 文档中包含未使用的名称空间声明并不违法。

于 2009-06-11T18:16:49.000 回答
3

标准似乎没有另外说明。第 7 节,“文档的一致性”给出了一些要求,以便将文档称为“命名空间格式良好”和“命名空间有效”,但没有说您不能有未使用的命名空间声明。

在第 3 节中,给出了一个示例,其中包含一个未使用的命名空间:

<x xmlns:edi='http://ecommerce.example.org/schema'>
    <!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
         for the "x" element and contents -->
</x>
于 2009-06-11T18:22:26.770 回答
1

W3C 实际上有一个验证器服务。这通过两个警告进行验证,编码和缺少文档类型。

于 2009-06-11T18:16:55.660 回答
0

虽然大多数清理工具都会删除未使用的名称空间,但我不记得 XML 规范中有任何内容说保留它们是非法的。而且我不知道有任何 XML 解析器不会接受这样的文档(并且有很多这样的文档漂浮在周围)。

于 2009-06-11T18:19:13.813 回答