É ilegal ter declarações de namespace não utilizados em um documento XML?

StackOverflow https://stackoverflow.com/questions/982745

  •  13-09-2019
  •  | 
  •  

Pergunta

Por exemplo, é o documento seguinte XML considerado válido de acordo com o XML W3C 1.0 recomendação? Observe que o namespace 'futuro' não é referenciado em qualquer lugar do documento.

Embora este não pode ser considerado um bom estilo, a minha convicção é que o documento ainda é válido independentemente do namespace não utilizado. Alguém pode confirmar ou refutar esta suposição?

Obrigado, Matt

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

Solução

O padrão não parece indicar o contrário. Seção 7, "Conformidade de Documentos" dá alguns requisitos, a fim de chamar um documento "namespace-bem-formado" e "namespace válido", mas nada diz que você não pode ter uma declaração de namespace não utilizado.

Na seção 3, um exemplo é dado, que contém um espaço de nomes não utilizados:

<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>

Outras dicas

Não, não é ilegal ter declarações de namespace não utilizados em um documento XML.

W3C realmente tem um validador serviço . Isso valida com duas advertências, que codificam e falta de um tipo de documento.

Enquanto a maioria das ferramentas de limpeza irá remover namespaces não utilizados Não me lembro de nada sobre especificação XML dizendo que é ilegal para mantê-los. E eu não sei de qualquer parser XML que não aceitará tal documento (e não há um monte de tais documentos flutuando).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top