在XML文档中使用未使用的名称空间声明是不合法的吗?

时间:2009-06-11 18:12:58

标签: xml w3c

例如,根据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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

standard似乎并不表示其他情况。第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>

答案 2 :(得分:1)

W3C实际上有一个validator service。这有两个警告,编码和缺少doctype。

答案 3 :(得分:0)

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